{"_id":"@adhd/sox-vector-store","_rev":"20-5bed6225fd2cdc94d71bfa7081ed598f","name":"@adhd/sox-vector-store","dist-tags":{"latest":"0.7.5"},"versions":{"0.1.0":{"name":"@adhd/sox-vector-store","version":"0.1.0","license":"MIT","_id":"@adhd/sox-vector-store@0.1.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"1e0291fc1496394783adc4ed936fc616b5977769","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.1.0.tgz","fileCount":15,"integrity":"sha512-oAHI2awSqbZGMhRJNls6ayzQHvj1b322MIMMnwWrc9NHY2rycbXhycE7zso2o6WQGxajYqZL89T/npr+bkVz8w==","signatures":[{"sig":"MEUCIB1JTFDhmpXWL+QQcaJPwWLhJGJy5DCE2weCeR+3WphoAiEAzhAvufR61xTF74ex934PamrPGliFI0iU0bE7+kEsjx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72026},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/tmp/soxpub2/adhd-sox-vector-store-0.1.0.tgz","_integrity":"sha512-oAHI2awSqbZGMhRJNls6ayzQHvj1b322MIMMnwWrc9NHY2rycbXhycE7zso2o6WQGxajYqZL89T/npr+bkVz8w==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.1.0_1783616905996_0.5186993109805791","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adhd/sox-vector-store","version":"0.2.0","license":"MIT","_id":"@adhd/sox-vector-store@0.2.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"4886de9fe7443f85365452cbaed315fbb7a6d97a","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.2.0.tgz","fileCount":15,"integrity":"sha512-Ep8rbdadFOXCmzqSBxV8Uha8TdSs/3uFI7SIJe+4nFXFfbVnvK0ZEUHUrg2KPiFZ4Dqqy1cwE+zCDcGd7dPytg==","signatures":[{"sig":"MEQCIBZo1kZThf9Ass1hu++7QV6qTDvwgIW4+oBKbbbY+VPRAiAEtLU0twWr0uPAhyRjJOpqExHqFcnLMuFE6hWrHWCtrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74219},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/fdd46ba36a370f76d049caede81ba036/adhd-sox-vector-store-0.2.0.tgz","_integrity":"sha512-Ep8rbdadFOXCmzqSBxV8Uha8TdSs/3uFI7SIJe+4nFXFfbVnvK0ZEUHUrg2KPiFZ4Dqqy1cwE+zCDcGd7dPytg==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.2.0_1784829261140_0.9249509635929425","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@adhd/sox-vector-store","version":"0.3.0","license":"MIT","_id":"@adhd/sox-vector-store@0.3.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"13eb1b06615e52b551d35c5822948bed37b7cbe3","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.3.0.tgz","fileCount":15,"integrity":"sha512-fBPtMEu0eFyCD+Fpiuzqhdfaij1BM+LWUQT2EzyMQpfrS2PCvChHmo8A7YINY7UstKbqJ059UGCNZjdj7Kv03Q==","signatures":[{"sig":"MEQCIA9YHhLwS8mBC9IjrVaJhLHjrVq9qGjxGQtKgBOP8sm3AiBHTka7ijaXfVJOz9b6j+5kiYclgM1h3ECERkqeDxjJGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75376},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/b66efaf868009f02003a3907ccd39436/adhd-sox-vector-store-0.3.0.tgz","_integrity":"sha512-fBPtMEu0eFyCD+Fpiuzqhdfaij1BM+LWUQT2EzyMQpfrS2PCvChHmo8A7YINY7UstKbqJ059UGCNZjdj7Kv03Q==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.5.0","@adhd/sox-store-adapter":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.3.0_1785132659700_0.3953485443569804","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@adhd/sox-vector-store","version":"0.3.1","license":"MIT","_id":"@adhd/sox-vector-store@0.3.1","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"7d3299359588e098bf2fb28165fedc24054ea923","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.3.1.tgz","fileCount":15,"integrity":"sha512-KtGpkQsjEe/ejrf1gL6wDYbrHDTPCrnTc4K7JoQ7MKeXwbwDQDVtxLCt9rzguw4dl5UriBDNtTgAc9vcEyEbcA==","signatures":[{"sig":"MEUCIEZMM/03AL3UYJnFvsE0w0oxaDNuJj/DT77LFjNM33UEAiEA7aG97muSvg7uRf5wXl16fhKw/HSWqR3vdxATQLyIoH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80027},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.3.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/Users/nix/.adhd/sox-ecosystem/publish-verify-201412/adhd-sox-vector-store-0.3.1.tgz","_integrity":"sha512-KtGpkQsjEe/ejrf1gL6wDYbrHDTPCrnTc4K7JoQ7MKeXwbwDQDVtxLCt9rzguw4dl5UriBDNtTgAc9vcEyEbcA==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.5.1","@adhd/sox-store-adapter":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.3.1_1785892763814_0.7579352122675125","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@adhd/sox-vector-store","version":"0.3.2","license":"MIT","_id":"@adhd/sox-vector-store@0.3.2","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"19479a3ea388234a852c067000c9913769292b18","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.3.2.tgz","fileCount":15,"integrity":"sha512-qRf3X+CLmT2IX2IOhUGKx2WuTjyThRWioZGKU8GwncMYa0vBo6zqFZ4GPbNvuY1sENKxYIfvygVa2WzgkDvPXA==","signatures":[{"sig":"MEYCIQCBaewVmFbYM42k0oKcggay4rr7qOJbGxLXcMCvBENJsAIhAJwVYzHPSCneDiC79V0SzDpMDIThjcl7cZer0FoSsD90","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80027},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.3.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/Users/nix/.adhd/sox-ecosystem/publish-verify2-203027/adhd-sox-vector-store-0.3.2.tgz","_integrity":"sha512-qRf3X+CLmT2IX2IOhUGKx2WuTjyThRWioZGKU8GwncMYa0vBo6zqFZ4GPbNvuY1sENKxYIfvygVa2WzgkDvPXA==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.5.2","@adhd/sox-store-adapter":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.3.2_1785893488075_0.8331283913187932","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@adhd/sox-vector-store","version":"0.3.3","license":"MIT","_id":"@adhd/sox-vector-store@0.3.3","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"12626f67bedd5094156918d328ea7ffb5db712ed","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.3.3.tgz","fileCount":15,"integrity":"sha512-DDEAt8F9Zo5UzjHh+HxyKjwjGo/rrU04zycPJ5R4E304tLnMDxWSzfpZ9qffwTuueQ5DNVETO9OhQ4UbWQ4pPA==","signatures":[{"sig":"MEUCICMnOTGXr3OGKfQUHMhlfS3AGketcSB02EpJC+AwNI33AiEAzBnVd1uzH4uKdcdIAmU/7AyZIQVk2A3MBIhgJHOjGnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80027},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.3.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/Users/nix/.adhd/sox-ecosystem/pubv3-142121/adhd-sox-vector-store-0.3.3.tgz","_integrity":"sha512-DDEAt8F9Zo5UzjHh+HxyKjwjGo/rrU04zycPJ5R4E304tLnMDxWSzfpZ9qffwTuueQ5DNVETO9OhQ4UbWQ4pPA==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.5.3","@adhd/sox-store-adapter":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.3.3_1785957735738_0.9981604185596604","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@adhd/sox-vector-store","version":"0.4.0","license":"MIT","_id":"@adhd/sox-vector-store@0.4.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"56aa773619d6f91f9218e355fc826ca1f0ff3381","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.4.0.tgz","fileCount":15,"integrity":"sha512-bWqM5k/0LRTxLQ81p3qrLuODlZraxZkMagu+XhOsciVc3aKpF4Zst27fG350GVlYET4l1xkrwNjrA17Icfb84w==","signatures":[{"sig":"MEYCIQC7mvVnbOgKqmrxw4Sybdngr8VtjnK7aT1TTFvdQwlquQIhAOs7EpPNLGPtY9YWNKG8tLAZHjgwEbaNIrdrB2vJ5kZr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81654},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/af1c3abdae9b1dd277bee79063cb96ff/adhd-sox-vector-store-0.4.0.tgz","_integrity":"sha512-bWqM5k/0LRTxLQ81p3qrLuODlZraxZkMagu+XhOsciVc3aKpF4Zst27fG350GVlYET4l1xkrwNjrA17Icfb84w==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.6.0","@adhd/sox-store-adapter":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.4.0_1786144734298_0.0819067746887181","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@adhd/sox-vector-store","version":"0.4.2","license":"MIT","_id":"@adhd/sox-vector-store@0.4.2","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"a968dcd03ede4fa29d583efe2e3d0db18089c3aa","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.4.2.tgz","fileCount":15,"integrity":"sha512-qYept3bAlZ8u+aL1WaqZ37ExdBd9s/iJuam1r+SieRU4sHa5vHkmsOmKovbhe943oE88nMYSoYZ3lIHHRVjOCQ==","signatures":[{"sig":"MEQCIFQXF3ootdZ7EJWXbQ+lUKpPXATqZwB/qDGUMtSlrHOAAiA7MV0f3y4oXkBNqfbg4xDgX1SGyKNqRSQ1bqTfro9jTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81654},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.4.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/2eac5382b01dba188f438901d53e42b9/adhd-sox-vector-store-0.4.2.tgz","_integrity":"sha512-qYept3bAlZ8u+aL1WaqZ37ExdBd9s/iJuam1r+SieRU4sHa5vHkmsOmKovbhe943oE88nMYSoYZ3lIHHRVjOCQ==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.8.2","@adhd/sox-store-adapter":"0.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.4.2_1786494959997_0.7986614422371221","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@adhd/sox-vector-store","version":"0.4.3","license":"MIT","_id":"@adhd/sox-vector-store@0.4.3","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"92a295f21d955984c2fa4f622dfe4885061a0a54","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.4.3.tgz","fileCount":15,"integrity":"sha512-V1kG468fV0A3jtvkQL8RcRN/25MZGOFc3MbPIgBlR3XHyGb40jfW/qjx6fzApyjkkKbIav4D5M7HMs2ddv/KTw==","signatures":[{"sig":"MEYCIQDA6QGWmVXlakOWB7wW0Ung/hFXQLYMfez/JrQJtvAkBQIhAMrwaLC8a9JhSC1HYa4E9Z3gCq+E6RMWRZqW4X2L3L/H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81654},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.4.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/c4b8da156bb604458f25222f30b21615/adhd-sox-vector-store-0.4.3.tgz","_integrity":"sha512-V1kG468fV0A3jtvkQL8RcRN/25MZGOFc3MbPIgBlR3XHyGb40jfW/qjx6fzApyjkkKbIav4D5M7HMs2ddv/KTw==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"0.8.3","@adhd/sox-store-adapter":"0.5.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.4.3_1786506948745_0.5869452321002877","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@adhd/sox-vector-store","version":"0.4.5","license":"MIT","_id":"@adhd/sox-vector-store@0.4.5","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"0256a095f77b744166b5941bec8f0e63ba8f08ce","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.4.5.tgz","fileCount":15,"integrity":"sha512-vkRm271W/OZhkijjzz5ax9+b4pckHEbkhOlywq15NJtuKHWPcfZUxOjzZvgfWYYG7WLKGL+Ji+R9zvvS7FPaFA==","signatures":[{"sig":"MEUCIQD/AwJ0KiHPlNpCVmWhwAM66oHhVnIwdelzlsX06jyHcgIgYRyNC5Eo9B7qKE0XhAUb/K9qzDwkNz9SiM6Ca3s5Kbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81656},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.4.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/385555dad66d152bde8d1a9aa0d3c90f/adhd-sox-vector-store-0.4.5.tgz","_integrity":"sha512-vkRm271W/OZhkijjzz5ax9+b4pckHEbkhOlywq15NJtuKHWPcfZUxOjzZvgfWYYG7WLKGL+Ji+R9zvvS7FPaFA==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"^0.8.6","@adhd/sox-store-adapter":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.4.5_1787113044143_0.7571332528910764","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@adhd/sox-vector-store","version":"0.5.0","license":"MIT","_id":"@adhd/sox-vector-store@0.5.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"e0a5dd33cd5707c4622660be725e2e2ea24e9808","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.5.0.tgz","fileCount":19,"integrity":"sha512-TZSHy5kZQnmIHQcoT/vYAzFrDwyYbPT13QATh1uIok+ifdHYakhnLZx7kZYvqL9cLI6h4zWB5jGzpmI6gMzNgw==","signatures":[{"sig":"MEUCIQDcWUQv5LvjFzpVheh9Fdycb0tEVQTsoo//d44gUjcfTwIgH6ueDX8JA7bqifI72JsAMxiVDEXvAzht98NNsinCQjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113941},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/a01f3bb744cc65d30cb663e5e28f4843/adhd-sox-vector-store-0.5.0.tgz","_integrity":"sha512-TZSHy5kZQnmIHQcoT/vYAzFrDwyYbPT13QATh1uIok+ifdHYakhnLZx7kZYvqL9cLI6h4zWB5jGzpmI6gMzNgw==","_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-graph-store":"^0.8.6","@adhd/sox-store-adapter":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.5.0_1787786395629_0.7545244173767109","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@adhd/sox-vector-store","version":"0.6.0","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.6.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"a99e6a1607d469b9151d3ed80bdc231d36f2515c","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.6.0.tgz","fileCount":20,"integrity":"sha512-F3XYAO2VCrdWy5NWpmKH0K0FzhX5JqIyRhAruEau0pWWvPV/UQ7EZr9EQH+MIg/wATDRowVimwmvo5GMzhwVSA==","signatures":[{"sig":"MEUCIDctVkZea/kl2Ts0lHDydHyQKh7DoRprdHzsc99uFzLUAiEA90jALUrawROwEm7qVVINoU98iJaDDirvddcKHHQ619U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124776},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/41595040c8064b5d9fa408976e1f4c83/adhd-sox-vector-store-0.6.0.tgz","_integrity":"sha512-F3XYAO2VCrdWy5NWpmKH0K0FzhX5JqIyRhAruEau0pWWvPV/UQ7EZr9EQH+MIg/wATDRowVimwmvo5GMzhwVSA==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.6.0_1787933934892_0.2691563000177395","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@adhd/sox-vector-store","version":"0.6.1","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.6.1","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"eb1b33235b89d0cd17144da67ba18e105f45718a","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.6.1.tgz","fileCount":20,"integrity":"sha512-hDSKWs4rEVLypB16GJZ8P2IHRr8Ig3v27Gqjh8QZYMD67AqeFmh9TC/9REkZqr9vIo/YzfNHBS5Wb98B/399Zw==","signatures":[{"sig":"MEYCIQChNejR2kZWiyHzwFnS419fr4w9Xoo84rFgWSYKT/iLjwIhAPKT+KyQZU9W/5PUgTwo6FUkLs2SZIg4+7n9y3487q6V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDBBsaHXXNs+msXyp3rC4KVsdoythU+7vK2YX8raf8aZAIgbhz4Zro9pFCLg6eWcDUVpyOM6ZZvvsfVQuCWPqVTMww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133473},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.6.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/f92649c9ff4f9715e494cd8879792bc2/adhd-sox-vector-store-0.6.1.tgz","_integrity":"sha512-hDSKWs4rEVLypB16GJZ8P2IHRr8Ig3v27Gqjh8QZYMD67AqeFmh9TC/9REkZqr9vIo/YzfNHBS5Wb98B/399Zw==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.6.1_1788566579421_0.4791734810188861","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@adhd/sox-vector-store","version":"0.6.2","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.6.2","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"c450c4424f91b8ca4e808f978bbfd9d9cbc9ff48","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.6.2.tgz","fileCount":20,"integrity":"sha512-JgsLOkky6i1Kj0+r1uNqJtxjZdbFUrp3Rzg2RIu+VyT2cG77e6eQjGHVRGi4oEONY0FZm9+pn1fcmCy7mWGQAw==","signatures":[{"sig":"MEUCIDSYGmPko1bqYuy7RFO2aKJj73SgKm6ImWqpqnaNdyOHAiEA0AUETVnWCVLQDY7SsLzZNq+hZegyHglIeXHR5xbcPZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDQB61llmQ1EohIZHnJE/jdPtCD1TtbMrNqDEjK16SqHwIhAIGM/6Lfsv5saT09FR7RClvr76HQ3pOEGXv3+HIJG1oP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135234},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.6.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/54e4802f7231a913ea4dece9cfaceb9e/adhd-sox-vector-store-0.6.2.tgz","_integrity":"sha512-JgsLOkky6i1Kj0+r1uNqJtxjZdbFUrp3Rzg2RIu+VyT2cG77e6eQjGHVRGi4oEONY0FZm9+pn1fcmCy7mWGQAw==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.6.2_1790047991052_0.03055072594501862","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@adhd/sox-vector-store","version":"0.7.0","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.7.0","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"61930a2925b2e9b8ab1feefffb4104f9d8d12138","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.7.0.tgz","fileCount":20,"integrity":"sha512-viU+Si3EuK77ipnvHAxLnoI2SnBudXgfGk+5Uk2QNoiT9xfT6zyrdO9ihnCz98FWSQqY/WLVoZEieyoJ26dOUw==","signatures":[{"sig":"MEYCIQC8lNIida41lgaIpZybB7FM5AWJpHgLA82uHpITL9b5OAIhAIGlZZkxQqOchnr9dx23c9sfHzy93TlmGqpYKsSSbzAF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHpEL9qOmuz+RDEL6tC7gWEzSlEv9FQnEsTfbytrAScrAiAQWRf3LQOZ3GO117AeN8AjAYhy0A8BHFsA2sWsHWvzoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146738},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.7.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/a6b65e675c9a0ab060c889d8ba305af1/adhd-sox-vector-store-0.7.0.tgz","_integrity":"sha512-viU+Si3EuK77ipnvHAxLnoI2SnBudXgfGk+5Uk2QNoiT9xfT6zyrdO9ihnCz98FWSQqY/WLVoZEieyoJ26dOUw==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.7.0_1790088074259_0.570669260022725","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@adhd/sox-vector-store","version":"0.7.1","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.7.1","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch — on the write path via upsert/upsertVectors AND the query path via knn)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","knn() THROWS SpaceInvariantError when query.length !== space.dim ([def:space-invariant] — query-path parity with upsert; source 'knn', nodeId QUERY_VECTOR_NODE_ID)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"eb8b3e3aa2c223b46d6295264f4451fe3e3cc1ae","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.7.1.tgz","fileCount":20,"integrity":"sha512-Dk6Q2hWPO73bed4OFf9ZNDJDS9Esu3sV2pmTFZ6RKQv0WI9wyxza0s/G66VgxjS3xaOZt6f3y0kXy/tAAUP40Q==","signatures":[{"sig":"MEQCIAu9q5EZXHYc962Rph1KVc0hlZsvRT3+43Nxb/GRlfXOAiB851Oy+kb7FB65rl1pgxntPZ0TSkK8u7T8EUu0Mdq34Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZSlSK3e4FpwH6+KTUCZHYXMO0NAzZ/wcJ0W+RJ5trJwIgaB93lSXfLLHW4olcHGJyhnEVZHPBsxnanA5Vc3kWj6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152797},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.7.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/7135e28d879334fd7f2943b1d592b54b/adhd-sox-vector-store-0.7.1.tgz","_integrity":"sha512-Dk6Q2hWPO73bed4OFf9ZNDJDS9Esu3sV2pmTFZ6RKQv0WI9wyxza0s/G66VgxjS3xaOZt6f3y0kXy/tAAUP40Q==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.7.1_1790107729973_0.7212614373091857","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@adhd/sox-vector-store","version":"0.7.2","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.7.2","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch — on the write path via upsert/upsertVectors AND the query path via knn)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","knn() THROWS SpaceInvariantError when query.length !== space.dim ([def:space-invariant] — query-path parity with upsert; source 'knn', nodeId QUERY_VECTOR_NODE_ID)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"49c8cc2d61d3fff0ffa91d23ddc4dba184a9757d","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.7.2.tgz","fileCount":20,"integrity":"sha512-4K7ENQvdbt6Ye/bwjkL5gnnJwxR/gGy1Dn34DtpQWUqgHzgk4O8IL0CnVuVnwYSzsTG5+dz+VT4akjrOjc2S0Q==","signatures":[{"sig":"MEYCIQDndwFaDqCouAFl9tw6qUnWUzhZQc79/inWIZif5UWdFAIhALDIBd3EEk13aUKlzXIFpYf3Tm2jsnG3oirWSK4XbeY1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCzgMxYP/IMZAr8JOROKemrNqOBzXM4BdprKRPO3N78yAIgWQXHMt2LZA+0/TetRNhL+o0msnfnP+plq6muvnZ9txk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153092},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.7.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/041d10a346b300aa282c49bc2643863c/adhd-sox-vector-store-0.7.2.tgz","_integrity":"sha512-4K7ENQvdbt6Ye/bwjkL5gnnJwxR/gGy1Dn34DtpQWUqgHzgk4O8IL0CnVuVnwYSzsTG5+dz+VT4akjrOjc2S0Q==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.7.2_1790391164662_0.22069736938082163","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@adhd/sox-vector-store","version":"0.7.3","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.7.3","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch — on the write path via upsert/upsertVectors AND the query path via knn)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","knn() THROWS SpaceInvariantError when query.length !== space.dim ([def:space-invariant] — query-path parity with upsert; source 'knn', nodeId QUERY_VECTOR_NODE_ID)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"f240aeef5d97fb341a1fca6afa5e3ce6bf2d3e13","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.7.3.tgz","fileCount":20,"integrity":"sha512-ew0j8OCzIQvDB//HMwUgNLroWweLeoyeoXgIDmw/ctp0BeH15cwZEdu6LtaHqqmb27e1YvKlRNTwyDRy6wO9Mg==","signatures":[{"sig":"MEUCIQCBLw+IfwI4iNId/yyBz2eQVfePnXCrN0xi+lq9WcylKgIgKXpetEnbvVrGB6BLdcrFpHQ5ZOtX9o3DYd0fTEBvccs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC6x1y5atq77+kS2j6VNjAqspYcVjgupxZkG/G+LdgW/wIgDF7jYIOAu6zHUXm/JXdoop7BhBq/ZbINKyL6N+f3rWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153092},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.7.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/72747cc72358ebccdb8cb93ba814c658/adhd-sox-vector-store-0.7.3.tgz","_integrity":"sha512-ew0j8OCzIQvDB//HMwUgNLroWweLeoyeoXgIDmw/ctp0BeH15cwZEdu6LtaHqqmb27e1YvKlRNTwyDRy6wO9Mg==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.7.3_1790650302783_0.46157069834699316","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@adhd/sox-vector-store","version":"0.7.4","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"license":"MIT","_id":"@adhd/sox-vector-store@0.7.4","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"homepage":"https://github.com/PseudoSky/adhd","bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch — on the write path via upsert/upsertVectors AND the query path via knn)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","knn() THROWS SpaceInvariantError when query.length !== space.dim ([def:space-invariant] — query-path parity with upsert; source 'knn', nodeId QUERY_VECTOR_NODE_ID)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"dist":{"shasum":"e0460c692b2b749efdcce7b5e15fd4dabc26d067","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.7.4.tgz","fileCount":20,"integrity":"sha512-G1NcfPVp+IV5LMtTC2XCdxr5Nr5GyxHe38nIYnHAP75zPT2pMpS7xMTtNFZb2j7vllNoppSxPY0VejSfcoHvOQ==","signatures":[{"sig":"MEUCIQD5EaTrcyp5AnrA/QNwS2BZXsUu0cuIG9VzsQ/63Uce2AIgTBdtB51zvvsrBE9ohKxVcVwRFQwUIiDsccUwhAHB/mg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBVlwEWGim+ct9M4vdk/iGWKO8eMZcyyUQSqn6op3OcaAiBpzp470LCaGHWs5nS664PQBBpcbSZ813kjRJ59xDoZMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153092},"main":"./dist/index.js","type":"module","_from":"file:adhd-sox-vector-store-0.7.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/e064213ea83fad6bda494c26dd1c4ba9/adhd-sox-vector-store-0.7.4.tgz","_integrity":"sha512-G1NcfPVp+IV5LMtTC2XCdxr5Nr5GyxHe38nIYnHAP75zPT2pMpS7xMTtNFZb2j7vllNoppSxPY0VejSfcoHvOQ==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sox-vector-store_0.7.4_1790658689586_0.17155648336904816","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"_id":"@adhd/sox-vector-store@0.7.5","sox":{"area":"data","group":"vectors","concerns":["multi-space vec0 persistence (SqliteVectorBackend — one virtual table per VectorSpace)","multi-space on-disk LanceDB persistence (LanceDbVectorBackend — one real @lancedb/lancedb table per VectorSpace, plus a persisted _vector_spaces metadata table)","real HNSW (hnswSq) / IVF-PQ (ivfPq) ANN index construction from LanceDbVectorBackendConfig.index","worker_threads + synckit sync RPC bridge (lancedb-worker.ts) — makes the async @lancedb/lancedb client satisfy the synchronous VectorBackend interface","kNN/cosine search (VectorBackend.knn) — brute-force (sqlite-vec) or ANN-accelerated (LanceDB)","space invariant enforcement (SpaceInvariantError on dim mismatch — on the write path via upsert/upsertVectors AND the query path via knn)","per-record modelId provenance (VectorSpace.modelId)","corpus scan for clustering + reembed (iter)","reembed() — cross-space (and cross-backend) migration (walks old space, re-embeds, writes into target space)"],"invariants":["ensureSpace(space) MUST be called before the first upsert on any new (modelId, dim) pair — idempotent on existing spaces","upsert() THROWS SpaceInvariantError when vec.length !== space.dim ([def:space-invariant] — all implementations must enforce this)","knn() THROWS SpaceInvariantError when query.length !== space.dim ([def:space-invariant] — query-path parity with upsert; source 'knn', nodeId QUERY_VECTOR_NODE_ID)","a model switch is a re-embed migration (explicit reembed() call), never a hot-swap into the same vec0 table","reembed() does NOT delete source vectors — caller decides when the old space is safe to drop","delete(id, modelId) is scoped to a single space — does not delete the node from other spaces"],"entrypoints":["dist/index.js"]},"bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"dist":{"shasum":"883ad2799344290ee0b53a37c944a9864212fc40","tarball":"https://registry.npmjs.org/@adhd/sox-vector-store/-/sox-vector-store-0.7.5.tgz","fileCount":20,"integrity":"sha512-4J9k81kBq6AZA1B/6UAwY2Oy540jpfxO0mHhL5B7GqSzEQRVpaSJV17z+ddKJqo6sMsudVOBidHSMCGPrIYTgA==","signatures":[{"sig":"MEUCICnDxEaje7B/LTUx6ZV6+GCdbcS8aseQBXbaUCVw8p6zAiEAlUWKUVTCHJgIaz5z+Bph5PJpZwnknqQhQ/Wkv6GoFOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbcW2Y4QutF6KzmqeyAQ/ZZjPu3MSMBgjjA51BfQn6vwIgK7UUwpYDhPTYLXMTVtX9+ttmAa/vHxkqaJF6nltGLx0="}],"unpackedSize":153092},"main":"./dist/index.js","name":"@adhd/sox-vector-store","type":"module","_from":"file:adhd-sox-vector-store-0.7.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"MIT","private":false,"version":"0.7.5","_npmUser":{"name":"pseudosky","email":"skywinston.sk@gmail.com"},"homepage":"https://github.com/PseudoSky/adhd","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"_resolved":"/private/var/folders/yg/cfczgtx54bzfh74lx2_mv0z80000gp/T/ae045b9333463a49cc2f7c43103473f1/adhd-sox-vector-store-0.7.5.tgz","_integrity":"sha512-4J9k81kBq6AZA1B/6UAwY2Oy540jpfxO0mHhL5B7GqSzEQRVpaSJV17z+ddKJqo6sMsudVOBidHSMCGPrIYTgA==","repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","directories":{},"maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"_nodeVersion":"24.11.1","dependencies":{"synckit":"0.11.13","sqlite-vec":"^0.1.9","apache-arrow":"18.1.0","better-sqlite3":"^12.10.0","@lancedb/lancedb":"0.31.0","@adhd/sox-store-adapter":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sox-vector-store_0.7.5_1790727227485_0.6923472305486278"}}},"time":{"created":"2026-07-09T17:08:25.876Z","modified":"2026-09-30T00:13:47.743Z","0.1.0":"2026-07-09T17:08:26.173Z","0.2.0":"2026-07-23T17:54:21.275Z","0.3.0":"2026-07-27T06:10:59.851Z","0.3.1":"2026-08-05T01:19:23.973Z","0.3.2":"2026-08-05T01:31:28.258Z","0.3.3":"2026-08-05T19:22:15.924Z","0.4.0":"2026-08-07T23:18:54.443Z","0.4.2":"2026-08-12T00:36:00.176Z","0.4.3":"2026-08-12T03:55:48.910Z","0.4.5":"2026-08-19T04:17:24.335Z","0.5.0":"2026-08-26T23:19:55.777Z","0.6.0":"2026-08-28T16:18:55.046Z","0.6.1":"2026-09-05T00:02:59.838Z","0.6.2":"2026-09-22T03:33:11.143Z","0.7.0":"2026-09-22T14:41:14.352Z","0.7.1":"2026-09-22T20:08:50.071Z","0.7.2":"2026-09-26T02:52:44.770Z","0.7.3":"2026-09-29T02:51:42.868Z","0.7.4":"2026-09-29T05:11:29.705Z","0.7.5":"2026-09-30T00:13:47.572Z"},"bugs":{"url":"https://github.com/PseudoSky/adhd/issues"},"license":"MIT","homepage":"https://github.com/PseudoSky/adhd","keywords":["vector","store","embedding","sqlite-vec","lancedb","database","typescript"],"repository":{"url":"git+https://github.com/PseudoSky/adhd.git","type":"git"},"description":"Multi-space vector persistence with two real, swappable VectorBackend implementations: sqlite-vec (vec0, brute-force kNN, production default) and @lancedb/lancedb (on-disk tables + real HNSW/IVF-PQ ANN indexes, bridged to the synchronous interface via a w","maintainers":[{"name":"pseudosky","email":"skywinston.sk@gmail.com"}],"readme":"# @adhd/sox-vector-store\n\nMulti-space vector persistence: `ensureSpace({ modelId, dim })`, `upsert(id, vec, space)`, `knn(query, space, k)`.\nOne virtual table per `(modelId, dim)` pair (a \"space\"), so you can hold embeddings from several\nmodels side by side without them colliding, and `reembed()` migrates vectors from one space to\nanother when you switch models. Three real, swappable backends implement the same contract:\n\n- **`SqliteVectorBackend`** — [`sqlite-vec`](https://github.com/asg017/sqlite-vec)'s `vec0` virtual\n  table, brute-force cosine kNN, synchronous. The production default. Requires a `SqliteAdapter`.\n- **`TursoVectorBackend`** — native async vector columns (`F32_BLOB`) over your existing\n  [`@adhd/sox-store-adapter`](https://www.npmjs.com/package/@adhd/sox-store-adapter) `StoreAdapter`\n  connection. No second connection is opened — it reuses the adapter you pass it, so when that\n  adapter is Turso-backed, this backend inherits store-adapter's `multiprocess-wal` mode: multiple\n  OS processes can `upsert()`/`knn()` against the same store file concurrently, writes serialized\n  through store-adapter's `-tshm` coordinator. This is the path to reach for many worker\n  processes/CLI invocations embedding into and querying one shared vector store at once.\n- **`LanceDbVectorBackend`** — real [`@lancedb/lancedb`](https://lancedb.github.io/lancedb/) on-disk\n  tables with genuine HNSW / IVF-PQ ANN indexes (not brute-force), bridged to the synchronous\n  `VectorBackend` interface via a `worker_threads` + [`synckit`](https://github.com/un-ts/synckit)\n  RPC. Reach for this when brute-force cosine over `sqlite-vec` stops scaling and you need a real\n  ANN index; LanceDB manages its own on-disk concurrency, independent of `store-adapter`.\n\nEvery backend enforces the same invariant on both sides of the API: a vector whose length doesn't\nmatch the space's `dim` throws `SpaceInvariantError` before any I/O happens — `upsert()` on the\nwrite path, and `knn()` on the query path.\n\n```bash\npnpm add @adhd/sox-vector-store\n```\n\n## Quick start\n\n```typescript\nimport { openVectorStore } from '@adhd/sox-vector-store';\n\nconst store = openVectorStore('./data/vectors.db', { modelId: 'text-embedding-3-small', dim: 3 });\n\nstore.upsert(1, new Float32Array([1, 0, 0]), { modelId: 'text-embedding-3-small', dim: 3 });\nstore.upsert(2, new Float32Array([0, 1, 0]), { modelId: 'text-embedding-3-small', dim: 3 });\nstore.upsert(3, new Float32Array([0.9, 0.1, 0]), { modelId: 'text-embedding-3-small', dim: 3 });\n\nconst results = store.knn(\n  new Float32Array([1, 0, 0]),\n  { modelId: 'text-embedding-3-small', dim: 3 },\n  2, // top 2\n);\nconsole.log(results); // [{ id: 1, score: 1 }, { id: 3, score: ~0.994 }] — highest score first\n```\n\n## API reference\n\n### Shared types\n\n```typescript\ninterface VectorSpace {\n  modelId: string;\n  dim: number;\n}\n\ninterface VecFilter {\n  ids?: number[]; // restrict a knn()/iter() call to this id set\n}\n\ninterface VectorBackend {\n  ensureSpace(space: VectorSpace): void;\n  listSpaces(): VectorSpace[];\n  upsert(id: number, vec: Float32Array, space: VectorSpace): void;\n  upsertVectors(items: Array<{ id: number; vec: Float32Array }>, space: VectorSpace): void; // batch, transactional\n  delete(id: number, modelId: string): void;\n  get(id: number, modelId: string): Float32Array | null;\n  knn(query: Float32Array, space: VectorSpace, k: number, filter?: VecFilter): Array<{ id: number; score: number }>;\n  iter(modelId: string, opts?: { filter?: VecFilter }): Iterable<{ id: number; vec: Float32Array }>;\n  deleteMany(ids: number[], modelId: string): number; // returns count removed\n}\n\n// Additive capability interface — NOT part of the pinned VectorBackend contract.\n// Narrow to it (typeof backend.hasVectors === 'function') when you need a cheap\n// \"does this space hold any vectors?\" answer. Same shape on the async mirror\n// (AsyncVectorExistenceProbe), with Promise<boolean>.\ninterface VectorExistenceProbe {\n  hasVectors(modelId: string): boolean;\n}\n\nclass SpaceInvariantError extends Error {\n  constructor(nodeId: number, space: VectorSpace, actualDim: number, source?: 'upsert' | 'knn');\n  static forQuery(space: VectorSpace, actualDim: number): SpaceInvariantError;\n}\nclass StorageError extends Error {\n  constructor(message: string, cause?: Error);\n}\n```\n\n`SpaceInvariantError` is raised by **both** the write path (`upsert`/`upsertVectors`) and the query\npath (`knn`). `source` is `'upsert'` (default) or `'knn'`; on the `'knn'` path `nodeId` is the\nexported `QUERY_VECTOR_NODE_ID` sentinel (`-1`), because a query vector has no owning node. A\nwrong-dimension query is rejected before any driver call — never a raw SQL/LanceDB error.\n\n`score` from every backend's `knn()` is cosine **similarity** (higher is better, `1` = identical),\nnot distance — `TursoVectorBackend` converts its native `vector_distance_cos` distance internally so\nall three backends return directly-comparable scores.\n\n### Existence probe — `hasVectors` (use this, never `iter`, for a readiness check)\n\n`iter()` is a **full corpus scan** and is not lazy on every backend: `TursoVectorBackend.iter` is\nbacked by the adapter's `executeAll` (`db.all`), which materializes every row *including the full\nembedding BLOB* before its first yield. A \"does this space have anything?\" check built on\n`iter`-first-row therefore reads the entire vector table.\n\nAll three backends also expose `hasVectors(modelId)`, a bounded `SELECT 1 … LIMIT 1` existence\nprobe: it projects no `embedding` column (no blob read) and stops at the first row — O(1) in the\nsize of the space. An absent table (a space never `ensureSpace`d) is `false`, not an error.\n\n```typescript\n// Sync backends: SqliteVectorBackend / LanceDbVectorBackend\nbackend.hasVectors('text-embedding-3-small'); // boolean\n\n// Async backend: TursoVectorBackend\nawait backend.hasVectors('text-embedding-3-small'); // Promise<boolean>\n```\n\nIt lives on each concrete backend and on the additive `VectorExistenceProbe` /\n`AsyncVectorExistenceProbe` capability interfaces — deliberately **not** on the pinned\n`VectorBackend` / `AsyncVectorBackend` contracts, so widening is opt-in for a caller rather than\nmandatory for every implementor. A caller holding a `VectorBackend | AsyncVectorBackend` narrows\nfirst:\n\n```typescript\nimport type { AsyncVectorBackend, AsyncVectorExistenceProbe } from '@adhd/sox-vector-store';\n\nconst probe = backend as Partial<AsyncVectorExistenceProbe>;\nconst populated =\n  typeof probe.hasVectors === 'function'\n    ? await probe.hasVectors(modelId)\n    : false; // older backend without the primitive\n```\n\n### `SqliteVectorBackend` (default, synchronous)\n\n```typescript\nfunction openVectorStore(\n  adapterOrPath: string | StoreAdapter, // a bare path opens its own SqliteAdapter for you\n  opts: { dim: number; modelId: string },\n): SqliteVectorBackend;\n\nclass SqliteVectorBackend implements VectorBackend {\n  readonly capabilities: { vecEnabled: boolean };\n  constructor(adapter: StoreAdapter); // must be a SqliteAdapter — throws otherwise\n  // ...VectorBackend methods\n}\n```\n\n```typescript\nimport { createSqliteAdapter } from '@adhd/sox-store-adapter';\nimport { SqliteVectorBackend } from '@adhd/sox-vector-store';\n\n// Construct directly when you already own the adapter (e.g. sharing one\n// connection with other stores):\nconst adapter = createSqliteAdapter({ dbPath: './data/app.db' });\nconst backend = new SqliteVectorBackend(adapter);\nbackend.ensureSpace({ modelId: 'text-embedding-3-small', dim: 1536 });\n```\n\n### `TursoVectorBackend` (async, native, multiprocess-write-capable)\n\n```typescript\ninterface AsyncVectorBackend {\n  ensureSpace(space: VectorSpace): Promise<void>;\n  listSpaces(): Promise<VectorSpace[]>;\n  upsert(id: number, vec: Float32Array, space: VectorSpace): Promise<void>;\n  upsertVectors(items: Array<{ id: number; vec: Float32Array }>, space: VectorSpace): Promise<void>;\n  delete(id: number, modelId: string): Promise<void>;\n  get(id: number, modelId: string): Promise<Float32Array | null>;\n  knn(query: Float32Array, space: VectorSpace, k: number, filter?: VecFilter): Promise<Array<{ id: number; score: number }>>;\n  iter(modelId: string, opts?: { filter?: VecFilter }): AsyncIterable<{ id: number; vec: Float32Array }>;\n  deleteMany(ids: number[], modelId: string): Promise<number>;\n}\n\nclass TursoVectorBackend implements AsyncVectorBackend {\n  constructor(adapter: StoreAdapter); // reuses this exact connection — never opens a second one\n}\n\nfunction openTursoVectorStore(\n  adapter: StoreAdapter, // required — this backend has no \"give me a path\" shortcut\n  opts: { dim: number; modelId: string },\n): Promise<TursoVectorBackend>;\n```\n\n```typescript\nimport { createStoreAdapter } from '@adhd/sox-store-adapter';\nimport { openTursoVectorStore } from '@adhd/sox-vector-store';\n\n// createStoreAdapter defaults to Turso — multiprocess_wal is on by default,\n// so N processes can all call this against the same dbPath concurrently.\nconst adapter = await createStoreAdapter({ dbPath: './data/vectors.db' });\nconst store = await openTursoVectorStore(adapter, { modelId: 'text-embedding-3-small', dim: 1536 });\n\nawait store.upsert(1, new Float32Array(1536).fill(0.01), { modelId: 'text-embedding-3-small', dim: 1536 });\nconst results = await store.knn(\n  new Float32Array(1536).fill(0.01),\n  { modelId: 'text-embedding-3-small', dim: 1536 },\n  10,\n);\n```\n\n### `LanceDbVectorBackend` (real ANN index)\n\n```typescript\ninterface LanceDbVectorBackendConfig {\n  lancedbPath: string;\n  index?: {\n    type: 'hnsw' | 'ivf-pq';\n    M?: number;                 // hnsw: graph degree\n    efConstruction?: number;    // hnsw: build-time search width\n    numPartitions?: number;     // ivf-pq: IVF partition count\n    numSubVectors?: number;     // ivf-pq: PQ subvector count\n    bitsPerSubVector?: number;  // ivf-pq: PQ bits per subvector\n    metric?: 'cosine' | 'l2' | 'dot';\n  };\n}\n\nclass LanceDbVectorBackend implements VectorBackend {\n  constructor(config: LanceDbVectorBackendConfig & { adapter: StoreAdapter });\n}\n\nfunction openLanceDbVectorStore(\n  config: LanceDbVectorBackendConfig & { adapter: StoreAdapter },\n): LanceDbVectorBackend & VectorBackend;\n```\n\n```typescript\nimport { createSqliteAdapter } from '@adhd/sox-store-adapter';\nimport { openLanceDbVectorStore } from '@adhd/sox-vector-store';\n\nconst store = openLanceDbVectorStore({\n  lancedbPath: './data/lancedb',\n  adapter: createSqliteAdapter({ dbPath: ':memory:' }), // any StoreAdapter satisfies the constructor\n  index: { type: 'hnsw', M: 16, efConstruction: 100, metric: 'cosine' },\n});\n\nstore.ensureSpace({ modelId: 'text-embedding-3-small', dim: 1536 });\nstore.upsert(1, new Float32Array(1536).fill(0.01), { modelId: 'text-embedding-3-small', dim: 1536 });\n```\n\n### `reembed` — migrate between spaces (and backends)\n\n```typescript\ninterface ReembedOpts {\n  targetSpace: VectorSpace;\n  sourceModelId?: string;                    // default: the only other space present\n  dryRun?: boolean;\n  getText?: (id: number) => string | null;   // required unless dryRun\n}\ninterface ReembedResult {\n  migrated: number;\n  skipped: number;\n  errors: Array<{ id: number; error: string }>;\n}\n\nfunction reembed(\n  backend: VectorBackend,\n  provider: { metadata: { modelId: string; dimensions: number }; embedBatch(texts: string[], opts?: { role?: 'document' | 'query'; batchSize?: number }): AsyncIterable<Float32Array> },\n  opts: ReembedOpts,\n): Promise<ReembedResult>;\n```\n\n```typescript\nimport { reembed } from '@adhd/sox-vector-store';\n\n// Preview how many vectors would migrate, without writing anything.\nconst preview = await reembed(backend, embedder, {\n  targetSpace: { modelId: 'text-embedding-3-large', dim: 3072 },\n  dryRun: true,\n});\nconsole.log(`${preview.migrated} vectors would migrate`);\n\n// Real migration — re-embeds each source vector's text and upserts into the new space.\nconst result = await reembed(backend, embedder, {\n  targetSpace: { modelId: 'text-embedding-3-large', dim: 3072 },\n  getText: (id) => corpus.get(id) ?? null,\n});\nconsole.log(`migrated ${result.migrated}, skipped ${result.skipped}, ${result.errors.length} errors`);\n```\n\n`reembed()` never deletes the source space's vectors — decide separately when it's safe to drop them\n(e.g. after confirming `result.errors` is empty).\n\n## Choosing a backend\n\n| Backend | Sync/async | Index | Multiprocess writers | When |\n|---|---|---|---|---|\n| `SqliteVectorBackend` | sync | brute-force cosine | no (SQLite, single-writer) | default; small-to-medium corpora, embedded/local use |\n| `TursoVectorBackend` | async | native, index-accelerated cosine | **yes**, when the adapter is Turso-backed | many processes writing/querying one shared store |\n| `LanceDbVectorBackend` | sync (worker-bridged) | real HNSW / IVF-PQ ANN | LanceDB's own on-disk concurrency, not `store-adapter`'s | large corpora needing sub-linear kNN |\n\n## Invariants\n\n- `ensureSpace(space)` must be called before the first `upsert()` on any new `(modelId, dim)` pair —\n  idempotent on a space that already exists.\n- `upsert()`/`upsertVectors()` throw `SpaceInvariantError` when a vector's length doesn't match\n  `space.dim` — enforced before any write, on every backend.\n- `knn()` throws `SpaceInvariantError` when the query vector's length doesn't match `space.dim` —\n  enforced before any query, on every backend (`source: 'knn'`, `nodeId: QUERY_VECTOR_NODE_ID`).\n- Switching models is a `reembed()` migration, never a hot-swap of vectors into an existing table.\n- `delete(id, modelId)` / `deleteMany(ids, modelId)` are scoped to a single space — they do not touch\n  the same `id` in a different model's space.\n- `SqliteVectorBackend` requires a `SqliteAdapter` and throws if handed a Turso-backed adapter (the\n  reverse of `TursoVectorBackend`, which requires the async native path) — pick the backend that\n  matches your adapter, or use `LanceDbVectorBackend`, which accepts either.\n","readmeFilename":"README.md"}