{"_id":"@0din/prompt-toolkit","_rev":"6-24efa0aeed6fb4fd3523b0102e3c5d5c","name":"@0din/prompt-toolkit","dist-tags":{"latest":"0.9.7"},"versions":{"0.9.0":{"name":"@0din/prompt-toolkit","version":"0.9.0","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"author":{"name":"0din Team"},"license":"Apache-2.0","_id":"@0din/prompt-toolkit@0.9.0","maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"dist":{"shasum":"2f8a09c1663d8a44dffbb35fa27f78036ff44b7b","tarball":"https://registry.npmjs.org/@0din/prompt-toolkit/-/prompt-toolkit-0.9.0.tgz","fileCount":94,"integrity":"sha512-yMCB831+Ko1Sr2VR+97776cFXDG4NQVLKBRWAo7qHzsq9jWIgPcGqHkcIln0HAkeVm7iCcGEcIR8ZhunHoQWXA==","signatures":[{"sig":"MEYCIQCY+TGGjP1XvJ3mIVUX0C4YW+x9SKSIwwotTBvBfh6tVQIhAOZFh4yQNSu2DX1+gE5xpUF9h9YG6IPms1ll2KzMu4bz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284526},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"2933ae6862eba1cd478b0dbfbfb76ba40481db5e","scripts":{"lint":"eslint 'src/**/*.ts' 'test/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write 'src/**/*.ts' 'test/**/*.ts'","prepare":"tsc","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"0din-ai","email":"0din@mozilla.com"},"overrides":{"brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"_npmVersion":"10.9.8","description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","directories":{},"_nodeVersion":"22.22.3","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","eslint":"^10.8.1","globals":"^17.11.0","ts-jest":"^29.4.11","typedoc":"^0.28.20","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@typescript-eslint/parser":"^8.67.0","@typescript-eslint/eslint-plugin":"^8.67.0"},"peerDependencies":{"openai":"^4.0.0","onnxruntime-node":"^1.16.0","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"onnxruntime-node":{"optional":true},"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prompt-toolkit_0.9.0_1787774822239_0.12187973407734676","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@0din/prompt-toolkit","version":"0.9.3","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"author":{"name":"0din Team"},"license":"Apache-2.0","_id":"@0din/prompt-toolkit@0.9.3","maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"dist":{"shasum":"3bb0cd19ff01fb55ebe0862eb32877b9d03a1958","tarball":"https://registry.npmjs.org/@0din/prompt-toolkit/-/prompt-toolkit-0.9.3.tgz","fileCount":94,"integrity":"sha512-rtQOA1eAwuLc4fYFSXbWVBNbp8TYBsT8cBuP952QMCTbobgdNTP2nDMB5uVMttGJUR5fYjCBEW4gtp0TzUS7VA==","signatures":[{"sig":"MEUCIGQ+uMx+btXiiVOXwImRn8AFqKMcobVE5DOW9TWr1wukAiEAh+1KsY3YqcEONqhYlyiB2VqqGd4jSiYHMCy7iXPMv2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFfZo82UT5qLka4Dz9n9wbxVdqAfuyf3EkyIQ0HGhFtGAiBgdrAKxwELnXFu3HQqG+afEOzXoZMsyydUH7zkQa3nSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0din%2fprompt-toolkit@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285498},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"99f385a56eca862c2c7467bf1655e7f39d8521f7","scripts":{"lint":"eslint 'src/**/*.ts' 'test/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write 'src/**/*.ts' 'test/**/*.ts'","prepare":"tsc","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d34e2a8b-0770-4aa6-a4d5-730f8f745591"}},"overrides":{"brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.1","description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","directories":{},"_nodeVersion":"22.23.2","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","eslint":"^10.8.1","globals":"^17.11.0","ts-jest":"^29.4.11","typedoc":"^0.28.20","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@typescript-eslint/parser":"^8.67.0","@typescript-eslint/eslint-plugin":"^8.67.0"},"peerDependencies":{"openai":"^4.0.0","onnxruntime-node":"^1.16.0","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"onnxruntime-node":{"optional":true},"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prompt-toolkit_0.9.3_1787949549176_0.7162041564574739","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@0din/prompt-toolkit","version":"0.9.4","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"author":{"name":"0din Team"},"license":"Apache-2.0","_id":"@0din/prompt-toolkit@0.9.4","maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"dist":{"shasum":"37f6101ea3d3056b278c1b57816e3d12630927e7","tarball":"https://registry.npmjs.org/@0din/prompt-toolkit/-/prompt-toolkit-0.9.4.tgz","fileCount":94,"integrity":"sha512-G2d8o8KSytXCwmt0N7heX5CqFhE7+wtnOA5QHpD9+w6aJ0mEDbgAKL9BgF4RWJStUXjW5dxcGwOHhDI4jSNclQ==","signatures":[{"sig":"MEYCIQDK1/pQ4n4re2yKLK+8QccH2CmMoB6aRbpzY8ggOXeKpQIhAMS48SsaDR4EJFjWiJuydrS61UK8XuoWrkEcKtRvNHzn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC9Zn+k74w3toMd5oWlQs0Gs6aU6+UCjtzAOmMLY53rYAIgDWTFuBkN6IR+ln7Qy8RofTJtLm+KjFVEkkhmodTLT0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0din%2fprompt-toolkit@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286455},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"b6f9082b0d79cc81839efee73712ca2d5eb50f13","scripts":{"lint":"eslint 'src/**/*.ts' 'test/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write 'src/**/*.ts' 'test/**/*.ts'","prepare":"tsc","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d34e2a8b-0770-4aa6-a4d5-730f8f745591"}},"overrides":{"brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.1","description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","directories":{},"_nodeVersion":"22.23.2","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","eslint":"^10.8.1","globals":"^17.11.0","ts-jest":"^29.4.11","typedoc":"^0.28.20","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@typescript-eslint/parser":"^8.67.0","@typescript-eslint/eslint-plugin":"^8.67.0"},"peerDependencies":{"openai":"^4.0.0","onnxruntime-node":"^1.16.0","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"onnxruntime-node":{"optional":true},"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prompt-toolkit_0.9.4_1788015015193_0.45723099358645225","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@0din/prompt-toolkit","version":"0.9.5","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"author":{"name":"0din Team"},"license":"Apache-2.0","_id":"@0din/prompt-toolkit@0.9.5","maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"dist":{"shasum":"9089852e258b2f552ceb691e54de32a426289092","tarball":"https://registry.npmjs.org/@0din/prompt-toolkit/-/prompt-toolkit-0.9.5.tgz","fileCount":94,"integrity":"sha512-GW9j3Q+cljL8ORTbZJz3qK5/tXk8kpWhzWRicIPIapIS3yn5foGPL9LM2GUYvlVa7ZUYiTGR5GeL+tyoKEYxIg==","signatures":[{"sig":"MEUCIC8Sd75o+gKvDA7gnZTtpJ2jSTPyQbU53Vjl1u1h801YAiEA165+ID9dAcFGAx6WY5Oxx1ourMjqslDBQ89Layu8WeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDTEabQQ0+ql9iWEWb05aT7r2qOkcoIOQGP70fEPtrmggIhAIUtY3yMekEPXbhQAAlzGnbmuwOdYLX5kSmCkfrgFqDG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0din%2fprompt-toolkit@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":292877},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"a60adb13e7c1a488b5d404c04ddaa653548117c3","scripts":{"lint":"eslint 'src/**/*.ts' 'test/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write 'src/**/*.ts' 'test/**/*.ts'","prepare":"tsc","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d34e2a8b-0770-4aa6-a4d5-730f8f745591"}},"overrides":{"brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.1","description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","directories":{},"_nodeVersion":"22.23.2","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","eslint":"^10.8.1","globals":"^17.11.0","ts-jest":"^29.4.11","typedoc":"^0.28.20","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@typescript-eslint/parser":"^8.67.0","@typescript-eslint/eslint-plugin":"^8.67.0"},"peerDependencies":{"openai":"^4.0.0","onnxruntime-node":"^1.16.0","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"onnxruntime-node":{"optional":true},"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prompt-toolkit_0.9.5_1788358606267_0.6323584017804493","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"@0din/prompt-toolkit","version":"0.9.6","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"author":{"name":"0din Team"},"license":"Apache-2.0","_id":"@0din/prompt-toolkit@0.9.6","maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"dist":{"shasum":"7c5857ee75be6ab7505743aded0f665f366c753f","tarball":"https://registry.npmjs.org/@0din/prompt-toolkit/-/prompt-toolkit-0.9.6.tgz","fileCount":94,"integrity":"sha512-ZPnQ1L7Y7ReK7qTvSipk/GBmyoAx6x7aHO1sAOdr0nrS20p0R9pzh3X8bbhiLsvGCqiXVTFSuiD4+R3Ml8Bqtw==","signatures":[{"sig":"MEUCIQCEY+oWmxdIagPIv23xp3/EtYTiUnMvgo3dp03r+shIZAIgdirhSONwneImnVagU4WE7wsdvQIGPgN/zhpff41JzPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDNy9MGPy5HNfs/yGfBqgPF5Orzezg4FKhiXxcmujhTwwIgb8lIXBiFIUdBYFFfNFp/dlcZD8bOaLOv4e9NGB3/rrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0din%2fprompt-toolkit@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":298070},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"81268a40df2d3d711ccf8b42e9697619f9530a6f","scripts":{"lint":"eslint 'src/**/*.ts' 'test/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write 'src/**/*.ts' 'test/**/*.ts'","prepare":"tsc","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d34e2a8b-0770-4aa6-a4d5-730f8f745591"}},"overrides":{"brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.1","description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","directories":{},"_nodeVersion":"22.23.2","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","eslint":"^10.8.1","globals":"^17.11.0","ts-jest":"^29.4.11","typedoc":"^0.28.20","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@typescript-eslint/parser":"^8.67.0","@typescript-eslint/eslint-plugin":"^8.67.0"},"peerDependencies":{"openai":"^4.0.0","onnxruntime-node":"^1.16.0","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"onnxruntime-node":{"optional":true},"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prompt-toolkit_0.9.6_1788379916554_0.24347507156996007","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"_id":"@0din/prompt-toolkit@0.9.7","bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"dist":{"shasum":"94032be162e42cc0cd71ae1da82609a8915e8d1e","tarball":"https://registry.npmjs.org/@0din/prompt-toolkit/-/prompt-toolkit-0.9.7.tgz","fileCount":94,"integrity":"sha512-51zbEvvjTRT9vby+oEVJ+z7n3Ajr4F8DRTLagTMHrDwbxBH9oeutInmnx/ol5PM8kaSwyrILJix8IOJeamVcqA==","signatures":[{"sig":"MEUCIQCjqdSqSKDNlSDMdxBsz9zEXDBOqeGxhLpGXr/ZZgW2VQIgIEUuNzn17GDCyyXoiHcpDe/aMzhxmVMF3a/LbPXn7cs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCO/F7DHriUYP4l2scUh8ODi3nRp7MnmfhbS6aS74W+JQIhAKTVSrrqWcIRLouGPNrTr0yCu4PaIVMoax2mUs2mGQJi"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0din%2fprompt-toolkit@0.9.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299847},"main":"dist/index.js","name":"@0din/prompt-toolkit","types":"dist/index.d.ts","author":{"name":"0din Team"},"engines":{"node":">=20.19.0"},"gitHead":"32b8f015e22887c17353b746da3002a4032634fc","license":"Apache-2.0","scripts":{"lint":"eslint 'src/**/*.ts' 'test/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write 'src/**/*.ts' 'test/**/*.ts'","prepare":"tsc","test:watch":"jest --watch","prepublishOnly":"npm run build"},"version":"0.9.7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d34e2a8b-0770-4aa6-a4d5-730f8f745591"}},"homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"overrides":{"brace-expansion":"^5.0.8"},"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"_npmVersion":"11.19.1","description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","directories":{},"maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"_nodeVersion":"22.23.2","dependencies":{"typescript":"^5.9.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","eslint":"^10.8.1","globals":"^17.11.0","ts-jest":"^29.4.11","typedoc":"^0.28.20","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@typescript-eslint/parser":"^8.67.0","@typescript-eslint/eslint-plugin":"^8.67.0"},"peerDependencies":{"openai":"^4.0.0","onnxruntime-node":"^1.16.0","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"onnxruntime-node":{"optional":true},"@huggingface/transformers":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prompt-toolkit_0.9.7_1789660283277_0.585028599574009"}}},"time":{"created":"2026-08-26T20:07:02.041Z","modified":"2026-09-17T15:51:23.736Z","0.9.0":"2026-08-26T20:07:02.385Z","0.9.3":"2026-08-28T20:39:09.294Z","0.9.4":"2026-08-29T14:50:15.286Z","0.9.5":"2026-09-02T14:16:46.381Z","0.9.6":"2026-09-02T20:11:56.643Z","0.9.7":"2026-09-17T15:51:23.364Z"},"bugs":{"url":"https://github.com/0din-ai/prompt-toolkit/issues"},"author":{"name":"0din Team"},"license":"Apache-2.0","homepage":"https://github.com/0din-ai/prompt-toolkit/tree/main/typescript","keywords":["lsh","locality-sensitive-hashing","embeddings","similarity","ai","typescript"],"repository":{"url":"git+https://github.com/0din-ai/prompt-toolkit.git","type":"git","directory":"packages/typescript"},"description":"Multi-language SDK for LSH signature generation for AI prompt similarity detection","maintainers":[{"name":"0din-ai","email":"0din@mozilla.com"}],"readme":"# @0din/prompt-toolkit (TypeScript)\n\nMulti-language SDK for LSH (Locality-Sensitive Hashing) signature generation for AI prompt similarity detection.\n\nThis is the TypeScript implementation of the odin-prompt-toolkit algorithm, also available in [Rust](../rust) and [Python](../python).\n\n## Installation\n\n### From Git (Development)\n\n```bash\nnpm install git+https://github.com/0din-ai/prompt-toolkit#main:typescript\n# or\nyarn add git+https://github.com/0din-ai/prompt-toolkit#main:typescript\n# or\npnpm add git+https://github.com/0din-ai/prompt-toolkit#main:typescript\n```\n\n## Quick Start\n\n### Basic LSH Signatures\n\n```typescript\nimport { simhashLshMulti, normalizeVector } from '@0din/prompt-toolkit';\n\n// Your embedding vector (must be L2-normalized)\nconst vector = [0.5, 0.5, 0.5, 0.5];\nconst normalized = normalizeVector(vector);\n\n// Generate LSH signatures (3 families, 256 bits, 16 bands)\nconst families = simhashLshMulti(normalized);\n\nconsole.log(`Signature: ${families[0].signature}`);\nconsole.log(`Bands: ${families[0].bands}`);\n```\n\n### Similarity Comparison\n\n```typescript\nimport { \n  simhashLshMulti, \n  hammingDistanceHex, \n  cosineFromHamming \n} from '@0din/prompt-toolkit';\n\n// Generate signatures for two vectors\nconst families1 = simhashLshMulti(vector1);\nconst families2 = simhashLshMulti(vector2);\n\n// Compute Hamming distance\nconst distance = hammingDistanceHex(\n  families1[0].signature, \n  families2[0].signature\n);\n\n// Estimate cosine similarity\nconst similarity = cosineFromHamming(distance, 256);\nconsole.log(`Estimated cosine similarity: ${similarity.toFixed(3)}`);\n```\n\n### Versioned Signatures\n\n```typescript\nimport { \n  signatureString, \n  parseSignatureString,\n  SignatureVersion \n} from '@0din/prompt-toolkit';\n\n// Format signature with version\nconst versionedSig = signatureString(SignatureVersion.V1, signature);\nconsole.log(versionedSig); // \"0din-v1:abcd1234...\"\n\n// Parse signature string\nconst parsed = parseSignatureString('0din-v1:abcd1234');\nconsole.log(parsed.version); // 'v1'\nconsole.log(parsed.signature); // 'abcd1234'\n```\n\n## API Reference\n\n### Core Functions\n\n#### `simhashLshMulti(vector, config?)`\n\nGenerate LSH signatures for a normalized vector.\n\n**Parameters:**\n- `vector: number[]` - L2-normalized embedding vector\n- `config?: LshConfig` - Optional configuration\n  - `families?: number` - Number of hash families (default: 3)\n  - `bits?: number` - Bits per signature (default: 256)\n  - `bands?: number` - Number of bands (default: 16)\n\n**Returns:** `LSHFamily[]` - Array of signatures, one per family\n\n#### `hammingDistanceHex(a, b)`\n\nCompute Hamming distance between two hex signatures.\n\n**Parameters:**\n- `a: string` - First hex signature\n- `b: string` - Second hex signature\n\n**Returns:** `number` - Hamming distance in bits\n\n#### `cosineFromHamming(distance, totalBits)`\n\nEstimate cosine similarity from Hamming distance.\n\n**Parameters:**\n- `distance: number` - Hamming distance in bits\n- `totalBits: number` - Total bits in signature\n\n**Returns:** `number` - Estimated cosine similarity [-1, 1]\n\n#### `normalizeVector(vector)`\n\nL2-normalize a vector to unit length.\n\n**Parameters:**\n- `vector: number[]` - Input vector\n\n**Returns:** `number[]` - Normalized vector\n\n### Type Definitions\n\n```typescript\ninterface LSHFamily {\n  family: number;\n  bits: number;\n  signature: string; // hex string\n  bands: string[]; // band slices\n}\n\ninterface LshConfig {\n  families?: number;\n  bits?: number;\n  bands?: number;\n}\n\nenum SignatureVersion {\n  V0 = 'v0', // OpenAI (1536 dims)\n  V1 = 'v1', // ONNX (1024 dims)\n  LATEST = 'latest', // Resolves to V1\n}\n```\n\n## Signature Versions\n\n- **V0**: OpenAI text-embedding-3-large (1536 dimensions, API-based)\n- **V1**: 0din-jailbreak-embeddings-small ONNX (1024 dimensions, local)\n- **Latest**: Resolves to V1\n\n**Important**: V0 and V1 signatures are **not comparable** due to different embedding spaces.\n\n## Algorithm\n\nSimHash via Random Hyperplane LSH (Charikar 2002):\n- Deterministic hyperplanes via SplitMix64 PRNG\n- Default: 3 families × 256 bits × 16 bands\n- Hex-encoded signatures (64 hex chars = 256 bits)\n- Hamming distance → cosine similarity via `cos(π × d/n)`\n\nSee the [specification](../../spec/SPEC.md) for complete algorithm details.\n\n## Development\n\n### Setup\n\n```bash\ncd typescript\nnpm install\n```\n\n### Build\n\n```bash\nnpm run build\n```\n\n### Run Tests\n\n```bash\nnpm test\n```\n\n### Linting & Formatting\n\n```bash\nnpm run lint\nnpm run format\n```\n\n## License\n\nApache License 2.0\n","readmeFilename":"README.md"}