{"_id":"@1mbrain/benchmarks","_rev":"4-7ff627ec345e5e8bdff18c4c7aa198ad","name":"@1mbrain/benchmarks","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.1":{"name":"@1mbrain/benchmarks","version":"0.1.1","license":"MIT","_id":"@1mbrain/benchmarks@0.1.1","maintainers":[{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"}],"dist":{"shasum":"4b4895c9edd9c4b1ed49442344f454506e1bb8c2","tarball":"https://registry.npmjs.org/@1mbrain/benchmarks/-/benchmarks-0.1.1.tgz","fileCount":69,"integrity":"sha512-XIEE22jhfLjBm363lOgRea37/i4nZMn+HREWwZJsuSdubiXAS5zP+RebEhkubYu3ijh1akrKuGvY72fh6ITDoA==","signatures":[{"sig":"MEYCIQCXTxB1fMdFZjgWKARwWBFOAWmn1k5x6dr3kAZVsWufagIhAOX68bRUIVqqJ58/L0GQrLAr4CYnMAkZUPNmKNrbUEX9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1530735},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","scripts":{"bench":"tsx src/runner.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"},"_npmVersion":"11.8.0","description":"Provider-level benchmarks for 1MBrain and comparable memory providers.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"mem0ai":"^3.0.9","@1mbrain/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/benchmarks_0.1.1_1782036226375_0.586181477071128","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@1mbrain/benchmarks","version":"0.1.2","license":"MIT","_id":"@1mbrain/benchmarks@0.1.2","maintainers":[{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"}],"dist":{"shasum":"62c4232f3d3a78352b1f3413f3b5dd8564fb4a35","tarball":"https://registry.npmjs.org/@1mbrain/benchmarks/-/benchmarks-0.1.2.tgz","fileCount":68,"integrity":"sha512-TevTogPId3w2OjrXFYM5ZrsrEqqAcdFKlWhZm2U5HRv2F7I+rWRtmwaznq46DXIQj81/Dpx+XzZWh0JhY7OyzA==","signatures":[{"sig":"MEYCIQD+EMdt4EZC/klF/6EpSedb3V4ubYYJMSanq8MvVnfoCAIhAMhlZ+k5xu5NX1WiOJsh0anMCIyUkiTz8ef3bOA/GbbF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1472086},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"c043bba29edd78da7d0da4062a752584affbca67","scripts":{"bench":"tsx src/runner.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"},"_npmVersion":"11.8.0","description":"Provider-level benchmarks for 1MBrain and comparable memory providers.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"mem0ai":"^3.0.9","@1mbrain/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/benchmarks_0.1.2_1782202447086_0.5379603868294534","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@1mbrain/benchmarks","version":"0.1.3","license":"MIT","_id":"@1mbrain/benchmarks@0.1.3","maintainers":[{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"}],"dist":{"shasum":"38ea4dc247be365a952f0662082e01dd95307fa9","tarball":"https://registry.npmjs.org/@1mbrain/benchmarks/-/benchmarks-0.1.3.tgz","fileCount":68,"integrity":"sha512-EudMADOf5HO4VGNVYXPvjDIx9ITn3/9g2dyRHPxO0K4Dxln/zlsxr7zOeg12Jrq2NukBbTko39y2IgR6tSw8VQ==","signatures":[{"sig":"MEUCIHWL61mQSEftZHZ9xYuvYxsKUYDtz0VIii2gpglO5OrcAiEAivmt+NLmm3R2UVLz/4d9GrIXYQ2XzAwsrsxbiKORr4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1472108},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"1dcb4a89358b63f577e3d7f5b22f13de933c0206","scripts":{"bench":"tsx src/runner.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"},"_npmVersion":"11.8.0","description":"Provider-level benchmarks for 1MBrain and comparable memory providers.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"mem0ai":"^3.0.9","@1mbrain/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/benchmarks_0.1.3_1782274986058_0.1969058930404024","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@1mbrain/benchmarks","version":"0.1.4","description":"Provider-level benchmarks for 1MBrain and comparable memory providers.","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"bench":"tsx src/runner.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit"},"dependencies":{"@1mbrain/core":"*","mem0ai":"^3.0.9"},"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0"},"gitHead":"a06124b9feb95b1e137080455c414a2fe318863e","_id":"@1mbrain/benchmarks@0.1.4","_nodeVersion":"22.17.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-9zD/qtQYqt4+UDRxPH67C6Lb+H68eoCfZMMdr2Z9vaRIFaLiY0hn4PvflT7f2Wa3nGyyUgZtYTWB48dmoslmgg==","shasum":"a5daf5e2fd774ac64d1601b9b2bcad06a9806f04","tarball":"https://registry.npmjs.org/@1mbrain/benchmarks/-/benchmarks-0.1.4.tgz","fileCount":68,"unpackedSize":1472108,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIATvomgABrsGg+dbV/L5cOC1my50HO1EdDWy5XxTrbBXAiB7ryBYkkEe5Mc5xARiIjOLD9Mln8Ad6aU7XImOii9xvw=="}]},"_npmUser":{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"},"directories":{},"maintainers":[{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/benchmarks_0.1.4_1782488385710_0.18321655908310297"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T10:03:46.140Z","modified":"2026-06-26T15:39:46.030Z","0.1.1":"2026-06-21T10:03:46.592Z","0.1.2":"2026-06-23T08:14:07.277Z","0.1.3":"2026-06-24T04:23:06.224Z","0.1.4":"2026-06-26T15:39:45.924Z"},"license":"MIT","description":"Provider-level benchmarks for 1MBrain and comparable memory providers.","maintainers":[{"name":"mrizkiiy","email":"mrizkiiy@gmail.com"}],"readme":"# 1MBrain Provider Benchmarks\n\nProvider-level benchmarks compare memory engines without involving an LLM agent.\nHermes or other agents should be tested later as an end-to-end validation layer.\n\n## Run\n\n```bash\nnpm run build --workspace=packages/core\nnpm run bench --workspace=packages/benchmarks\n```\n\n## Focused Mini Dataset\n\nA small GitHub-friendly fixture is available at\n`packages/benchmarks/fixtures/1mbrain-focused-mini/1mbrain-focused-mini.json`.\nIt contains 5 directed conversations, 41 memory records, and 23 questions that\ntarget 1MBrain-specific behavior without requiring an LLM judge.\n\nOptional dataset scales:\n\n```bash\nBENCH_SCALES=1,10,100 npm run bench --workspace=packages/benchmarks\n```\n\nOptional provider filter:\n\n```bash\nBENCH_PROVIDERS=1mbrain-sqlite-vector-bulk,1mbrain-sqlite-graph-bulk,qdrant-vector npm run bench --workspace=packages/benchmarks\n```\n\nEach scale adds 50 noise memories plus the fixed ground-truth memories.\n\n## Current Providers\n\n- `1mbrain-sqlite-vector`: SQLite storage with vector-only recall.\n- `1mbrain-sqlite-graph`: SQLite storage with spreading activation enabled.\n- `1mbrain-sqlite-vector-bulk`: SQLite vector recall after direct bulk load, bypassing\n  `remember()` auto-association.\n- `1mbrain-sqlite-graph-bulk`: SQLite graph recall after direct bulk load plus explicit\n  dataset associations only.\n- `qdrant-vector`: Qdrant vector recall, enabled only when `QDRANT_URL` is set.\n\n## Qdrant Local Benchmark\n\nStart Qdrant with Docker Compose:\n\n```bash\ndocker compose --profile qdrant up -d qdrant\n```\n\nThen run:\n\n```bash\nQDRANT_URL=http://localhost:6333 npm run bench --workspace=packages/benchmarks\n```\n\nOptional:\n\n```bash\nQDRANT_COLLECTION=one_million_brain_bench\nQDRANT_API_KEY=...\n```\n\nIf `QDRANT_URL` is not set or unreachable, the Qdrant provider is skipped and local\n1MBrain providers still run.\n\n## Metrics\n\n- `recallAt5`, `recallAt10`: fraction of expected memories retrieved in top K.\n- `mrrAt10`: reciprocal rank of the first correct hit.\n- `ndcgAt10`: rank-sensitive quality score for all expected hits.\n- `p50Ms`, `p95Ms`: recall latency percentiles.\n- `setupMs`: dataset load and association creation time.\n\nResults are written to `packages/benchmarks/results/*.json` and `*.csv`.\n\n## Interpreting Setup Modes\n\nThe non-bulk 1MBrain providers use `MemoryEngine.remember()`, which includes embedding,\nevent emission, and auto-association. This is closest to normal runtime writes.\n\nThe `*-bulk` providers write directly through `DatabaseProvider.bulkCreateMemories()`\nand `bulkCreateAssociations()`. This isolates retrieval/storage behavior and makes\nthe setup comparison fairer against vector databases that use batch upsert.\n","readmeFilename":"README.md"}