{"_id":"@d-o-hub/chaotic_semantic_memory","_rev":"16-b88a2e22479c0ebd0544e72f76ebfaff","name":"@d-o-hub/chaotic_semantic_memory","dist-tags":{"latest":"0.3.8"},"versions":{"0.1.0":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.1.0","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.1.0","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"edb7450c1ee684f4bf9043c0ad1a80d89120ebd5","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.1.0.tgz","fileCount":6,"integrity":"sha512-T3CPRoJ8PgcpJ8VCNBtfrokXuYfHxCI9ZxYfjoQ1DVH9dbFV305vqzd350qk+NOPORSOah0tJQ4jblj31IZJng==","signatures":[{"sig":"MEUCIGnlV1gPTWjoYHe/FzMZkvO/vWXnag4eR7GprfXZuqS+AiEA7ciyT1kjVJCcTDzMi15qo3g8V0VIT/PLTIHMpMOlm0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295098},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"c8541e75505df6873fffbc6c8a3da1ed08d334c2","_npmUser":{"name":"d-o-hub","email":"d-oit@t-online.de"},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.6.2","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":["./snippets/*"],"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.1.0_1771585253275_0.13815170792797127","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.1.2","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.1.2","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"bfe12d6849ddcc8450fd0492582fda2090484645","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.1.2.tgz","fileCount":6,"integrity":"sha512-oVeQHnvNjd8VZBKPulp/qnW9ZTpbe9gj31tZ9gtVqgjs/hiWD0hgsSumFoJcYkKFHZ1fW8gaVv8Fh8H+AeAtkA==","signatures":[{"sig":"MEYCIQCEWp1xbZAadpIcOSYBfyA0NkKcK533mme7tfCQ7fnG2QIhAPlHj18aAK4q2BzGump0ocVbmZkikCEJHWaXWpaIIy5O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285427},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"f92f2bf35884b14d7ba7e31cbb033e96dee3ad11","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.13.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.1.2_1772270668361_0.2145045101580494","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.1.3","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.1.3","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"c6bde43997f607e16e40514f0c31488470bc3603","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.1.3.tgz","fileCount":6,"integrity":"sha512-C5YqmDMf9PdxyHNfejRiRn97AUZUMq7MhYE6itiSo0jMXtRN18XmgfoTA8JfFyETTh2aKSuhp94LBzQGWE2Jlw==","signatures":[{"sig":"MEYCIQDSUgPWyB9wLcqzoOLVj+ZBJUrj0IiI5qOFcdwEEwaCuAIhAMt1TW9R0Nl4Q4a6zAZlYD+rHs3nN1y0KevQHyVed55m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286465},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"c4ff44891d871c45bfbc956c5f41ed0fe0fb1b16","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.13.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.1.3_1772273632701_0.22401339041167567","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.2.0","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.2.0","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"161de0dbfd12d2429cb43a5e95b301381ab5f163","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.2.0.tgz","fileCount":6,"integrity":"sha512-g7phajAV57bvj0nMh7YLsbUUToRhAeeVYktW1mLvT0sMjir+QnVhtwGkejU9rV1EP4BV6aixRkaoKwb/jgubow==","signatures":[{"sig":"MEUCIQCPwegvEAX3O1QaWCe9WDiK8F0vbdT4USZp2goZ7fJ6agIgbK6sozMHRdcZH5yfOSqzJXCDoTWwwWe8qCTLOEfBxS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":414606},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"aa413fe2808bc8b7d339d41d6f7bff9580bfa4ca","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.2.0_1772648888091_0.8377651438933007","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.2.1","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.2.1","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"87a69239cad37e520732bdd3e67dda90d5d831c0","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.2.1.tgz","fileCount":6,"integrity":"sha512-8wC42pAQufKkaDa/EcjFWPRu/i1kTE2d5oJW7FE78uAlZXn2RRAiu/dLwbFMYXmwCy0pshBLYYoDhQMdn7/lsQ==","signatures":[{"sig":"MEUCIDxj+PcxI+D7+VKN2AH5DN6VEo1wkh4ZPj7zGLhRtjUBAiEA6KyIgbnFDfP4PzyXZCfWIMfBfmRVe4wIrPauFcejffw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415327},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"60eea268d2284a6f2937ee516ef0a2bd0a632b3b","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.2.1_1773087224530_0.7972620467404434","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.2.2","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.2.2","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"0bfa8827c0ced9ff62e7b0dd6cef525824fd69c0","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.2.2.tgz","fileCount":6,"integrity":"sha512-e5P3bfkbM7HH+jfZl+KH19p9sB/DSgmOH/x6npRDFxv+KkgypcbjVm8T3PsYdBk3WbaOAgKlxyUR6IvCyXa0fw==","signatures":[{"sig":"MEQCIBxKa2Nxuo/xLTPBJ0sxyebqJq6b2RsXuproC3tUQcelAiAS3NJskflcBen6MggipfSyoZlXBONPZfvVOxZDKxjylg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":466924},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"b38669b381dc924b8b6a3db17c0f65bb51bebf44","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.1","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.2.2_1773649741943_0.9484719074737822","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.2.3","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.2.3","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"c5e14f7a8e164a493d904c3db3e085da9fe049a1","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.2.3.tgz","fileCount":6,"integrity":"sha512-Mv805jgDjnUpLbF96ysYxasl6vekuYfKjCqMVNBuoZy5gDC31o4aFbAoPInaX0SMCV3ukxC+DELerbPfLezoog==","signatures":[{"sig":"MEUCIEqgZWqda8V4xOk4RbWwY++v6Xky9v4PaOVldkotLTwwAiEA4lTbEdATD5s2PwJpdTEswePsNB/RSNkVVe5FcIp6/gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":465273},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"5e070afc7f26cde0035cf5e6d9ba6400c1ed117e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.1","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.2.3_1773670048753_0.5856899596474583","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.2.5","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.2.5","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"d51713920661073efd6b9761d21d4bc051c1ce0a","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.2.5.tgz","fileCount":6,"integrity":"sha512-ZKKbejKbi4+t4fIdMlQKcwtE4xNM4bAgc9eg7sMJ3W71zORqyiEDU2CNk29P4YqZJLWnlXLB3pLAwTgcE0WxGA==","signatures":[{"sig":"MEUCIFS2r4MUiDdkqW7xSdCltNNx+xACy65o6gLtxelyfzoBAiEA9uBSa8NrITX9N4KL4bIyYp4Z3bzb+0L+4utrjfg5JZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":495765},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"a6adf518247c378ebd913e34a9e5a10a53a4414d","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:24d74b16-12d2-4769-b58a-a698473b1fee"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.12.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.2.5_1774292874321_0.6441684713153721","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.2.8","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.2.8","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"6595cc8e28e61aa5ff8b21e2e3299ddf00a4682e","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.2.8.tgz","fileCount":6,"integrity":"sha512-qAzO0ZyHgkWYrtoAgCN+VpA64eDx1l09iW+kDvEg8IWOXC2sJ86vQm9MmMyid47DqlwNEUMPT8mIjcBSgZWRrw==","signatures":[{"sig":"MEUCIQDR2q5+UIRiPxpjIgH44mCe3/UYJK8M6T38THqSjCV1DQIgBfWT0uSsF2TotjIhOWuc8tOb1e/x2o8RAIeUq+CKD8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":497066},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"8d97b9ce72548fcfe0c31d4c3a987f226d87feeb","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5569dd6e-fb42-4bc1-8a24-a878be5548f6"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.12.1","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.2.8_1775419849158_0.3008901789960361","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.0","keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"author":{"name":"d-o-hub"},"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.3.0","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"e30cce8496e787ab4c53491a7ba511825a769f01","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.0.tgz","fileCount":6,"integrity":"sha512-ziRd6nS3edc65deBBNfR0JPNma6ihvEHuQ+qUDQIwZACGIiiqnXDy/ml/rF/Ggt+XrTG+NCjHsxHpCnkUU85JQ==","signatures":[{"sig":"MEQCIBaP9UowIWYQ0NMOD826JqOyOwzc4gMrLQ25jTJ0secPAiA/aJaTpfjthb7GOwNEkGvNt4lNLp5ymFJW7nLo99UPpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":499698},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3c4bfa48b8da6324ca58b96cb51c187ba34f71b1","scripts":{"test":"node --experimental-wasm-modules test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c871b6c-edfa-4ecd-adb5-96aa4e315e23"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.3.0_1775639259167_0.1079301728619877","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.1","keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"author":{"name":"d-o-hub"},"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.3.1","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"eb816c9dbe48f3066351fa8810e005b293f750ed","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.1.tgz","fileCount":6,"integrity":"sha512-sHQqo6YiejpIMtvGWwyOHEaLaL8mnVfNcsJdBf4rIQOuVsCUxHJxHMUk8dCwoZgW8P/JA2vVQig7kw7jQWhCUQ==","signatures":[{"sig":"MEYCIQCcnpV1UWAUcugcWaWu8v6Duxk1nlnou3fINECdn17fqwIhAP6DubuomazDKO0XuHxWNf0tvhO2wHm/UYxjmsTs+rY7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":499718},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d0ecaf643a77d1a595205abf6195b44cf63acddb","scripts":{"test":"node --experimental-wasm-modules test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5c871b6c-edfa-4ecd-adb5-96aa4e315e23"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.11.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.3.1_1775728702036_0.2551102764223161","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.2","keywords":["ai","memory","hypervector","reservoir","wasm"],"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.3.2","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"9275fc899bdf9b307c46325e37a3e7d0d18eaa36","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.2.tgz","fileCount":6,"integrity":"sha512-IEajIoDCnre7FaoV/JTbwJDOdbgk3LMUZpXJk+euaG86eV04bIgzPORgumUqDlhTxeGO6JjPkKeGXspTXJwKzg==","signatures":[{"sig":"MEUCIQD2iplHm8w8MrjYT2FGSWLgDNjZY7CvbNu++k4rm8DvbwIgcZkzxmlNTGuL7TvTfeUuxuWlUzEe7pSIuIgzdfmN7SY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":499385},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","gitHead":"9c86e9fa96a3975616c7ba46bf346962cd71e7fc","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b171781-a044-4a5e-9e54-b13a71619b19"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.12.1","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.3.2_1775825068375_0.7032850129293813","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.5","keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"author":{"name":"d-o-hub"},"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.3.5","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"d9daadba18d7542a6ed27aa290cb657d2430b47c","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.5.tgz","fileCount":6,"integrity":"sha512-e0+FzzSEfqWx7IK4jMuCacXlC8iB7yycP4znBtFv6H8unmr8Ioy0HNqFEvZlHQZzWnpONzl+rG6ffPlEAgdBWw==","signatures":[{"sig":"MEYCIQCCVYX8E/T1n0CKBUqD/oZ0I6OhUv/tTe1i2OGisv3S7gIhANu2gPvCH/hJSD3dPqakdRPLotHwzFmoUBCwq3io2L3P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":507086},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","engines":{"node":">=18.0.0"},"gitHead":"62fed2030a9f53ce261f77464f00828242494c18","scripts":{"test":"node --experimental-wasm-modules test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ce8693b-6efb-4f8d-b8b5-ae4fa8488ee2"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.12.1","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.3.5_1777376855968_0.2514787915750849","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.6","keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"author":{"name":"d-o-hub"},"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.3.6","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"5124d36a9f4cd80f261a5f6df39e5f8aa1a7b3f4","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.6.tgz","fileCount":6,"integrity":"sha512-55nrq4qZKakl6QG0U20zW3wqPXBZgInWoFtH/G6+ooDMmpRfWDKzoa0oZOdoBMy0qxn89MxCY58DdP3ILJjqWA==","signatures":[{"sig":"MEUCIQCJWPcFQe0/L/WUga6mq8nl3KbBi0WDwMfgVQc3boDOvQIgcHZ3ZYxNOLZPwG/a59qI5vyXSxbgoO8mtjisT0nK600=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":580436},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","engines":{"node":">=18.0.0"},"gitHead":"310f4a161ce463981f54cd8b764b92f34b847c5c","scripts":{"test":"node --experimental-wasm-modules test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ce8693b-6efb-4f8d-b8b5-ae4fa8488ee2"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.12.1","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.3.6_1779273512007_0.4600068288333521","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.7","keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"author":{"name":"d-o-hub"},"license":"MIT","_id":"@d-o-hub/chaotic_semantic_memory@0.3.7","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"dist":{"shasum":"6637378a2bc161782266de003c38a47770a1cb7b","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.7.tgz","fileCount":6,"integrity":"sha512-2oZE3+Wwv5mPkB+eV4Zt6QKxWDT+6XRIA76vOX3G9NItOoaGEJgs/ypw8qLtjdGU3MLr2nQG1mH7uwTQCGfs7g==","signatures":[{"sig":"MEYCIQCnmzu1tHAXRGjeGULAytvKH5joFLEwbSBTq6q5iQXiEgIhAK3kbiA8Fpd2ggAs0uHG0P/oOs4w64vDNw/+z9aYiszL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":643758},"main":"chaotic_semantic_memory.js","type":"module","types":"chaotic_semantic_memory.d.ts","engines":{"node":">=18.0.0"},"gitHead":"37feaba0e910fce084bd255eb6ac7c30d1a82293","scripts":{"test":"node --experimental-wasm-modules test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ce8693b-6efb-4f8d-b8b5-ae4fa8488ee2"}},"repository":{"url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git","type":"git"},"_npmVersion":"11.16.0","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/chaotic_semantic_memory_0.3.7_1784733465559_0.03195762493530374","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@d-o-hub/chaotic_semantic_memory","version":"0.3.8","description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","main":"chaotic_semantic_memory.js","types":"chaotic_semantic_memory.d.ts","scripts":{"test":"node --experimental-wasm-modules test.js"},"keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"author":{"name":"d-o-hub"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git"},"bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","engines":{"node":">=18.0.0"},"type":"module","sideEffects":false,"publishConfig":{"access":"public","provenance":true},"gitHead":"d86b15fd6da5b54c8d882bf47578090ce5bdc495","_id":"@d-o-hub/chaotic_semantic_memory@0.3.8","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-0DLxT03YwoiFl0ZymgQ1UJFJ1P+ioQYLiwntF3b7O1wOmBVRpmYZt7u03WaBDDJtB2dUPsZV94MVGl3MdAibGg==","shasum":"e669e3a1358a2f0f09125cb9081fb05fcb724df6","tarball":"https://registry.npmjs.org/@d-o-hub/chaotic_semantic_memory/-/chaotic_semantic_memory-0.3.8.tgz","fileCount":6,"unpackedSize":677272,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d-o-hub%2fchaotic_semantic_memory@0.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEqPm9srw41uu7zQzm+DIVQwMDIU2dgsld95tmL6NGYCAiEAnSJevl3gHVOak2MrhlL+XWv332Wa5OLsVhnVZ3JlcsI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ce8693b-6efb-4f8d-b8b5-ae4fa8488ee2"}},"directories":{},"maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chaotic_semantic_memory_0.3.8_1785234800800_0.8568780823770192"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-20T11:00:53.121Z","modified":"2026-07-28T10:33:21.225Z","0.1.0":"2026-02-20T11:00:53.432Z","0.1.2":"2026-02-28T09:24:28.518Z","0.1.3":"2026-02-28T10:13:52.855Z","0.2.0":"2026-03-04T18:28:08.370Z","0.2.1":"2026-03-09T20:13:44.726Z","0.2.2":"2026-03-16T08:29:02.101Z","0.2.3":"2026-03-16T14:07:28.941Z","0.2.5":"2026-03-23T19:07:54.483Z","0.2.8":"2026-04-05T20:10:49.300Z","0.3.0":"2026-04-08T09:07:39.367Z","0.3.1":"2026-04-09T09:58:22.217Z","0.3.2":"2026-04-10T12:44:28.584Z","0.3.5":"2026-04-28T11:47:36.163Z","0.3.6":"2026-05-20T10:38:32.212Z","0.3.7":"2026-07-22T15:17:45.770Z","0.3.8":"2026-07-28T10:33:20.942Z"},"bugs":{"url":"https://github.com/d-o-hub/chaotic_semantic_memory/issues"},"author":{"name":"d-o-hub"},"license":"MIT","homepage":"https://github.com/d-o-hub/chaotic_semantic_memory#readme","keywords":["ai","memory","hypervector","reservoir","wasm","semantic","neural","echo-state-network"],"repository":{"type":"git","url":"git+https://github.com/d-o-hub/chaotic_semantic_memory.git"},"description":"AI memory systems with hyperdimensional vectors and chaotic reservoirs - WASM bindings","maintainers":[{"name":"d-o-hub","email":"d-oit@t-online.de"}],"readme":"# d.o. chaotic semantic memory\n\n[![CI](https://github.com/d-o-hub/chaotic_semantic_memory/actions/workflows/ci.yml/badge.svg)](https://github.com/d-o-hub/chaotic_semantic_memory/actions/workflows/ci.yml)\n[![Crates.io](https://img.shields.io/crates/v/chaotic_semantic_memory.svg)](https://crates.io/crates/chaotic_semantic_memory)\n[![docs.rs](https://img.shields.io/docsrs/chaotic_semantic_memory)](https://docs.rs/chaotic_semantic_memory)\n[![npm](https://img.shields.io/npm/v/@d-o-hub/chaotic_semantic_memory)](https://www.npmjs.com/package/@d-o-hub/chaotic_semantic_memory)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n<img width=\"1456\" height=\"720\" alt=\"1000046937\" src=\"https://github.com/user-attachments/assets/d698a304-9b36-4aad-a2d1-5668157a26f7\" />\n\n`chaotic_semantic_memory` is a Rust crate for AI memory systems built on\n**Hyperdimensional Computing (HDC)** — not transformer embeddings:\n- 10240-bit binary hypervectors with SIMD-accelerated operations\n- chaotic echo-state reservoirs for temporal processing\n- libSQL persistence (local SQLite or remote Turso)\n\nIt targets both native and `wasm32` builds with explicit threading guards.\n\n## Quick Links\n\n| Resource | Link |\n|----------|------|\n| Documentation | [docs.rs/chaotic_semantic_memory](https://docs.rs/chaotic_semantic_memory) |\n| Crates.io | [crates.io/crates/chaotic_semantic_memory](https://crates.io/crates/chaotic_semantic_memory) |\n| Issues | [GitHub Issues](https://github.com/d-o-hub/chaotic_semantic_memory/issues) |\n| Changelog | [CHANGELOG.md](CHANGELOG.md) |\n\n## Important: HDC, Not Semantic Embeddings\n\nThis crate uses **Hyperdimensional Computing (HDC)** for text encoding — it is\n**not** a transformer or embedding model. Understanding this distinction is critical:\n\n| | HDC (this crate) | Transformer Embeddings (e.g. sentence-transformers) |\n|---|---|---|\n| **Method** | Hash-based token → random hypervector | Learned neural network encodings |\n| **Similarity** | Tokens + position match → similar vectors | Semantic meaning → similar vectors |\n| **\"cat\" vs \"kitten\"** | Low similarity (different tokens) | High similarity (synonyms) |\n| **\"cat sat\" vs \"sat cat\"** | Different (position-aware) | Often similar |\n| **Compute** | CPU-only, deterministic, no GPU | GPU-accelerated, learned weights |\n| **Use case** | Keyword/lexical search, exact-match recall | Semantic search, paraphrase detection |\n\n**Bottom line:** `inject_text` / `probe_text` match on shared tokens at similar\npositions. For true semantic similarity, use an external embedding model and inject\nvectors directly via `inject_concept`.\n\n## Features\n\n- **Hyperdimensional Computing**: 10240-bit binary hypervectors with SIMD-accelerated operations\n- **Chaotic Reservoirs**: Configurable echo-state networks with spectral radius controls `[0.9, 1.1]`\n- **Semantic Memory**: Concept graphs with weighted associations and similarity search\n- **Optimized Retrieval**: Two-stage retrieval pipeline with heuristic-based candidate generation (bucket, graph) and dense-vector scoring.\n- **Persistence**: libSQL for local SQLite or remote Turso database\n- **WASM Support**: Browser-compatible with memory-based import/export\n- **CLI**: Full-featured command-line interface with shell completions\n- **Production-Ready**: Structured logging, metrics, input validation, memory guardrails\n\n## Optional Analytics (DuckDB)\n\nFor advanced OLAP workloads, SQL inspection, and Parquet export, see the [`csm-duckdb`](crates/csm-duckdb) companion crate.\n\n**Two-Crate Decision Tree:**\n\n| Want... | Use... | Features |\n|---|---|---|\n| Just core memory/search | `chaotic_semantic_memory` | Lean, no C++ toolchain |\n| SQL queries + CLI analytics | `csm` + `analytics` feature | Integrated experience |\n| Standalone analytics binary | `csm-analytics` | Specialized for data engineers |\n\n## Installation\n\n### Rust Library\n\n```bash\ncargo add chaotic_semantic_memory\n```\n\nFor WASM targets, build with `--target wasm32-unknown-unknown`. No additional feature flag is needed;\nWASM support is enabled automatically when compiling for the `wasm32` target architecture.\n\n```toml\n[dependencies]\nchaotic_semantic_memory = { version = \"0.3\" }\n```\n\nFor library-only consumers who don't need the CLI binary or its dependencies:\n\n```toml\n[dependencies]\nchaotic_semantic_memory = { version = \"0.4\", default-features = false }\n```\n\n### WASM npm Package (for JS/TS)\n\n```bash\nnpm install @d-o-hub/chaotic_semantic_memory\n```\n\n### CLI Binary\n\n**via npx (recommended — no install, no permission issues):**\n```bash\nnpx @d-o-hub/csm --version\nnpx @d-o-hub/csm inject my-concept --database csm_memory.db\n```\n\n**via npm global install:**\n```bash\nnpm install -g @d-o-hub/csm\n```\n\n> **Permission errors (EACCES)?** Do not use `sudo`. Configure a user-writable prefix:\n> ```bash\n> npm config set prefix ~/.npm-global\n> export PATH=~/.npm-global/bin:$PATH  # Add to ~/.bashrc or ~/.zshrc to persist\n> ```\n> Or simply use `npx` above, which requires no global install and avoids permission issues.\n\n**via cargo:**\n```bash\ncargo install chaotic_semantic_memory --bin csm\n```\n\n## Core Components\n\n- `hyperdim`: binary hypervector math (`HVec10240`) and similarity operations\n- `reservoir`: sparse chaotic Echo State Network mapping sequences to fixed-size hypervectors\n- `singularity`: graph-based concept storage, zero-allocation caching, and semantic search\n- `framework`: high-level async orchestration API, batching, and state management\n- `persistence`: durable storage via libSQL and connection pooling (native only)\n- `wasm`: JS-facing bindings for browser/runtime integration (wasm32 target only)\n- `encoder`: text and binary encoding utilities\n- `graph_traversal`: graph walk and reachability utilities\n- `metadata_filter`: metadata query and filtering\n- `bundle`: snapshot and bundle helpers\n- `cli`: `csm` command-line utility for database management and querying\n- `semantic_bridge`: Semantic Bridge Layer for concept expansion (ADR-0061)\n- `bridge_retrieval`: Bridge retrieval pipeline for zero-drift semantic search\n- `retrieval`: Hybrid BM25/HDC retrieval module (ADR-0062)\n\n## Semantic Bridge Layer (v0.3.0)\n\nZero-drift semantic expansion on top of deterministic HDC memory:\n- **CanonicalConcept**: Versioned concept with labels and related IDs\n- **ConceptGraph**: In-memory label index for token-to-concept matching\n- **BridgeRetrieval**: Pipeline: normalize → HDC recall → concept expansion → second recall\n- **MemoryPacket**: Compressed output for LLM context injection\n\n**Key principle**: Additive, non-destructive, never mutates canonical memory vectors.\n\n## Hybrid BM25+HDC Retrieval (v0.3.0)\n\nHybrid retrieval combines keyword (BM25) and semantic (HDC) search:\n- **BM25 parameters**: k1=1.2 (TF saturation), b=0.75 (doc length normalization)\n- **Query-length-dependent weights**:\n\n| Tokens | Keyword | Semantic |\n|--------|---------|----------|\n| 1-2    | 0.9     | 0.1      |\n| 3-4    | 0.7     | 0.3      |\n| 5-8    | 0.4     | 0.6      |\n| 9+     | 0.2     | 0.8      |\n\n## How Text Encoding Works (HDC Pipeline)\n\nThe built-in `TextEncoder` uses **Hyperdimensional Computing (HDC)** — a deterministic,\nhash-based encoding, **not** a learned neural network:\n\n```\n┌─────────────┐     ┌──────────────────┐     ┌──────────────────┐     ┌─────────┐\n│  \"hello     │     │ FNV-1a hash      │     │ Positional       │     │ Bundle  │\n│   world\"    │──▶ │ per token        │────▶│ permutation      │───▶│ majority│\n│             │     │ PRNG → HVec10240 │     │ (word order)     │     │ rule    │\n└─────────────┘     └──────────────────┘     └──────────────────┘     └─────────┘\n    Tokenize             Token→HVec              Position Encode         Final HV\n```\n\n**Pipeline steps:**\n\n1. **Tokenize**: Split on whitespace, lowercase (`hello world` → `[\"hello\", \"world\"]`)\n2. **Token → HVec**: FNV-1a hash → seed PRNG → generate random `HVec10240` per token\n3. **Positional encoding**: Permute each token vector by its position (order matters)\n4. **Bundle**: Majority-rule combination into a single `HVec10240`\n\n**Key properties:**\n- **Deterministic**: Same text always produces the same vector (FNV-1a is stable across Rust versions)\n- **Token-sensitive**: Similar tokens in similar positions → similar vectors\n- **NOT semantic**: Synonyms/paraphrases (\"cat\" vs \"kitten\") will NOT match\n- **Position-aware**: \"cat sat\" ≠ \"sat cat\" (order matters)\n\n### Recommended API\n\n```rust\n// HDC text encoding — good for lexical/keyword similarity\nframework.inject_text(\"doc-1\", \"reservoir computing overview\").await?;\nlet hits = framework.probe_text(\"reservoir computing\", 5).await?;\n\n// External embeddings — good for semantic similarity\nlet embedding: HVec10240 = my_model.encode(\"an overview of echo-state networks\");\nframework.inject_concept(\"doc-2\", embedding).await?;\n```\n\n**Use `inject_text`/`probe_text` for:**\n- Keyword search and exact-match recall\n- Document deduplication (same/similar text)\n- Indexing text where token overlap matters\n\n**Use external embeddings (`inject_concept`) for:**\n- Semantic search (synonyms, paraphrases)\n- Concept-level similarity across different wording\n- Cross-lingual matching\n\n### Turso Vector Alternative\n\nThis crate uses libSQL (local SQLite or remote Turso) for persistence. For\nsemantic similarity, you can add Turso's [native vector search](https://turso.tech/vector)\ntables alongside the crate's HDC storage using the same database:\n\n```rust\nuse libsql::Builder;\n\n// Connect to the same database this crate uses for persistence\nlet db = Builder::new_local(\"csm_memory.db\").build().await?;\nlet conn = db.connect()?;\n\n// Add semantic vector table alongside the crate's concepts table\nconn.execute_batch(\"\n    CREATE TABLE IF NOT EXISTS semantic_vectors (\n        id TEXT PRIMARY KEY,\n        embedding F32_BLOB(384)\n    );\n    CREATE INDEX IF NOT EXISTS semantic_idx ON semantic_vectors(\n        libsql_vector_idx(embedding, 'metric=cosine')\n    );\n\").await?;\n\n// Query with vector_top_k\nlet rows = conn.query(\n    \"SELECT id FROM vector_top_k('semantic_idx', vector(?), 10)\",\n    libsql::params![query_embedding_f32_as_string]\n).await?;\n```\n\nThis keeps HDC and semantic vectors in the **same database**: the crate manages\n`csm_concepts` and `csm_associations` tables (with `csm_` prefix for namespace isolation),\nwhile you manage `semantic_vectors` for float-vector similarity search. Both query the same libSQL/Turso instance.\n\n## CLI Usage\n\nThe `csm` binary provides command-line access:\n\n```bash\n# Inject a concept\ncsm inject my-concept --database csm_memory.db\n\n# Find similar concepts\ncsm probe my-concept -k 10 --database csm_memory.db\n\n# Create associations\ncsm associate source-concept target-concept --strength 0.8 --database csm_memory.db\n\n# Export memory state\ncsm export --output backup.json\n\n# Import memory state\ncsm import backup.json --merge\n\n# Generate shell completions\ncsm completions bash > ~/.local/share/bash-completion/completions/csm\n```\n\n### CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `inject` | Inject a new concept with a random or provided vector |\n| `probe` | Find similar concepts by concept ID |\n| `associate` | Create an association between two concepts |\n| `export` | Export memory state to JSON or binary |\n| `import` | Import memory state from file |\n| `version` | Show version information |\n| `completions` | Generate shell completions |\n\n## Quick Start\n\n```rust\nuse chaotic_semantic_memory::prelude::*;\n\n#[tokio::main]\nasync fn main() -> Result<()> {\n    let framework = ChaoticSemanticFramework::builder()\n        .without_persistence()\n        .build()\n        .await?;\n\n    let concept = ConceptBuilder::new(\"cat\".to_string()).build()?;\n    framework.inject_concept(\"cat\".to_string(), concept.vector.clone()).await?;\n\n    let hits = framework.probe(concept.vector.clone(), 5).await?;\n    println!(\"hits: {}\", hits.len());\n    Ok(())\n}\n```\n\nSee `examples/proof_of_concept.rs` for an end-to-end flow.\nSee `examples/basic_in_memory.rs` for the minimal in-memory workflow.\n\n## Configuration\n\n`ChaoticSemanticFramework::builder()` exposes runtime tuning knobs.\n\n| Parameter | Default | Valid Range | Effect |\n|---|---:|---|---|\n| `reservoir_size` | `50_000` | `> 0` | Reservoir capacity and memory footprint |\n| `reservoir_input_size` | `10_240` | `> 0` | Width of each sequence step |\n| `chaos_strength` | `0.1` | `0.0..=1.0` (recommended) | Noise amplitude in chaotic updates |\n| `enable_persistence` | `true` | boolean | Enables libSQL persistence setup |\n| `max_concepts` | `None` | optional positive | Evicts oldest concepts when reached |\n| `max_associations_per_concept` | `None` | optional positive | Keeps strongest associations only |\n| `connection_pool_size` | `10` | `>= 1` | Turso/libSQL remote pool size |\n| `max_probe_top_k` | `10_000` | `>= 1` | Input guard for `probe` and batch probes |\n| `max_metadata_bytes` | `None` | optional positive | Metadata payload size guard |\n| `concept_cache_size` | `128` | `>= 1` | Similarity query cache capacity (set via `with_concept_cache_size`, stored separately from `FrameworkConfig`) |\n\n### Tuning Guide\n\n- Small workloads: disable persistence and use `reservoir_size` around `10_240`.\n- Mid-sized workloads: keep defaults and set `max_concepts` to enforce memory ceilings.\n- Large workloads: keep persistence enabled, increase `connection_pool_size`, and tune `max_probe_top_k` to practical limits.\n\n## API Patterns\n\nIn-memory flow:\n\n```rust\nlet framework = ChaoticSemanticFramework::builder()\n    .without_persistence()\n    .build()\n    .await?;\n```\n\nPersistent flow:\n\n```rust\nlet framework = ChaoticSemanticFramework::builder()\n    .with_local_db(\"csm_memory.db\")\n    .build()\n    .await?;\n```\n\nBatch APIs for bulk workloads:\n\n```rust\nframework.inject_concepts(&concepts).await?;\nframework.associate_many(&edges).await?;\nlet hits = framework.probe_batch(&queries, 10).await?;\n```\n\nLoad semantics:\n\n- `load_replace()`: clear in-memory state, then load persisted data.\n- `load_merge()`: merge persisted state into current in-memory state.\n\n## WASM Build\n\n```bash\nrustup target add wasm32-unknown-unknown\ncargo check --target wasm32-unknown-unknown\n```\n\nNotes:\n- WASM threading-sensitive paths are guarded with `#[cfg(not(target_arch = \"wasm32\"))]`.\n- Persistence is intentionally unavailable on `wasm32` in this crate build.\n- WASM parity APIs include `processSequence`, `exportToBytes`, and `importFromBytes`.\n\n## Concurrency Model\n\nInternal state is protected by `tokio::sync::RwLock` — safe for concurrent\naccess from multiple Tokio tasks via `Arc<ChaoticSemanticFramework>`.\n\n### Multi-Instance Safety\n\nMultiple `ChaoticSemanticFramework` instances sharing the same database file\nare safe for concurrent operation:\n\n- **Reads** (`probe`, `get_concept`, `get_associations`, `stats`) acquire\n  `RwLock` read guards and can run fully concurrently across tasks and\n  framework instances.\n- **Writes** (`inject_concept`, `associate`, `delete_concept`) acquire write\n  guards in-process and are serialized at the database layer by SQLite's WAL\n  write lock. Two instances writing to the same database will queue on WAL\n  without data corruption.\n\n### SQLite WAL Mode\n\nLocal SQLite connections explicitly enable `PRAGMA journal_mode=WAL` during\ninitialization (`src/persistence.rs`). This provides:\n\n- Concurrent readers never block each other or a writer.\n- A single writer never blocks readers (readers see the last consistent snapshot).\n- Checkpoints via `PRAGMA wal_checkpoint(TRUNCATE)` merge WAL data back into\n  the main database file.\n\nRemote Turso connections delegate concurrency to the server and do not set\nWAL mode locally.\n\n### Lock Discipline\n\nWrite locks on `singularity` are held only for in-memory operations and are\nnever held across `.await` points (see [ADR-0040](plans/adr/0040-async-lock-safety.md)).\nPersistence I/O happens after the write lock is released, so concurrent probes\nare never blocked by database writes.\n\n### Scaling Characteristics\n\n| Operation | Complexity | Notes |\n|---|---|---|\n| `inject_concept` | O(1) amortized | HashMap insert + dense vector append |\n| `associate` | O(1) amortized | HashMap insert with optional eviction |\n `probe` (exact scan) | O(n) | Cosine similarity over all n concepts; parallelized via Rayon on native. Zero-copy caching: uses hashed keys and `Arc` to share cache results. |\n| `probe` (bucket candidates) | O(n / 2^w) | w-bit bucket width narrows candidate set before exact scoring |\n| `probe` (graph candidates) | O(f^d) | BFS from nearest neighbor at depth d, fanout f |\n\nThe default retrieval path is an **exact O(n) scan** over all stored concept\nvectors. For larger corpora, two-stage candidate generation can be enabled via\n`RetrievalConfig`:\n\n- **Bucket candidates**: Coarse hash-bucketing on the first w bits of the\n  hypervector narrows the candidate set before exact scoring.\n- **Graph candidates**: BFS expansion from the nearest-neighbor seed through\n  the association graph, bounded by depth and fanout.\n\nBoth reduce the scored subset from n to a smaller candidate set while\npreserving exact similarity semantics on the reranking pass.\n\n### ANN/LSH Deferred\n\nApproximate nearest-neighbor (ANN) or locality-sensitive hashing (LSH) indexing\nis **intentionally deferred** until benchmarks demonstrate latency regression\nbeyond the current threshold. As documented in\n[ADR-0056](plans/adr/0056-performance-follow-up-priorities.md), the trigger is\n**>200k concepts** with latency degradation. Current benchmarks show the exact\nscan completes in ~24ms at 200k concepts, well within acceptable bounds\n(see [ADR-0059](plans/adr/0059-retrieval-optimization.md) for retrieval\noptimization details and benchmark methodology).\n\n### Async Runtime\n\nThe framework is fully async. Do **not** wrap calls in `block_on` inside an\nexisting Tokio runtime — use `.await` directly or spawn a task. All public\nAPIs return `Result<T, MemoryError>` and use Tokio for I/O, with Rayon\ngated behind `#[cfg(not(target_arch = \"wasm32\"))]` for CPU parallelism.\n\n## Development Gates\n\n```bash\ncargo check --quiet\ncargo test --all-features --quiet\ncargo fmt --check --quiet\ncargo clippy --quiet -- -D warnings\n```\n\nLOC policy: each source file in `src/` and `crates/` must stay at or below 500 lines.\n\n### Additional Testing\n\n**Mutation Testing**:\n```bash\ncargo install cargo-mutants\nscripts/mutation_test.sh fast\n```\n\n**Fuzz Testing**:\n```bash\ncargo +nightly fuzz run hvec_from_bytes\n```\n\n### Real Usage Validation\n\n```bash\n# CLI workflow test (inject → probe → export → import)\ncsm inject doc-1 --database test.db\ncsm probe doc-1 -k 5 --database test.db\ncsm export -o backup.json --database test.db\ncsm import backup.json --merge --database test.db\n\n# Skill-memory integration test\n# Location: .agents/csm-memory/skill-memory.db\n# Verified: concept save/recall, db file creation\n```\n\n### Benchmark & Performance Gates\n\n```bash\ncargo bench --bench benchmark -- --save-baseline main\ncargo bench --bench benchmark -- --baseline main\ncargo bench --bench persistence_benchmark -- --save-baseline main\ncargo bench --bench persistence_benchmark -- --baseline main\n```\n\nPrimary perf gate: `reservoir_step_50k < 100us`.\n\n## License\n\n[MIT](LICENSE)\n\n## Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for:\n- Code style and linting requirements\n- Test and benchmark commands\n- Pull request process\n- ADR submission for architectural changes\n","readmeFilename":"README.md"}