{"_id":"goodmemory","_rev":"23-b8536a63cb133104a941b2a7da7a014e","name":"goodmemory","dist-tags":{"rc":"0.1.0-rc.1","latest":"0.8.2"},"versions":{"0.1.0-rc.1":{"name":"goodmemory","version":"0.1.0-rc.1","keywords":["agents","ai","bun","copilot","llm","memory"],"license":"MIT","_id":"goodmemory@0.1.0-rc.1","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.ts"},"dist":{"shasum":"7efc8baa8300dc385ec014390df53f3a48c5550e","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.1.0-rc.1.tgz","fileCount":153,"integrity":"sha512-qQuOxaW7JN6ob/xvE40ZM98KxACuGyyv4CcaQ4wIgmXFLFsCy7/5dufv8pGv5BFaCN21LPgIfzLay9jfWQcpnA==","signatures":[{"sig":"MEUCICQp8XeGcRvf6tNg0o4lfLrCeQ5whUnDyD+R6UiqK5FFAiEAx9Y/aLshhsxm4XnqCqmltNh5t0sDnqFv6/k8BSV1pqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1498801},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.1.0-rc.1.tgz","engines":{"bun":">=1.3.0"},"exports":{".":"./src/index.ts","./cli":"./src/cli.ts","./host":"./src/host/index.ts","./ai-sdk":"./src/ai-sdk/index.ts"},"scripts":{"cli":"bun run scripts/goodmemory-cli.ts","test":"bun test","test:ci":"bun run typecheck && bun run test:coverage","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","test:watch":"bun test --watch","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","test:scenarios":"bun test tests/scenarios","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.1.0-rc.1.tgz","_integrity":"sha512-qQuOxaW7JN6ob/xvE40ZM98KxACuGyyv4CcaQ4wIgmXFLFsCy7/5dufv8pGv5BFaCN21LPgIfzLay9jfWQcpnA==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.11.0","description":"Bun-only memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.1.0-rc.1_1776762657221_0.8352587324589587","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"goodmemory","version":"0.1.1","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.1.1","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js"},"dist":{"shasum":"3fbd1d7a1a0ec049b73441b33233b491721c776a","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.1.1.tgz","fileCount":293,"integrity":"sha512-e2cAB/BSA7vvvRqPT439RTbpn6myUoeHAa3hoBKYao0kTgSnjJX7k8V2e7NR66LNsOBdo5r8rb4C78holhxC1g==","signatures":[{"sig":"MEUCIQCX/gNBxN41Iv/Rk1PwtGMDDumzfCS7eFlXi/W1Ocs3vwIgc9ESbdwDo42dsEQmMrQLXGk3OpOl0kSljGbepG0AENY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4101624},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","test:scenarios":"bun test tests/scenarios","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.1.1.tgz","_integrity":"sha512-e2cAB/BSA7vvvRqPT439RTbpn6myUoeHAa3hoBKYao0kTgSnjJX7k8V2e7NR66LNsOBdo5r8rb4C78holhxC1g==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.11.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.1.1_1776879120522_0.7260277813602913","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"goodmemory","version":"0.1.2","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.1.2","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js"},"dist":{"shasum":"eadf52b4127d5ff01b99465553217522ba89c6af","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.1.2.tgz","fileCount":314,"integrity":"sha512-VV9kObYsMQvLFPgBPVXnx6r0mGsMhS0k1Zf4y6T4KuEkTdBejuixJOjj+XB4FCdUuq9hcpcqBKW4Wt0ZjLpNNg==","signatures":[{"sig":"MEUCIQDIDlFhhHgwcGL7lVzJPAk4ZXLBWPoxMk6OIe5t19Zu3wIgX3sueh33+IQUZXXCJr98/I/rNw1DMqQdGVmhh4HLgSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4480452},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.1.2.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.1.2.tgz","_integrity":"sha512-VV9kObYsMQvLFPgBPVXnx6r0mGsMhS0k1Zf4y6T4KuEkTdBejuixJOjj+XB4FCdUuq9hcpcqBKW4Wt0ZjLpNNg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.11.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.1.2_1777048097359_0.10579306607113614","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"goodmemory","version":"0.2.0","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.2.0","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"4b0e309a0396072a85bbc737cfb7f224555b6faf","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.2.0.tgz","fileCount":337,"integrity":"sha512-+CVog9zpMrjv54IE5INHbMyMdrpNJ+HB4A8uhJ2ZWoh9jRx6Awh927UT2wOVfGZOF05S5r5hQdwLHhOgdREoUw==","signatures":[{"sig":"MEUCIQDfGGr82HxPdPQarHYzcv7PKbdoFy26PWqska/vWw3CKQIgPNZm3/Mf4/bvVScygX8WkKbbyYWnsv1bpoRPLpZ0w/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4824547},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.0.tgz","_integrity":"sha512-+CVog9zpMrjv54IE5INHbMyMdrpNJ+HB4A8uhJ2ZWoh9jRx6Awh927UT2wOVfGZOF05S5r5hQdwLHhOgdREoUw==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.11.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.2.0_1777128718996_0.5733278854292603","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"goodmemory","version":"0.2.1","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.2.1","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"8a5a6a8addb41ae8befb6937960287e80a36cd6f","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.2.1.tgz","fileCount":361,"integrity":"sha512-y9JxlJpVYGmcS8yuNUE+aPDoMJtiPxNfdwXvKHxZNzR3GoIku0WApBzVCU8d8iqUnIAVEZQF1V/wPb2Ql9jo4w==","signatures":[{"sig":"MEQCIFK0oF4+ACa8d0tGF13iRaZtu6pWirWbmpj99dv3t2CsAiBCDHF4rO90gFvADi1p9RIvolGbmrFv7Yw8RPYsZUsoeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5068158},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.1.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.1.tgz","_integrity":"sha512-y9JxlJpVYGmcS8yuNUE+aPDoMJtiPxNfdwXvKHxZNzR3GoIku0WApBzVCU8d8iqUnIAVEZQF1V/wPb2Ql9jo4w==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.11.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.2.1_1777263003038_0.3400151390039825","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"goodmemory","version":"0.2.2","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.2.2","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"efe0573ccc4365461ff0ae968f0d14938fd38f6a","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.2.2.tgz","fileCount":369,"integrity":"sha512-mtsKgy8BLy7aTO/bDztnjTT/8+tZp8B6ATisf/TdwPMNaY9isut8JnT6sRZuQrhQpK4HZnqkMc0q3GfvYBs4sA==","signatures":[{"sig":"MEUCIQDHA+2brP80m9SETtu1eCqSZK+ATt7qYcsGTHPtmhTA3AIga+jFaDuKIaJElK16iZSR+Otb8jkOBv4M6LC15erdUd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5118724},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.2.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.2.tgz","_integrity":"sha512-mtsKgy8BLy7aTO/bDztnjTT/8+tZp8B6ATisf/TdwPMNaY9isut8JnT6sRZuQrhQpK4HZnqkMc0q3GfvYBs4sA==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.12.1","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.2.2_1777339710228_0.5525013740558813","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"goodmemory","version":"0.2.3","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.2.3","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"cb874dce3caa7ecc011356dfcc4cd002fc2600f1","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.2.3.tgz","fileCount":407,"integrity":"sha512-wJTPQ7v7/almynCeuPs52jOsXSK/tnRhBmrnJNBhd309jg0tqOdbniroQJhrhxPbZ0e93VW1mq+D5B+fnaa/gg==","signatures":[{"sig":"MEQCIA3e0Bd90vjpaYP/W2NEzg1t952CtNg7a1UB10n0pSd9AiBKx4d3PTOLYU1vk3/dnUneXbqhNIc7AJe0sc4tOWfz5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6243410},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.3.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.3.tgz","_integrity":"sha512-wJTPQ7v7/almynCeuPs52jOsXSK/tnRhBmrnJNBhd309jg0tqOdbniroQJhrhxPbZ0e93VW1mq+D5B+fnaa/gg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.11.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.2.3_1778084206560_0.5510620924559642","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"goodmemory","version":"0.2.5","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.2.5","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"673114e00ccf9db3a5b67c6eb15750e65d28f627","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.2.5.tgz","fileCount":531,"integrity":"sha512-slu74/N2yIaBmlDAAyiql53zenf/waSZAFkzIv7fJNyYquI+9Llmo55QOMnfNOmzwziQ7oHRbsn1FV1v8VwShg==","signatures":[{"sig":"MEUCIBMFp8nHXzzX1L7KGHW+ewb+t/9I8/APRNyIZ9gSI5KTAiEAwMPspwrDcfc2H7IhYjGFOnSomy80MiarlGztG+7OlJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7907385},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.5.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov --coverage-reporter=text && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.2.5.tgz","_integrity":"sha512-slu74/N2yIaBmlDAAyiql53zenf/waSZAFkzIv7fJNyYquI+9Llmo55QOMnfNOmzwziQ7oHRbsn1FV1v8VwShg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.13.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.2.5_1780886268944_0.20446410875433862","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"goodmemory","version":"0.3.0","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.3.0","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"bfac578666037b60379108fbb1a38486fecf3350","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.3.0.tgz","fileCount":700,"integrity":"sha512-oUB69Q+6Il3+rtbWvfHkSEhGyY9QV+jNlC+ErRxeODuZeyNEU6nuBZkRkkmeCDa9ck0Om1Cv3f5OLv0C2ZSBVQ==","signatures":[{"sig":"MEUCIQC67Qfw7qJ+yVWB7kREM8kI0/cqtnK1j9V7PpfNzzgJowIgYe6MJE0/Aa15NG/3Zm3xbzSRX7QfEQFRF4v+F4xnNt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8069828},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.3.0.tgz","_integrity":"sha512-oUB69Q+6Il3+rtbWvfHkSEhGyY9QV+jNlC+ErRxeODuZeyNEU6nuBZkRkkmeCDa9ck0Om1Cv3f5OLv0C2ZSBVQ==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.13.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.3.0_1781578974113_0.009860265907267296","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"goodmemory","version":"0.3.5","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.3.5","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"972be9d944f7e472d0024576af6ba53f1caecbfc","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.3.5.tgz","fileCount":721,"integrity":"sha512-DzAaNexf5jmgagSZ9CY4xHx5x3AX2qeNV9UDKTZAeAD8gXhOERR5wrp/mNVPtXAJmtFanrNbmN0Vb2OHjauYUg==","signatures":[{"sig":"MEQCID31WdGy45Dpoz0sieNcSdVJsDEpeItZwXIWZ27Vk9uJAiBQxFchIHtQrKx9MN0qmsI+P4elFk/rHuj7CkuoGN0FgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8203388},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.3.5.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.3.5.tgz","_integrity":"sha512-DzAaNexf5jmgagSZ9CY4xHx5x3AX2qeNV9UDKTZAeAD8gXhOERR5wrp/mNVPtXAJmtFanrNbmN0Vb2OHjauYUg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.13.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.3.5_1782352682675_0.053915575531008564","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"goodmemory","version":"0.3.6","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.3.6","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"095920db7323a88f9ed19bcb429ba7d6a552790b","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.3.6.tgz","fileCount":721,"integrity":"sha512-ZZC16iY6lBpqd5NRJYDgjWiw7afocLe+lUsqb6nTYxSNgRI1XRUPQt3YnAvOECSdvJHwsTAQr9fy9VKRWZyT4w==","signatures":[{"sig":"MEYCIQDgfOec/P9H4N00JXEj/zkfnZ/AQTnLsfHPw+Odb+2G1AIhANzSVKbd2jJPmNCrnvrV/5Qdjr0PhqlTDUImn7To7a2J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8214110},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.3.6.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.3.6.tgz","_integrity":"sha512-ZZC16iY6lBpqd5NRJYDgjWiw7afocLe+lUsqb6nTYxSNgRI1XRUPQt3YnAvOECSdvJHwsTAQr9fy9VKRWZyT4w==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.16.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.3.6_1783002413224_0.5040876420453779","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"goodmemory","version":"0.5.0","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.5.0","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"a36767427220cb2bb529626949571e74ab2db467","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.5.0.tgz","fileCount":753,"integrity":"sha512-b4//IbsQ8iSIua0nLoumCSj6nJaTDxuzM7FrZMpSQ3SgdtxFJ9Rwh9p84TU7/MToPeJbWrtdVXoZdk2LBbFE4Q==","signatures":[{"sig":"MEUCIQD58hWM7N/tJNBtERUEvHRXx1kKZlNqgxRA1RSH25dS+gIgNkaJ6DeNzTzzl6PMB+8+mlPEM4tG19vjLXiH+ydOl0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8654485},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","test:coverage":"bun test --coverage --coverage-reporter=lcov && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.5.0.tgz","_integrity":"sha512-b4//IbsQ8iSIua0nLoumCSj6nJaTDxuzM7FrZMpSQ3SgdtxFJ9Rwh9p84TU7/MToPeJbWrtdVXoZdk2LBbFE4Q==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.16.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.5.0_1783320302824_0.42141018517976936","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"goodmemory","version":"0.5.1","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.5.1","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"ca7df1e197ee38721203392c24d1c6ad8336b5b8","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.5.1.tgz","fileCount":759,"integrity":"sha512-flE9zkguOj4g5AR9jkb8KXqN1i2gIai82jhZRymUAbxW/RPhtpgGCs8uUuAkBCUv4tY0oLAsWYHiw4i/eS63mg==","signatures":[{"sig":"MEQCIHqXHJkGNFcMcuEWLAd9/AFfY68g9cQlakTNHLmfcvYWAiAHWIegBHagWnOGfLKWEl617Oh6RkOU8jjEJRM9MQ8Tig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8786433},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.5.1.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun test tests/integration/python-http-bridge.test.ts tests/cli tests/release","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.5.1.tgz","_integrity":"sha512-flE9zkguOj4g5AR9jkb8KXqN1i2gIai82jhZRymUAbxW/RPhtpgGCs8uUuAkBCUv4tY0oLAsWYHiw4i/eS63mg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"_npmVersion":"11.16.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.5.1_1783408608363_0.45899410404805163","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"goodmemory","version":"0.6.0","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.6.0","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"659081d38e674e51f00416a0ab57912e2c596bd6","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.6.0.tgz","fileCount":215,"integrity":"sha512-meuS7shm6JETb4u8mwmDKcwSVUddCv7x/2+CZuj4iCnN8qvMPmXcxD9kk//PZjYr0MYcNxar2N7d+5+wclEWPg==","signatures":[{"sig":"MEQCIBOmwMwkxkQuPKicn6QLgDUdXsDbfEP3952Mixw5hFFzAiBssIzMsoIQpln8BVTZJVLDgxU7I+YVHrxxm8Dbl+bW/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3867885},"type":"module","_from":"file:/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun test tests/integration/python-http-bridge.test.ts tests/cli tests/release","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","gate:phase-68":"bun run scripts/run-phase-68-generalization-gate.ts","gate:phase-69":"bun run scripts/run-phase-69-gate.ts","gate:phase-70":"bun run scripts/run-phase-70-gate.ts","gate:phase-71":"bun run scripts/run-phase-71-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","test:legacy-fitted":"bun --config=bunfig.legacy-fitted.toml test","build:inspector-web":"bun run --cwd apps/inspector-web build","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","eval:phase-72-memgym":"bun run scripts/run-phase-72-memgym.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","eval:phase-72-halumem":"bun run scripts/run-phase-72-halumem.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","eval:phase-70-reranker":"bun run scripts/run-phase-70-reranker-eval.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","select:phase-70-reranker":"bun run scripts/select-phase-70-reranker-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","audit:phase-68-narrow-gates":"bun run scripts/probe-beam-narrow-gates.ts","gate:codex-coding-effect:c4":"bun run scripts/run-codex-coding-effect-c4-readiness.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-72-minteval-smoke":"bun run scripts/run-phase-72-minteval-smoke.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:codex-coding-effect:smoke":"bun run scripts/run-codex-coding-effect.ts","eval:codex-coding-effect:canary":"bun run scripts/run-codex-coding-effect-canary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","gate:codex-coding-effect:c4-core":"bun run scripts/run-codex-coding-effect-c4-core-readiness.ts","eval:codex-coding-effect:c3-pilot":"bun run scripts/run-codex-coding-effect-c3-pilot.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","prepare:phase-72-beam-stored-retry":"bun run scripts/prepare-phase-72-beam-stored-retry.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","record:codex-coding-effect:c4-review":"bun run scripts/record-codex-coding-effect-c4-review-provenance.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","freeze:codex-coding-effect:c4-dataset":"bun run scripts/freeze-codex-coding-effect-c4-dataset.ts","merge:phase-72-implicitmembench-retry":"bun run scripts/merge-phase-72-implicitmembench-retry.ts","prepare:codex-coding-effect:c4-review":"bun run scripts/prepare-codex-coding-effect-c4-review.ts","eval:phase-72-beam-generalization-live":"bun run scripts/run-phase-72-beam-generalization-live.ts","verify:codex-coding-effect:c3-evidence":"bun run scripts/verify-codex-coding-effect-c3-evidence.ts","eval:phase-72-longmemeval-semantic-live":"bun run scripts/run-phase-72-longmemeval-semantic-live.ts","project:codex-coding-effect:c2-evidence":"bun run scripts/project-codex-coding-effect-c2-evidence.ts","project:codex-coding-effect:c3-evidence":"bun run scripts/project-codex-coding-effect-c3-evidence.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","eval:phase-72-longmemeval-verifier-chain":"bun run scripts/run-phase-72-longmemeval-verifier-chain.ts","eval:phase-72-longmemeval-answer-revision":"bun run scripts/run-phase-72-longmemeval-answer-revision.ts","eval:phase-72-longmemeval-semantic-recall":"bun run scripts/run-phase-72-longmemeval-semantic-recall.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","eval:codex-coding-effect:c4-baseline-ceiling":"bun run scripts/run-codex-coding-effect-c4-baseline-ceiling.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/GoodMemory/GoodMemory/dist-release/goodmemory-0.6.0.tgz","_integrity":"sha512-meuS7shm6JETb4u8mwmDKcwSVUddCv7x/2+CZuj4iCnN8qvMPmXcxD9kk//PZjYr0MYcNxar2N7d+5+wclEWPg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"11.16.0","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/provider-utils":"^4.0.21","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.6.0_1784226146828_0.4746047237016555","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"goodmemory","version":"0.7.0","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.7.0","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"d637b745bb43c410a859ca48198b5a6f4fa16817","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.7.0.tgz","fileCount":241,"integrity":"sha512-AeP6TcRrPuF2zJTtCeaRe+ZOdy9uen2eM6fnZjnAeygXX5+EvST0bnsuSNeVruGzftd3o/jtdqlwoMkX4Hwqcw==","signatures":[{"sig":"MEQCICDTEH5OwMPwd2V+ivTpXDd3atHGU8cLUdvV5IRWfQOeAiBqBnbgDQv6yDGdj4Z142SjyEUjYvuqkbDxrHTQavXITQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3563044},"type":"module","_from":"file:/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.0.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun test tests/integration/python-http-bridge.test.ts tests/cli tests/release","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","gate:v0.7":"bun run scripts/run-v0-7-release-readiness.ts","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","gate:phase-68":"bun run scripts/run-phase-68-generalization-gate.ts","gate:phase-69":"bun run scripts/run-phase-69-gate.ts","gate:phase-70":"bun run scripts/run-phase-70-gate.ts","gate:phase-71":"bun run scripts/run-phase-71-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","test:legacy-fitted":"bun --config=bunfig.legacy-fitted.toml test","build:inspector-web":"bun run --cwd apps/inspector-web build","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","test:phase-73-gates":"bun --config=bunfig.phase-73-gates.toml test ./tests/quality-gates/phase-73/*.gate.ts","eval:phase-72-memgym":"bun run scripts/run-phase-72-memgym.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","eval:phase-72-halumem":"bun run scripts/run-phase-72-halumem.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","eval:phase-70-reranker":"bun run scripts/run-phase-70-reranker-eval.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","select:phase-70-reranker":"bun run scripts/select-phase-70-reranker-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","eval:phase-74-beam-safety":"bun run scripts/run-phase-74-beam-safety-protection.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","prepare:phase-74-datasets":"bun run scripts/prepare-phase-74-datasets.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","audit:phase-68-narrow-gates":"bun run scripts/probe-beam-narrow-gates.ts","gate:codex-coding-effect:c4":"bun run scripts/run-codex-coding-effect-c4-readiness.ts","gate:codex-coding-effect:c5":"bun run scripts/run-codex-coding-effect-c5-gate.ts","gate:phase-74-storage-scale":"bun run scripts/run-phase-74-storage-scale-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-72-minteval-smoke":"bun run scripts/run-phase-72-minteval-smoke.ts","eval:phase-74-generalization":"bun run scripts/run-phase-74-generalization.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:codex-coding-effect:smoke":"bun run scripts/run-codex-coding-effect.ts","eval:codex-coding-effect:canary":"bun run scripts/run-codex-coding-effect-canary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","gate:codex-coding-effect:c4-core":"bun run scripts/run-codex-coding-effect-c4-core-readiness.ts","aggregate:phase-74-generalization":"bun run scripts/aggregate-phase-74-generalization.ts","eval:codex-coding-effect:c3-pilot":"bun run scripts/run-codex-coding-effect-c3-pilot.ts","eval:codex-coding-effect:c5-pilot":"bun run scripts/run-codex-coding-effect-c5-pilot.ts","eval:phase-74-protection-evidence":"bun run scripts/build-phase-74-protection-evidence.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:codex-coding-effect:c5-canary":"bun run scripts/run-codex-coding-effect-c5-canary.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","prepare:phase-72-beam-stored-retry":"bun run scripts/prepare-phase-72-beam-stored-retry.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","prepare:codex-coding-effect:c5-pilot":"bun run scripts/prepare-codex-coding-effect-c5-pilot.ts","record:codex-coding-effect:c4-review":"bun run scripts/record-codex-coding-effect-c4-review-provenance.ts","record:codex-coding-effect:c5-review":"bun run scripts/record-codex-coding-effect-c5-review-provenance.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","freeze:codex-coding-effect:c4-dataset":"bun run scripts/freeze-codex-coding-effect-c4-dataset.ts","merge:phase-72-implicitmembench-retry":"bun run scripts/merge-phase-72-implicitmembench-retry.ts","prepare:codex-coding-effect:c4-review":"bun run scripts/prepare-codex-coding-effect-c4-review.ts","prepare:codex-coding-effect:c5-review":"bun run scripts/prepare-codex-coding-effect-c5-review.ts","eval:phase-72-beam-generalization-live":"bun run scripts/run-phase-72-beam-generalization-live.ts","verify:codex-coding-effect:c3-evidence":"bun run scripts/verify-codex-coding-effect-c3-evidence.ts","verify:codex-coding-effect:c5-evidence":"bun run scripts/verify-codex-coding-effect-c5-evidence.ts","eval:phase-72-longmemeval-semantic-live":"bun run scripts/run-phase-72-longmemeval-semantic-live.ts","project:codex-coding-effect:c2-evidence":"bun run scripts/project-codex-coding-effect-c2-evidence.ts","project:codex-coding-effect:c3-evidence":"bun run scripts/project-codex-coding-effect-c3-evidence.ts","project:codex-coding-effect:c5-evidence":"bun run scripts/project-codex-coding-effect-c5-evidence.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","eval:phase-72-longmemeval-verifier-chain":"bun run scripts/run-phase-72-longmemeval-verifier-chain.ts","eval:phase-72-longmemeval-answer-revision":"bun run scripts/run-phase-72-longmemeval-answer-revision.ts","eval:phase-72-longmemeval-semantic-recall":"bun run scripts/run-phase-72-longmemeval-semantic-recall.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","eval:codex-coding-effect:c4-baseline-ceiling":"bun run scripts/run-codex-coding-effect-c4-baseline-ceiling.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.0.tgz","_integrity":"sha512-AeP6TcRrPuF2zJTtCeaRe+ZOdy9uen2eM6fnZjnAeygXX5+EvST0bnsuSNeVruGzftd3o/jtdqlwoMkX4Hwqcw==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.8.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/provider-utils":"^4.0.21","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.0","typescript":"^5.8.3","@types/node":"^20.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.7.0_1784797287652_0.6689378644221997","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"goodmemory","version":"0.7.1","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.7.1","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"d5e870a2af0dc432183992c6a13f24f346d3fd4d","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.7.1.tgz","fileCount":244,"integrity":"sha512-orV65Nvhj6tAfHTzqkrjHTRtmByMEa9rxc9viZVN531K2E2z9S1oH9EiPEIRh8QkkJDMQTuFAaTxoGh1mfGxMA==","signatures":[{"sig":"MEUCIFV+JCi2VX3n49Z/GlJAuM1a295aenFIYz2BVD2UbXjXAiEAiv40iL3ps7dXNAnTyf+di3gk3jK49WxWKU0QVXbyb+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3611563},"type":"module","_from":"file:/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.1.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","gate:v0.7":"bun run scripts/run-v0-7-release-readiness.ts","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","gate:phase-68":"bun run scripts/run-phase-68-generalization-gate.ts","gate:phase-69":"bun run scripts/run-phase-69-gate.ts","gate:phase-70":"bun run scripts/run-phase-70-gate.ts","gate:phase-71":"bun run scripts/run-phase-71-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","test:legacy-fitted":"bun --config=bunfig.legacy-fitted.toml test","build:inspector-web":"bun run --cwd apps/inspector-web build","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","test:phase-73-gates":"bun --config=bunfig.phase-73-gates.toml test ./tests/quality-gates/phase-73/*.gate.ts","eval:phase-72-memgym":"bun run scripts/run-phase-72-memgym.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","eval:phase-72-halumem":"bun run scripts/run-phase-72-halumem.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","eval:phase-70-reranker":"bun run scripts/run-phase-70-reranker-eval.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","select:phase-70-reranker":"bun run scripts/select-phase-70-reranker-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","eval:phase-74-beam-safety":"bun run scripts/run-phase-74-beam-safety-protection.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","prepare:phase-74-datasets":"bun run scripts/prepare-phase-74-datasets.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","audit:phase-68-narrow-gates":"bun run scripts/probe-beam-narrow-gates.ts","gate:codex-coding-effect:c4":"bun run scripts/run-codex-coding-effect-c4-readiness.ts","gate:codex-coding-effect:c5":"bun run scripts/run-codex-coding-effect-c5-gate.ts","gate:phase-74-storage-scale":"bun run scripts/run-phase-74-storage-scale-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-72-minteval-smoke":"bun run scripts/run-phase-72-minteval-smoke.ts","eval:phase-74-generalization":"bun run scripts/run-phase-74-generalization.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:codex-coding-effect:smoke":"bun run scripts/run-codex-coding-effect.ts","eval:codex-coding-effect:canary":"bun run scripts/run-codex-coding-effect-canary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","eval:phase-74-product-comparison":"bun run scripts/run-phase-74-product-comparison.ts","gate:codex-coding-effect:c4-core":"bun run scripts/run-codex-coding-effect-c4-core-readiness.ts","prepare:phase-74-protection-plan":"bun run scripts/prepare-phase-74-protection-plan.ts","aggregate:phase-74-generalization":"bun run scripts/aggregate-phase-74-generalization.ts","eval:codex-coding-effect:c3-pilot":"bun run scripts/run-codex-coding-effect-c3-pilot.ts","eval:codex-coding-effect:c5-pilot":"bun run scripts/run-codex-coding-effect-c5-pilot.ts","eval:phase-74-protection-evidence":"bun run scripts/build-phase-74-protection-evidence.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:codex-coding-effect:c5-canary":"bun run scripts/run-codex-coding-effect-c5-canary.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","prepare:phase-72-beam-stored-retry":"bun run scripts/prepare-phase-72-beam-stored-retry.ts","prepare:phase-74-confirmatory-plan":"bun run scripts/prepare-phase-74-confirmatory-plan.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","prepare:codex-coding-effect:c5-pilot":"bun run scripts/prepare-codex-coding-effect-c5-pilot.ts","record:codex-coding-effect:c4-review":"bun run scripts/record-codex-coding-effect-c4-review-provenance.ts","record:codex-coding-effect:c5-review":"bun run scripts/record-codex-coding-effect-c5-review-provenance.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","freeze:codex-coding-effect:c4-dataset":"bun run scripts/freeze-codex-coding-effect-c4-dataset.ts","merge:phase-72-implicitmembench-retry":"bun run scripts/merge-phase-72-implicitmembench-retry.ts","prepare:codex-coding-effect:c4-review":"bun run scripts/prepare-codex-coding-effect-c4-review.ts","prepare:codex-coding-effect:c5-review":"bun run scripts/prepare-codex-coding-effect-c5-review.ts","eval:phase-72-beam-generalization-live":"bun run scripts/run-phase-72-beam-generalization-live.ts","verify:codex-coding-effect:c3-evidence":"bun run scripts/verify-codex-coding-effect-c3-evidence.ts","verify:codex-coding-effect:c5-evidence":"bun run scripts/verify-codex-coding-effect-c5-evidence.ts","eval:phase-72-longmemeval-semantic-live":"bun run scripts/run-phase-72-longmemeval-semantic-live.ts","project:codex-coding-effect:c2-evidence":"bun run scripts/project-codex-coding-effect-c2-evidence.ts","project:codex-coding-effect:c3-evidence":"bun run scripts/project-codex-coding-effect-c3-evidence.ts","project:codex-coding-effect:c5-evidence":"bun run scripts/project-codex-coding-effect-c5-evidence.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","eval:phase-72-longmemeval-verifier-chain":"bun run scripts/run-phase-72-longmemeval-verifier-chain.ts","prepare:codex-coding-effect:c6-candidate":"bun run scripts/prepare-codex-coding-effect-c6-candidate.ts","eval:phase-72-longmemeval-answer-revision":"bun run scripts/run-phase-72-longmemeval-answer-revision.ts","eval:phase-72-longmemeval-semantic-recall":"bun run scripts/run-phase-72-longmemeval-semantic-recall.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","eval:phase-72-temporal-operands-protection":"bun run scripts/run-phase-72-temporal-operands-protection.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","snapshot:codex-coding-effect:c6-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-source-pool.ts","eval:codex-coding-effect:c4-baseline-ceiling":"bun run scripts/run-codex-coding-effect-c4-baseline-ceiling.ts","promote:codex-coding-effect:c6-source-v3-simple":"bun run scripts/promote-codex-coding-effect-c6-source-v3-simple.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts","snapshot:codex-coding-effect:c6-real-history-yield":"bun run scripts/snapshot-codex-coding-effect-c6-real-history-yield.ts","record:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-review.ts","eval:phase-72-longmemeval-temporal-operands-development":"bun run scripts/run-phase-72-longmemeval-temporal-operands-development.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-source-pool.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-chain-ledger":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-chain-ledger.ts","capture:codex-coding-effect:c6-source-v3-simple-prior-identity":"bun run scripts/capture-codex-coding-effect-c6-source-v3-simple-prior-repository-identity.ts","snapshot:codex-coding-effect:c6-multi-swe-relationship-discovery":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-relationship-discovery.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review.ts","materialize:codex-coding-effect:c6-source-v3-simple-prior-identity-portable-evidence":"bun run scripts/materialize-codex-coding-effect-c6-source-v3-simple-prior-identity-portable-evidence.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.1.tgz","_integrity":"sha512-orV65Nvhj6tAfHTzqkrjHTRtmByMEa9rxc9viZVN531K2E2z9S1oH9EiPEIRh8QkkJDMQTuFAaTxoGh1mfGxMA==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.8.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/provider-utils":"^4.0.21","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.7.1_1785546873650_0.2942344331297122","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"goodmemory","version":"0.7.2","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.7.2","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"21c324905f7cb66af2d7cb932898b0657d2704bf","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.7.2.tgz","fileCount":245,"integrity":"sha512-rDPHNJnhSqbPsSMqLm0Ri0ggif4aeHKjc6uDRPvr4M4pPviJiJi175LAf2LybffWv3wsQBgSdR33T42JK+/Xwg==","signatures":[{"sig":"MEUCIENOEDhKxHLaa7/cKYrZfVU2D+asmvcrx8aeHrMEDS/dAiEAybG6gZ2yBuU3jUI/2LPH3Y8AcwnuiYNqrvQQCglsW8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3618266},"type":"module","_from":"file:/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.2.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","gate:v0.7":"bun run scripts/run-v0-7-release-readiness.ts","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","gate:phase-68":"bun run scripts/run-phase-68-generalization-gate.ts","gate:phase-69":"bun run scripts/run-phase-69-gate.ts","gate:phase-70":"bun run scripts/run-phase-70-gate.ts","gate:phase-71":"bun run scripts/run-phase-71-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","test:legacy-fitted":"bun --config=bunfig.legacy-fitted.toml test","build:inspector-web":"bun run --cwd apps/inspector-web build","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","test:phase-73-gates":"bun --config=bunfig.phase-73-gates.toml test ./tests/quality-gates/phase-73/*.gate.ts","eval:phase-72-memgym":"bun run scripts/run-phase-72-memgym.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","eval:phase-72-halumem":"bun run scripts/run-phase-72-halumem.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","eval:phase-70-reranker":"bun run scripts/run-phase-70-reranker-eval.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","select:phase-70-reranker":"bun run scripts/select-phase-70-reranker-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","eval:phase-74-beam-safety":"bun run scripts/run-phase-74-beam-safety-protection.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","prepare:phase-74-datasets":"bun run scripts/prepare-phase-74-datasets.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","audit:phase-68-narrow-gates":"bun run scripts/probe-beam-narrow-gates.ts","gate:codex-coding-effect:c4":"bun run scripts/run-codex-coding-effect-c4-readiness.ts","gate:codex-coding-effect:c5":"bun run scripts/run-codex-coding-effect-c5-gate.ts","gate:phase-74-storage-scale":"bun run scripts/run-phase-74-storage-scale-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-72-minteval-smoke":"bun run scripts/run-phase-72-minteval-smoke.ts","eval:phase-74-generalization":"bun run scripts/run-phase-74-generalization.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:codex-coding-effect:smoke":"bun run scripts/run-codex-coding-effect.ts","eval:codex-coding-effect:canary":"bun run scripts/run-codex-coding-effect-canary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","eval:phase-74-product-comparison":"bun run scripts/run-phase-74-product-comparison.ts","gate:codex-coding-effect:c4-core":"bun run scripts/run-codex-coding-effect-c4-core-readiness.ts","prepare:phase-74-protection-plan":"bun run scripts/prepare-phase-74-protection-plan.ts","aggregate:phase-74-generalization":"bun run scripts/aggregate-phase-74-generalization.ts","eval:codex-coding-effect:c3-pilot":"bun run scripts/run-codex-coding-effect-c3-pilot.ts","eval:codex-coding-effect:c5-pilot":"bun run scripts/run-codex-coding-effect-c5-pilot.ts","eval:phase-74-protection-evidence":"bun run scripts/build-phase-74-protection-evidence.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:codex-coding-effect:c5-canary":"bun run scripts/run-codex-coding-effect-c5-canary.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","prepare:phase-72-beam-stored-retry":"bun run scripts/prepare-phase-72-beam-stored-retry.ts","prepare:phase-74-confirmatory-plan":"bun run scripts/prepare-phase-74-confirmatory-plan.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","prepare:codex-coding-effect:c5-pilot":"bun run scripts/prepare-codex-coding-effect-c5-pilot.ts","record:codex-coding-effect:c4-review":"bun run scripts/record-codex-coding-effect-c4-review-provenance.ts","record:codex-coding-effect:c5-review":"bun run scripts/record-codex-coding-effect-c5-review-provenance.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","freeze:codex-coding-effect:c4-dataset":"bun run scripts/freeze-codex-coding-effect-c4-dataset.ts","merge:phase-72-implicitmembench-retry":"bun run scripts/merge-phase-72-implicitmembench-retry.ts","prepare:codex-coding-effect:c4-review":"bun run scripts/prepare-codex-coding-effect-c4-review.ts","prepare:codex-coding-effect:c5-review":"bun run scripts/prepare-codex-coding-effect-c5-review.ts","eval:phase-72-beam-generalization-live":"bun run scripts/run-phase-72-beam-generalization-live.ts","verify:codex-coding-effect:c3-evidence":"bun run scripts/verify-codex-coding-effect-c3-evidence.ts","verify:codex-coding-effect:c5-evidence":"bun run scripts/verify-codex-coding-effect-c5-evidence.ts","eval:phase-72-longmemeval-semantic-live":"bun run scripts/run-phase-72-longmemeval-semantic-live.ts","project:codex-coding-effect:c2-evidence":"bun run scripts/project-codex-coding-effect-c2-evidence.ts","project:codex-coding-effect:c3-evidence":"bun run scripts/project-codex-coding-effect-c3-evidence.ts","project:codex-coding-effect:c5-evidence":"bun run scripts/project-codex-coding-effect-c5-evidence.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","eval:phase-72-longmemeval-verifier-chain":"bun run scripts/run-phase-72-longmemeval-verifier-chain.ts","prepare:codex-coding-effect:c6-candidate":"bun run scripts/prepare-codex-coding-effect-c6-candidate.ts","eval:phase-72-longmemeval-answer-revision":"bun run scripts/run-phase-72-longmemeval-answer-revision.ts","eval:phase-72-longmemeval-semantic-recall":"bun run scripts/run-phase-72-longmemeval-semantic-recall.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","eval:phase-72-temporal-operands-protection":"bun run scripts/run-phase-72-temporal-operands-protection.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","snapshot:codex-coding-effect:c6-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-source-pool.ts","eval:codex-coding-effect:c4-baseline-ceiling":"bun run scripts/run-codex-coding-effect-c4-baseline-ceiling.ts","promote:codex-coding-effect:c6-source-v3-simple":"bun run scripts/promote-codex-coding-effect-c6-source-v3-simple.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts","snapshot:codex-coding-effect:c6-real-history-yield":"bun run scripts/snapshot-codex-coding-effect-c6-real-history-yield.ts","record:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-review.ts","eval:phase-72-longmemeval-temporal-operands-development":"bun run scripts/run-phase-72-longmemeval-temporal-operands-development.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-source-pool.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-chain-ledger":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-chain-ledger.ts","capture:codex-coding-effect:c6-source-v3-simple-prior-identity":"bun run scripts/capture-codex-coding-effect-c6-source-v3-simple-prior-repository-identity.ts","eval:phase-72-longmemeval-operand-head-preservation-development":"bun run scripts/run-phase-72-longmemeval-operand-head-preservation-development.ts","snapshot:codex-coding-effect:c6-multi-swe-relationship-discovery":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-relationship-discovery.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review.ts","materialize:codex-coding-effect:c6-source-v3-simple-prior-identity-portable-evidence":"bun run scripts/materialize-codex-coding-effect-c6-source-v3-simple-prior-identity-portable-evidence.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.2.tgz","_integrity":"sha512-rDPHNJnhSqbPsSMqLm0Ri0ggif4aeHKjc6uDRPvr4M4pPviJiJi175LAf2LybffWv3wsQBgSdR33T42JK+/Xwg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.8.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"^3.0.49","@ai-sdk/anthropic":"^3.0.64","@ai-sdk/provider-utils":"^4.0.21","@ai-sdk/openai-compatible":"^2.0.40","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.7.2_1785651037439_0.5163063070747174","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"goodmemory","version":"0.7.3","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.7.3","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"7a64570ee6982811c02b6478d6586d5cabc8532c","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.7.3.tgz","fileCount":246,"integrity":"sha512-aQLF50TZT5jLDzQ+seFYuSvvwITHRxtuvu75fTKG/jXyweyzzLVI3uoixZ/fZVnedIIT2V9efD9030MPzxY6ng==","signatures":[{"sig":"MEUCIQDj+tQayl/QN+WCXHEkYQ4kA5fxxNpcg1mwpXneItQLLAIgJHI/X5CGRpB32STobt0ACDOMLdn/YG5crJC2CqTIvNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3648310},"type":"module","_from":"file:/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.3.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","gate:v0.7":"bun run scripts/run-v0-7-release-readiness.ts","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","gate:phase-68":"bun run scripts/run-phase-68-generalization-gate.ts","gate:phase-69":"bun run scripts/run-phase-69-gate.ts","gate:phase-70":"bun run scripts/run-phase-70-gate.ts","gate:phase-71":"bun run scripts/run-phase-71-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","test:legacy-fitted":"bun --config=bunfig.legacy-fitted.toml test","build:inspector-web":"bun run --cwd apps/inspector-web build","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","test:phase-73-gates":"bun --config=bunfig.phase-73-gates.toml test ./tests/quality-gates/phase-73/*.gate.ts","eval:phase-72-memgym":"bun run scripts/run-phase-72-memgym.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","eval:phase-72-halumem":"bun run scripts/run-phase-72-halumem.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","eval:phase-70-reranker":"bun run scripts/run-phase-70-reranker-eval.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","select:phase-70-reranker":"bun run scripts/select-phase-70-reranker-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","eval:phase-74-beam-safety":"bun run scripts/run-phase-74-beam-safety-protection.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","prepare:phase-74-datasets":"bun run scripts/prepare-phase-74-datasets.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","eval:v0.7.3-locomo-current":"bun run scripts/run-v0-7-3-full-locomo-claim.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","audit:phase-68-narrow-gates":"bun run scripts/probe-beam-narrow-gates.ts","gate:codex-coding-effect:c4":"bun run scripts/run-codex-coding-effect-c4-readiness.ts","gate:codex-coding-effect:c5":"bun run scripts/run-codex-coding-effect-c5-gate.ts","gate:phase-74-storage-scale":"bun run scripts/run-phase-74-storage-scale-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-72-minteval-smoke":"bun run scripts/run-phase-72-minteval-smoke.ts","eval:phase-74-generalization":"bun run scripts/run-phase-74-generalization.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:codex-coding-effect:smoke":"bun run scripts/run-codex-coding-effect.ts","eval:codex-coding-effect:canary":"bun run scripts/run-codex-coding-effect-canary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","eval:phase-74-product-comparison":"bun run scripts/run-phase-74-product-comparison.ts","gate:codex-coding-effect:c4-core":"bun run scripts/run-codex-coding-effect-c4-core-readiness.ts","gate:v0.7.3-lifecycle-protection":"bun run scripts/run-v0-7-3-replacement-protection-gate.ts","prepare:phase-74-protection-plan":"bun run scripts/prepare-phase-74-protection-plan.ts","aggregate:phase-74-generalization":"bun run scripts/aggregate-phase-74-generalization.ts","eval:codex-coding-effect:c3-pilot":"bun run scripts/run-codex-coding-effect-c3-pilot.ts","eval:codex-coding-effect:c5-pilot":"bun run scripts/run-codex-coding-effect-c5-pilot.ts","eval:phase-74-protection-evidence":"bun run scripts/build-phase-74-protection-evidence.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:codex-coding-effect:c5-canary":"bun run scripts/run-codex-coding-effect-c5-canary.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","prepare:phase-72-beam-stored-retry":"bun run scripts/prepare-phase-72-beam-stored-retry.ts","prepare:phase-74-confirmatory-plan":"bun run scripts/prepare-phase-74-confirmatory-plan.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","prepare:codex-coding-effect:c5-pilot":"bun run scripts/prepare-codex-coding-effect-c5-pilot.ts","record:codex-coding-effect:c4-review":"bun run scripts/record-codex-coding-effect-c4-review-provenance.ts","record:codex-coding-effect:c5-review":"bun run scripts/record-codex-coding-effect-c5-review-provenance.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","freeze:codex-coding-effect:c4-dataset":"bun run scripts/freeze-codex-coding-effect-c4-dataset.ts","merge:phase-72-implicitmembench-retry":"bun run scripts/merge-phase-72-implicitmembench-retry.ts","prepare:codex-coding-effect:c4-review":"bun run scripts/prepare-codex-coding-effect-c4-review.ts","prepare:codex-coding-effect:c5-review":"bun run scripts/prepare-codex-coding-effect-c5-review.ts","eval:phase-72-beam-generalization-live":"bun run scripts/run-phase-72-beam-generalization-live.ts","verify:codex-coding-effect:c3-evidence":"bun run scripts/verify-codex-coding-effect-c3-evidence.ts","verify:codex-coding-effect:c5-evidence":"bun run scripts/verify-codex-coding-effect-c5-evidence.ts","eval:phase-72-longmemeval-semantic-live":"bun run scripts/run-phase-72-longmemeval-semantic-live.ts","project:codex-coding-effect:c2-evidence":"bun run scripts/project-codex-coding-effect-c2-evidence.ts","project:codex-coding-effect:c3-evidence":"bun run scripts/project-codex-coding-effect-c3-evidence.ts","project:codex-coding-effect:c5-evidence":"bun run scripts/project-codex-coding-effect-c5-evidence.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","eval:phase-72-longmemeval-verifier-chain":"bun run scripts/run-phase-72-longmemeval-verifier-chain.ts","prepare:codex-coding-effect:c6-candidate":"bun run scripts/prepare-codex-coding-effect-c6-candidate.ts","eval:phase-72-longmemeval-answer-revision":"bun run scripts/run-phase-72-longmemeval-answer-revision.ts","eval:phase-72-longmemeval-semantic-recall":"bun run scripts/run-phase-72-longmemeval-semantic-recall.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","eval:phase-72-temporal-operands-protection":"bun run scripts/run-phase-72-temporal-operands-protection.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","snapshot:codex-coding-effect:c6-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-source-pool.ts","eval:codex-coding-effect:c4-baseline-ceiling":"bun run scripts/run-codex-coding-effect-c4-baseline-ceiling.ts","promote:codex-coding-effect:c6-source-v3-simple":"bun run scripts/promote-codex-coding-effect-c6-source-v3-simple.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts","snapshot:codex-coding-effect:c6-real-history-yield":"bun run scripts/snapshot-codex-coding-effect-c6-real-history-yield.ts","record:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-review.ts","eval:phase-72-longmemeval-temporal-operands-development":"bun run scripts/run-phase-72-longmemeval-temporal-operands-development.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-source-pool.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-chain-ledger":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-chain-ledger.ts","capture:codex-coding-effect:c6-source-v3-simple-prior-identity":"bun run scripts/capture-codex-coding-effect-c6-source-v3-simple-prior-repository-identity.ts","eval:phase-72-longmemeval-operand-head-preservation-development":"bun run scripts/run-phase-72-longmemeval-operand-head-preservation-development.ts","snapshot:codex-coding-effect:c6-multi-swe-relationship-discovery":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-relationship-discovery.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review.ts","materialize:codex-coding-effect:c6-source-v3-simple-prior-identity-portable-evidence":"bun run scripts/materialize-codex-coding-effect-c6-source-v3-simple-prior-identity-portable-evidence.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.3.tgz","_integrity":"sha512-aQLF50TZT5jLDzQ+seFYuSvvwITHRxtuvu75fTKG/jXyweyzzLVI3uoixZ/fZVnedIIT2V9efD9030MPzxY6ng==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.8.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"3.0.49","@ai-sdk/anthropic":"3.0.64","@ai-sdk/provider-utils":"4.0.23","@ai-sdk/openai-compatible":"2.0.40","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.7.3_1786453332252_0.7862657998806726","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"goodmemory","version":"0.7.4","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.7.4","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"889d5f65d554adc38612319efbf902580ce9e29a","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.7.4.tgz","fileCount":250,"integrity":"sha512-+71CIiT3yIMHgcMiHqpPLEhUf4aLxba43JWWXoQWcLIq71T4jDMXf/98IJX/66TUOBsU9lDqwWDS6nuwIb7Erg==","signatures":[{"sig":"MEQCIB743s5P17cedPsNDIVkqS+Wq/lQ0jrKTE3BJXkujMwhAiAtnSX5rF1+/ETufApKrUC+jBTZ1v6mUXVrNtKvWHu8ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3810895},"type":"module","_from":"file:/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.4.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","gate:v0.7":"bun run scripts/run-v0-7-release-readiness.ts","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","eval:phase-16":"bun run scripts/run-phase-16-eval.ts","eval:phase-17":"bun run scripts/run-phase-17-eval.ts","eval:phase-21":"bun run scripts/run-phase-21-eval.ts","eval:phase-22":"bun run scripts/run-phase-22-eval.ts","eval:phase-23":"bun run scripts/run-phase-23-eval.ts","eval:phase-24":"bun run scripts/run-phase-24-eval.ts","eval:phase-25":"bun run scripts/run-phase-25-eval.ts","eval:phase-27":"bun run scripts/run-phase-27-eval.ts","eval:phase-30":"bun run scripts/run-phase-30-eval.ts","eval:phase-31":"bun run scripts/run-phase-31-eval.ts","eval:phase-32":"bun run scripts/run-phase-32-eval.ts","eval:phase-34":"bun run scripts/run-phase-34-eval.ts","eval:phase-35":"bun run scripts/run-phase-35-eval.ts","eval:phase-36":"bun run scripts/run-phase-36-eval.ts","eval:phase-37":"bun run scripts/run-phase-37-eval.ts","eval:phase-41":"bun run scripts/run-phase-41-eval.ts","eval:phase-42":"bun run scripts/run-phase-42-eval.ts","eval:phase-43":"bun run scripts/run-phase-43-eval.ts","eval:phase-44":"bun run scripts/run-phase-44-eval.ts","eval:phase-45":"bun run scripts/run-phase-45-adoption-eval.ts","eval:phase-46":"bun run scripts/run-phase-46-quality-eval.ts","eval:phase-47":"bun run scripts/run-phase-47-provider-rollout-eval.ts","eval:phase-48":"bun run scripts/run-phase-48-decision-report.ts","eval:phase-49":"bun run scripts/run-phase-49.ts","eval:phase-50":"bun run scripts/run-phase-50-installer-eval.ts","eval:phase-51":"bun run scripts/run-phase-51-eval.ts","eval:phase-52":"bun run scripts/run-phase-52-eval.ts","eval:phase-53":"bun run scripts/run-phase-53-eval.ts","eval:phase-54":"bun run scripts/run-phase-54-eval.ts","eval:phase-55":"bun run scripts/run-phase-55-eval.ts","eval:phase-56":"bun run scripts/run-phase-56-eval.ts","eval:phase-57":"bun run scripts/run-phase-57-eval.ts","eval:phase-58":"bun run scripts/run-phase-58-eval.ts","eval:phase-59":"bun run scripts/run-phase-59-eval.ts","eval:phase-60":"bun run scripts/run-phase-60-eval.ts","eval:phase-62":"bun run scripts/run-phase-62-eval.ts","eval:phase-63":"bun run scripts/run-phase-63-eval.ts","gate:phase-18":"bun run scripts/run-phase-18-gate.ts","gate:phase-20":"bun run scripts/run-phase-20-gate.ts","gate:phase-21":"bun run scripts/run-phase-21-gate.ts","gate:phase-22":"bun run scripts/run-phase-22-gate.ts","gate:phase-23":"bun run scripts/run-phase-23-gate.ts","gate:phase-24":"bun run scripts/run-phase-24-gate.ts","gate:phase-25":"bun run scripts/run-phase-25-gate.ts","gate:phase-26":"bun run scripts/run-phase-26-gate.ts","gate:phase-27":"bun run scripts/run-phase-27-gate.ts","gate:phase-28":"bun run scripts/run-phase-28-gate.ts","gate:phase-29":"bun run scripts/run-phase-29-gate.ts","gate:phase-30":"bun run scripts/run-phase-30-gate.ts","gate:phase-31":"bun run scripts/run-phase-31-gate.ts","gate:phase-32":"bun run scripts/run-phase-32-gate.ts","gate:phase-33":"bun run scripts/run-phase-33-gate.ts","gate:phase-34":"bun run scripts/run-phase-34-gate.ts","gate:phase-35":"bun run scripts/run-phase-35-gate.ts","gate:phase-36":"bun run scripts/run-phase-36-gate.ts","gate:phase-37":"bun run scripts/run-phase-37-gate.ts","gate:phase-38":"bun run scripts/run-phase-38-gate.ts","gate:phase-39":"bun run scripts/run-phase-39-gate.ts","gate:phase-40":"bun run scripts/run-phase-40-gate.ts","gate:phase-41":"bun run scripts/run-phase-41-gate.ts","gate:phase-42":"bun run scripts/run-phase-42-gate.ts","gate:phase-43":"bun run scripts/run-phase-43-gate.ts","gate:phase-44":"bun run scripts/run-phase-44-gate.ts","gate:phase-45":"bun run scripts/run-phase-45-gate.ts","gate:phase-46":"bun run scripts/run-phase-46-gate.ts","gate:phase-47":"bun run scripts/run-phase-47-gate.ts","gate:phase-48":"bun run scripts/run-phase-48-gate.ts","gate:phase-49":"bun run scripts/run-phase-49-gate.ts","gate:phase-50":"bun run scripts/run-phase-50-gate.ts","gate:phase-51":"bun run scripts/run-phase-51-gate.ts","gate:phase-52":"bun run scripts/run-phase-52-gate.ts","gate:phase-53":"bun run scripts/run-phase-53-gate.ts","gate:phase-54":"bun run scripts/run-phase-54-gate.ts","gate:phase-55":"bun run scripts/run-phase-55-gate.ts","gate:phase-56":"bun run scripts/run-phase-56-gate.ts","gate:phase-57":"bun run scripts/run-phase-57-gate.ts","gate:phase-58":"bun run scripts/run-phase-58-gate.ts","gate:phase-59":"bun run scripts/run-phase-59-gate.ts","gate:phase-60":"bun run scripts/run-phase-60-gate.ts","gate:phase-62":"bun run scripts/run-phase-62-gate.ts","gate:phase-63":"bun run scripts/run-phase-63-gate.ts","gate:phase-68":"bun run scripts/run-phase-68-generalization-gate.ts","gate:phase-69":"bun run scripts/run-phase-69-gate.ts","gate:phase-70":"bun run scripts/run-phase-70-gate.ts","gate:phase-71":"bun run scripts/run-phase-71-gate.ts","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","eval:phase-43-5":"bun run scripts/run-phase-43-5-eval.ts","gate:phase-37-1":"bun run scripts/run-phase-37-1-gate.ts","gate:phase-43-5":"bun run scripts/run-phase-43-5-gate.ts","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","release:rc-dry-run":"bun run scripts/run-phase-29-rc-dry-run.ts","test:legacy-fitted":"bun --config=bunfig.legacy-fitted.toml test","build:inspector-web":"bun run --cwd apps/inspector-web build","eval:phase-64-smoke":"bun run scripts/run-phase-64-memory-agent-bench-smoke.ts","eval:phase-65-smoke":"bun run scripts/run-phase-65-locomo-smoke.ts","example:host-claude":"bun run examples/host-claude-artifacts.ts","test:phase-73-gates":"bun --config=bunfig.phase-73-gates.toml test ./tests/quality-gates/phase-73/*.gate.ts","eval:phase-72-memgym":"bun run scripts/run-phase-72-memgym.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","prepare:phase-64-mab":"bun run scripts/prepare-phase-64-memory-agent-bench-data.ts","analyze:phase-63-beam":"bun run scripts/analyze-phase-63-beam-report.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","eval:phase-40-product":"bun run scripts/run-phase-40-product-eval.ts","eval:phase-60-overall":"bun run scripts/run-phase-60-overall.ts","eval:phase-61-full300":"bun run scripts/run-phase-61-full300.ts","eval:phase-62-full500":"bun run scripts/run-phase-62-full500.ts","eval:phase-72-halumem":"bun run scripts/run-phase-72-halumem.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","prepare:phase-63-beam":"bun run scripts/prepare-phase-63-beam-data.ts","eval:phase-49-baseline":"bun run scripts/run-phase-49-baseline.ts","eval:phase-70-reranker":"bun run scripts/run-phase-70-reranker-eval.ts","gate:phase-19-reviewer":"bun run scripts/run-phase-19-reviewer-gate.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:phase-37-1-dogfood":"bun run scripts/run-phase-37-1-dogfood-summary.ts","prepare:phase-65-locomo":"bun run scripts/prepare-phase-65-locomo-data.ts","eval:phase-49-goodmemory":"bun run scripts/run-phase-49-goodmemory.ts","eval:phase-63-live-slice":"bun run scripts/run-phase-63-beam-live-slice.ts","select:phase-70-reranker":"bun run scripts/select-phase-70-reranker-slice.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","eval:phase-17-live-memory":"bun run scripts/run-phase-17-live-memory.ts","eval:phase-21-live-memory":"bun run scripts/run-phase-21-live-memory.ts","eval:phase-22-live-memory":"bun run scripts/run-phase-22-live-memory.ts","eval:phase-23-live-memory":"bun run scripts/run-phase-23-live-memory.ts","eval:phase-24-live-memory":"bun run scripts/run-phase-24-live-memory.ts","eval:phase-25-live-memory":"bun run scripts/run-phase-25-live-memory.ts","eval:phase-27-live-memory":"bun run scripts/run-phase-27-live-memory.ts","eval:phase-30-live-memory":"bun run scripts/run-phase-30-live-memory.ts","eval:phase-31-live-memory":"bun run scripts/run-phase-31-live-memory.ts","eval:phase-32-live-memory":"bun run scripts/run-phase-32-live-memory.ts","eval:phase-34-live-memory":"bun run scripts/run-phase-34-live-memory.ts","eval:phase-35-live-memory":"bun run scripts/run-phase-35-live-memory.ts","eval:phase-36-live-memory":"bun run scripts/run-phase-36-live-memory.ts","eval:phase-37-live-memory":"bun run scripts/run-phase-37-live-memory.ts","eval:phase-41-live-memory":"bun run scripts/run-phase-41-live-memory.ts","eval:phase-51-live-memory":"bun run scripts/run-phase-51-live-memory.ts","eval:phase-52-live-memory":"bun run scripts/run-phase-52-live-memory.ts","eval:phase-53-live-memory":"bun run scripts/run-phase-53-live-memory.ts","eval:phase-54-live-memory":"bun run scripts/run-phase-54-live-memory.ts","eval:phase-55-live-memory":"bun run scripts/run-phase-55-live-memory.ts","eval:phase-56-live-memory":"bun run scripts/run-phase-56-live-memory.ts","eval:phase-57-diagnostics":"bun run scripts/summarize-phase-57-raw-diagnostics.ts","eval:phase-57-live-memory":"bun run scripts/run-phase-57-live-memory.ts","eval:phase-58-diagnostics":"bun run scripts/summarize-phase-58-raw-diagnostics.ts","eval:phase-58-live-memory":"bun run scripts/run-phase-58-live-memory.ts","eval:phase-59-diagnostics":"bun run scripts/summarize-phase-59-raw-diagnostics.ts","eval:phase-59-live-memory":"bun run scripts/run-phase-59-live-memory.ts","eval:phase-74-beam-safety":"bun run scripts/run-phase-74-beam-safety-protection.ts","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","gate:phase-19-maintenance":"bun run scripts/run-phase-19-maintenance-gate.ts","prepare:phase-74-datasets":"bun run scripts/prepare-phase-74-datasets.ts","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","analyze:phase-64-readiness":"bun run scripts/analyze-phase-64-readiness.ts","eval:phase-63-live-closure":"bun run scripts/run-phase-63-beam-live-closure.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:phase-63-beam-closure":"bun run scripts/run-phase-63-beam-closure-gate.ts","audit:phase-68-narrow-gates":"bun run scripts/probe-beam-narrow-gates.ts","gate:codex-coding-effect:c4":"bun run scripts/run-codex-coding-effect-c4-readiness.ts","gate:codex-coding-effect:c5":"bun run scripts/run-codex-coding-effect-c5-gate.ts","gate:phase-74-storage-scale":"bun run scripts/run-phase-74-storage-scale-gate.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:v0-3-release-readiness":"bun run scripts/run-v0-3-release-readiness.ts","eval:phase-40-cross-consumer":"bun run scripts/run-phase-40-cross-consumer-smoke.ts","eval:phase-63-general-levers":"bun run scripts/measure-beam-general-levers.ts","eval:phase-72-minteval-smoke":"bun run scripts/run-phase-72-minteval-smoke.ts","eval:phase-74-generalization":"bun run scripts/run-phase-74-generalization.ts","eval:phase-62-full500-summary":"bun run scripts/run-phase-62-full500-summary.ts","eval:phase-65-reanswer-report":"bun run scripts/reanswer-phase-65-locomo-report.ts","eval:codex-coding-effect:smoke":"bun run scripts/run-codex-coding-effect.ts","eval:codex-coding-effect:canary":"bun run scripts/run-codex-coding-effect-canary.ts","eval:phase-37-external-consumer":"bun run scripts/run-phase-37-external-consumer.ts","eval:phase-62-recall-diagnostic":"bun run scripts/run-phase-62-recall-diagnostic.ts","eval:phase-63-recall-diagnostic":"bun run scripts/run-phase-63-beam-recall-diagnostic.ts","eval:phase-74-product-comparison":"bun run scripts/run-phase-74-product-comparison.ts","gate:codex-coding-effect:c4-core":"bun run scripts/run-codex-coding-effect-c4-core-readiness.ts","gate:v0.7.3-lifecycle-protection":"bun run scripts/run-v0-7-3-replacement-protection-gate.ts","prepare:phase-74-protection-plan":"bun run scripts/prepare-phase-74-protection-plan.ts","aggregate:phase-74-generalization":"bun run scripts/aggregate-phase-74-generalization.ts","eval:codex-coding-effect:c3-pilot":"bun run scripts/run-codex-coding-effect-c3-pilot.ts","eval:codex-coding-effect:c5-pilot":"bun run scripts/run-codex-coding-effect-c5-pilot.ts","eval:phase-74-protection-evidence":"bun run scripts/build-phase-74-protection-evidence.ts","prepare:phase-65-locomo-captioned":"bun run scripts/prepare-phase-65-locomo-captioned-root.ts","rescore:phase-61-implicitmembench":"bun run scripts/rescore-phase-61-implicitmembench-stored-answers.ts","analyze:phase-63-recall-diagnostic":"bun run scripts/analyze-phase-63-recall-diagnostic.ts","analyze:phase-65-locomo-live-delta":"bun run scripts/analyze-phase-65-locomo-live-delta.ts","eval:codex-coding-effect:c5-canary":"bun run scripts/run-codex-coding-effect-c5-canary.ts","eval:phase-62-deterministic-subset":"bun run scripts/run-phase-62-deterministic-subset.ts","prepare:phase-72-beam-stored-retry":"bun run scripts/prepare-phase-72-beam-stored-retry.ts","prepare:phase-74-confirmatory-plan":"bun run scripts/prepare-phase-74-confirmatory-plan.ts","analyze:phase-65-locomo-budget-delta":"bun run scripts/analyze-phase-65-locomo-budget-delta.ts","eval:phase-62-full500-retry-failures":"bun run scripts/run-phase-62-full500-retry-failures.ts","prepare:codex-coding-effect:c5-pilot":"bun run scripts/prepare-codex-coding-effect-c5-pilot.ts","record:codex-coding-effect:c4-review":"bun run scripts/record-codex-coding-effect-c4-review-provenance.ts","record:codex-coding-effect:c5-review":"bun run scripts/record-codex-coding-effect-c5-review-provenance.ts","summarize:phase-65-locomo-categories":"bun run scripts/summarize-phase-65-locomo-categories.ts","analyze:phase-65-locomo-category-gaps":"bun run scripts/analyze-phase-65-locomo-category-gaps.ts","analyze:phase-65-locomo-retrieval-gap":"bun run scripts/analyze-phase-65-locomo-retrieval-gap.ts","freeze:codex-coding-effect:c4-dataset":"bun run scripts/freeze-codex-coding-effect-c4-dataset.ts","merge:phase-72-implicitmembench-retry":"bun run scripts/merge-phase-72-implicitmembench-retry.ts","prepare:codex-coding-effect:c4-review":"bun run scripts/prepare-codex-coding-effect-c4-review.ts","prepare:codex-coding-effect:c5-review":"bun run scripts/prepare-codex-coding-effect-c5-review.ts","eval:phase-72-beam-generalization-live":"bun run scripts/run-phase-72-beam-generalization-live.ts","verify:codex-coding-effect:c3-evidence":"bun run scripts/verify-codex-coding-effect-c3-evidence.ts","verify:codex-coding-effect:c5-evidence":"bun run scripts/verify-codex-coding-effect-c5-evidence.ts","eval:phase-72-longmemeval-semantic-live":"bun run scripts/run-phase-72-longmemeval-semantic-live.ts","project:codex-coding-effect:c2-evidence":"bun run scripts/project-codex-coding-effect-c2-evidence.ts","project:codex-coding-effect:c3-evidence":"bun run scripts/project-codex-coding-effect-c3-evidence.ts","project:codex-coding-effect:c5-evidence":"bun run scripts/project-codex-coding-effect-c5-evidence.ts","analyze:phase-65-locomo-near-miss-labels":"bun run scripts/analyze-phase-65-locomo-near-miss-labels.ts","eval:phase-72-longmemeval-verifier-chain":"bun run scripts/run-phase-72-longmemeval-verifier-chain.ts","prepare:codex-coding-effect:c6-candidate":"bun run scripts/prepare-codex-coding-effect-c6-candidate.ts","eval:phase-72-longmemeval-answer-revision":"bun run scripts/run-phase-72-longmemeval-answer-revision.ts","eval:phase-72-longmemeval-semantic-recall":"bun run scripts/run-phase-72-longmemeval-semantic-recall.ts","summarize:phase-65-locomo-reanswer-deltas":"bun run scripts/summarize-phase-65-locomo-reanswer-deltas.ts","analyze:phase-65-locomo-reanswer-readiness":"bun run scripts/audit-phase-65-locomo-reanswer-readiness.ts","eval:phase-72-temporal-operands-protection":"bun run scripts/run-phase-72-temporal-operands-protection.ts","analyze:phase-65-locomo-answer-policy-slice":"bun run scripts/select-phase-65-locomo-answer-policy-slice.ts","snapshot:codex-coding-effect:c6-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-source-pool.ts","eval:codex-coding-effect:c4-baseline-ceiling":"bun run scripts/run-codex-coding-effect-c4-baseline-ceiling.ts","promote:codex-coding-effect:c6-source-v3-simple":"bun run scripts/promote-codex-coding-effect-c6-source-v3-simple.ts","analyze:phase-65-locomo-candidate-admission-slice":"bun run scripts/select-phase-65-locomo-candidate-admission-slice.ts","audit:phase-61-implicitmembench-rescore-readiness":"bun run scripts/audit-phase-61-implicitmembench-rescore-readiness.ts","snapshot:codex-coding-effect:c6-real-history-yield":"bun run scripts/snapshot-codex-coding-effect-c6-real-history-yield.ts","record:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-review.ts","eval:phase-72-longmemeval-temporal-operands-development":"bun run scripts/run-phase-72-longmemeval-temporal-operands-development.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-source-pool":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-source-pool.ts","snapshot:codex-coding-effect:c6-multi-swe-jq-chain-ledger":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-jq-chain-ledger.ts","capture:codex-coding-effect:c6-source-v3-simple-prior-identity":"bun run scripts/capture-codex-coding-effect-c6-source-v3-simple-prior-repository-identity.ts","eval:phase-72-longmemeval-operand-head-preservation-development":"bun run scripts/run-phase-72-longmemeval-operand-head-preservation-development.ts","snapshot:codex-coding-effect:c6-multi-swe-relationship-discovery":"bun run scripts/snapshot-codex-coding-effect-c6-multi-swe-relationship-discovery.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay.ts","record:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/record-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review-provenance.ts","prepare:codex-coding-effect:c6-source-v3-simple-prior-identity-replay-review":"bun run scripts/prepare-codex-coding-effect-c6-source-v3-simple-prior-identity-replay-review.ts","materialize:codex-coding-effect:c6-source-v3-simple-prior-identity-portable-evidence":"bun run scripts/materialize-codex-coding-effect-c6-source-v3-simple-prior-identity-portable-evidence.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/_temp/goodmemory-v0-7-release/goodmemory-0.7.4.tgz","_integrity":"sha512-+71CIiT3yIMHgcMiHqpPLEhUf4aLxba43JWWXoQWcLIq71T4jDMXf/98IJX/66TUOBsU9lDqwWDS6nuwIb7Erg==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.8.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"3.0.49","@ai-sdk/anthropic":"3.0.64","@ai-sdk/provider-utils":"4.0.23","@ai-sdk/openai-compatible":"2.0.40","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.7.4_1786640990782_0.2707578583885375","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"goodmemory","version":"0.7.5","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.7.5","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"e8fed4636669c18e045aee10da915252c15e1699","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.7.5.tgz","fileCount":264,"integrity":"sha512-y/gVo+62XvWyeBJUnJhZjbunL6KegGlapeZSZOmXZC7hzWrJg2/xBHCe7MQjElUYon0xrfk6LVShwV7o1y0vVQ==","signatures":[{"sig":"MEUCIQDYaSjWPEghKkaRisMLea31DD18ZfbU6eMUTHhxsknkRQIgaqXOOVacrjBqirtHRAQtijrlTGwTUrVuopRQN5MJtUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3834335},"type":"module","_from":"file:/home/runner/work/_temp/goodmemory-release/goodmemory-0.7.5.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","research:run":"bun scripts/research.ts run","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","research:list":"bun scripts/research.ts list","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","release:prepare":"bun scripts/release.ts prepare","research:verify":"bun scripts/research.ts verify","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","build:inspector-web":"bun run --cwd apps/inspector-web build","example:host-claude":"bun run examples/host-claude-artifacts.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:projection-storage-scale":"bun scripts/run-projection-storage-scale-gate.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/home/runner/work/_temp/goodmemory-release/goodmemory-0.7.5.tgz","_integrity":"sha512-y/gVo+62XvWyeBJUnJhZjbunL6KegGlapeZSZOmXZC7hzWrJg2/xBHCe7MQjElUYon0xrfk6LVShwV7o1y0vVQ==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.8.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"3.0.49","@ai-sdk/anthropic":"3.0.64","@ai-sdk/provider-utils":"4.0.23","@ai-sdk/openai-compatible":"2.0.40","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.7.5_1787113712906_0.30632518990300306","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"goodmemory","version":"0.8.0","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.8.0","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"f139baafbaffeeddceca201ee0279ff09c5d19c7","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.8.0.tgz","fileCount":275,"integrity":"sha512-QGw05kFCxlpADoOUYmztJ+i07zE9wKCV48Cd02JzvnCQyTLJEfIj3yh2cPkWz18DSizv3MUijOOX75W8hbw/4w==","signatures":[{"sig":"MEQCICTjPvzV53zWCZD7Ru6wtE1MYnMdgaaMaXeVRihdCnddAiBYlbvbe4mDiqeaq/anrlk48Ecy3oCmT7sQ3GNxmPNZPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4029501},"type":"module","_from":"file:/Volumes/data/GoodMemory-external/v08-policy-authorized-20260914-1Bg9Fn/release-final-r4/goodmemory-0.8.0.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","research:run":"bun scripts/research.ts run","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","research:list":"bun scripts/research.ts list","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","release:prepare":"bun scripts/release.ts prepare","research:verify":"bun scripts/research.ts verify","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","build:inspector-web":"bun run --cwd apps/inspector-web build","example:host-claude":"bun run examples/host-claude-artifacts.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:projection-storage-scale":"bun scripts/run-projection-storage-scale-gate.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/Volumes/data/GoodMemory-external/v08-policy-authorized-20260914-1Bg9Fn/release-final-r4/goodmemory-0.8.0.tgz","_integrity":"sha512-QGw05kFCxlpADoOUYmztJ+i07zE9wKCV48Cd02JzvnCQyTLJEfIj3yh2cPkWz18DSizv3MUijOOX75W8hbw/4w==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.9.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ai":"6.0.143","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"3.0.49","@ai-sdk/anthropic":"3.0.64","@ai-sdk/provider-utils":"4.0.23","@ai-sdk/openai-compatible":"2.0.40","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.8.0_1789382621768_0.2872928334197311","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"goodmemory","version":"0.8.1","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"license":"MIT","_id":"goodmemory@0.8.1","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"homepage":"https://github.com/hjqcan/GoodMemory#readme","bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"dist":{"shasum":"5ced38c2d9730a02c05d719f074cdb8df9f9a5be","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.8.1.tgz","fileCount":278,"integrity":"sha512-Cv5fwHSBe3G+HabQRzF2JSGG7xz+v28AZEDOd4WC1+pmNKK7+6NRwyzAeb0OjOOlaPqgAa92zNWmYmOAwjY3SQ==","signatures":[{"sig":"MEUCIAripGZeAo6Wp/ppw/xHno2HOqcBHkiEWH81LyKMYfFUAiEA7eFx05Mxu5+0kKsUlh23tMMEFkwuPT3wLmaEynrk7Us=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCneZtdA12gc8vQl6hGkuokrCreHXN/vxPO6DdM2/lnqwIhAN/DnCOaQ80zg9JLX91tVcXnMkYfrhxgKyPX90Lg/l3T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4117766},"type":"module","_from":"file:/Volumes/data/GoodMemory-external/v0.8.1-release-ii7K40/final-artifacts/goodmemory-0.8.1.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json"},"mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","research:run":"bun scripts/research.ts run","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","research:list":"bun scripts/research.ts list","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","release:prepare":"bun scripts/release.ts prepare","research:verify":"bun scripts/research.ts verify","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","build:inspector-web":"bun run --cwd apps/inspector-web build","example:host-claude":"bun run examples/host-claude-artifacts.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:projection-storage-scale":"bun scripts/run-projection-storage-scale-gate.ts"},"_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"_resolved":"/Volumes/data/GoodMemory-external/v0.8.1-release-ii7K40/final-artifacts/goodmemory-0.8.1.tgz","_integrity":"sha512-Cv5fwHSBe3G+HabQRzF2JSGG7xz+v28AZEDOd4WC1+pmNKK7+6NRwyzAeb0OjOOlaPqgAa92zNWmYmOAwjY3SQ==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.9.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ai":"6.0.214","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"3.0.77","@ai-sdk/anthropic":"3.0.89","@ai-sdk/provider-utils":"4.0.33","@ai-sdk/openai-compatible":"2.0.54","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"tmp":"tmp/goodmemory_0.8.1_1790820978495_0.04980304864602392","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"_id":"goodmemory@0.8.2","bin":{"goodmemory":"scripts/goodmemory-cli.js","goodmemory-mcp":"scripts/goodmemory-mcp.js","goodmemory-http-bridge":"scripts/goodmemory-http-bridge.js"},"bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"dist":{"shasum":"1c4913c122c6730b8445ed05801e6904155aa7ce","tarball":"https://registry.npmjs.org/goodmemory/-/goodmemory-0.8.2.tgz","fileCount":291,"integrity":"sha512-l6ruShHTiZMXp3PZ/GATXLsjfNk4pu+tgpMl5idbXxsFA9gSj4O9GZeNLG6eTey56ydWzTPFCKVKiFJ1u5WjuQ==","signatures":[{"sig":"MEUCIBEdjhco0ydiORzxFngoumZapisrYPMZiFCm70NNabdyAiEAv23KoNFmKDqfsYX9yUSPeX/drwkySO++hipv15efujU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGmsLDwE3BNQQydq1vnJtnIXpsbgRMHZTE9EGcDhMjqQAiAk52JmBc9Vcs61x+V9B4nyZYenMwZBwB0sSZwugHZPIQ=="}],"unpackedSize":4194857},"name":"goodmemory","type":"module","_from":"file:/Volumes/data/GoodMemory-external/v0.8.2-release-c02OT1/artifacts/goodmemory-0.8.2.tgz","types":"./dist/index.d.ts","engines":{"bun":">=1.3.14","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./host":{"types":"./dist/host/index.d.ts","import":"./dist/host/index.js"},"./http":{"types":"./dist/http/index.d.ts","import":"./dist/http/index.js"},"./ai-sdk":{"types":"./dist/ai-sdk/index.d.ts","import":"./dist/ai-sdk/index.js"},"./runtime-kit":{"types":"./dist/runtime-kit/index.d.ts","import":"./dist/runtime-kit/index.js"},"./package.json":"./package.json","./experimental/shadow":{"types":"./dist/experimental/shadow.d.ts","import":"./dist/experimental/shadow.js"}},"license":"MIT","mcpName":"io.github.hjqcan/goodmemory","scripts":{"test":"bun test","build":"bun run clean && bun run build:js && bun run build:types","clean":"rm -rf dist","prepack":"bun run build","test:ci":"bun run typecheck && bun run test:coverage && bun run scripts/run-ci-post-coverage-tests.ts","build:js":"bun run scripts/build-package.ts","test:all":"bun --config=bunfig.all.toml test tests third-party","eval:live":"bun run scripts/run-eval.ts --mode=live","test:eval":"bun test tests/eval","test:unit":"bun test tests/unit","typecheck":"bunx tsc --noEmit","eval:smoke":"bun run scripts/run-eval.ts --mode=smoke","goodmemory":"bun run scripts/goodmemory-cli.ts","test:watch":"bun test --watch","build:types":"bunx tsc -p tsconfig.package.json","eval:summary":"bun run scripts/summarize-eval.ts","example:chat":"bun run examples/basic-chat.ts","research:run":"bun scripts/research.ts run","eval:fallback":"bun run scripts/run-eval.ts --mode=fallback","research:list":"bun scripts/research.ts list","test:coverage":"bun run scripts/run-coverage.ts && bun run scripts/check-coverage.ts","goodmemory:mcp":"bun run scripts/goodmemory-mcp.ts","test:scenarios":"bun test tests/scenarios","release:prepare":"bun scripts/release.ts prepare","research:verify":"bun scripts/research.ts verify","eval:live-memory":"bun run scripts/run-eval.ts --mode=live-memory","test:integration":"bun test tests/integration","example:vercel-ai":"bun run examples/vercel-ai-chat.ts","fixtures:generate":"bun run scripts/generate-eval-fixtures.ts","example:host-codex":"bun run examples/host-codex-handoff.ts","build:inspector-web":"bun run --cwd apps/inspector-web build","example:host-claude":"bun run examples/host-claude-artifacts.ts","eval:storage:cleanup":"bun run scripts/cleanup-eval-postgres.ts","example:coding-agent":"bun run examples/coding-agent.ts","example:express-chat":"bun run examples/express-chat-server.ts","example:fastify-chat":"bun run examples/fastify-chat-server.ts","dev:inspector-fixture":"bun run scripts/run-phase-71-inspector-fixture.ts","eval:live-auto-memory":"bun run scripts/run-eval.ts --mode=live-auto-memory","eval:official-rescore":"bun run scripts/rescore-official-protocols.ts","example:ai-sdk-server":"bun run examples/plain-ai-sdk-server.ts","goodmemory:http-bridge":"bun run scripts/goodmemory-http-bridge.ts","eval:live-provider-memory":"bun run scripts/run-eval.ts --mode=live-provider-memory","example:reference-product":"bun run examples/reference-chat-product/backend.ts smoke","verify:selection-refactor":"bun run scripts/verify-selection-refactor.ts","example:life-coach-profile":"bun run examples/life-coach-remember-profile.ts","gate:public-benchmark-claim":"bun run scripts/run-public-benchmark-claim-gate.ts","gate:projection-storage-scale":"bun scripts/run-projection-storage-scale-gate.ts"},"version":"0.8.2","_npmUser":{"name":"hjqcan","email":"hjqcan@gmail.com"},"homepage":"https://github.com/hjqcan/GoodMemory#readme","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"_resolved":"/Volumes/data/GoodMemory-external/v0.8.2-release-c02OT1/artifacts/goodmemory-0.8.2.tgz","_integrity":"sha512-l6ruShHTiZMXp3PZ/GATXLsjfNk4pu+tgpMl5idbXxsFA9gSj4O9GZeNLG6eTey56ydWzTPFCKVKiFJ1u5WjuQ==","repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"workspaces":["apps/inspector-web"],"_npmVersion":"10.9.2","description":"Memory layer for chat, copilot, and agent applications.","directories":{},"maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"_nodeVersion":"22.14.0","dependencies":{"ai":"6.0.214","zod":"^4.3.6","sqlite-vss":"0.1.2","@ai-sdk/openai":"3.0.77","@ai-sdk/anthropic":"3.0.89","@ai-sdk/provider-utils":"4.0.33","@ai-sdk/openai-compatible":"2.0.54","@modelcontextprotocol/server":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"hyparquet":"1.26.2","@types/bun":"^1.3.14","typescript":"^5.8.3","@types/node":"^20.0.0","@modelcontextprotocol/client":"^2.0.0"},"goodmemoryRelease":{"status":"stable","npmDistTag":"latest","installCommandsApplyAfterPublish":true},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/goodmemory_0.8.2_1790922920661_0.9933021764718863"}}},"time":{"created":"2026-04-21T09:10:57.099Z","modified":"2026-10-02T06:35:20.965Z","0.1.0-rc.1":"2026-04-21T09:10:57.472Z","0.1.1":"2026-04-22T17:32:00.733Z","0.1.2":"2026-04-24T16:28:17.642Z","0.2.0":"2026-04-25T14:51:59.190Z","0.2.1":"2026-04-27T04:10:03.197Z","0.2.2":"2026-04-28T01:28:30.392Z","0.2.3":"2026-05-06T16:16:46.809Z","0.2.5":"2026-06-08T02:37:49.174Z","0.3.0":"2026-06-16T03:02:54.293Z","0.3.5":"2026-06-25T01:58:02.845Z","0.3.6":"2026-07-02T14:26:53.406Z","0.5.0":"2026-07-06T06:45:02.975Z","0.5.1":"2026-07-07T07:16:48.518Z","0.6.0":"2026-07-16T18:22:27.028Z","0.7.0":"2026-07-23T09:01:27.814Z","0.7.1":"2026-08-01T01:14:33.805Z","0.7.2":"2026-08-02T06:10:37.634Z","0.7.3":"2026-08-11T13:02:12.430Z","0.7.4":"2026-08-13T17:09:50.971Z","0.7.5":"2026-08-19T04:28:33.083Z","0.8.0":"2026-09-14T10:43:41.942Z","0.8.1":"2026-10-01T02:16:18.632Z","0.8.2":"2026-10-02T06:35:20.803Z"},"bugs":{"url":"https://github.com/hjqcan/GoodMemory/issues"},"license":"MIT","homepage":"https://github.com/hjqcan/GoodMemory#readme","keywords":["agents","ai","bun","copilot","llm","memory","node","typescript"],"repository":{"url":"git+https://github.com/hjqcan/GoodMemory.git","type":"git"},"description":"Memory layer for chat, copilot, and agent applications.","maintainers":[{"name":"hjqcan","email":"hjqcan@gmail.com"}],"readme":"# GoodMemory\n\n语言：[English](./README.md) | 简体中文\n\nGoodMemory 是面向 AI 产品和 coding agent 的记忆层。\n\n> **发布源码：**此源码面向 `0.8.2` 稳定版本。Registry 命令要求\n> `goodmemory@0.8.2` 已发布；只读 release workflow 对照本地生成的 manifest\n> 校验 npm `latest` 与已发布的 GitHub 制品，不重新打包或发布。\n\n它为 chat app、copilot 和 agent host 提供一条可审计的用户/项目记忆闭环：\n选择性写入事实，检索正确上下文，注入下一轮对话，记录发生过什么，并在记忆错误时删除。\n\nGoodMemory 不是 LLM、agent framework、向量数据库，也不是通用 RAG 系统。它位于你的应用或已安装 agent host 与模型运行时之间，专注做产品级 memory layer。\n\n## 你会得到什么\n\n- 稳定的记忆 API：`remember`、`recall`、`buildContext`、`feedback`、`forget`、`exportMemory`、`importMemory`、`deleteAllMemory`。\n- 面向 Codex 和 Claude Code 的已安装 agent 记忆：`goodmemory setup`、托管 hooks、Codex 已安装 pre-action、`goodmemory status`、只读 MCP、可选 writeback。\n- 公开的一等写入定制能力：`GoodMemoryConfig.remember`、`RememberProfile`、`rememberRules`、`RememberInput.annotations`、命名 extractor id。\n- 面向 npm 包的公开导出：`goodmemory`、`goodmemory/ai-sdk`、`goodmemory/host`、`goodmemory/http`，并提供编译后的 `dist` 与 TypeScript 声明文件。\n- Local-first 存储：Bun 默认使用本地 SQLite；需要时可以接 Postgres、注入 adapter、启用 embedding provider。\n- 面向发布的验证路径：确定性测试、live eval、provider-backed eval、package smoke、quality gate。\n\n## 从这里开始：Codex 或 Claude Code\n\n```bash\nnpm install -g goodmemory@0.8.2\ngoodmemory setup\n```\n\n无需注册账号或依赖托管服务。GoodMemory 默认把记忆保存在本地 SQLite 中，接入生命周期\nhooks 和只读 MCP 检查能力，并让持久写回保持可选。运行 `goodmemory status` 即可核验安装。\n\n使用其他 MCP client，或要接入自己的应用？请[选择对应的接入路径](#选择你的接入路径)。\n\n## 基准结果（Benchmark Results）\n\nGoodMemory 把「当前生产声明」「带版本的历史证据」和「内部研究」分开呈现。一个数字只有在\n当前包版本的已提交 declaration 通过 `gate:public-benchmark-claim --strict` 后，才能进入\n当前声明表。当前没有端到端 benchmark runner 进入 allowlist，因此 current 与\nhistorical 晋级都 fail closed。stored-answer rescorer 与旧 presentation projection\n不能打开该边界，也不能通过自由填写 README 分数或披露片段来自证。\n\nGoodMemory `0.8.2` 没有当前或带版本的历史 benchmark 声明。保留的 v0.7.3\nLoCoMo projection 不是端到端 runner evidence，因此现已降为内部诊断。\nv0.6.0 的 LoCoMo、BEAM、MemoryAgentBench 测量与 ImplicitMemBench 也都属于内部诊断。\nLongMemEval 已撤下并等待 clean rerun：历史 rules-only 路径使用了 answer annotation，\n后来的 label-free 路径又把原始 `answer_*` session ID 暴露给检索和 reader。\nImplicitMemBench 的 retry-merged 结果仍属于内部证据，因为它不能替代一次全新的单体\nFull-300 运行。HaluMem、MemGym 与 MINTEval 继续作为 release evidence，不进入公开\nbenchmark 声明。\n\n<!-- current-claims-table:start -->\n当前没有 benchmark 结果被表述为在 `0.8.2` 上测量。\n<!-- current-claims-table:end -->\n\n### 带版本证据\n\n目前没有端到端 benchmark runner 被 allowlist 为带版本历史证据 producer。\n\n<!-- historical-evidence-table:start -->\n当前没有 benchmark 结果符合带版本历史证据要求。\n<!-- historical-evidence-table:end -->\n\n保留的 v0.7.3 LoCoMo projection 仍可在仓库中审计，但不再作为 verified package\nartifact 发布，也不能授权公开或带版本声明。不会回填旧 artifact；未来必须同时实现\n真实端到端 producer 与 verifier 才会开放晋级。\n\n在两条轨都存在时会同时报告它们。**严格轨**是确定性或 judge-free 评分——任何 LLM 判官\n都无法夸大的硬下限。第二条轨把*同一批已存答案*（不重新生成）用基准来源或业界标准\nprompt 重判。只有 evaluator model 与其余冻结配置也匹配时，才主张数值可比。每个协议\n细节都记录在链接的 claim declaration 里。\n\nLongMemEval declaration 现在是 `paused_boundary`，不再属于历史证据。旧数字只为保留\n审计链而存在；在 opaque-session-id、label-free 的 Full-500 clean rerun 替换它们之前，\n不得引用为 GoodMemory 成绩。见\n[withdrawal declaration](./benchmark-claims/longmemeval.json)。\nv0.6.0 的 BEAM、MemoryAgentBench 与 LoCoMo 测量仅保留为内部诊断。它们的 metric\nartifact 不通过空的端到端 runner allowlist，因此不能列为 versioned historical evidence。\n\nImplicitMemBench Full-300 stored-answer rescore 使用 canonical zero-failure\n`run-phase61-full300-rerun-20260706-codex-current` 的答案，再用 gpt-5.4 对\n同一批 stored answers 重评（`sourceAnswersUnchanged: true`）。判官是\ncross-version，但仍是与 gpt-5.5 回答模型相同的 same GPT family，不是\ncross-family judge。记录分数是 **0.691**（207.35/300），对照\nupstream-chat 基线 **0.400**（120/300）；baseline 与 GoodMemory 两臂合计\n530 个 judge-required row decisions，确定性的 `structured_first_action` 行\n直接沿用而不是交给判官。旧的同模型诊断分数是 0.708，不作为公开声明。最近\n改动后的 freshest clean answer-regeneration drift check 得分为 0.6895，且\n`executionFailures: 0`；它说明当前 checkout 有漂移，但不替代 stored-answer\n可比协议 artifact。其 measured source 没有在显式 JSON path 上同时提供 package\nversion 与 commit，因此该结果暂停为内部诊断，不再列作 versioned historical\nevidence。数据集 CC BY 4.0，eval 时拉取、从不 vendor。\n\n### 内部诊断（非公开声明）\n\nLongMemEval 首个 current-recall assembly development slice 已被取代：虽然\nreader context 不含 raw session ID，但 memory-builder 边界仍收到带 gold\n信息的 session ID 和 turn marker。更严格的 v2 协议会在构建记忆前移除\nanswer、question type、answer marker 和 raw session identity。必须先在 clean\ncommit 上重跑 development，仍封存的 holdout 才能打开；这不会恢复任何\nLongMemEval claim。\nImplicitMemBench 的显式 retry-merged\n检查达到 0.6923666667 且零失败，但不能替代一次全新的单体 Full-300 运行，因此两者\n都不进入 current-claims table。底层报告位于 gitignored 的 `reports/` 下，可按记录\n命令复现。\n\n执行顺序见 [task-board/00-README.txt](./task-board/00-README.txt)，claim boundary 见\n[docs/GoodMemory-Current-Status-and-Evidence.md](./docs/GoodMemory-Current-Status-and-Evidence.md)。\n\n## 选择你的接入路径\n\nGoodMemory 有三类主要产品入口。它不是只有这些 API：`goodmemory/host`、\n自定义存储、eval tooling、runtime helper 等底层能力都存在，但它们是服务于\n这些主路径的支撑能力，不是新用户首先要选的入口。\n\n### 自主 agent？从这里开始\n\n如果你是一个想给*自己*接上持久记忆的 agent，匹配下面一条路径直接执行即可。\n这棵决策树的机器可读版本在 [llms.txt](./llms.txt) 和\n[.well-known/goodmemory.json](./.well-known/goodmemory.json)（部署后的 bridge\n也会在 `/.well-known/goodmemory.json` 提供该 descriptor）。\n\n- **你是、或运行在 Claude Code / Codex 里** →\n  `npm install -g goodmemory@0.8.2 && goodmemory setup`。不确定环境里已经装了\n  什么？运行 `goodmemory adopt`（加 `--json` 得到机器可读方案）：它会检测\n  `.claude/`、`.codex/` 和已有的 MCP 配置，并打印出针对你环境的确切下一条命令。\n- **你支持 MCP**（Cursor、Windsurf、Cline、Claude Desktop、Gemini CLI、\n  OpenCode 或自定义客户端）→ 加上\n  [standalone MCP server](#standalone-mcp-for-any-client)；你需要的两个工具是\n  `goodmemory_get_context`（召回）和 `goodmemory_remember`（可选写入）。\n- **你是框架 agent 或后端** → 调用\n  [HTTP bridge](#pythonfastapi-http-bridge)：托管实例 `goodmemory.vibenest.net`，\n  或用 `goodmemory-http-bridge --recommended`（也可用\n  `GOODMEMORY_PROFILE=agent-recommended goodmemory-http-bridge`）自托管；Python\n  调用方用 `pip install goodmemory-client`。\n\n下面的散文路径会展开每个选项。\n\n### 1. 给其他 agent、chatbox、copilot 接入记忆\n\n适用于你拥有产品 server 和模型调用链的场景。在 Node/Bun 服务里安装\n`goodmemory`，创建一个 `memory` 实例，并传入稳定的 `scope`，例如 `userId`、\n`workspaceId`、`sessionId`，以及可选 `agentId`。\n\n请求流程是：\n\n1. 模型调用前，用当前 scope 和 query 执行 `recall()`。\n2. 用 `buildContext()` 把 recall 命中变成 prompt fragment。\n3. 带着这段 memory context 调用你的模型。\n4. 响应后，用 `memory.jobs.enqueueRemember()` 或 `remember()` 写入经过筛选的信号。\n5. 用 `feedback()`、targeted `reviseMemory()`、`forget()`、`exportMemory()`\n   做纠正、删除和用户审计；`importMemory()` 可以恢复导出快照，或把一个\n   Markdown 页面目录作为 `note` 记忆导入。\n\n如果你的 server 已经使用 Vercel AI SDK，可以通过 `goodmemory/ai-sdk` 包装\n`generateText()` 或 `streamText()`，不用手写完整 loop。先看\n[应用集成快速开始](#应用集成快速开始)，使用 AI SDK 时再看\n[AI SDK Adapter](#ai-sdk-adapter)。\n\n### 2. 给 Codex 或 Claude Code 加强记忆\n\n适用于你想让已安装的 coding agent 记住项目和用户上下文，但不想改 agent\n自身实现。安装全局 CLI，然后运行 `goodmemory setup`。\n\n已安装 host 的流程是：\n\n1. `session-start` 注入会话开场简报；`user-prompt-submit` 注入逐 prompt 上下文\n   （新安装带相关性闸，低信号 prompt 不打扰）。\n2. Claude Code 的 `Stop` hook 从会话 transcript（`transcript_path`）逐轮捕获受\n   治理的 writeback 候选——有界、脱敏、绝不落原始 transcript；Codex 侧用\n   `goodmemory codex writeback --from-rollout` 把最新会话 rollout 喂进同一条管线。\n3. Codex 的 `pre-tool-use` 会把高风险 Bash 拦到同一条 installed config 和\n   storage 路径上的 `goodmemory codex action`。\n4. MCP 提供 trace、context、stats 和 artifact inspection；`goodmemory_remember`\n   写工具通过 `mcp.allowWrite`（或 `goodmemory enable <host> --mcp-allow-write`）\n   显式开启。\n5. 脚本化安装的 writeback 保持 `off`；交互安装与 `goodmemory setup --recommended`\n   （一次同意确认）启用 `selective` 持久写——`writeback inspect` 可审计、\n   `writeback forget --event-id` 可撤销。\n6. 新安装默认踩上实测的 BM25 hybrid 检索档，会话简报 1024 token、逐 prompt\n   512 token 带闸注入；`goodmemory status` 展示检索档位、捕获实况与注入遥测。\n   可选 `sharedAgents` 配置让一个 host 读到另一个 host 的记录（写入保持归属）。\n\n先看 [快速开始：让 Codex 或 Claude Code 拥有记忆](#快速开始让-codex-或-claude-code-拥有记忆)。\n准备 review 或启用写入时，再看 [Installed Host Writeback：已安装主机写回](#installed-host-writeback已安装主机写回)。\n\n### 3. 把 GoodMemory 部署成后端记忆层服务\n\n适用于另一个后端要把 GoodMemory 当服务调用的场景，尤其是 Python/FastAPI\n后端，或 OneLife 这类应该把记忆留在服务端、而不是把 GoodMemory 打包进移动端\n或浏览器端的产品。\n\n在 Node/Bun sidecar 中部署 packaged `goodmemory-http-bridge`。你的后端调用：\n\n- `/memory/recall-context`：在自己的模型调用前取 prompt-ready context\n- `/memory/remember`：写入用户确认或产品策略允许的信号\n- `/memory/feedback`：记录 procedural correction\n- `/memory/export` 和 `/memory/forget`：做审计和删除\n- `/memory/revise`：按显式 memory id 做 targeted correction\n- `/memory/import`：恢复导出快照或导入 Markdown 页面\n\n你的服务仍然负责 auth、产品策略、UI 和模型编排。GoodMemory 负责 memory\nstorage、recall、context assembly、write governance，以及 audit/export/delete。\n先看 [Python/FastAPI HTTP Bridge](#pythonfastapi-http-bridge)——官方 Python\n客户端（`pip install goodmemory-client`）和一个托管 bridge 实例\n`goodmemory.vibenest.net` 都在那里——再看\n[Runtime 与存储](#runtime-与存储) 选择 SQLite/Postgres。\n\n在一轮模型调用中，GoodMemory 做四件事：\n\n1. 按当前 `scope` 解析记忆。\n2. 生成可以直接放进 prompt 的上下文片段。\n3. 在你的应用或 host 允许时，记录经过筛选的响应后信号。\n4. 提供审计、纠正、导出和删除路径，让用户能控制记忆。\n\n你的应用或已安装 agent 仍然负责 auth、UI、model call 和产品策略。\nGoodMemory 负责 memory loop 和存储边界。\n\n## 安装\n\n以下命令面向发布后的 GoodMemory `0.8.2`。下面的锁定版本命令用于可复现安装。\n\n如果你想给已安装的 coding agent 增加记忆能力，使用全局 CLI：\n\n```bash\nnpm install -g goodmemory@0.8.2\ngoodmemory setup\ngoodmemory status\n```\n\n如果你是在应用里集成 GoodMemory，作为项目依赖安装：\n\n```bash\nnpm install goodmemory@0.8.2\n```\n\n如果你想直接输入 `goodmemory`，必须安装全局 CLI。\n项目内 `npm install goodmemory@0.8.2` 不会把 `goodmemory` 放进 shell 的 `PATH`。\n这种本地依赖安装只能从该项目里用 `npx goodmemory`、\n`npm exec -- goodmemory` 或 `./node_modules/.bin/goodmemory` 调用。\n\n```bash\nnpx goodmemory -V\n```\n\nBun 项目可以直接安装：\n\n```bash\nbun add goodmemory@0.8.2\n```\n\n发布前 tarball 验证：\n\n```bash\nnpm install ./goodmemory-0.8.2.tgz\n```\n\n已安装 CLI 的非版本命令由 Bun 支撑。package bin 对 `goodmemory -V` 和 `goodmemory --version` 是 Node-safe 的；其他命令会委托给 Bun。\n\n## 快速开始：让 Codex 或 Claude Code 拥有记忆\n\n大多数用户最先需要的是 installed-host memory。\n\n```bash\nnpm install -g goodmemory@0.8.2\ngoodmemory setup\ngoodmemory status\n```\n\n`goodmemory setup` 会检测 Codex 和 Claude Code，安装托管 host wiring，并交互式询问：\n\n- host：`codex`、`claude`，或检测到的两个 host\n- activation：全局启用、当前 workspace 启用，或手动 opt-in\n- GoodMemory user id\n- 可选 Postgres 存储\n- 可选 embedding provider\n- 可选 LLM extraction provider\n- writeback 模式：`off`、`observe`、`review` 或 `selective`\n\n交互式 setup 默认走全局 activation，并使用 workspace 派生隔离。对新的 host config，交互式流程会推荐 `selective`，让高信号写入立即生效，同时保留 audit 和 undo；如果你想先人工审批，再选择 `review`。已有 host config 在接受 prompt 默认值时会保持当前 writeback 模式。自动化安装可以使用 `--json` 或 `--no-interactive` 保持脚本安全。跳过 provider 配置也可以：GoodMemory 仍然会使用本地 SQLite 和 rules-only extraction 工作。\n\n常用命令：\n\n```bash\ngoodmemory setup --host codex\ngoodmemory status codex --workspace-root .\ngoodmemory enable codex --workspace-root . --writeback observe\ngoodmemory enable codex --workspace-root . --writeback review\ngoodmemory inspector serve\ngoodmemory enable codex --workspace-root . --writeback selective\ngoodmemory disable codex --workspace-root .\ngoodmemory uninstall codex\n```\n\n已安装 host 路径由四部分组成：\n\n- Codex 托管 pre-action：`pre-tool-use` 会 deny 或 redirect 高风险 Bash，\n  `goodmemory codex action` 在和 recall/writeback 相同的 installed\n  config、storage、provider、scope 路径上执行经过评估的 first step。\n- Recall injection：`session-start` 和 `user-prompt-submit` hooks 调用 `recall()` 与 `buildContext()`；当配置、解析或存储不可用时 fail open。\n- 深度 inspection：`goodmemory mcp serve --host codex` 和 `goodmemory-mcp --host codex` 暴露只读 context、trace、stats 与 artifact tools。\n- 可选 writeback：`session-stop` 与显式 writeback 命令可以把经过筛选的 after-response 信号写入 durable memory。\n\n## Standalone MCP：任意 MCP 客户端接入\n\n没有托管安装路径的 host（Cursor、Windsurf、Cline、Claude Desktop、Gemini CLI、\nOpenCode 或你自己的 MCP 客户端）可以用 standalone 模式运行同一个 MCP\nserver——不需要 `goodmemory setup`，也不需要任何 host 配置文件。scope 与\nstorage 来自 flags/env；服务面与已安装模式相同（8 个只读工具 + 可选的受治理写工具）：\n\n```json\n{\n  \"mcpServers\": {\n    \"goodmemory\": {\n      \"command\": \"goodmemory-mcp\",\n      \"args\": [\"--standalone\", \"--user-id\", \"YOUR_USER_ID\"]\n    }\n  }\n}\n```\n\n等价命令：`goodmemory-mcp --standalone --user-id <id>`（需要 PATH 上有\nBun；`GOODMEMORY_USER_ID` 是 flag 的 env 回退）。`--allow-write`（或\n`GOODMEMORY_MCP_ALLOW_WRITE=1`）注册 `goodmemory_remember` 写工具，写入走\n正常的受治理 remember 管线。已安装 host 写入的记忆带 agent 标签、默认对其\n私有；加 `--agent-id codex` 并共享 `--storage-url` 才能选入读取。完整\nflag/env 矩阵、scope 说明与各 host 配方见\n[docs/GoodMemory-Standalone-MCP-Setup-Guide.md](./docs/GoodMemory-Standalone-MCP-Setup-Guide.md)\n（[Cursor](./docs/GoodMemory-Cursor-Setup-Guide.md) ·\n[Gemini CLI](./docs/GoodMemory-Gemini-CLI-Setup-Guide.md) ·\n[OpenCode](./docs/GoodMemory-OpenCode-Setup-Guide.md)）。\n\n## Installed Host Writeback：已安装主机写回\n\nInstalled Host Writeback 是 opt-in 的。runtime 默认配置和新的脚本化安装在没有显式选择时仍保持 `off`；已有配置在没有显式 override 时保持当前 writeback 模式，可能是 `off`、`observe`、`review` 或 `selective`。新的交互式安装会推荐 `selective`，让高信号写入立即生效，同时保留 audit 和 undo；如果你想先人工审批，再选择 `review`。\n\n需要先看候选时用 `observe`；需要人工审批时用 `review`；准备自动写入时用 `selective`：\n\n```bash\ngoodmemory enable codex --writeback observe\ngoodmemory codex writeback --json\n\ngoodmemory enable codex --writeback review\ngoodmemory inspector serve\n\ngoodmemory enable codex --writeback selective\ngoodmemory codex writeback --json\n```\n\n`goodmemory inspector serve` 会打开内置的本地 React 管理台，用于查看用户与\nscope、分类记忆与 supersession 历史、处理候选、检查召回证据 trace 和审计事件。\n启动 token 只通过 URL fragment 进入页面，随后立即清除并存入 session storage，\nAPI 仅使用 Bearer header。修订与破坏性操作还要求二次确认、ETag 和幂等键。详见\n[Inspector 与 Admin API](./docs/GoodMemory-Inspector-and-Admin-API.md)。\n\nwriteback 规则：\n\n- `off`：不做 after-response 记忆抽取。\n- `observe`：把有界/redacted candidate preview 写入本地 audit ledger 供 review；不保存 raw transcript，也不写 durable memory。\n- `review`：把有界/redacted 候选放入 Inspector 审批队列；operator 批准前不写 durable memory。\n- `selective`：把选中的候选通过公开 `remember` surface 写入。\n- 原始 transcript 不会被当作 memory 持久化。\n- assistant 产出的内容默认不能直接成为 durable memory；除非 host 明确确认或验证，并且当前 profile 允许。\n- `remember: \"never\"` 会在 deterministic、custom、assisted extraction 之前屏蔽被标注内容。\n\n审计和撤销：\n\n```bash\ngoodmemory codex writeback inspect --json\ngoodmemory codex writeback forget --event-id <event-id> --review-outcome false_write\n```\n\naudit ledger 保存有界的 redacted candidate preview、candidate key、类型化 linked record id、状态、原因、host、mode、时间戳、scope/session digest，以及可选人工 review 元数据。它不保存原始 host payload。`forget --event-id` 会先通过公开 `forget()` 删除 durable audit event 的 linked memory/evidence records，再把事件标记为 forgotten；对 observe-only event，它只会标记为 dismissed，不调用 `forget()`。\n\nClaude Code 对 hook 和 writeback 命令有确定性 CLI parity；Codex 是当前 canonical live-evidence path。\n\n## 脚本化 Host 安装\n\n当你需要完全非交互安装时，使用 `goodmemory install <host>`：\n\n```bash\ngoodmemory install codex \\\n  --user-id <user-id> \\\n  --activation-mode global \\\n  --writeback observe \\\n  --storage-provider postgres \\\n  --storage-url \"postgres://user:pass@host:5432/goodmemory\" \\\n  --embedding-provider openai \\\n  --embedding-model text-embedding-3-small \\\n  --embedding-api-key <key> \\\n  --llm-provider openai \\\n  --llm-model gpt-4o-mini \\\n  --llm-api-key <key> \\\n  --no-interactive\n```\n\n托管配置位于 `~/.goodmemory/<host>.json`。带 provider flags 重复运行 install 会更新同一个配置，并保持 MCP/hook 注册幂等。卸载 npm 包不会删除 `~/.goodmemory`、repo-local `.goodmemory`、本地 SQLite 文件或远端 Postgres 数据。使用 `goodmemory uninstall <host>` 移除托管 host wiring；使用 `goodmemory forget ...` 或显式存储删除来移除记忆数据。\n\n## 应用集成快速开始\n\n当你在构建 chatbox、copilot 或产品 agent 时，使用 root package。推荐的 Node\n服务路径就是 Express 和 Fastify 示例所用的同一条 thin loop。更完整的接入演练见\n[docs/GoodMemory-15-Minute-App-Integration.md](./docs/GoodMemory-15-Minute-App-Integration.md)。\n\n```ts\nimport type { GoodMemoryTraceSpan } from \"goodmemory\";\nimport { createGoodMemory } from \"goodmemory\";\n\nconst traceSpans: GoodMemoryTraceSpan[] = [];\n\nconst memory = createGoodMemory({\n  observability: {\n    traceSink: {\n      emit(span) {\n        traceSpans.push(span);\n      },\n    },\n  },\n});\n\nconst scope = {\n  userId: \"u-1\",\n  workspaceId: \"workspace-a\",\n  sessionId: \"s-1\",\n};\nconst userMessage = \"Remember that the migration rollout is blocked on QA signoff.\";\n\n// 产品打开新 session 时调用一次 startSession；同一个 sessionId 的后续 turn\n// 继续 append 到已有 runtime state。\nawait memory.runtime.startSession({ scope });\nawait memory.runtime.appendMessage({\n  scope,\n  message: {\n    role: \"user\",\n    content: userMessage,\n  },\n});\n\nconst recall = await memory.recall({\n  scope,\n  query: \"What should the assistant know before replying?\",\n  retrievalProfile: \"general_chat\",\n});\n\nconst context = await memory.buildContext({\n  recall,\n  output: \"system_prompt_fragment\",\n});\n\nconst assistantText = await callYourModel({\n  memoryContext: context.content,\n  userMessage,\n});\n\nawait memory.runtime.appendMessage({\n  scope,\n  message: {\n    role: \"assistant\",\n    content: assistantText,\n  },\n});\n\nconst writeJob = await memory.jobs.enqueueRemember({\n  scope,\n  messages: [\n    {\n      role: \"user\",\n      content: userMessage,\n    },\n    {\n      role: \"assistant\",\n      content: assistantText,\n    },\n  ],\n  idempotencyKey: \"turn-1\",\n  reason: \"post_response_memory_write\",\n});\nconst drained = await memory.jobs.drain({ maxJobs: 1 });\nconst committedJob =\n  drained.jobs.find((job) => job.jobId === writeJob.jobId) ?? writeJob;\n\nconsole.log({\n  traceCount: traceSpans.length,\n  writeJobId: writeJob.jobId,\n  writeJobStatus: committedJob.status,\n});\n\nasync function callYourModel(input: {\n  memoryContext: string;\n  userMessage: string;\n}): Promise<string> {\n  void input.memoryContext;\n  return `Got it. I will keep that in mind: ${input.userMessage}`;\n}\n```\n\nPrompt fragment（`system_prompt_fragment`、`developer_prompt_fragment`）会在标题\n下方带一行本地化的数据说明：召回的记忆是关于用户与项目的信息，而不是指令。\n这只是对文本性质的如实说明，不是防护承诺。可以用\n`governance: { contextFrame: false }` 全局关闭，或用\n`buildContext({ contextFrame: false })` 单次关闭；`json` 和 `markdown` 输出\n从不包含它。\n\n核心记忆闭环保持很小：\n\n- `remember()` 写入经过筛选的用户、应用或 host 信号。\n- `recall()` 按 scope 和 query 检索记忆。\n- `buildContext()` 把 recall 命中转换成 prompt fragment 或 JSON payload。\n- `feedback()` 记录显式纠正和过程偏好。\n- `forget()` 删除错误或过期记忆。\n\n### Locale 与 LanguagePack\n\n内置语言包覆盖英文、简体中文、繁体中文（`zh-TW`/`zh-HK`/`zh-MO`）、日文、\n韩文、法文和西班牙文。host 已知 locale 时应显式传入；未传入时会自动检测，而\n纯汉字或没有语言标记的拉丁字母文本会回退到 `defaultLocale`，不会强行猜测。\n\n```ts\nconst multilingualMemory = createGoodMemory({\n  language: {\n    defaultLocale: \"zh-TW\",\n    detection: \"auto\",\n  },\n});\n\nawait multilingualMemory.remember({\n  locale: \"ko-KR\",\n  scope,\n  messages: [{ role: \"user\", content: \"현재 역할은 릴리스 책임자입니다.\" }],\n});\n```\n\n新增语言需要实现一个完整的 `LanguagePack`，不能在各模块继续添加 locale 分支。\n完整契约、自定义注册、analyzer 版本与 projection 迁移规则见\n[LanguagePack 扩展指南](./docs/GoodMemory-LanguagePack-Extension-Guide.md)。\n\n从旧 adapter/projection 契约升级是有意的 breaking change，请按\n[0.6 到 0.7 迁移指南](./docs/GoodMemory-0.6-to-0.7-Migration-Guide.md)执行。\n\n生产应用接入时，推荐的 turn loop 会在这个核心闭环外增加受治理的\nruntime 层：\n\n- `memory.runtime.startSession()` 和 `memory.runtime.appendMessage()` 维护\n  当前 session 状态，不把 raw transcript 当作默认 durable memory。\n- `memory.jobs.enqueueRemember()` 用 idempotency 和可见 job 状态安排\n  after-response 写入。\n- `memory.jobs.drain()` 在当前 in-memory scheduler 中提交队列写入；生产\n  服务应放在 worker 或请求相邻 job loop 中执行。\n- `GoodMemoryConfig.observability.traceSink` 接收 redaction-safe trace，\n  覆盖 remember、recall、context、revise、forget、export 和 job events。\n- `memory.reviseMemory({ target: { memoryId } })` 只按显式 `memoryId`\n  修正已知记忆，不做模糊文本选中。\n- `exportMemory()` 提供用户可审计、可导出的记忆视图；其中的 `pages/` 是\n  兼容 memoryfield 的 note 页面目录，附带 SHA-256 manifest。\n- `memory.importMemory({ source })` 按 id 重新导入导出快照，或把页面导入为\n  `note` 记忆；`expectedSha256` 会在写入前校验输入。\n- `governance.fileMirror: { root, scope }` 在 `scope` 内每次持久写入后把导出\n  bundle 以只读形式镜像到磁盘（去抖、原子目录切换）。一个 root 只服务一个\n  durable scope；镜像只是投影：永远不会被读回，也不会让写入失败。\n\nRuntime archive 默认不持久化。显式调用\n`memory.runtime.endSession({ scope, archive: \"off\" })` 会清理 session state，\n但不会写入 archive。即使产品选择启用 archive，也应保持 summary-only，\n不要把 raw transcript 当作默认记忆来源。\n\nserver 集成先从 thin examples 开始：\n[examples/express-chat-server.ts](./examples/express-chat-server.ts) 或\n[examples/fastify-chat-server.ts](./examples/fastify-chat-server.ts)。\nPython/FastAPI 后端使用下文的 packaged `goodmemory-http-bridge` 路径。\n\n## 可选 Recall 调优：推荐 preset、多跳、本地 Embedding 与对话事实抽取\n\n下面这些选项都是 opt-in 且默认保守。默认 recall 是单遍、rules-only，默认抽取也保持不变，不开启就不会改变行为。推荐 preset 有完整的 provider-free 本地路径；embedding 与抽取 provider 只增加可选通道，并非启动条件。\n\n### 一键推荐检索 preset\n\n`retrieval.preset: \"recommended\"` 用一个 flag 启用通用检索和条件式对话抽取：\n\n```ts\nconst memory = createGoodMemory({\n  retrieval: { preset: \"recommended\" },\n});\n```\n\n激活后它会：(a) 建立 memory、field、sentence 三种粒度的检索投影；(b) 用 RRF 融合 BM25、直接实体邻接，以及可用时的神经 dense 候选；(c) 使用有上限的动态候选预算；(d) 把 `auto` 路由偏置到 hybrid。显式 per-call strategy 仍然优先，`strategy: \"rules-only\"` 会绕过通用融合。没有神经 embedding 时，检索保持本地、确定性、零网络；有 embedding 时增加 `topK: 16` 的 dense 通道。当抽取模型已可解析且 `mode` 未显式设置时，preset 才把抽取翻转为 `mode: \"conversational\"`，从不自行注入 provider。不设 `preset` 时默认行为保持不变。\n\n要求与边界：\n\n- 不要求 provider。`GOODMEMORY_EMBEDDING_*`、`providers.embedding` 或神经 `adapters.embeddingAdapter` 会增加可选 dense 通道；下方 Ollama 配方提供零出境神经路径。`createLocalEmbeddingAdapter()` 与 preset 配对时会被拒绝，因为哈希词法向量会重复 BM25 信号并冒充 dense 语义证据。\n- 用 `inspectGoodMemoryRuntime(memory).retrievalPreset` 检查解析结果——其 `extraction` 字段报告写时那一半是否生效（`\"conversational\"`）或抽取器不可用/保持原样。\n- preset 只覆盖记忆检索与条件式抽取；answer prompt 与 abstention policy 仍由应用负责。\n- 除非明确需要旧的加法 BM25 排序槽，否则不要再设 `bm25Ranking: true`；通用融合已有独立 BM25 候选通道。\n- 若你用 env 解析抽取并采用 preset，写时输出会变为会话式原子事实；退路是显式 `providers.extraction` 对象加 `mode: \"default\"`。\n\n### 可选 pointwise reranker\n\n当融合后的候选集合已经有用、但最终顺序仍有噪声时，可配置第一方\nOpenAI-compatible pointwise reranker：\n\n```ts\nconst memory = createGoodMemory({\n  retrieval: { preset: \"recommended\" },\n  providers: {\n    reranking: {\n      provider: \"openai\",\n      model: process.env.RERANKING_MODEL!,\n      apiKey: process.env.RERANKING_API_KEY!,\n      baseURL: process.env.RERANKING_BASE_URL,\n    },\n  },\n});\n\nconst result = await memory.recall({ scope, query });\nconsole.log(result.metadata.retrievalTrace?.reranker);\n```\n\n每条已选 fact 都通过独立的 query-document 调用评分，同一 prompt 不会放入兄弟候选。\nreranker 只重排确定性 recall 已接纳的 facts，不扩大成员集合，也不放宽 grounded\nabstention。provider 超时、schema 或 gateway 失败时，会原样返回确定性顺序，并在\n`retrievalTrace` 记录 `status: \"fallback\"` 与稳定原因。单次 recall 可用\n`rerank: false` 跳过；显式 `adapters.reranker` 始终优先于\n`providers.reranking`。provider reranker 默认请求超时为 15 秒；若网关需要不同\n延迟预算，可在 `providers.reranking` 中设置可选的正整数\n`requestTimeoutMs`。\n\ntrace 只包含有上限的 channel/RRF 归因、模型角色、已清洗 gateway、延迟、分数和\n前后排名，不包含 API key、query 文本或记忆正文。该能力是 opt-in，并会对 bounded\nrerank window 中的每条 fact 增加一次模型调用；provider-free recommended 路径不变。\n\n### 本地 embedding 端点（Ollama）\n\n推荐 preset 不依赖 embedding。若要增加零出境神经 dense 通道，`GOODMEMORY_EMBEDDING_BASE_URL` 接受任何 OpenAI-compatible 的 `/v1/embeddings` 端点，包括本地 Ollama。\n\n```bash\nollama pull nomic-embed-text        # 或 bge-m3（更强的多语言召回）\n\nexport GOODMEMORY_EMBEDDING_PROVIDER=openai\nexport GOODMEMORY_EMBEDDING_BASE_URL=http://localhost:11434/v1\nexport GOODMEMORY_EMBEDDING_MODEL=nomic-embed-text\nexport GOODMEMORY_EMBEDDING_API_KEY=ollama   # 任意占位值；Ollama 忽略它，但变量必须设置\n```\n\n- `provider` 保持 `openai`：它选择的是 OpenAI-compatible 线协议，不是厂商。\n- 一个存储只用一个 embedding 模型：不同模型/维度的向量不可比，换模型意味着重新 remember（重嵌入）语料。\n- 本地 embedding 质量与 `text-embedding-3-small` 不同；公开 LoCoMo 数字用的是 OpenAI 端点。此配方以零出境复现机制，不复现精确数字。\n- 这不是下方的 `createLocalEmbeddingAdapter()`——那是哈希词法、非语义，且会被推荐 preset 拒绝。\n\n### 可选多跳 recall（multiHop）\n\n`recall()` 默认单遍。传入 `multiHop: true` 启用 opt-in 两遍检索：先跑一遍查询，\n从第一遍证据里抽取桥接实体（bridge entities），用它们扩展查询，再跑第二遍。\n\n```ts\nconst recall = await memory.recall({\n  scope,\n  query: \"Who manages the project Alice started?\",\n  multiHop: true,\n});\n```\n\n- opt-in；不设置 `multiHop` 时默认 recall 保持单遍，行为不变。\n- 它**不是**通用语义检索器：按命名实体做词面桥接，不按语义排序。\n- 当第一遍 recall 很弱时它会**增加噪声**：第一遍捞错证据 → 桥接实体错 → 扩展查询\n  反而稀释 recall。在 LoCoMo（base retrieval 很低）上实测 `multiHop` **降低**了 recall。\n  所以不要用它来修对话 / 措辞差距类检索，那需要真正的语义检索。\n\n### 离线本地 embedding adapter\n\n`createLocalEmbeddingAdapter()` 是确定性、离线、零依赖的 embedding adapter\n（hashed 字符 n-gram 向量）。在不配置 embedding provider 时注入它做词面/形态层面的并列打破：\n\n```ts\nimport { createGoodMemory, createLocalEmbeddingAdapter } from \"goodmemory\";\n\nconst memory = createGoodMemory({\n  adapters: { embeddingAdapter: createLocalEmbeddingAdapter() },\n});\n```\n\n- 它**不是**神经语义检索：向量是 hashed 词面特征，只能在词面相似的候选之间打破并列，不理解语义。\n- **不要**用它来宣称语义 benchmark 提升：它无法弥合词面重叠已经错过的「问题↔文本」措辞差距。\n- 需要真正的语义排序时，请改为通过 `GOODMEMORY_EMBEDDING_*` 配置神经 embedding provider。\n\n### 可选对话事实抽取（conversational）\n\n默认情况下，配置了 `providers.extraction` 模型后的 assisted 抽取提取的是 durable 产品记忆——\nprofile、preference、reference、fact。把 `providers.extraction.mode` 设为 `\"conversational\"`，\n则改为在写入时把对话分解成自包含、已消解指代、实体与日期归一化的原子事实（atomic claim），\n这样后续检索匹配的是归一化后的事实，而不是原始对话轮。\n\n```ts\nconst memory = createGoodMemory({\n  providers: {\n    extraction: {\n      provider: \"openai\",\n      model: \"gpt-5.6-terra\",\n      apiKey: process.env.GOODMEMORY_ASSISTED_EXTRACTOR_API_KEY!,\n      baseURL: process.env.GOODMEMORY_ASSISTED_EXTRACTOR_BASE_URL,\n      mode: \"conversational\",\n    },\n  },\n});\n```\n\n适用于记忆来自多轮对话、且提问措辞与当时说法不同的 chat / agent 产品\n（「用户的经理是谁？」对「嗯我老板 Dana 批了」）。\n\n- opt-in；不设置 `mode`（或不配置 `providers.extraction`）就保持默认抽取行为，recall 排序路径不受影响。\n- 它是**写入时的一次 LLM 调用**：使用你配置的 chat 模型，因此会增加抽取延迟与 token 成本，\n  并且和任何 LLM 步骤一样可能漏掉或改写事实。原始对话轮仍是 ground truth。\n- 它**不是**语义检索：只是把存储文本归一化，让词面检索有更好的匹配面，不按语义排序。\n  它是针对对话措辞差距的「无 embedding 杠杆」，不替代神经 embedding provider。\n- 没有 held-out 验证前**不要**用它的数字宣称 benchmark 提升，也不要把抽取 prompt 调到某个 benchmark 的措辞上。\n\n## Runtime 与存储\n\n`createGoodMemory({})` 遵循 local-first auto-storage contract：\n\n- 显式传入 `storage.provider` 时，以显式配置为准。\n- 没有显式 storage 时，只有配置目标可以 bootstrap GoodMemory backend，才会使用 Postgres。\n- 在 Bun 上，零配置 durable storage 是本地 SQLite：`./.goodmemory/memory.sqlite`。\n- 在没有内置本地 SQLite adapter 的 Node runtime 上，零配置 storage 会 fallback 到 in-memory。\n- 不可用的内置 `sqlite` 或 `postgres` 显式选择会被报告为 unavailable，不会被误标成 durable。\n- 注入的 `documentStore`、`sessionStore`、`vectorStore` adapter 会被报告为 adapter-defined storage。\n- 没有 `GOODMEMORY_EMBEDDING_*` 时，运行时保持 `rules-only`。\n- 支持的本地 runtime 可以用 `sqlite-vss` 做 SQLite semantic indexing；不支持时仍保留 durable non-accelerated fallback。\n\n不要猜 runtime，直接检查：\n\n```ts\nimport { createGoodMemory, inspectGoodMemoryRuntime } from \"goodmemory\";\n\nconst memory = createGoodMemory({});\nconst runtime = inspectGoodMemoryRuntime(memory);\n\nconsole.log(runtime.storage);\n```\n\nSQLite vector 控制项：\n\n- `GOODMEMORY_SQLITE_VECTOR_MODE=off|prefer|require`\n- `GOODMEMORY_SQLITE_CUSTOM_LIBRARY_PATH`\n- `GOODMEMORY_SQLITE_VECTOR_EXTENSION_PATH`\n- `GOODMEMORY_SQLITE_VECTOR_EXTENSION_ENTRYPOINT`\n- `GOODMEMORY_SQLITE_VECTOR_SEARCH_FUNCTION`\n\n## 公开写入定制\n\n产品集成应该通过公开 `remember` surface 定制写入。不要把 test-only extractor seam 用作产品行为。\n\n```ts\nimport { createGoodMemory, rememberRules } from \"goodmemory\";\n\nconst memory = createGoodMemory({\n  remember: {\n    preset: \"default\",\n    profiles: [\n      {\n        id: \"life-coach\",\n        when: { agentId: \"life-coach\" },\n        rules: [\n          rememberRules.fact(/my top priority this quarter is (.+)/i, {\n            id: \"life-goal-priority\",\n            category: \"goal\",\n            tags: [\"life_coach\", \"long_term_goal\"],\n            attributes: { horizon: \"quarter\" },\n            content: ({ match }) => match[1] ?? \"\",\n          }),\n          rememberRules.preference(/please coach me with (.+)/i, {\n            id: \"life-coaching-style\",\n            category: \"coaching_style\",\n            value: ({ match }) => match[1] ?? \"\",\n          }),\n        ],\n        assistantOutputs: { mode: \"confirmed_or_verified_only\" },\n      },\n    ],\n  },\n});\n\nawait memory.remember({\n  scope: { userId: \"u-1\", agentId: \"life-coach\" },\n  messages: [\n    {\n      role: \"user\",\n      content: \"My top priority this quarter is rebuilding my sleep routine.\",\n    },\n  ],\n  annotations: [\n    {\n      messageIndex: 0,\n      remember: \"always\",\n      metadataPatch: { tags: [\"confirmed_by_host\"] },\n    },\n  ],\n});\n```\n\nProfile `extractors` 可以是原始 `MemoryExtractor`，也可以是命名 `{ id, extractor }`。真实产品集成建议使用命名 extractor，这样 remember events 和 eval reports 即使在 profile 组合顺序变化后，也能保留稳定 `extractorIds`。Remember events 也会携带解析后的 `profileId` 与 `presetId` 元数据。\n\n### 原文笔记（verbatim pages）\n\n抽取适合对话，但当 agent 想保留一整页内容（操作指南、runbook、踩坑经验）时，\n不应把它拆成句子级 fact。`note` 类型把消息正文原样存储、绝不按句拆分、在有\nembedding adapter 时整页嵌入，并在默认配置下作为独立的受限召回通道（对标题与\n正文做 BM25，长页面只要覆盖查询就能被召回）。正文上限 8,192 UTF-8 字节，更长\n的页面请拆分。同标题再次写入会带血缘地替换旧页；完全相同的页面会合并。\n\n```ts\nawait memory.remember({\n  scope,\n  messages: [{ role: \"assistant\", content: pageMarkdown }],\n  annotations: [\n    {\n      messageIndex: 0,\n      remember: \"always\",\n      confirmed: true,\n      kindHint: \"note\",\n      metadataPatch: { noteTitle: \"Reading MediaWiki sites as an agent\" },\n    },\n  ],\n});\n```\n\n同样的写入形态也提供为 MCP 工具 `goodmemory_write_note`、HTTP\n`POST /memory/remember` 上的 `kindHint: \"note\"` 注解，以及\n`goodmemory remember --kind note --title \"...\" --message \"...\"`。召回的笔记以\n`Notes` 段渲染，且在所有输出模式（包括 prompt fragment）中保留 Markdown 结构。\n笔记与其他类型一样受治理：有 scope、可脱敏、可修订、可遗忘、导出在\n`durable.notes` 下，并按标题索引到 `MEMORY.md`。\n\n## AI SDK Adapter\n\nGoodMemory 的 Node-compatible AI SDK 路径是一个普通 `Request -> Response` server handler，由 `createGoodMemory()` 和 `createGoodMemoryAISDK()` 组合而成。\n\n```ts\nimport { createGoodMemory } from \"goodmemory\";\nimport type { GoodMemoryStreamTextInput } from \"goodmemory/ai-sdk\";\nimport { createGoodMemoryAISDK } from \"goodmemory/ai-sdk\";\n\nconst memory = createGoodMemory({});\n\nconst aiSDK = createGoodMemoryAISDK({\n  memory,\n});\n\ntype MemoryChatRequest = Pick<\n  GoodMemoryStreamTextInput,\n  \"messages\" | \"query\" | \"scope\" | \"system\"\n>;\n\nfunction isMemoryChatRequest(value: unknown): value is MemoryChatRequest {\n  if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n    return false;\n  }\n\n  const candidate = value as Record<string, unknown>;\n  const scope = candidate.scope;\n  return Array.isArray(candidate.messages)\n    && !!scope\n    && typeof scope === \"object\"\n    && !Array.isArray(scope)\n    && typeof (scope as { userId?: unknown }).userId === \"string\"\n    && (scope as { userId: string }).userId.trim().length > 0;\n}\n\nexport async function handleMemoryChat(request: Request): Promise<Response> {\n  const body: unknown = await request.json();\n  if (!isMemoryChatRequest(body)) {\n    return new Response(\n      JSON.stringify({\n        error: \"Expected a request body with a messages array and scope.userId.\",\n      }),\n      {\n        headers: { \"content-type\": \"application/json; charset=utf-8\" },\n        status: 400,\n      },\n    );\n  }\n\n  const result = aiSDK.streamText({\n    messages: body.messages,\n    query: body.query,\n    scope: body.scope,\n    system: body.system,\n    model: {} as never,\n  });\n\n  return result.toTextStreamResponse();\n}\n```\n\n说明：\n\n- canonical server example 是 [examples/plain-ai-sdk-server.ts](./examples/plain-ai-sdk-server.ts)。\n- 更薄的 Express 与 Fastify 示例是\n  [examples/express-chat-server.ts](./examples/express-chat-server.ts) 和\n  [examples/fastify-chat-server.ts](./examples/fastify-chat-server.ts)。\n- `examples/vercel-ai-chat.ts` 保留为更底层的 wrapper/API 示例。\n- Next.js App Router 可以把 `export async function POST(request: Request)` 映射到同一段 handler 逻辑。\n- 第一条公开 server path 是 `ModelMessage`-first。\n- wrapper 通过 `recall()` 与 `buildContext()` 增强 `system`，并在 memory layer 出错时 soft-fail。\n\n## Python/FastAPI HTTP Bridge\n\n当 Python 后端需要把 GoodMemory 当作服务端 memory service 调用时，使用已打包的 HTTP bridge：\n\n```bash\nGOODMEMORY_HTTP_BRIDGE_TOKEN=\"replace-with-service-token\" \\\nGOODMEMORY_STORAGE_PROVIDER=postgres \\\nGOODMEMORY_STORAGE_URL=\"postgres://user:pass@host:5432/goodmemory\" \\\n./node_modules/.bin/goodmemory-http-bridge --profile life-coach\n```\n\nPython 调用方发送 `Authorization: Bearer <token>` 和 `x-goodmemory-*` scope\nheaders，调用 `POST /memory/recall-context`、`/memory/remember`、\n`/memory/feedback`、`/memory/export`、`/memory/import`、`/memory/forget`，以及只接受显式\n`memoryId` 的 `/memory/revise`。TypeScript bridge API 从 `goodmemory/http`\n导入。\n\n要通过 bridge 提供推荐检索 preset（多粒度 BM25 + 实体 + RRF，可选 dense），启动时加一个开关\n`--recommended`（或 `GOODMEMORY_PROFILE=agent-recommended` /\n`GOODMEMORY_HTTP_BRIDGE_RECOMMENDED=1`）。不配置 embedding 也可运行；\n`GOODMEMORY_EMBEDDING_*` 只增加 dense 通道。\n此后 `GET /healthz` 会报告 `retrievalTier` 与 `embeddingEnabled`，当前档位一眼\n可见；recall 请求默认 `strategy: \"auto\"`，preset 会把它路由到 `hybrid`。\n显式 `strategy: \"rules-only\"` 仍选择严格词法地板。\n\n也可以用 Docker 一条命令部署（自带 SQLite volume；加 compose 的 `postgres`\nprofile 可切 pgvector）：\n\n```bash\nGOODMEMORY_HTTP_BRIDGE_TOKEN=\"replace-with-service-token\" docker compose up -d\ncurl -fsS http://127.0.0.1:8739/healthz\n```\n\n`GET /healthz` 是免认证的存活探针，供容器、负载均衡与客户端 ready-wait 使用。\nPython 后端建议使用官方客户端——`pip install goodmemory-client`（[PyPI](https://pypi.org/project/goodmemory-client/)）——它从一个\n`Scope` 对象派生 caller headers、逐端点镜像冪等键规则，并在 recall 结果上暴露\n`routing`（静默的策略降级由此可见）。详见\n[docs/GoodMemory-Python-HTTP-Integration-Bridge.md](./docs/GoodMemory-Python-HTTP-Integration-Bridge.md)。\n\n**托管实例。** 一个在线的 GoodMemory bridge 运行在\n`https://goodmemory.vibenest.net`（存活探针：\n[`/healthz`](https://goodmemory.vibenest.net/healthz)）。用\n`GOODMEMORY_BRIDGE_HOST` / `--goodmemory-host`（或 `GoodMemoryClient` 的 host\n参数）把客户端指向它即可，替代本地 URL；它强制 bearer-token 鉴权，需自带\nservice token。这是一个单进程、可写的 API——对外公开前请加上限流与可丢弃的\nscope 数据，且切勿公开共享的写 token。\n\n## Host Adapter API\n\n当外部 host 需要 artifact 或 host-specific contracts，但不想导入内部模块时，使用 `goodmemory/host`。\n\n```ts\nimport { createGoodMemory } from \"goodmemory\";\nimport { createHostAdapter } from \"goodmemory/host\";\n\nconst memory = createGoodMemory({});\n\nconst adapter = createHostAdapter({\n  id: \"codex-handoff\",\n  hostKind: \"codex\",\n  memory,\n  readableArtifactTypes: [\"session_memory\"],\n});\n\nconst result = await adapter.readArtifacts({\n  scope: {\n    userId: \"u-1\",\n    workspaceId: \"workspace-a\",\n    sessionId: \"s-1\",\n  },\n  includeRuntime: true,\n});\n```\n\n模式：\n\n- `file-assisted`：读取编译出的 artifacts，例如 `MEMORY.md`、`user.md`、`session-memory/<sessionId>.md`、`playbooks/*.md`，但不把文件当作 canonical storage。\n- `file-authoritative`：可用于最小 writable subset。当前 subset 是 canonical `playbooks/*.md` 文件形态，会把结构化 deltas 写回 active validated-pattern feedback records。\n\n写入 guardrails：\n\n- prompt 和 skill snippet 文件仍然是 derived read-only outputs。\n- 高风险 guidance edit 需要显式 `verifyWrite` approval。\n- `appliesTo`、`Why` 这类低风险 metadata edit 可以不经过额外 approval。\n- 失败的 writable operation 会返回 diagnostics 与 rollback guidance。\n\n当前 Claude/Codex 示例默认保持在 `file-assisted` 模式。\n\n## CLI Reference\n\nshell `PATH` 上的裸 `goodmemory` 命令来自\n`npm install -g goodmemory@0.8.2` 安装的全局 CLI。本地 dependency install\n里，用 `npx goodmemory`、`npm exec -- goodmemory` 或\n`./node_modules/.bin/goodmemory` 调用 package bin。repo-local\n`bun run goodmemory` 只用于开发。\n\nMemory-first commands：\n\n```bash\n./node_modules/.bin/goodmemory inspect --user-id <user-id> --workspace-id <workspace-id>\n./node_modules/.bin/goodmemory trace --user-id <user-id> --workspace-id <workspace-id> --query \"Which runbook is the source of truth?\"\n./node_modules/.bin/goodmemory export-memory --user-id <user-id> --workspace-id <workspace-id> --output ./tmp/export\n./node_modules/.bin/goodmemory import-memory --user-id <user-id> --workspace-id <workspace-id> --input ./tmp/export --dry-run\n./node_modules/.bin/goodmemory stats --user-id <user-id> --workspace-id <workspace-id>\n./node_modules/.bin/goodmemory remember --user-id <user-id> --workspace-id <workspace-id> --session-id <session-id> --message \"Remember that the deploy is blocked on smoke verification.\"\n./node_modules/.bin/goodmemory feedback --host codex --workspace-root . --session-id <session-id> --signal \"Keep coding summaries short and list explicit next steps.\"\n./node_modules/.bin/goodmemory forget --host codex --workspace-root . --session-id <session-id> --memory-id <memory-id>\n```\n\nInstalled-host commands：\n\n```bash\ngoodmemory -V\ngoodmemory --version\ngoodmemory setup --host codex\ngoodmemory status codex --workspace-root .\ngoodmemory install codex --activation-mode global --writeback observe --user-id <user-id>\ngoodmemory enable codex --workspace-root . --writeback selective\ngoodmemory mcp serve --host codex\ngoodmemory-mcp --host codex\ngoodmemory codex bootstrap --user-id <user-id> --workspace-id <workspace-id>\ngoodmemory claude bootstrap --user-id <user-id> --workspace-id <workspace-id>\n```\n\nHook 与 writeback 示例：\n\n```bash\nprintf '%s' '{\"cwd\":\".\",\"session_id\":\"s-1\",\"hook_event_name\":\"SessionStart\",\"source\":\"startup\"}' \\\n  | goodmemory codex hook session-start\n\nprintf '%s' '{\"cwd\":\".\",\"session_id\":\"s-1\",\"tool_name\":\"Bash\",\"tool_input\":{\"command\":\"./tools/DeepAnalyzer --detailed\"}}' \\\n  | goodmemory codex hook pre-tool-use\n\ngoodmemory codex action -- ./tools/DeepAnalyzer --detailed\n\nprintf '%s' '{\"cwd\":\".\",\"session_id\":\"s-1\",\"messages\":[{\"role\":\"user\",\"content\":\"Next step is to finish the release smoke.\"}]}' \\\n  | goodmemory codex writeback --json\n\nprintf '%s' '{\"cwd\":\".\",\"session_id\":\"s-1\",\"event_id\":\"stop-1\",\"summary\":\"Keep coding summaries short.\"}' \\\n  | goodmemory codex hook session-stop\n```\n\nEval artifact inspection：\n\n```bash\n./node_modules/.bin/goodmemory eval inspect --run-dir reports/eval/live/<run-id> --case-id <case-id>\n./node_modules/.bin/goodmemory eval trace --run-dir reports/eval/live/<run-id> --case-id <case-id>\n./node_modules/.bin/goodmemory eval export-case --run-dir reports/eval/live/<run-id> --case-id <case-id> --output /tmp/case.json\n```\n\nCLI surface：\n\n- `goodmemory -V`\n- `goodmemory --version`\n- `goodmemory setup`\n- `goodmemory status`\n- `goodmemory install`\n- `goodmemory uninstall`\n- `goodmemory enable`\n- `goodmemory disable`\n- `goodmemory inspect`\n- `goodmemory trace`\n- `goodmemory export-memory`\n- `goodmemory import-memory`\n- `goodmemory stats`\n- `goodmemory --schema`（把整个 CLI 命令面以 JSON 输出，供 agent 和工具读取；\n  `goodmemory <command> --help` 仍是给人看的形式）\n\n已安装的 host 也可以把导出 bundle 落到磁盘：`goodmemory setup --file-mirror`\n（或 `install <host> --file-mirror`）会在每次持久写入后更新\n`<workspace>/.goodmemory/memory/`，让 `MEMORY.md`、`topics/*.md` 和\n`pages/*.md` 无需运行 CLI 即可 grep。\n- `goodmemory remember`\n- `goodmemory feedback`\n- `goodmemory forget`\n- `goodmemory mcp serve`\n- `goodmemory-mcp`\n- `goodmemory codex hook`\n- `goodmemory codex writeback`\n- `goodmemory claude hook`\n- `goodmemory claude writeback`\n- `goodmemory codex bootstrap`\n- `goodmemory claude bootstrap`\n- `goodmemory eval inspect`\n- `goodmemory eval trace`\n- `goodmemory eval export-case`\n\n## 示例\n\ninstalled-package guides：\n\n- 15 分钟应用集成指南：[docs/GoodMemory-15-Minute-App-Integration.md](./docs/GoodMemory-15-Minute-App-Integration.md)\n- Reference integration guide：[docs/GoodMemory-Reference-Integration-Guide.md](./docs/GoodMemory-Reference-Integration-Guide.md)\n- LanguagePack 扩展指南：[docs/GoodMemory-LanguagePack-Extension-Guide.md](./docs/GoodMemory-LanguagePack-Extension-Guide.md)\n- Codex handoff setup guide：[docs/GoodMemory-Codex-Handoff-Setup-Guide.md](./docs/GoodMemory-Codex-Handoff-Setup-Guide.md)\n- Claude Code setup guide：[docs/GoodMemory-Claude-Code-Setup-Guide.md](./docs/GoodMemory-Claude-Code-Setup-Guide.md)\n\nrepo-local examples：\n\n- Basic chat integration：[examples/basic-chat.ts](./examples/basic-chat.ts)\n- Coding-agent flavored integration：[examples/coding-agent.ts](./examples/coding-agent.ts)\n- Plain AI SDK server integration：[examples/plain-ai-sdk-server.ts](./examples/plain-ai-sdk-server.ts)\n- Express chat server integration：[examples/express-chat-server.ts](./examples/express-chat-server.ts)\n- Fastify chat server integration：[examples/fastify-chat-server.ts](./examples/fastify-chat-server.ts)\n- AI SDK wrapper integration：[examples/vercel-ai-chat.ts](./examples/vercel-ai-chat.ts)\n- Life-coach public remember profile：[examples/life-coach-remember-profile.ts](./examples/life-coach-remember-profile.ts)\n- Claude-style host artifact consumption：[examples/host-claude-artifacts.ts](./examples/host-claude-artifacts.ts)\n- Codex-style session handoff consumption：[examples/host-codex-handoff.ts](./examples/host-codex-handoff.ts)\n\n从当前 repo 运行示例：\n\n```bash\nbun run example:chat\nbun run example:coding-agent\nbun run example:ai-sdk-server\nbun run example:express-chat\nbun run example:fastify-chat\nbun run example:vercel-ai\nbun run example:life-coach-profile\nbun run example:host-claude\nbun run example:host-codex\n```\n\n## Testing And Eval\n\n默认本地 gates：\n\n```bash\nbun test\nbun run typecheck\nbun run test:coverage\n```\n\n当前稳定发版源码用\n`bun run release:prepare -- --output-dir <dir>` 统一验证 package、coverage、\nruntime consumer、体积与 provenance，并生成唯一权威 manifest。\n\n只有当你明确需要覆盖 vendored 或 third-party test trees 时，才使用 `bun run test:all`。\n\nEval commands：\n\n```bash\nbun run eval:smoke\nbun run eval:fallback\nbun run eval:live\nbun run eval:live-memory\nbun run eval:live-auto-memory\nbun run eval:live-provider-memory\nbun run eval:summary\n```\n\n含义：\n\n- `eval:smoke`：harness 自检。\n- `eval:fallback`：不调用 live model 的确定性验证。\n- `eval:live`：live generator 加 live judge，使用 in-memory backend。\n- `eval:live-memory`：live generator 加 live judge，使用 auto-storage 语义；默认是本地 SQLite，除非 provider storage 可解析。\n- `eval:live-auto-memory`：`eval:live-memory` 的显式 alias，方便脚本表达 auto-storage。\n- `eval:live-provider-memory`：provider-backed evidence path，需要 Postgres、embeddings 与 assisted extraction；不会静默 fallback 到 SQLite。\n- `eval:summary`：汇总已有 eval output directories。\n\nLive eval 环境变量：\n\n- `GOODMEMORY_EVAL_PROVIDER`\n- `GOODMEMORY_EVAL_BASE_URL`，用于 OpenAI-compatible gateways\n- `GOODMEMORY_EVAL_MODEL`\n- `GOODMEMORY_EVAL_API_KEY`\n- `GOODMEMORY_EVAL_MAX_CONCURRENCY`，可选并发上限\n- `GOODMEMORY_JUDGE_PROVIDER`\n- `GOODMEMORY_JUDGE_BASE_URL`，用于 OpenAI-compatible gateways\n- `GOODMEMORY_JUDGE_MODEL`\n- `GOODMEMORY_JUDGE_API_KEY`\n\n`eval:live-memory` 和 `eval:live-auto-memory` 还需要 embedding 与 assisted extractor 配置：\n\n- `GOODMEMORY_EMBEDDING_PROVIDER`\n- `GOODMEMORY_EMBEDDING_BASE_URL`，用于 OpenAI-compatible gateways\n- `GOODMEMORY_EMBEDDING_MODEL`\n- `GOODMEMORY_EMBEDDING_API_KEY`\n- `GOODMEMORY_ASSISTED_EXTRACTOR_PROVIDER`\n- `GOODMEMORY_ASSISTED_EXTRACTOR_BASE_URL`，用于 OpenAI-compatible gateways\n- `GOODMEMORY_ASSISTED_EXTRACTOR_MODEL`\n- `GOODMEMORY_ASSISTED_EXTRACTOR_API_KEY`\n\n`eval:live-provider-memory` 额外需要：\n\n- `GOODMEMORY_TEST_POSTGRES_URL`\n\n输出目录：\n\n- live runs：`reports/eval/live/run-*`\n- auto-storage live memory runs：`reports/eval/live-memory/run-*`\n- provider-backed live memory runs：`reports/eval/live-provider-memory/run-*`\n- fallback runs：`reports/eval/fallback/run-*`\n\n## Strategy Rollout\n\nGoodMemory 把 `rules-only` 保持为受支持 baseline。新的 retrieval behavior 需要按 `observe -> assist -> promote` 推进。\n\nOperator guidance：\n\n- `observe`：收集隔离 shadow evidence，不改变实际执行路径。\n- `assist`：只在受控 eval runs 里允许 candidate execution。\n- `promote`：需要 `strategy-promotion-gate.json`、干净的 `regression-dashboard.json`，以及 `strategy-promotion-authorization.json`。\n- 当 eval evidence 不完整、provider-backed dependencies 不可用，或 rollback 条件存在时，保持 `rules-only`。\n\n## 当前状态\n\n当前稳定公开 surface：\n\n- 通过 `goodmemory` 暴露 root memory API\n- 通过 `goodmemory/ai-sdk` 暴露 AI SDK adapter\n- 通过 `goodmemory/host` 暴露 host adapter 和 host contracts\n- 通过 `goodmemory/http` 和 `goodmemory-http-bridge` 暴露 HTTP bridge\n- 通过 `goodmemory setup` 暴露 installed CLI 和托管 host setup\n- Codex 与 Claude Code hooks 用于 recall\n- 只读 MCP 用于 inspection 和 debugging\n- opt-in installed-host writeback，带 audit 和 undo\n- Bun 上的本地 SQLite durable fallback\n- 配置后可用 Postgres、embeddings、assisted extraction、provider-backed evals\n\n仍然不属于已接受公开承诺：\n\n- 默认开启 automatic writeback\n- 原始 transcript archive\n- dashboard 或 managed cloud\n- 把导出的 artifact files 当作 canonical storage\n- 用内部 proposal 或 promotion internals 扩大 root exports\n\n详细当前状态和 evidence map 见 [docs/GoodMemory-Current-Status-and-Evidence.md](./docs/GoodMemory-Current-Status-and-Evidence.md)。\n\n## 文档\n\n- 文档地图与归档规则：[docs/README.md](./docs/README.md)\n- 当前状态与 evidence：[docs/GoodMemory-Current-Status-and-Evidence.md](./docs/GoodMemory-Current-Status-and-Evidence.md)\n- 产品级对比页：[docs/GoodMemory-Product-Comparison.md](./docs/GoodMemory-Product-Comparison.md)\n- canonical design：[docs/GoodMemory-First-Principles-and-Reference-Architecture.md](./docs/GoodMemory-First-Principles-and-Reference-Architecture.md)\n- v1 implementation architecture：[docs/GoodMemory-OSS-Architecture-v1.md](./docs/GoodMemory-OSS-Architecture-v1.md)\n- PRD：[docs/GoodMemory-PRD.md](./docs/GoodMemory-PRD.md)\n- TDD 与 evaluation strategy：[docs/GoodMemory-TDD-and-Evaluation-Strategy.md](./docs/GoodMemory-TDD-and-Evaluation-Strategy.md)\n- Strategy rollout guide：[docs/GoodMemory-Strategy-Rollout-Guide.md](./docs/GoodMemory-Strategy-Rollout-Guide.md)\n- Release checklist：[docs/GoodMemory-v1-Release-Checklist.md](./docs/GoodMemory-v1-Release-Checklist.md)\n- 历史 quality-gate archive：[docs/archive/quality-gates/README.md](./docs/archive/quality-gates/README.md)\n- 历史 v1 snapshot：[docs/GoodMemory-v1-Quality-Gate.md](./docs/GoodMemory-v1-Quality-Gate.md)\n- 框架 cookbook——在 agent 框架里接入持久记忆：[LangGraph](./docs/cookbooks/langgraph.md) · [CrewAI](./docs/cookbooks/crewai.md) · [OpenAI Agents SDK](./docs/cookbooks/openai-agents-sdk.md)\n\n执行顺序、后续开放工作和 phase-specific acceptance boundaries 见 [task-board/00-README.txt](./task-board/00-README.txt)。历史设计输入不再视为 current truth，统一通过 `docs/README.md` 路由。\n","readmeFilename":"README.zh-CN.md"}