{"_id":"@jeffs-brain/memory","_rev":"11-634e279d9ecee5db057a2694e77eae9d","name":"@jeffs-brain/memory","dist-tags":{"rc":"0.4.0-rc.4","latest":"1.1.0"},"versions":{"0.1.0":{"name":"@jeffs-brain/memory","version":"0.1.0","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.1.0","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"7969c2180ea7929c0998ee8036896573fb2ec693","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.1.0.tgz","fileCount":596,"integrity":"sha512-NjXWp0SQbP+/45KDwGyvlLc45GptpMtVg6wYYS8k+iIZ7spArdDt3oE1B6qEaWeJa/Bs1BZGJvBb7N4s71vOdg==","signatures":[{"sig":"MEUCIGqH+Ax+NHnji8PskYexVwbm5QXJGW0xhcSOmtCCMlzPAiEA1ruBnc91zv4+AkN8FBkIXtP9An6jLBabR/k9l8KkGn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jeffs-brain%2fmemory@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2628530},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./package.json":"./package.json"},"gitHead":"cac3eb077c879e97114ae9411f25b4d05aa4c6ef","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"lleverageaj","email":"devs@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"10.8.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","isomorphic-git":"^1.37.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.1.0_1776726679916_0.5706775309940006","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@jeffs-brain/memory","version":"0.2.0","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.2.0","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"626622d0cad73c53872e1c181d2323e45fc64d35","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.2.0.tgz","fileCount":609,"integrity":"sha512-rt19e6/DuNiOkF94kQb4kPoLFhxWuedLp/MZI8vBHnggUVOYKJm+00fjAO2fMDBc9GXh9yvSEYgP++4fiEeKHA==","signatures":[{"sig":"MEUCIQDUqQs7giqak5GG5rdK0g5oNjVhHHbO7+yf6TG2NWJuvQIgEd24wo8MDuWYf+5XbA7VpA+wzMpcfFluk4EFGjFhslk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jeffs-brain%2fmemory@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2727006},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./package.json":"./package.json"},"gitHead":"401816beac9bbb87884c2ce8b303e2c508c04988","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"lleverageaj","email":"devs@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"10.8.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","isomorphic-git":"^1.37.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.2.0_1776874835673_0.6543347220263509","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@jeffs-brain/memory","version":"0.3.0","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.3.0","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"9cd9733bf492691dfbdfe2a785232a039adc6eff","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.3.0.tgz","fileCount":633,"integrity":"sha512-S0bSsZdoZweZrZfXx+qRwH1Vo32THKPbznBHoizQutwB7umPQa3sMz5zxvL3S6ADwELGk4pAa2qpR8s/PuTEhw==","signatures":[{"sig":"MEUCIQDNxQbo6NF1/FoweBztLYQBMo56F0TuYKYbNAmLRfPYsgIgDxp+EoZLRg//Y9QsMY7XUWWTh9QZdT3obpRY5NQ7+8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jeffs-brain%2fmemory@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2807508},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./package.json":"./package.json"},"gitHead":"5ce76571e4a16487b48f46ed0b17b06fe4d0ded3","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"lleverageaj","email":"devs@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"10.8.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","isomorphic-git":"^1.37.5","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.3.0_1778575876598_0.5255536370076936","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.1":{"name":"@jeffs-brain/memory","version":"0.4.0-rc.1","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.4.0-rc.1","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"9b0c92f63f5b0b195305aaa7bc715823a85cbdd8","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.4.0-rc.1.tgz","fileCount":1008,"integrity":"sha512-grzmNPOYQXjfMvO5fuZdLWZvR3BHqFhjC4kI7IWy0ZxQLbDpRZF3MzOXKcx0BoKSYtoZPG3GEsLEFM1UdeQFxg==","signatures":[{"sig":"MEUCIH/7dD78JF7AMXprq7cTP1QzoOvI3dwykWemnNAXBUPoAiEAobFg1loLNZ74ByXqnVDie/Sl/d1xwG49FU4mOhF0+ZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4148921},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./ontology":{"types":"./dist/ontology/index.d.ts","import":"./dist/ontology/index.js"},"./connector":{"types":"./dist/connector/index.d.ts","import":"./dist/connector/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./ratelimit":{"types":"./dist/ratelimit/index.d.ts","import":"./dist/ratelimit/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./ingest/hooks":{"types":"./dist/ingest/hooks/index.d.ts","import":"./dist/ingest/hooks/index.js"},"./ingest/queue":{"types":"./dist/ingest/queue/index.d.ts","import":"./dist/ingest/queue/index.js"},"./package.json":"./package.json"},"gitHead":"780f424952cc1f60cafddde7f364925343bf111f","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"gsasu","email":"gabriel@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"11.6.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","@noble/hashes":"^2.2.0","isomorphic-git":"^1.37.5","snowball-stemmers":"^0.6.0","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@types/snowball-stemmers":"^0.6.2"},"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0-rc.1_1779456772880_0.10557817301761951","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@jeffs-brain/memory","version":"0.3.1","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.3.1","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"6b47afd85f9caa4e8232528fdf5e7f2a58dd9e75","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.3.1.tgz","fileCount":641,"integrity":"sha512-whltnBvzxUM61ks9uonTEpilE0AV2LbOR3YLCWVBME38UQktQUlcZxAKG71+QSTzDK+ro+RngPICvkL+IesJaA==","signatures":[{"sig":"MEQCIEeiWVUmAFprtFuUep5ICRBhqhKf/aIrxvML52ffENUTAiAl+IhZa3i2OJciVsTpTP51L66Ovc3W+8/E284KNY/zaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2841675},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./package.json":"./package.json"},"gitHead":"f8a1e80f7ed6e799b484a52b7e1b4da105931e56","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"lleverageaj","email":"devs@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"11.6.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","isomorphic-git":"^1.37.5","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.3.1_1779495822568_0.08197616399567997","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.2":{"name":"@jeffs-brain/memory","version":"0.4.0-rc.2","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.4.0-rc.2","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"65777eb343ed8ee266db73c8f8e4018dd9131459","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.4.0-rc.2.tgz","fileCount":1009,"integrity":"sha512-8C6AXfUYaRfJ5fN24h6dQQfsFBJqRtuwIrlcccsXIAPc9CftTqwuSKlniD9jabudVKaN3zLtXrgvdIrcgB0YJA==","signatures":[{"sig":"MEYCIQDy2AyRzZeEJiqxtoFvPAw/SiJhiofr/5UoYZExlIOQJgIhAJg3Ol6fWqhQ5O/M6zXUBnQ4IC988DAUshXVyiJ5Xum1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4167741},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./ontology":{"types":"./dist/ontology/index.d.ts","import":"./dist/ontology/index.js"},"./connector":{"types":"./dist/connector/index.d.ts","import":"./dist/connector/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./ratelimit":{"types":"./dist/ratelimit/index.d.ts","import":"./dist/ratelimit/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./ingest/hooks":{"types":"./dist/ingest/hooks/index.d.ts","import":"./dist/ingest/hooks/index.js"},"./ingest/queue":{"types":"./dist/ingest/queue/index.d.ts","import":"./dist/ingest/queue/index.js"},"./package.json":"./package.json"},"gitHead":"398b8a5f327a8ca66c1b107a6d8984dd43c10e80","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"gsasu","email":"gabriel@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"11.6.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","@noble/hashes":"^2.2.0","isomorphic-git":"^1.37.5","snowball-stemmers":"^0.6.0","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@types/snowball-stemmers":"^0.6.2"},"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0-rc.2_1779968595581_0.9775508794101273","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.3":{"name":"@jeffs-brain/memory","version":"0.4.0-rc.3","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.4.0-rc.3","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"4f8b5f11e29aa590f518fa860776f729a725a080","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.4.0-rc.3.tgz","fileCount":1013,"integrity":"sha512-9k3mokLS3mtCnk4aqDp4O9StUfEKXe6EC4U1+H3CPVPTI8fDZhigX3PVRh6V5LaqWITE5ivk95buGqb0swnmgQ==","signatures":[{"sig":"MEQCIFXgtd0i2/F1wPvlQQCYIbZw31x9RddPMidZQkNJVoxBAiAFRcdVa0SNjQPGt8t3LjJoCS2baCEaAterLRZYaZrkNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4181357},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./ontology":{"types":"./dist/ontology/index.d.ts","import":"./dist/ontology/index.js"},"./connector":{"types":"./dist/connector/index.d.ts","import":"./dist/connector/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./ratelimit":{"types":"./dist/ratelimit/index.d.ts","import":"./dist/ratelimit/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./ingest/hooks":{"types":"./dist/ingest/hooks/index.d.ts","import":"./dist/ingest/hooks/index.js"},"./ingest/queue":{"types":"./dist/ingest/queue/index.d.ts","import":"./dist/ingest/queue/index.js"},"./package.json":"./package.json"},"gitHead":"d99e0fbdcea0a714419dbc025b809335532831a9","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"gsasu","email":"gabriel@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"11.6.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","@noble/hashes":"^2.2.0","isomorphic-git":"^1.37.5","snowball-stemmers":"^0.6.0","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@types/snowball-stemmers":"^0.6.2"},"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0-rc.3_1780916661908_0.7166481586670082","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.4":{"name":"@jeffs-brain/memory","version":"0.4.0-rc.4","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@0.4.0-rc.4","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"ab06f0b00f93893e6e1eb587ac737835cefb6b2f","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-0.4.0-rc.4.tgz","fileCount":1017,"integrity":"sha512-OL2mkWnXIo3i1d8+TykS0VVP6mVmVjSEDLW63GcvCa29zbqBpBKmcP5WSZC0Sj2y8D2Wnt1UaZsLM22g3Q/eUg==","signatures":[{"sig":"MEYCIQDnHj5/V/pBormViQui9sVghzj+Pm1TIodx+ZR2IHC2bQIhAID/X6lK2xZw2T//NZiwCaZULGMyiWfbUdTQYT2uclP2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4213488},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./okf":{"types":"./dist/okf/index.d.ts","import":"./dist/okf/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./ontology":{"types":"./dist/ontology/index.d.ts","import":"./dist/ontology/index.js"},"./connector":{"types":"./dist/connector/index.d.ts","import":"./dist/connector/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./ratelimit":{"types":"./dist/ratelimit/index.d.ts","import":"./dist/ratelimit/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./ingest/hooks":{"types":"./dist/ingest/hooks/index.d.ts","import":"./dist/ingest/hooks/index.js"},"./ingest/queue":{"types":"./dist/ingest/queue/index.d.ts","import":"./dist/ingest/queue/index.js"},"./package.json":"./package.json"},"gitHead":"58e284d3f66d1dcb47f57efc243101937712af11","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"gsasu","email":"gabriel@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"11.6.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","@noble/hashes":"^2.2.0","isomorphic-git":"^1.37.5","snowball-stemmers":"^0.6.0","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@types/snowball-stemmers":"^0.6.2"},"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0-rc.4_1781707281364_0.34052018850698795","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@jeffs-brain/memory","version":"1.0.0","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","_id":"@jeffs-brain/memory@1.0.0","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"bin":{"memory":"dist/cli.js"},"dist":{"shasum":"419300386a9b86fc54edceefc03a8b75b129fa9e","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-1.0.0.tgz","fileCount":1016,"integrity":"sha512-ciOsuGJVsbSdESGZkp+u4Xe9xJFSxz15Bjao7UYMKckj7sJwMDhbKMmk3iUdxQ9qcBuORY4x3qtb22L+As+azA==","signatures":[{"sig":"MEUCIEu03B+yD6u+mGQPhsR6nzIUm187AKAqS7FmZRZjUproAiEA3Z21PsOMvqQdjf1bk8TY817rTpaMRNEr4RkWjcl+Vwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jeffs-brain%2fmemory@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4194868},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./acl":{"types":"./dist/acl/index.d.ts","import":"./dist/acl/index.js"},"./cli":{"types":"./dist/cli/index.d.ts","import":"./dist/cli/index.js"},"./llm":{"types":"./dist/llm/index.d.ts","import":"./dist/llm/index.js"},"./okf":{"types":"./dist/okf/index.d.ts","import":"./dist/okf/index.js"},"./sse":{"types":"./dist/sse.d.ts","import":"./dist/sse.js"},"./eval":{"types":"./dist/eval/index.d.ts","import":"./dist/eval/index.js"},"./query":{"types":"./dist/query/index.d.ts","import":"./dist/query/index.js"},"./store":{"types":"./dist/store/index.d.ts","import":"./dist/store/index.js"},"./ingest":{"types":"./dist/ingest/index.d.ts","import":"./dist/ingest/index.js"},"./memory":{"types":"./dist/memory/index.d.ts","import":"./dist/memory/index.js"},"./rerank":{"types":"./dist/rerank/index.d.ts","import":"./dist/rerank/index.js"},"./search":{"types":"./dist/search/index.d.ts","import":"./dist/search/index.js"},"./ontology":{"types":"./dist/ontology/index.d.ts","import":"./dist/ontology/index.js"},"./connector":{"types":"./dist/connector/index.d.ts","import":"./dist/connector/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./ratelimit":{"types":"./dist/ratelimit/index.d.ts","import":"./dist/ratelimit/index.js"},"./retrieval":{"types":"./dist/retrieval/index.d.ts","import":"./dist/retrieval/index.js"},"./conformance":{"types":"./dist/conformance/index.d.ts","import":"./dist/conformance/index.js"},"./ingest/hooks":{"types":"./dist/ingest/hooks/index.d.ts","import":"./dist/ingest/hooks/index.js"},"./ingest/queue":{"types":"./dist/ingest/queue/index.d.ts","import":"./dist/ingest/queue/index.js"},"./package.json":"./package.json"},"gitHead":"102d907ee9a520877206524dba12863a22c27e2f","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"lleverageaj","email":"devs@lleverage.ai"},"repository":{"url":"git+https://github.com/jeffs-brain/memory.git","type":"git","directory":"sdks/ts/memory"},"_npmVersion":"10.8.2","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"citty":"^0.1.6","sqlite-vec":"^0.1.9","@noble/hashes":"^2.2.0","isomorphic-git":"^1.37.5","snowball-stemmers":"^0.6.0","@stackone/defender":"^0.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/snowball-stemmers":"^0.6.2"},"optionalDependencies":{"pdf-parse":"^1.1.1","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/memory_1.0.0_1785923864338_0.8604487561594749","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@jeffs-brain/memory","version":"1.1.0","description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","license":"Apache-2.0","author":{"name":"Alex J","email":"alex@lleverage.ai"},"homepage":"https://github.com/jeffs-brain/memory#readme","bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"repository":{"type":"git","url":"git+https://github.com/jeffs-brain/memory.git","directory":"sdks/ts/memory"},"keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./conformance":{"import":"./dist/conformance/index.js","types":"./dist/conformance/index.d.ts"},"./store":{"import":"./dist/store/index.js","types":"./dist/store/index.d.ts"},"./sse":{"import":"./dist/sse.js","types":"./dist/sse.d.ts"},"./search":{"import":"./dist/search/index.js","types":"./dist/search/index.d.ts"},"./retrieval":{"import":"./dist/retrieval/index.js","types":"./dist/retrieval/index.d.ts"},"./memory":{"import":"./dist/memory/index.js","types":"./dist/memory/index.d.ts"},"./knowledge":{"import":"./dist/knowledge/index.js","types":"./dist/knowledge/index.d.ts"},"./ingest":{"import":"./dist/ingest/index.js","types":"./dist/ingest/index.d.ts"},"./ingest/hooks":{"import":"./dist/ingest/hooks/index.js","types":"./dist/ingest/hooks/index.d.ts"},"./ingest/queue":{"import":"./dist/ingest/queue/index.js","types":"./dist/ingest/queue/index.d.ts"},"./llm":{"import":"./dist/llm/index.js","types":"./dist/llm/index.d.ts"},"./acl":{"import":"./dist/acl/index.js","types":"./dist/acl/index.d.ts"},"./query":{"import":"./dist/query/index.js","types":"./dist/query/index.d.ts"},"./rerank":{"import":"./dist/rerank/index.js","types":"./dist/rerank/index.d.ts"},"./eval":{"import":"./dist/eval/index.js","types":"./dist/eval/index.d.ts"},"./cli":{"import":"./dist/cli/index.js","types":"./dist/cli/index.d.ts"},"./ratelimit":{"import":"./dist/ratelimit/index.js","types":"./dist/ratelimit/index.d.ts"},"./connector":{"import":"./dist/connector/index.js","types":"./dist/connector/index.d.ts"},"./ontology":{"import":"./dist/ontology/index.js","types":"./dist/ontology/index.d.ts"},"./okf":{"import":"./dist/okf/index.js","types":"./dist/okf/index.d.ts"},"./package.json":"./package.json"},"bin":{"memory":"dist/cli.js"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json && node ./scripts/copy-conformance-fixture.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run --passWithNoTests","prepublishOnly":"bun run typecheck && bun run test && bun run build"},"dependencies":{"@noble/hashes":"^2.2.0","@stackone/defender":"^0.6.3","citty":"^0.1.6","isomorphic-git":"^1.37.5","snowball-stemmers":"^0.6.0","sqlite-vec":"^0.1.9"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0","better-sqlite3":"^12.9.0","@types/better-sqlite3":"^7.6.13","pdf-parse":"^1.1.1"},"devDependencies":{"@types/snowball-stemmers":"^0.6.2"},"gitHead":"112e8022e65ea2d99643e2e2a116900b674a53d2","_id":"@jeffs-brain/memory@1.1.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-hgy9gS97alAyQLD2oRoTc0PlcibRvaIcuMFOnycHvb9yu3mg2UVxTj0FYsvnZWwUvEL7IbYagR5jStfZpGCqSw==","shasum":"fb6c45f7f478d1f04f39a4b68e08c6a2fc003d1c","tarball":"https://registry.npmjs.org/@jeffs-brain/memory/-/memory-1.1.0.tgz","fileCount":1017,"unpackedSize":4216257,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD0BuQyNwWTpw9b+8m4ZHyejfzr/eI2Lk2ST7jxEEi08gIgGWEsQU5wUiZaB/Ajn448vlV3xajdSoLkXoB+6vXlJpo="}]},"_npmUser":{"name":"lleverageaj","email":"devs@lleverage.ai"},"directories":{},"maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory_1.1.0_1787658403133_0.5890980922319962"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T23:11:19.760Z","modified":"2026-08-25T11:46:43.557Z","0.1.0":"2026-04-20T23:11:20.128Z","0.2.0":"2026-04-22T16:20:35.853Z","0.3.0":"2026-05-12T08:51:16.783Z","0.4.0-rc.1":"2026-05-22T13:32:53.072Z","0.3.1":"2026-05-23T00:23:42.799Z","0.4.0-rc.2":"2026-05-28T11:43:15.781Z","0.4.0-rc.3":"2026-06-08T11:04:22.108Z","0.4.0-rc.4":"2026-06-17T14:41:21.621Z","1.0.0":"2026-08-05T09:57:44.544Z","1.1.0":"2026-08-25T11:46:43.318Z"},"bugs":{"url":"https://github.com/jeffs-brain/memory/issues"},"author":{"name":"Alex J","email":"alex@lleverage.ai"},"license":"Apache-2.0","homepage":"https://github.com/jeffs-brain/memory#readme","keywords":["memory","llm","rag","retrieval","hybrid-search","bm25","vector-search","sqlite","mcp","ai-agent","ollama","openai","anthropic"],"repository":{"type":"git","url":"git+https://github.com/jeffs-brain/memory.git","directory":"sdks/ts/memory"},"description":"Local-first memory and hybrid retrieval library for LLM agents with pluggable stores, BM25 plus vector search, and a four-stage memory pipeline.","maintainers":[{"name":"lleverageaj","email":"devs@lleverage.ai"},{"name":"gsasu","email":"gabriel@lleverage.ai"}],"readme":"# @jeffs-brain/memory\n\nLocal-first, pluggable memory and retrieval library for LLM agents. Ships a `Store` abstraction over filesystem, Git, in-memory, and HTTP backends, hybrid BM25 plus pure-JS vector search, an extract, recall, reflect, and consolidate memory pipeline, RBAC plus an OpenFGA adapter, cross-encoder rerank, opt-in LLM query distillation, and a slim `memory` CLI that speaks the shared HTTP protocol. Runs entirely offline using an Ollama provider and the built-in hash embedder, or against OpenAI, Anthropic, or TEI when you want quality.\n\nPart of the polyglot [`jeffs-brain/memory`](https://github.com/jeffs-brain/memory) repo. This SDK tracks the same [`spec/`](https://github.com/jeffs-brain/memory/tree/main/spec) and conformance fixtures as the Go and Python SDKs.\n\nCross-SDK daemon parity today is `ask-basic`, `ask-augmented`, and `search-retrieve-only` through `memory serve`. This package also ships native `memory eval lme` commands for single-SDK LongMemEval work, but the replay-backed tri-SDK benchmark is still coordinated from Go rather than from the TypeScript runner.\n\nIn the shared runner, `--mode auto` is the default, and the daemon resolves that to `hybrid` when embeddings are configured or `bm25` otherwise.\n\n## Install\n\n```bash\nnpm i @jeffs-brain/memory\n# or\nbun add @jeffs-brain/memory\n```\n\nThe published `memory` binary runs on Node 20+ (its shebang is `#!/usr/bin/env node`). Bun is the preferred local development runtime for this package, but it is not required at install or runtime for end users.\n\n## Feature support\n\n- Stores: `FsStore`, `MemStore`, `GitStore`, `HttpStore` (spec/PROTOCOL.md wire client).\n- Search: SQLite FTS5 BM25, pure-JS vector search, Reciprocal Rank Fusion (`k=60`).\n- Query DSL: tokenisation, stopword filtering (en and nl), alias expansion, FTS5 compilation.\n- Retrieval: hybrid BM25 + vector, five-rung retry ladder, intent reweight, cross-encoder rerank, opt-in query distill.\n- Memory stages: extract, reflect, consolidate, recall, session buffers, episode recorder.\n- Knowledge: markdown chunker, URL/file/PDF ingest, wikilinks, compile passes.\n- SSE utilities: framework-agnostic frame formatting and heartbeat helpers via `@jeffs-brain/memory/sse`.\n- Authorisation: pluggable `AccessControlProvider` contract (`@jeffs-brain/memory/acl`), in-process RBAC (workspace -> brain -> collection -> document hierarchy, `admin`/`writer`/`reader` roles, `deny:<role>` overrides), `withAccessControl(store, provider, subject, ...)` Store wrapper, optional `close()` lifecycle hook. Pair with [`@jeffs-brain/memory-openfga`](https://www.npmjs.com/package/@jeffs-brain/memory-openfga) for production tuple-store backed checks.\n- Conformance: 28/29 cases green against `spec/conformance/http-contract.json`.\n- Cross-SDK daemon scenarios: `ask-basic`, `ask-augmented`, `search-retrieve-only`.\n- CLI: `memory init|ingest|search|extract|reflect|consolidate|eval|serve|acl|git`.\n\n## SSE utilities\n\n```ts\nimport { createSseHeartbeat, formatSseFrame } from '@jeffs-brain/memory/sse'\n\nconst write = (chunk: string): void => {\n  response.write(chunk)\n}\n\nlet nextEventId = 1\n\nwrite(\n  formatSseFrame({\n    event: 'change',\n    id: String(nextEventId++),\n    data: JSON.stringify({ kind: 'updated', path: 'memory/notes.md' }),\n  }),\n)\n\nconst stopHeartbeat = createSseHeartbeat(25_000, () => {\n  write(\n    formatSseFrame({\n      event: 'ping',\n      id: String(nextEventId++),\n      data: 'keepalive',\n    }),\n  )\n})\n\nrequest.on('close', stopHeartbeat)\n```\n\nThese helpers expose the framing layer separately from the built-in `Response`-based daemon transport, so Express, Fastify, Hono, or plain Node handlers can emit SSE frames without reimplementing the wire format. They format `event`, `id`, and `data` lines for you, while protocol-specific sequencing such as the daemon's monotonic `/events` ids stays under the caller's control.\n\n## Conformance runner\n\n```ts\nimport { runConformanceSuite } from '@jeffs-brain/memory/conformance'\n\nconst result = await runConformanceSuite({\n  baseUrl: 'http://127.0.0.1:18844/v1',\n  authToken: process.env.JB_AUTH_TOKEN,\n})\n\nif (result.failed > 0) {\n  throw new Error(\n    result.cases\n      .filter((testCase) => !testCase.ok)\n      .map((testCase) => `${testCase.name}: ${testCase.error}`)\n      .join('\\n'),\n  )\n}\n```\n\nThe runner packages the shared `spec/conformance/http-contract.json` fixture, provisions an isolated brain per case, replays the full HTTP store contract, and deletes every test brain afterwards.\n\n## Embedded usage\n\n```ts\nimport { createMemStore, createMemory, createHashEmbedder } from '@jeffs-brain/memory'\n\nconst store = createMemStore()\nconst embedder = createHashEmbedder()\nconst mem = createMemory({ store, provider, embedder, cursorStore, scope: 'project', actorId: 'me' })\n\nawait mem.extract({ messages })\nconst hits = await mem.recall({ query: 'what did we decide about auth?' })\nconsole.log(hits)\n```\n\nSwap `createHashEmbedder()` for `OllamaEmbedder` or `TEIEmbedder` when you need real retrieval quality. The hash embedder is deterministic, zero-network, and intended for dev and CI only.\n\nFor a single orchestration surface covering pre-turn, post-turn, and session-end work:\n\n```ts\nimport { createMemoryLifecycle } from '@jeffs-brain/memory'\n\nconst lifecycle = createMemoryLifecycle({ memory: mem })\nconst promptContext = await lifecycle.beforeTurn({ message: 'How should we handle auth?' })\nconst extracted = await lifecycle.afterTurn({ messages, sessionId: 'session-1' })\nconst ended = await lifecycle.endSession({ messages, sessionId: 'session-1', consolidate: true })\n```\n\n## CLI quickstart\n\n```bash\nmemory init ./brain\nmemory ingest notes/meeting.md --brain ./brain\nmemory search \"which database did we pick?\" --brain ./brain\nmemory serve --addr 127.0.0.1:18844\n```\n\n`--brain` is optional once `JB_BRAIN` is exported. `memory serve` honours `JB_HOME` for its multi-brain root.\n\n`memory serve` speaks the wire protocol documented at [`spec/PROTOCOL.md`](https://github.com/jeffs-brain/memory/blob/main/spec/PROTOCOL.md) so any language SDK or the cross-SDK eval runner can drive `ask-basic`, `ask-augmented`, and `search-retrieve-only` identically.\n\nNative LME status today:\n\n- TypeScript ships native `memory eval lme` commands for fetch, run, compare, and check.\n- The replay-backed tri-SDK retrieve-only workflow still runs from `eval/scripts/run_tri_lme.sh`, which extracts once with Go and then targets the TS daemon in `search-retrieve-only` / `actor-endpoint-style=retrieve-only` mode.\n- In that tri-SDK flow the TS daemon returns retrieval payloads via `/search`; the shared augmented reader, judge, and manifests stay in Go.\n\n## Scenario verification\n\nShared daemon scenarios verified in this SDK:\n\n| Scenario | Request shape | Main local checks |\n| -------- | ------------- | ----------------- |\n| `ask-basic` | `POST /ask` with `question`, `topK`, `mode` | `src/http/handlers.test.ts` and `src/http/daemon.test.ts` |\n| `ask-augmented` | `POST /ask` with `question`, `topK`, `mode`, `readerMode=augmented`, optional `questionDate` | `src/http/handlers.test.ts` and `src/http/daemon.test.ts` |\n| `search-retrieve-only` | `POST /search` with `query`, `topK`, `mode`, optional `questionDate`, `candidateK`, and `rerankTopN` | `src/http/daemon.test.ts` |\n\nParity expectation is the same scenario request shape, transport shape, retrieval-mode handling, and temporal semantics as the Go and Python daemons. It is not byte-identical model wording.\n\nHow we test it:\n\n- `ask-basic` and `ask-augmented` are SSE answer scenarios. We verify `retrieve`, `answer_delta`, `citation`, and `done`.\n- `search-retrieve-only` is a JSON retrieval scenario. We score the returned chunks only.\n- `questionDate` is forwarded only for `ask-augmented` and `search-retrieve-only`.\n- `candidateK` and `rerankTopN` are forwarded only for `search-retrieve-only`.\n- `mode` is forwarded unchanged. The daemon resolves `auto` locally.\n- The replay-backed tri-SDK run in `eval/scripts/run_tri_lme.sh` exercises `search-retrieve-only` only against a shared replay brain. TypeScript participates there as a daemon target, not as the shared reader or judge.\n\nRun the shared daemon scenario checks with:\n\n```bash\ncd sdks/ts/memory\nbun x vitest run src/http/handlers.test.ts src/http/daemon.test.ts\n```\n\nTo compare TypeScript against the other SDKs on one shared scenario, use the runner in `eval/`:\n\n```bash\ncd eval\nuv run python runner.py --sdk ts --dataset datasets/smoke.jsonl --scorer exact --scenario search-retrieve-only --mode bm25 --brain eval --seed-reference-brain --output results/smoke-search\nOPENAI_API_KEY=sk-... uv run python runner.py --sdk ts --dataset datasets/lme.jsonl --scorer judge --scenario ask-augmented --brain eval --output results/ask-augmented\nOPENAI_API_KEY=sk-... uv run python runner.py --sdk ts --dataset datasets/lme.jsonl --scorer judge --scenario search-retrieve-only --brain eval --output results/search-retrieve-only\n```\n\nUse one output root per scenario so same-day runs do not overwrite `<output>/<date>/ts.json`. For the full three-way comparison flow, see [`eval/README.md`](../../../eval/README.md).\n\nFor native TypeScript-only LongMemEval work, use the local `memory eval lme` commands. For apples-to-apples tri-SDK replay parity, use the Go-orchestrated workflow in [`../../../eval/scripts/run_tri_lme.sh`](../../../eval/scripts/run_tri_lme.sh).\n\n## MCP server\n\nTo expose a brain to Claude Code, Claude Desktop, Cursor, Windsurf, or Zed, install [`@jeffs-brain/memory-mcp`](https://www.npmjs.com/package/@jeffs-brain/memory-mcp) (stdio server, 11 canonical tools). The [`@jeffs-brain/install`](https://www.npmjs.com/package/@jeffs-brain/install) orchestrator wires every host in one command:\n\n```bash\nnpx @jeffs-brain/install\n```\n\n## Documentation\n\n- TypeScript getting started: https://docs.jeffsbrain.com/getting-started/typescript/\n- Memory lifecycle guide: https://docs.jeffsbrain.com/guides/memory-lifecycle/\n- Retrieval guide: https://docs.jeffsbrain.com/guides/retrieval/\n- Stores guide: https://docs.jeffsbrain.com/guides/stores/\n- Authorisation guide: https://docs.jeffsbrain.com/guides/authorization/\n- [`examples/ts/hello-world`](https://github.com/jeffs-brain/memory/tree/main/examples/ts/hello-world) - BM25 search over a markdown corpus.\n- [`spec/`](https://github.com/jeffs-brain/memory/tree/main/spec) - protocol, storage, algorithms, query DSL, MCP tool contract.\n\n## Companion packages\n\n- `@jeffs-brain/memory-postgres` - Postgres + pgvector adapter.\n- `@jeffs-brain/memory-openfga` - OpenFGA authorisation adapter.\n- `@jeffs-brain/memory-mcp` - Model Context Protocol stdio server.\n- `@jeffs-brain/install` - multi-agent installer.\n\n## License\n\nApache-2.0. See [`LICENSE`](./LICENSE) and [`NOTICE`](./NOTICE).\n","readmeFilename":"README.md"}