{"_id":"claude-memory-layer","_rev":"104-0fe58d1decf8a4f90ed759e6701cd844","name":"claude-memory-layer","dist-tags":{"latest":"2.4.8"},"versions":{"1.0.0":{"name":"claude-memory-layer","version":"1.0.0","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"a9467419b338257f6ac7b0b8d4fe8eec02464789","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.0.tgz","fileCount":127,"integrity":"sha512-KNHfy1O6P5nGh70MYGXmKof4/ZlpjaCHjiUJPuc74EV4dIBySvTUXQzlPlILWe1u98yhaDny4D8JJbaQF5eo5Q==","signatures":[{"sig":"MEQCIFX0ZEUqhp7ZhLa1iPpBjQXuVYRPLzwqRFTbINHMPFwtAiAttev/trl8Dedd9Chwu95LKsgNkqRfBc/eZaYQBNriXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2916068},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3662dfae8381fdf35923b115f58c362e091c474a","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.0_1769913798738_0.4468441650888686","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"claude-memory-layer","version":"1.0.1","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.1","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"69336dc8b99fffd3e480e44b4bd26ff542a820b4","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.1.tgz","fileCount":130,"integrity":"sha512-NIkwxjqDY7ZjUSm6sXM+lAU9RDxpdpTrpikTuRY367Naega9TqDjynmkbbw85Ox4NmnVGrT1jr9cZqtb3skM9A==","signatures":[{"sig":"MEQCIDfD/bXKiy8GoSO9PQNI4wR5kqrpzjtUzOQ3R9uvhmxPAiAlUH1KJYIWErNSLdNPM9fki0g6l7GFJ1WQ5BLF6+sz8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3048797},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3662dfae8381fdf35923b115f58c362e091c474a","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","claude-memory-layer":"^1.0.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.1_1769917624773_0.7365454423569517","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"claude-memory-layer","version":"1.0.2","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.2","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"8b00620c0531ecd850b514c1bd5a5c94ec638ff2","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.2.tgz","fileCount":130,"integrity":"sha512-XK5FEdI35xAoIWdLVVMkV417Owh0fIn8yIMMGVVMEGvnmKi4k5IoVkQtv93lTWDnGmL9qfl8oLhFVYcOcITJyw==","signatures":[{"sig":"MEUCIQCe/Z080K4fBlPNIJHxHG1KYMeJNFEnlc28vmopfilnLQIgFa37fG0uiSlTCav2nMTA+XKdTS4BU3piXalj+9Chj/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3048787},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3662dfae8381fdf35923b115f58c362e091c474a","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.2_1769917767852_0.587279576960259","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"claude-memory-layer","version":"1.0.3","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.3","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"f6e4680a8048f70131ddcb32cc997e35064d68ff","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.3.tgz","fileCount":135,"integrity":"sha512-KYHZAoQQeRGfRdfUnYfb+mBOjgaAW9rJFIV4wgj4q1Gm5aN3xTvh3dCvXok6AUtoBjV4cgAm6VRAtT4oxV3j8A==","signatures":[{"sig":"MEUCIQCBTv/TFqpaOKlbL09aSvaRijyjxPIyGEjZM9zvbP0nZwIgRBYtCtPevsqlkP+9SlKsVwAvTCsASnL5GRqba8uy9zU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3578129},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3662dfae8381fdf35923b115f58c362e091c474a","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.3_1769920414643_0.16646580997976823","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"claude-memory-layer","version":"1.0.4","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.4","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"1b8fc1501cd15647459d75961c4a6285a6b0504f","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.4.tgz","fileCount":136,"integrity":"sha512-IDik8QBSIwSOZmqrtf2r2DUnVFlw39+5JG/2ChcoHI0rZtlN0q5SNvpoZy6PXqyDIBov49wwpgmHPfhSK52O9w==","signatures":[{"sig":"MEYCIQDfREU0cnyuIU55myKQLzsP4W2ASugdP2CEsVeVFnjkDAIhAPQ9OIb330GFWfW4vlnaWBzDtoxmmoOCjvf4nCyWf8Am","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3578694},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d04e562b5b011e0f07cdea0664db823f0caca5d0","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.4_1769920889419_0.8159969984429185","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"claude-memory-layer","version":"1.0.5","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.5","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"0cdd740ad7a04d97b5cbf20645a1704513534245","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.5.tgz","fileCount":139,"integrity":"sha512-AMe8VrXfe+qvDh/r35pipNAattuRJx12Rgm4+6ZepLquJXLu7y02THZEbPc5w6M3vb6pEDJ8nWsXBHPOYfqQ2g==","signatures":[{"sig":"MEYCIQDzZKwSq/0fm6V2wavkJEdh7fuAD3s5kHlrB5KDWqKvAQIhAOJdLsRIRU2bauv56DI0r/kFWUsyEmc4OgtviQ6vWm/+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3581896},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d04e562b5b011e0f07cdea0664db823f0caca5d0","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.5_1769921025175_0.4295906335063955","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"claude-memory-layer","version":"1.0.6","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.6","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"code-memory":"dist/cli/index.js"},"dist":{"shasum":"95fabecc5fac67c027f757b4a8a182e6f8dc48c8","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.6.tgz","fileCount":140,"integrity":"sha512-btMChxQe9Hf/gLZEOTMYZwlVsjpBvboCsobByEyewm0/WmvKngVRXYbDpvI2SGCJPojwLClKm/6DyLqeOCiZ9A==","signatures":[{"sig":"MEQCIH9QFMUsgS2AOs4f4PuxFVtj1s7EIHIbGvtlw1ba2DA0AiA3Uqja/GD5LGoZ34qYZva0mgp+Gvu5ygK4mET2vo5hHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3583416},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d04e562b5b011e0f07cdea0664db823f0caca5d0","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.6_1769921377021_0.4283147743985485","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"claude-memory-layer","version":"1.0.7","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.7","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"d4659976dd8cf7f62a058a95256df90a2f417ee2","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.7.tgz","fileCount":147,"integrity":"sha512-n2QfvnrnrnFsVnmN5zcg860H6CosHZFi6+XkEN9PJJSEOlpR5ZyYI36fXyyS6w5l5bvMLU3+Rnv/IWW4MQ04hw==","signatures":[{"sig":"MEQCID6HAWEONxEnqDwP9+wlGFvEar4IN6wliG7c1yJHwnL+AiASZ92i9it+D/I57JF5nV6m2ECIXV/CUKujKRlV6MoYEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4484398},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d4f1f16858e2bf2436f12e4141fedbecf3a75851","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.7_1769923805448_0.026162654990025347","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"claude-memory-layer","version":"1.0.8","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.8","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"90c3d2be5ecbcd4ecd8c78728b7e5d8b1eb0c6fd","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.8.tgz","fileCount":149,"integrity":"sha512-9rmwtFL5CCzgOEnQ9hkcZ+HYIX7NER+sHrahhCsQx94qCNTVVt6GHOEo/jRkj8/ppCh7vPfIbn+qshmVshlCGA==","signatures":[{"sig":"MEYCIQDVxy/IWt5RjDxYK73r7WqN0xpxCE3v9BOKfylV8Jm5TAIhAImLSz+U//mVe1BheSow8GBNKn1GjD/eqzv/B8XPBMJ1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4771483},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d4f1f16858e2bf2436f12e4141fedbecf3a75851","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","commander":"^12.0.0","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.8_1769942741254_0.15552276910820573","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"claude-memory-layer","version":"1.0.9","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.9","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"6ae69dd5720d6251cc2c246a9f218432a538d358","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.9.tgz","fileCount":162,"integrity":"sha512-wuswCbJDLPNEJoOhu9kZXUufTo9BBSspvA/cdff5+IcQzHYGf3cUcXlNk9ghn2at0qKZm1di64aNhnZeJ82m1A==","signatures":[{"sig":"MEQCIDpSBh9wLyoFuD3Vz83WZV9goEjyM0wHflwkgiPTAFX7AiAcxnOnuo+IkO7f164G/A/tsMzG4q8UOv5OyDxqYLezUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6073760},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"babfd15284754bc3dbb698fcc4c81efcf53fcd85","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.9_1770000124075_0.7352311860142156","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"claude-memory-layer","version":"1.0.10","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.10","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"2a34a506121504c0291b0fc15ec9cbc1d7103bda","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.10.tgz","fileCount":163,"integrity":"sha512-6rXXTwpeNR3LhFqlLgfxDB2xmXP1iP+NYJM6xKR6/eY07Qi68AxPvWcCxki9h5bubFksgtLr5jhmMhBbvskqFA==","signatures":[{"sig":"MEQCIDsi+KdklhRoJU88mAtizMpeMD1FQtuECnwA0gGhTMiWAiBEX7+TXT93VrW6tB+ymgBbunGOyv+wFHiUXxpj5bcU1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6180819},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"543643e7a9f1d4a94f3216c2369d0212a51ff32d","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","test:coverage":"vitest --coverage"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.10_1770001919794_0.7373179790154369","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"claude-memory-layer","version":"1.0.11","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.11","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"e4909dda34c44a92ef76c5a1877c4ea006e4eab5","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.11.tgz","fileCount":159,"integrity":"sha512-tW2P8lzMQSydkhZm41RPy7BbzJfbHRVW1E/x0R7S30pRFqZ7Qef9RoBmr6qXNCPVA8GqGa7fkbotx3tjlyjGDw==","signatures":[{"sig":"MEUCIQCPeKf/kBdscCBJO0MFXYKd2a6MH9q07YFYZ6NYqjSAgAIgD5NNqCk5DixWz6sl4qTUBhxuSU5RVSmSRYHcH9w4T5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6963149},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d56d22ba3271c1d51ea8bbaddb21f5f3d0a79d49","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.11_1771725340524_0.9678891034767636","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"claude-memory-layer","version":"1.0.12","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.12","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"1be618d6bb80d7e2d8ce3b193a1288302263c7cc","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.12.tgz","fileCount":220,"integrity":"sha512-cuy8NGJ1Z16MgIbS5BfqP4ITDcPVtGnEZN1crYLpjHQbgRmclQG80eX5wAQNT3B1GkrNfyGvQ5x3Dj1wRRsAqQ==","signatures":[{"sig":"MEUCIQC2IHFcafq3JGIj94/JGFPOQ2Hm87z7j3aZntWvJzdJ3gIgJjoAso3L82HxyDPPXa0sFuBEe/zF7qOgvZiBAlaJlGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9090044},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"ad320ae7aa41e4f9d655de538879d552c36b9f9f","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.12_1772105661227_0.8833797489651118","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"claude-memory-layer","version":"1.0.13","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.13","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"2e4080c5bf5d3f85601a5dc6a431bc2a107824af","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.13.tgz","fileCount":221,"integrity":"sha512-7LbiOo4iqqTvVtvwGMTQLUIbeoRq70a/XD7Qtroc7FKa3VmEm1FLYbkesZa3jFGbIECztj5eGXA+W/RrDgvXfQ==","signatures":[{"sig":"MEUCIQDbmLAsL88dR15m1NpZ0E716oemHOLr/aViBWIxTfKH6wIgU8uM4szRgdIBC301SqA7i7GaZtCJyaSKbxuubjqrDq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9091507},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9db49c304a5e345c3421d48479a7061295979138","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.13_1772106782394_0.07395788326827346","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"claude-memory-layer","version":"1.0.14","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.14","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"6549bf44940f107acd5ef1a18d96abfaa865e1d6","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.14.tgz","fileCount":221,"integrity":"sha512-evzTI81BFD+HTc1yiF0q5l3OBo/KO75KnEU0zwDWfpQwXGM3KOb12R0wFVdChrsUhp72VtdY4X2F1nLdNi7RHg==","signatures":[{"sig":"MEYCIQC3qHXWQXCI661ViKLpeEkxjqpzcjLQku1kNeeemCbpCAIhAJyzOgakWRjaWedNyqYR1FxDSEj6aCZ0J+gmne88F5Ko","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9094319},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9db49c304a5e345c3421d48479a7061295979138","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.14_1772107260383_0.8753285618103757","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"claude-memory-layer","version":"1.0.15","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.15","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"737cd3f468d671837be019f3672da9888bcd9e1d","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.15.tgz","fileCount":233,"integrity":"sha512-v79+gfabn0sW7hTol9Pin39JkBwtjxJdGpf7qiYH1wbciLvwLrvbJQGhWyBlBi4XSZb2TOP68pJ851nRIZySvg==","signatures":[{"sig":"MEYCIQDW+g5jvP3ivzp0LG/uNHgtB1/TEg1HHbeLCObgf3L/LQIhAKjkIGnj6ky+K8wHndtsGKQM4r39WQNAa23j2Jdh0M0Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18991599},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3c618dbdc9af72526303beaa56916bcf0869c0d7","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.15_1772107929133_0.2673731310720102","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"claude-memory-layer","version":"1.0.16","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.16","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"348fcb9e12c67e06c4096b8b09cfbc1c73bfb478","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.16.tgz","fileCount":235,"integrity":"sha512-Te7iqLLX5W+pSwa4LbEOND/UII8rJcqRReTQGdFnyK+aiFEjqggAL03b6jx5uwsHPWVMQElobiC/zl2JxF/JLg==","signatures":[{"sig":"MEQCIBBfteteY+OgbOU2IHi5DLEEDpys/gcWU+XRhoiGTi6SAiBqqmD0uvSQRsK5TF3GL0Xmn1j9JFzF58IuoYOdCJgsjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19147733},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"60d59c6397810304d9fee88ac5e42c2c270a4966","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.16_1772111209802_0.2860555500175892","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"claude-memory-layer","version":"1.0.17","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.17","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"cf643a1812be60b6d9fae5221c3d6f4379836d34","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.17.tgz","fileCount":236,"integrity":"sha512-Du6Y34MLpNNGUtQdiFL632ANyjd91Gau+dLlRV046hCTUVSfjdijLwgF7PWsC/aB3o2JI57TwGusuRTmJr9HPA==","signatures":[{"sig":"MEQCIC+KPty1slcXyzQrsGmSHyHWIWqva09ll8kUZ9BFtZxlAiBmqI+fUSh0WTwdKSWuNLfrMFfNUkgz/6BxPOCWmwMS8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19154572},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"60d59c6397810304d9fee88ac5e42c2c270a4966","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.17_1772113203725_0.7170220162834442","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"claude-memory-layer","version":"1.0.18","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.18","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"240064e0522ac6ce60adc71a8feeec8884250d1d","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.18.tgz","fileCount":237,"integrity":"sha512-rKxaXfDJ07iR+4qZWX6elZ2w34AiDVdWgh4Evp9FLh1/KwvB8TSWGYC64uUXguH3Jur0p8PtfEwaSUocSZS0ew==","signatures":[{"sig":"MEYCIQCZciHf7oHe+Rzlu+ePm/sohRURn2tqZkr+uPPuG6l0jgIhAKxtX7T6IK3g5Q/oOVbamgM9n3mv3R1I27+L8Y5esdhQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19164573},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"60d59c6397810304d9fee88ac5e42c2c270a4966","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.18_1772114295055_0.5450321708384995","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"claude-memory-layer","version":"1.0.19","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.19","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"83276bfb8f6991dcb80372ee1385d66489da5aa3","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.19.tgz","fileCount":242,"integrity":"sha512-ugHwGGr5XAz+6FIaURYdtLgGpj9YyPqEUARySacpfQUlSwZegp2obIYt0kcT4mDrpmkrYwaJmBZisG/S2uxq+g==","signatures":[{"sig":"MEUCICPyN2WJyYDuwA0p6KEVhnTs+t5InZFsSUtR2YLu4pUeAiEAltolx5kOrO0EANRh8ewWGtl8SOKymPAWRxAaI2T6neQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19350408},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"2455055586d8b08966ebbfe3fce0594ffc2d75be","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.19_1772550469658_0.43442546367611","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"claude-memory-layer","version":"1.0.20","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.20","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"93e454b252153fca00a57717299edf7d647a3128","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.20.tgz","fileCount":242,"integrity":"sha512-RlZuYMSWBUDgPMq9CEd0WyZul/Tf3IlyTshsW1CEy1NFhtaFfzyG8/p7xhXgn64xyJRgtnH8U7nhIypmUAN4sQ==","signatures":[{"sig":"MEYCIQCapjIX77QY78QY9lzh/drt9W0/BKf4IXy7kbQe6pcXHQIhAKV73EU0unuWH18Q3srs24RlGZAoUO2cZs6RZZ2Lwl1v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19484287},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"150668a21e808948e239f52c3c02998f58d9606d","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@xenova/transformers":"^2.17.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.20_1772552051495_0.9935655982870972","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"claude-memory-layer","version":"1.0.21","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.21","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"f48677577e0449b933e86194fe18ec7f291bdf8d","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.21.tgz","fileCount":242,"integrity":"sha512-LFyFI3ERw6CxLrD1ZrP3Hp1OWhtorYF1/rbu8sEi8vbIuFV2ArpV1F2f8ad4Hxu1fXbfk6BBo/syXvG/3RGIyA==","signatures":[{"sig":"MEYCIQD7Tz39wDeVkH6szoGS17f47vSq+03EPb3rFk40g7YqugIhAJuhViT0z5PmihYQQAvk0y4YrCi5ygQzgut46g7B4kvM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19502007},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"0d2d460fd3ade14fa9f7b85a77440cf40289c3fe","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.21_1772585378091_0.39387984363570294","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"claude-memory-layer","version":"1.0.22","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.22","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"82b6303eb48a8efbb8892a8e0142708038899ad6","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.22.tgz","fileCount":245,"integrity":"sha512-Z9hQrwAT5yw8+VLnKp49knO5/fG0I5yOjz3ejVLAbhbNNn7KF0eC3IetIjnudgzaj0r8QSs8iY+Jj1GtHTWKxg==","signatures":[{"sig":"MEUCIGyMyKtH7uW4Xc3fgCWt+H2r9sSuUdIym1uInrK/udQyAiEAijH0I9wC8Meq5Lb2awgojYSgUj1RlFm+eLyGzQNr/yE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19504115},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"0d2d460fd3ade14fa9f7b85a77440cf40289c3fe","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.22_1772606100904_0.19761188958677267","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"claude-memory-layer","version":"1.0.23","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.23","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"95fa19715135529bdb586c14a293ee656b596089","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.23.tgz","fileCount":245,"integrity":"sha512-xIRfJ2goZFz3MFA/s+IZENjX6n9T6yEwY+bAZq2+BCdCm5xy3p1ogeX6bDp2hVsilFUgFtVEGOL0213H128zQg==","signatures":[{"sig":"MEYCIQCkYnkeQfxbG/eCsfJ3djmI/w83qQpfI1KbibacOp8nMQIhANV/VfRq1QGGn/bXPPKuMOAKrKwQiKDTBcmw/MoU0KCp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19534212},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3da25025dc6617397be395ddc21ad7838ec39012","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.23_1772606407520_0.24277851089924263","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"claude-memory-layer","version":"1.0.24","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.24","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"9de52dd338fc2e4a224820da4b7c284a51b7078b","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.24.tgz","fileCount":254,"integrity":"sha512-ItzwWehS5/0BeqrDI3N8wnwjqAnCGOLOkkWkMz0S4r6zoZf+mLOZflgRU13HcFcaEPoOu4e0o6IBUe0UhitqEA==","signatures":[{"sig":"MEUCIQC1JJnNNBhD5CF11NUqZvkNYXvla0YSpPW7FEZQdT4nIwIgF+p5gl9/Icb2jdliAeUHuCOzO2/IWiG0UyLpgjPjMSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21153278},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a204f494bf795d862d82b57975843c6243df7d41","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","duckdb":"^0.10.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.24_1772621217315_0.9157855427563089","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"claude-memory-layer","version":"1.0.25","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.25","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"efda162860eb7e5d7014e127150eb521136a7aff","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.25.tgz","fileCount":260,"integrity":"sha512-ztq7tZ0Qb3PDluTSFPrdXiAhXYPCncGh1u9ihkOgLKM0ve68Sk5KKknm+u2T5tkJ9H2iSFAc/thjFUosH+ewwg==","signatures":[{"sig":"MEUCIDSZYNzN03bJMs0/GGtLWgZykWI5ZMci/hgmXW27ewTPAiEA68o6OYEf2Qm1bECNrXaXbdvRBnXE/I+KHAfIyJyL0nY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20945708},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"cb93e436a162742f13cb96eb5b9db1c6f01ca86e","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.25_1772634168682_0.2958777596196476","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"claude-memory-layer","version":"1.0.26","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.26","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"675266a9abfd10ef60e864e85ac2002c85864795","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.26.tgz","fileCount":262,"integrity":"sha512-vzZ/kVLFjjprX37J2WhP0ndYZ+NrF7CEc4XiI5QXtc2f4hiJ1V4hKFghQrErzVX8ouacxgs//xf4sq/XQu0JHw==","signatures":[{"sig":"MEQCIEuG5vVdRWzLOMkHJPzbHFrf4czby+mnIDklb8+SmFbOAiA8etXQLK27F9yiCwd24r2yXd5Qh+Xpt4BDP8O9Sl50tQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21012112},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"cb93e436a162742f13cb96eb5b9db1c6f01ca86e","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.26_1772637051970_0.2847760706880509","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"claude-memory-layer","version":"1.0.27","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.27","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js"},"dist":{"shasum":"cee2e2b133eed412bd3834714213470aec066d4f","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.27.tgz","fileCount":263,"integrity":"sha512-USiDr1QGaqXvTwi9P9Jo2IhtmHvfzle3YLLYEB865PlTnoIA7Vgt002w9huvX/0Rdie/cqXRcwUrx1yDlVGXOg==","signatures":[{"sig":"MEQCICRQYv1cE8iz6GdIV2xDI9MBLycNUeQrFrE008EzAiHWAiBGKakxIQ2FQo4+HbpUSaxtPSeYGpes7iOkbh0NZ2sgZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21020991},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"bec871df171666d9c7983388dd67af83c33cff40","scripts":{"dev":"tsx src/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.8.2","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"20.18.3","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.27_1772697638232_0.4143871981702081","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"claude-memory-layer","version":"1.0.28","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.28","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"e2c60e4d8b797c8e10f31ee8db01d6b1a04b3af3","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.28.tgz","fileCount":363,"integrity":"sha512-PM72Md4ky0F490GM+zZVwRITZFPdmkqQK7ugHyMXAn2SdUdphpywyv50Tj5TidT7njL5TtHkNejXtD9LBgGfHQ==","signatures":[{"sig":"MEUCIQCOZ4S5sgA+hGaXUA8wsDmRoiBVwkffZJEM1MDDvoHC1AIgFANmoIglAVZU9ZRK7+vmkOT0lEzRLN0QMbioqus4n48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15567926},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3ec4e116ff89eac797cbd028506bf13787d97a91","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.28_1778130930170_0.9404007793740248","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"claude-memory-layer","version":"1.0.29","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.29","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"998b2cdfee7fa3017129559b45c8535429ef09dc","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.29.tgz","fileCount":365,"integrity":"sha512-Qshv5+np5lJqNSrI+SuTKURfE07H+VbwiBky7baOKmbvU2gHvALhhiqSxRXrBF+JxMDG7EHZzDfnizOrtaR+kw==","signatures":[{"sig":"MEYCIQDJwWcfGIIEYKxS2kOE6qc2ry51i+xtNApO8ezDjrXTFwIhANC64V7ck6YdPD7wn6oLe6qZeGr+xZrJtmxO4OU2aH7c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15587485},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7a301c1ea69543afa5a1fc449d94ec05c5b99196","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.29_1778156921915_0.7451762291017174","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"claude-memory-layer","version":"1.0.30","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.30","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"8ba354af0bd14380a181a3c895fa119357ab74b0","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.30.tgz","fileCount":365,"integrity":"sha512-SPyLYneII2o/5UQfnnRe+LJcG34F83hzOdKOTrH3JWWm6M6EJRj0w1NqgkfeJBP0JNYGFEIOG79AR4IYCbYdBA==","signatures":[{"sig":"MEUCIAb8aiJUM+/y1C5p01F1cJrRCHt5hw8bdo1ZRQwroymiAiEAnOm+AVpP5EM+0Wcb89wBLyMF9iGmfZdtLOyM04YHCQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15634795},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"6225af72446bbfb38fc65609de574f24b184781a","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.0.0","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.13.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.30_1778194644595_0.9316552977644657","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"claude-memory-layer","version":"1.0.31","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.31","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"25733d192f72f835bfaa554b71c28c5961c6d667","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.31.tgz","fileCount":365,"integrity":"sha512-vKFQYeqqiIDidGJy1EKc7ZiSkENiZSMfVLMo/5McuSdbvIAO/sAhxD+DVLJTxqFYK52iAOGYBH+RYJ4V9lc5cw==","signatures":[{"sig":"MEYCIQDTy4eTyqkrGcQ7ilqrUgYf+g2P1RTvMluoSgapH/nvygIhAMU9lS86QJ45iHDQAOigG4yVRlko53mCp1jhIzLL4Usr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15637568},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"6bb65d525c00d10166e41b1e779e35927f99334a","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.31_1778237123189_0.9695621449820122","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"claude-memory-layer","version":"1.0.32","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.32","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"27f76acf919d4a6384488d3c33e0f0ed4947cfd8","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.32.tgz","fileCount":56,"integrity":"sha512-sNLzd/U4yiwsWULYQ647xBpzWyN5W+6qBHElz/vsIUoKymTGOxJL1DZ4KxJiLOzUvouQ7k9/szjBbXioVjVszw==","signatures":[{"sig":"MEQCIC7T/TK1mtTivnsFkXF7ccyyoMhVS3ymlFsl8S1nehbHAiA0kCnSdkr0oldtULHHPdsvZxZd5/n9b15VEs+jGqBJqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13409734},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"fe5a2863e0fa5628103b410b19bd6d671f2c1df1","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.32_1778241951108_0.6232027311707526","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"claude-memory-layer","version":"1.0.33","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.33","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"501358f4566b10aefc39bd1d0458070d51749f3c","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.33.tgz","fileCount":56,"integrity":"sha512-gO4TBvFGBzN+ux32dNf800lztgx03/mcO0DgsYceuTX3/FKKn2ZaiQimNtaZ18vAtVh9yc2YMofSfjZZTglrtQ==","signatures":[{"sig":"MEUCIQD6UGm6qu4x+aqs0j9uvqlz1ooH4m4u5uV5SpQkUjZ5ZwIgHm0gZ2ArpqEFQi7vlAIRt8xryBox4uSfcaSF6Zain5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14189155},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"996d492d87f39cb2385bc9899a3ced3f1daaaf62","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.33_1778371416330_0.010773528171415414","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"name":"claude-memory-layer","version":"1.0.34","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.34","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"023aec51f4d93a771a240c2f621f4cfc62a43d8f","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.34.tgz","fileCount":56,"integrity":"sha512-+mO0PdEWCuoxvCMxqnDdXjafIup6NGGPeiDSarEkZVCO0NdIOTVZYM3hKWXkvowgPn4+3dBnw43YX4TsOQydZQ==","signatures":[{"sig":"MEYCIQCa9Yp6JU47V9v4ILdirmBfYxXSkCRKlCsl7ewIGjszcQIhAI1L0j7TSfqEA/CBa2Q/HXg/L570Xjl4YfBL467WqZ9X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14207155},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"51684a82b8102b7bc4f9a883b0bf8c11cd633060","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.34_1778386825452_0.7489665006074664","host":"s3://npm-registry-packages-npm-production"}},"1.0.35":{"name":"claude-memory-layer","version":"1.0.35","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.35","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"883099bb75049198d96c83559dde7780a758d20d","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.35.tgz","fileCount":56,"integrity":"sha512-Fm0I5dFsQ9C2B3vnYSMlmthwFEv9Mfb3dJCZZjfWCCv7VmViCokDCadkD1A1Njj8N+3yPDOIwj06O7oXGQoHvA==","signatures":[{"sig":"MEYCIQCrLpsOe77MZP19KR9jMzquMlUnl882Asx70Cl234bPmAIhAMbxXeDSXpTBwYM8eiFa4nK+coIQ5mD12+nKH0xcxhZH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14223132},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"c4a4b5de03c977f9c5b56663efeed96f2831dd2d","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.35_1778391818132_0.263619181918761","host":"s3://npm-registry-packages-npm-production"}},"1.0.36":{"name":"claude-memory-layer","version":"1.0.36","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.36","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"9d79ccb8053190080b29af208281a75c3587c40f","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.36.tgz","fileCount":56,"integrity":"sha512-P+WeOSjOgzwY3giGD8r0zROB5sE1QeNIyXMIXKVTG6nTjjToCEF5OTWlXot7FPB+IMNufK+RZGO8D6HEQpFCdw==","signatures":[{"sig":"MEUCIQDKVJPm2IfMue+/Yu4r5qBL6lcOC75/CWauNR1fwPSePwIgYwQsTkuImO+FUM+/hDEto1GEnlka0D81q2dlp3Gfp3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14231523},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"268f3494a7dc21f0e88b9495bf805eec0269462c","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.36_1778398190686_0.12949515584067828","host":"s3://npm-registry-packages-npm-production"}},"1.0.37":{"name":"claude-memory-layer","version":"1.0.37","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.37","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"c3ba1c9cc17d3cf5dd1c3f5557564cdf76165163","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.37.tgz","fileCount":56,"integrity":"sha512-4yzh0f+JzoINtjWvlPy37Jo+L3vBoUNn+thBr84u4pus4p9NSjuQUr3isHPxqqUfZ8MsbOc5H3d6Is1rmLsOBg==","signatures":[{"sig":"MEQCIHhOxk3ulcnUIxcHqLLAuJVPPCxRO7P4muQ0Wk5WNvzEAiBRM1xJZaUV+oz3V/LwG0LnD6D2IRmqMbIY6gJXr2w1Sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14381931},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"f0c5dd9f340cc38d196025c016382888a5356984","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.37_1778405792886_0.6703500651586385","host":"s3://npm-registry-packages-npm-production"}},"1.0.38":{"name":"claude-memory-layer","version":"1.0.38","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.38","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"56d6563563eda2216330b0a02464a2648d0fd4f0","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.38.tgz","fileCount":56,"integrity":"sha512-1vw0eqJKLTqglTGwkltyf1ZX6QFhYbjyL/IUbQNwRBYCK+nkoNid4KMUE0MSAoFRtBbQvQE9OkHe5j2qoEqy4A==","signatures":[{"sig":"MEUCIE6rAvE37DMyUIsuPp3uJYKz40GFwVuH/9OF3ZMSVsb6AiEA+OFmfA0Vikro4CsL6R1MLQSzrvsYGCKSmynUfUa5JsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14823424},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"500d401b61ebf640f3d3e90568e1d3cd3a18a4d1","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.38_1778421124682_0.293514033694807","host":"s3://npm-registry-packages-npm-production"}},"1.0.39":{"name":"claude-memory-layer","version":"1.0.39","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.39","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"22bee4cfa14016dbd69b8ba6d44ea8f1991ce132","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.39.tgz","fileCount":56,"integrity":"sha512-zmAHtWfXYQduVPnVRp+cT7F1HDmXspvchUqFwJMRH9kBR5uAYIBTybbTJs1RZIyX1EwrJ9cdsnMtct5Y4SMm+A==","signatures":[{"sig":"MEUCIBefPPT9i88HIFqnfkUyfC3wLQVGgFY6wEVPNXmwTInmAiEAsBmLgaLB9RkJDAkvncT2u5uI2jBPurXNMP7IqajRTvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14823133},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"00c0221312a780b036d1f3eb3ed04bf85b9ca01f","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.39_1778423108935_0.8653422281829821","host":"s3://npm-registry-packages-npm-production"}},"1.0.40":{"name":"claude-memory-layer","version":"1.0.40","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.40","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"8cacb42ad5e37228c74e3ca317d09e3648a07348","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.40.tgz","fileCount":56,"integrity":"sha512-wYohOCzE9O7cnXXpm6wj5yema8CEEQsNqVoz++DTBkYc3GU621K5TTvmHwrSFe1CKKwt9mrF5/ZR9NJ6IZI77w==","signatures":[{"sig":"MEUCIH/VeV2VLYXQIk5pmZy3yU73otfDkz0RV+/bZe94vcGjAiEAsSPX/lC6rmyCf/xKgQi2KmZfeoV6yQEPB852Fb2i60I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14823232},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"698a786e3d8e125934fb2ca5bfe419250419915e","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.40_1778423992552_0.8180174835565968","host":"s3://npm-registry-packages-npm-production"}},"1.0.41":{"name":"claude-memory-layer","version":"1.0.41","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.41","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"664e08c5ad9164492e83764beeb5363eca569a2a","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.41.tgz","fileCount":56,"integrity":"sha512-2d4g85M7+jUfplQT5P4R+3RtubaglmJf350rx2o+WoXmgCTUJ6uxqDz+Hmsu/DEtidy4pPIZ3LvFbYG+CCsIsQ==","signatures":[{"sig":"MEQCIGurDyC8fe9tNc0rhc1N+/WPK8yTInopXYD5hbWCc/gYAiBoXayaBUfuAVdtrFd3V2ksMS8QZfreJhVoYK34b4eWrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18077519},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9d16d0c21a1dbfb6ae3ba884886499bbe37c0dd5","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.41_1779377940962_0.1805122692406973","host":"s3://npm-registry-packages-npm-production"}},"1.0.42":{"name":"claude-memory-layer","version":"1.0.42","keywords":["claude-code","plugin","memory","learning","personalization","context"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.42","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"1d95ac59f5b6e970738320646a8cef0f595aa295","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.42.tgz","fileCount":56,"integrity":"sha512-r6SPpkJuGlfYblFNyABpig2DLRPjVc856XVeoF4ba0Dxez+WOXzTxVpRBHZcGhR7RcH/bcuI5EakxGRToA32ug==","signatures":[{"sig":"MEUCIQDbR+WF4MGz6Ql09/48y08Wh9R7NhkewzSIBHxGjl2+RAIgEvcgpSC6fjo8qrOVdCpi3BCfzmT9dgUN7nh5weaSUWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22977978},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"24808bf7ab39824063c1040e50a9d37a580cb1ea","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Claude Code plugin that learns from conversations to provide personalized assistance","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.42_1779751341743_0.7992213014459022","host":"s3://npm-registry-packages-npm-production"}},"1.0.43":{"name":"claude-memory-layer","version":"1.0.43","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.43","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"f36299593ca6807a4a487c128ead9c5e399dd8bc","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.43.tgz","fileCount":56,"integrity":"sha512-37w41Tl3m1hQ/YdwpDup2RCD4ZoH0T+gHE/BjH7oz2R63lCVbz3xIxTMsh33kdGpJTZl1Z1e01Pqpzf3I/PBoQ==","signatures":[{"sig":"MEUCIQDgUq3xkO60DQaCuBZ4ke0scHzXrozOwexlhX9FEZ+/FAIgMlimwBSwcACm6qneh1f7N1ZkrIJUQGiZXCwhVK6RW6A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22985709},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"24808bf7ab39824063c1040e50a9d37a580cb1ea","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.43_1779886984283_0.07988810713150496","host":"s3://npm-registry-packages-npm-production"}},"1.0.44":{"name":"claude-memory-layer","version":"1.0.44","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.44","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"91d2efc60f954982284b63118c6779e6f35c3792","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.44.tgz","fileCount":56,"integrity":"sha512-6BQtIfF4a/QhbkyE0HLDoT9R0xjS7OEViR5KTiGEWb9bKB3Ck97UdlH3N6A2UO52WaRLONqz5H7yc0LXsgzT1Q==","signatures":[{"sig":"MEUCIQCr75/34Zhfa3snbj+lg+aCAtsbasViIX7VITiICCnr8AIgC+qx4qiLwbfNTHUDGmxicb7rBmujD4qXBdo6C3s6/k0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23002587},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3ca0c00eb318227f9d368f5b45576cba3bd79b08","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.4.0","esbuild":"^0.20.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.44_1780389042845_0.8178605488398267","host":"s3://npm-registry-packages-npm-production"}},"1.0.45":{"name":"claude-memory-layer","version":"1.0.45","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.45","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"c57972ba3763e59f4ccf3db8d5c1ce01e8adec5f","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.45.tgz","fileCount":56,"integrity":"sha512-7w/QpmqdF/mDe/KoNmFrMhoiva6Ein0piyCSlzx+TsVEnjLSGGR4qKPDJeaYZCu6fyjXvTdAHXtWidLINwMZzw==","signatures":[{"sig":"MEUCIDu88yitu5U+8eDsou268ZqbHi+D/jVXprxigYKIy3VpAiEA7DJA60nEK7rBGKPS7oOyBvzIi5RQfkaty0vP1gvvZ2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23104975},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"f818df74e50b0a9a454d3fde28546ffd46553454","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.45_1780444140064_0.8972756613268018","host":"s3://npm-registry-packages-npm-production"}},"1.0.46":{"name":"claude-memory-layer","version":"1.0.46","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.46","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"4d18732e495fee2c037ba8c2b0d3fe258056935e","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.46.tgz","fileCount":56,"integrity":"sha512-tddywsWAo4sXmSoFXbCax3Bi6phh6zO9ZQnd3BcLgpwPhBPdsVg1xdq3dSJ8oFRmNOOrfw0VVyzEYROZ0s4GQg==","signatures":[{"sig":"MEUCIB1iOB9T4joPV8ZOv6jyuPBQ2EMbg/02JQUoap1dXxHCAiEAwu0eb+RFj7RruVwHB1QRytdjVFSMRXjxYjQjxrFXXeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23228597},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"30c8b25b256768afeb44f46f76a13f3766b929e5","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.46_1780497597721_0.6613863820751216","host":"s3://npm-registry-packages-npm-production"}},"1.0.47":{"name":"claude-memory-layer","version":"1.0.47","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.47","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"cd21c0ecddfabf881d0dc34e72e15c9577d39ac0","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.47.tgz","fileCount":56,"integrity":"sha512-eOJwEnWWMX6VFavQqdkE40JcFpdlO4ZLLcYFtls4OQ8zbIcBTk28iINmBGcpD5tUUhJzvszVXmxf4+gcKYikIQ==","signatures":[{"sig":"MEYCIQCijuFmjhV6skbh1D9xzI0gM1nxzB+7v0RgVxXXEG7P9AIhAKL84RlJsO/iwT6d0rgcosqRAvI0Ti/eB5spjrzvy6/5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23653408},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"6935b5c602750ace941d2695b578c71a49d29aa1","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"deprecated":"Superseded by 1.0.48 to tighten the Hono minimum version; please upgrade.","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.18","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.47_1781318760188_0.6390650246124925","host":"s3://npm-registry-packages-npm-production"}},"1.0.48":{"name":"claude-memory-layer","version":"1.0.48","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.48","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"902f6abb549a393527cacaef04fe80216ae054fb","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.48.tgz","fileCount":56,"integrity":"sha512-y2xpaZY8ILgg5vKEYhMi0wj/XQtXDKISE8n51+x3YE4dtVizdO6PudOmVqJF7nhJ4bAfzC/8OZ9zDWzgLdNjFQ==","signatures":[{"sig":"MEYCIQCURfTfuV2pWuWqLP2NzQI46Abh3508vW60lx0TYT6qQgIhAIDh10eRHX0wLv5lU3GtiuzvCDU+Gap+8eJ8H8fRFJwD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23653408},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7286e6122de8dcd44c6e4a606976d7dec51d664f","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.48_1781318979383_0.6196635940244271","host":"s3://npm-registry-packages-npm-production"}},"1.0.49":{"name":"claude-memory-layer","version":"1.0.49","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.49","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"ffa918bf2ffc7b71de5cc84df6e10a6429ac1ea8","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.49.tgz","fileCount":56,"integrity":"sha512-jkbNGA84PHOPqVYZhlEpdxWVQrVyB4OQcojgGafEEMJ57fN27ltc9EeyVCqMp8krxkBxErFctnTK4d2wL05Atw==","signatures":[{"sig":"MEYCIQDGAqDvhyXIwX6+IaK9tnqmTSkC17Ilfg4HmDxDn/DCNwIhAKvy+AALqeAGTRvpQ2X7HTe1Mh4MlAJqeufKiFhHqq5Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23653486},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a4dfe00a17ae7e3ec290b447991264966c180b31","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.49_1781354186213_0.7036888413589575","host":"s3://npm-registry-packages-npm-production"}},"1.0.50":{"name":"claude-memory-layer","version":"1.0.50","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.50","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"3847fbb7c85f08f6c6911af04a38a1d45ebc8f9c","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.50.tgz","fileCount":56,"integrity":"sha512-7xBULgIKp88h5TtQPmKC5RJgppfN5yVCYWm9yzTDsdhFNdKyyrlzWBY+5iIQUc1Q550qB+fTeVbClrTSpaJeCg==","signatures":[{"sig":"MEQCICPagn6fjnOs/HZ1qMOP3l3rITydnZVa/TsaENfh1/VJAiBz2VFhh6wZ/tN39a+TAEpuzHF7iECG2Xt8Lje9vx3N4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23870144},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"251b54defa499c79d35e59821c337162e6f8f446","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.50_1781521966897_0.5447048484727759","host":"s3://npm-registry-packages-npm-production"}},"1.0.51":{"name":"claude-memory-layer","version":"1.0.51","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.51","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"812b8401fb985bd00af962035cafdbdbe5f89b79","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.51.tgz","fileCount":56,"integrity":"sha512-3RCTvC1NE9pugUEAa5VAXd636NnzXZVK394+7fZCJPQtc8CwzQrKoi/R1pNHhHwy5xMfU32xx9AYEzULBalqnw==","signatures":[{"sig":"MEYCIQDQQ+DIQQJWq6rZLyfEBJmYYZZZ9BOsN6ctxnjBUhZygAIhAKq8wngBYzUPFrgOG8fw0G1mstTF+oaMllhpRqfuIDUr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23870200},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"60873317e3e9010696114ab889cb5c08e92c02c2","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.51_1781671650911_0.3389284827378949","host":"s3://npm-registry-packages-npm-production"}},"1.0.52":{"name":"claude-memory-layer","version":"1.0.52","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.52","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"cd22bfcc55f100139d8562e81721a0863ad862e7","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.52.tgz","fileCount":56,"integrity":"sha512-ilCXd4ZWf6O/csdeghivaUQ37ts15wUChxN/x9sEwpq9XKOxy7s8/nmBjIvf2HAbTx1CtdtCBvhltA3TChVyWQ==","signatures":[{"sig":"MEUCIQCUqMKe5rNHZ0lfZHNTTkCdiuRxRHXr2R7aCauFt3CVkAIgIqzvqWQDuqUnFocuBA24qoR2d8luWGopiHvdRBm2wq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23940672},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"77c6ea9bf3341b0d7ca3a868a576c5a7d42b62a4","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.52_1782463686971_0.862705978114958","host":"s3://npm-registry-packages-npm-production"}},"1.0.53":{"name":"claude-memory-layer","version":"1.0.53","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.53","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"36fe66700511ccd33b371b2723cb7012cbf1e39b","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.53.tgz","fileCount":56,"integrity":"sha512-jU1xIIKInxkA/7lm6y2XLEaFQqgInh/1F8wN42H0qRRMnmBq5i1T1X26A2o8m+nZjJbtsLl9cWZyJSTqpktScw==","signatures":[{"sig":"MEQCIFHd93xSuUrzx+vOPENRsEf0fxAKqJ8Iw7tXTLrSA2X1AiAZNOEj0FCChAQ4HEQC1DjKWQsrBME76XmEzj8L7ASPGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23946673},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"1095881d9199b1883dfa574d002765159da61d87","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint src/**/*.ts","test":"vitest","build":"tsx scripts/build.ts","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.53_1782522887838_0.8793194941368998","host":"s3://npm-registry-packages-npm-production"}},"1.0.54":{"name":"claude-memory-layer","version":"1.0.54","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.54","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"864f5e7a2341f207aa232c97317f6865db1f0dc9","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.54.tgz","fileCount":56,"integrity":"sha512-nR4l8iDXzUN5DFqhgKpe0lHl9rrhDnkgyEsvJ8SKtKwRoyD1bJnwDVhn8SCfttxJ+ant9cug80Bgq+V5zg4bTA==","signatures":[{"sig":"MEYCIQDlSZrF0vbNgjUqcqxoUlIVRewhpq4d6DoR/VmcOAzHeAIhAL3nm5BrD9FM2dNAJP/9O4KXUADHU5NXdSPk1jW5JmHg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24533952},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"c260280d9c7279443cb4068c453e08595f340014","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.54_1782542985110_0.06787135936285726","host":"s3://npm-registry-packages-npm-production"}},"1.0.55":{"name":"claude-memory-layer","version":"1.0.55","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.55","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"598dbad0d3e5e3db61e3292ee5ab697bf6e61fce","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.55.tgz","fileCount":56,"integrity":"sha512-nIV8ndb6XzyFaZU83lMDfE0+iEHmGbIAKoWwaLFULmjNqXU/VW1XtZG7Fv+rzUM290fijlRfYjFUMYdf4E6pbQ==","signatures":[{"sig":"MEQCIC86B0Jwc7N3VGWTt2U7rDEh+XkeK+lI4aRoAul5CM+zAiB4TdfWexTG8pM9v7xr+9D+x7cJ+oqheC8MhU8LC0PjBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24619366},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"5de3cdfa98fab065a14e7059f47fff2bdad26269","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.4","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.55_1783501211407_0.7897672831750828","host":"s3://npm-registry-packages-npm-production"}},"1.0.56":{"name":"claude-memory-layer","version":"1.0.56","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.56","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"6efbde99b842eb6bbb70c4ce41b5326ef5344702","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.56.tgz","fileCount":56,"integrity":"sha512-ciGbOqEJPvFBFPDqqbFQe5DD8QVjfan88mOgDaD9aclG9eo4s2EmAV1XlCO1y4jCPX5yZmNfWpfq7DldiRFSgQ==","signatures":[{"sig":"MEYCIQCTyuLxAPKzTyCdwRtIvmEDNG8/cNyxJUL24t8HSA+WSAIhAJI3GrjG2h0Lhus0C2z0wVwxcnAXuhxMNNUsBbdiRJfE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25334715},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.3","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.56_1784072686018_0.20807987988474985","host":"s3://npm-registry-packages-npm-production"}},"1.0.57":{"name":"claude-memory-layer","version":"1.0.57","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.57","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"ded14003cba4e0cfaf63f912d709861d3deb95b4","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.57.tgz","fileCount":56,"integrity":"sha512-dniGjA4mNLIB+TqnrqsNKNWecw/k5P0b0bYDkEPJf/IWogpxnO/s8q2DHsf+IOTjgUAR9ZUsypoXSAdESaF8tA==","signatures":[{"sig":"MEQCIAYXUZEiBmwB5eqdKFl5fy6gfW2r+giDFEB04EZyO3yfAiBn/STkNk7BRND7Ra3bN7mm5d1npOaTpyV3iOA8oyno1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25340162},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.3","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.57_1784074533843_0.1942227757581667","host":"s3://npm-registry-packages-npm-production"}},"1.0.58":{"name":"claude-memory-layer","version":"1.0.58","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.58","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"93e7b74059d56d28be9aa66753a8669d5ff724f1","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.58.tgz","fileCount":57,"integrity":"sha512-hZRlPTeiUm9j3eO95M6dnVOk0/kuc7IZe6tlGSWr4qAyAM0W+Cu1QEKFtIo4dErctJQE2h7iQa5e+9e6fQK7Kw==","signatures":[{"sig":"MEQCIBr65DY+YIfNtLum4XpR4IXnDU7FxScdf/1xLmyLdD98AiBw38MST0co0qALN52l9mPJhqsm/ReBXeeQBz+Ctevbrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25345729},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.3","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.58_1784098047133_0.5101367725513775","host":"s3://npm-registry-packages-npm-production"}},"1.0.59":{"name":"claude-memory-layer","version":"1.0.59","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.59","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"40279a87ec25dde4990ec341b310e5cb158cfd8c","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.59.tgz","fileCount":57,"integrity":"sha512-9mPJkwZF6XApvJeiu/jLGI37maTULahYTc6F6l3sWBUUCkBSyYxX3HU+zfc5jI9uXiMBdr6KEuDCZxaekb/V5w==","signatures":[{"sig":"MEUCIQCinrvQBP/mHWCRw7glB3SPiICl9tEfXFJ9VQ9fC4uRfAIgJkr4XK2o80NY7UHjrJZi9H+dZt7HSwtJqbCGvg7KX/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25442803},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.59_1784122283248_0.8953646267620015","host":"s3://npm-registry-packages-npm-production"}},"1.0.60":{"name":"claude-memory-layer","version":"1.0.60","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.60","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"cdd29f96a185912ee99ceae3a20de906d02fa5b8","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.60.tgz","fileCount":57,"integrity":"sha512-Xn7bQKlwEK5TYt+KIf/b19Xc2bWu9LCckV1tK38OQbuUKl535i3OBQr+KmEbBLDulyWYwEMoUtv1Gq5+LsY5hw==","signatures":[{"sig":"MEUCIQC6z9PNShDybtCgTvhglBAfYJxTOAfFCi7FESDx26mEmAIgc0kqlzdiT1AsyeHJ50PcymoeDL5tC2Ra/xErqKbiHU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26177244},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7526455432a2f1dd26906f2647da1221e5c90f3b","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.60_1784194571287_0.34788976412969275","host":"s3://npm-registry-packages-npm-production"}},"1.0.61":{"name":"claude-memory-layer","version":"1.0.61","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.0.61","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"3006b8ea7d75a7cc9363b84a11a786f5547dffc2","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.0.61.tgz","fileCount":57,"integrity":"sha512-4jVtAtghk2m7zkRRk6FqdUIRZ1PqRuhmSQXSjv2LYVf7ClG7bjvTMDCbO5N+I23LF9ecEdKwQvgAafcrPsIsCQ==","signatures":[{"sig":"MEUCIQC2VKm1YP8tXL1Daqknngdfo3k9/8wVAFuZlEeKnXlIJAIgdcBibr5eGP5aLGizvxgAjSqXqDe9+9B1BSpW+N220vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26245469},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"6d2d0a3414899abf5e1c0772f46441437a3cfdba","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.0.61_1784300133559_0.6168652832764567","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"claude-memory-layer","version":"1.1.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.1.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"59fb897ef9a3cb7b6216290a2f16b6e8652a953c","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.1.0.tgz","fileCount":57,"integrity":"sha512-g7p2uyCg0HQwc1XYnPVjzspnnyFRdzKd/Eze6RyS0wk4iFdG9rnSezjAwPPPbUT9M9Q7ChMN/gXZVaHmVB0cvg==","signatures":[{"sig":"MEQCIEb3pq3nOzyH/JaSrDXAqXeGnFhL23Ms24iM2Y27uHT9AiAO1k7Xf+3AzOF9GH2+phswda4TBn4qPk6sj744oP/orA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26331074},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"4eb1bcbcbc9a7d9ff9dcde879fdc1c366c14fd37","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.1.0_1785164976600_0.7712439305059995","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"claude-memory-layer","version":"1.1.1","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.1.1","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"6dcecb6b81508550293c6edab7c9ab5523b658e1","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.1.1.tgz","fileCount":57,"integrity":"sha512-6qPdIBd+2Vn8YxwiWWaYvUSx0wzlNG14AIfnzbwEYSbqTsAIE5Eqr+bdOYzrkGwZKaUysbTE7uEUG9mGa00Tjw==","signatures":[{"sig":"MEUCIQC3rQW2XjLKMlMw6TAT6TE9PE9kzJpquftZX6zR4lgF9gIgS8xrrWa65JoZxPBFvnMMTWvQUum6XpUAJvenzVmq6pQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26474749},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"2857de6cf35bffb3118a36bd35fdf5defecc3041","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.1.1_1785283299223_0.6909596995442548","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"claude-memory-layer","version":"1.1.2","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.1.2","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"e36ef44f9f6ecb9739c9cad6235a3a8e49630c80","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.1.2.tgz","fileCount":57,"integrity":"sha512-bnXH0GCPrZu1fZTJ0LgfMxNE3vXpE2OhXOeSsMcwzzVZqj7/hYiDBRySpRTw+/fRtAMylYe0HplXviVZFXrMAg==","signatures":[{"sig":"MEUCIFpGQw0sEQVZQZsKVLA/+qRAEP5zMtYt/tQyt+dyr0aoAiEAoMvD2LvavTUI4rmiJ9CfPmbq0Y0P27dopT/xT1+Uyuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26495979},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"029e0863cd62aa326fc07c8993b5f5a520523122","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.1.2_1785284767466_0.9537006481243941","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"claude-memory-layer","version":"1.1.3","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.1.3","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"e2a6a40a4f1fa8f0db58e87350f5c19b7aa80009","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.1.3.tgz","fileCount":57,"integrity":"sha512-GwcpWQOFD7zQ8/TXmA8auiQ/Lxm0aJGBmoN27bTkyPYBj/lrqH+zeVO/nWH07XuM5t+6w4/psU6DjqYdX8Oe5w==","signatures":[{"sig":"MEYCIQCx5zXmverTmehvjdnB3+Kot79tkck0M/D95S62IL8qxAIhAMx+YLRUCkk0/2sX5yU+TvB76ZHV5IKcTnAIiSGRYqGe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26522061},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"b7ee335406e04efccece6d8cebfb82f96417467a","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.1.3_1785298232845_0.3740092836212421","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"claude-memory-layer","version":"1.2.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.2.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"adb841736af5e335493d453bc9194b22a555e000","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.2.0.tgz","fileCount":57,"integrity":"sha512-oLmuzOtXn/cZzyJl97yucOkL/rt4iOvMj6YCwuF1Nmbg/WveoE3UIMDFclZ/+nmkUyGcDCaEDpvTB63v6Wox+Q==","signatures":[{"sig":"MEQCIGDtrLO27gREHnfiVRVAeUDFOxORCq7tsL4ZHSMS138sAiAj924ve1dmWzTJ9CvtzKDupglNj0mS4HSaQJDgqtAhgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27136375},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"96b8cb95dafc23dd505e3764bd033c4b4fcc8acb","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.2.0_1785557947489_0.07204624366876367","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"claude-memory-layer","version":"1.2.1","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.2.1","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"1a0c48d240c3e36a55d048b4d17f6aa0f5e4d2ba","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.2.1.tgz","fileCount":57,"integrity":"sha512-1++XzeIHv33IB3S9EhrGmjWjb8ayg0cubQvv/BJ+7ZcFNkgO8/PTwfJDE2+gebpit9+OZEhtitll6hEUgGojCg==","signatures":[{"sig":"MEUCIAt6u0QiSMdQQ/2qKb7WwoXUEQ4i8BedVj84reoL2EEhAiEApSI3Vk7+GnbhMdlibUpNqYIu5wNv7t4lk9Go+0YYGqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27240586},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"bdf6fc570a61c441d19a29d60345729da27482f0","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.2.1_1785560130435_0.18538853001832645","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"claude-memory-layer","version":"1.2.2","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.2.2","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"0ee1065d987c03b943ff83c43f55d9f7c93b42e4","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.2.2.tgz","fileCount":57,"integrity":"sha512-ikfbuqb1MBOLUavyd4PcRLC/hjANi9nfV1IPu59BDrTexrEOV/RQ45W1IIPSTikLJfCdPpxn90A8wFJnuNvkxw==","signatures":[{"sig":"MEYCIQCzT/7NtgTNlGHeFnVEnm93UbsIdGQYaejY1Zbf5HuwuwIhAMEuW+C1+/rzK5y34pAG8k/Q0NjhzJ2LBL8P217FexVM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27270868},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"571a7951c936a8d174966d33a5866ff909b8d1b7","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.2.2_1785561310600_0.156620402849023","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"claude-memory-layer","version":"1.2.3","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@1.2.3","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"b8a6c8622b93870fd44e445621e91acdfbdd6a0c","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-1.2.3.tgz","fileCount":57,"integrity":"sha512-/3nFr7ZM6FA4uZkBGyiUuAaAkDzIDXCusYoqtI8gQWOBYXwp4SGuEqpUjrO+dAcxFAhntIGPMKj8oIyNUgpNzg==","signatures":[{"sig":"MEUCIHzFdF9PlUMYcbKmYRnT7XrUHp6XylcwIHDT5vGgn5NQAiEAhSi8ZZAY+ELLoSnQ9x/2gNOvSYLvpzo/EKym2+Q1bBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27392696},"main":"dist/index.js","type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^1.19.14","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_1.2.3_1785572114470_0.28614822288883635","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"claude-memory-layer","version":"2.0.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.0.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"24a850e8affddf14cb556bbe1ec161d2656cdcce","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.0.0.tgz","fileCount":57,"integrity":"sha512-Vdp/30BGLMsvmRSteQzpkFXDj13/BcgQxysjBGLU128iueK3tPrKrQbHjjENg0+QH4/vRuX1t6vVXDut9yfXiQ==","signatures":[{"sig":"MEUCIQDV82ac6GPQtqz5z3eRzC9rulgbqKhXCbD65+zWCO7dlAIgdjyTvo+LLHe/COo/9PprqMEPhmKAXlI36F348gT0vvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27458985},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"cca5bee017629e5d42a7acc31f956769bd38b178","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.0.0_1785682109435_0.677439941279028","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"claude-memory-layer","version":"2.1.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.1.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"f943eb208e3081136d215d27e7f5e2de1f4c5f79","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.1.0.tgz","fileCount":57,"integrity":"sha512-Y3HD3g+iQPtiRKastjaObJtnUGnFBiulFu6q2zUhxVOBOutc7tz+YTwq2rIRpGLrCp6WiUcIdWT/6kS7TaviGQ==","signatures":[{"sig":"MEQCIFz4/WV8NOBPGHvmekCYGFHs47AeiolcS54LAHZlyu76AiBgJu+oNsGdAS5BydBhJbEgjwq/CEPwt89tQNjto9TAlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28979524},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"4dfcb5c895e4d00eacebc689a464eac94da5d916","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.1.0_1785861802438_0.4146609959405456","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"claude-memory-layer","version":"2.2.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"df60b2b5891828f39e2728c0e7a22041bf2ede13","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.0.tgz","fileCount":57,"integrity":"sha512-EXPC4E8uJ7T6TYp0tc8JW6WSIBg36aYAgO72HczjXO10x8DIgiXPb1LnJ7fZfhUWUSciOQGli/pLTGHxUE/CMg==","signatures":[{"sig":"MEYCIQD/neJr+rWW0i3bnFzFAIlYyi3wLoSNw3TH1m4/Ev9pHwIhAPzhm+4MuYhVFAeEMFMO+66gvtC0KHtQdfo1BojcVfML","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29034124},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"d1fbffeb3af3c25aca53ddfebf30618bda15f776","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.0_1785886094857_0.5177763309336147","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"claude-memory-layer","version":"2.2.1","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.1","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"4256bdabd4eab5ddd58d1c672c10d2f90aa8d5c4","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.1.tgz","fileCount":57,"integrity":"sha512-hVgmLuR+ioK+hFDWJ0DVzPzT+bKv6BVbfL1OegjjdYDFIC71VY52JRHhGtx5xxpTxtL1YBxmI6SgpNeD6N6ePQ==","signatures":[{"sig":"MEQCIFGyyOBzlaw44FeaA7wbI9dZ47/Au8mwC5KAs5bG5a8zAiBKNTbOsfnBdFzJpPPwk9dr/BqWdhpMSMWoiciPjlo4NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29054483},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"4347d5ac8890925318bba69aea4b5ad527d65a15","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.1_1785887570921_0.3855260683300188","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"claude-memory-layer","version":"2.2.2","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.2","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"2744839cef53746637c1163f5c20b365d87088aa","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.2.tgz","fileCount":57,"integrity":"sha512-0ioVOQGAWBGenLj+SFdfDvRh0RYBp5vUfok8anwxddf57u6mvtjPAITvsnmUAJbv2HIcTyBz5K0krySAeRAvSQ==","signatures":[{"sig":"MEUCIER0CLRLBU9qKzEGbxEbNMfc1/j1w7D2dGNvOOaDt0/ZAiEAx8p7hkoFoO8Cjd3KD0cc9uu+L6OOUpD/mbByJwkTWpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29135715},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"9002f4285f43637b5e203d3dd8e5fb7ee0c62220","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.2_1786059887129_0.4521131288198217","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"claude-memory-layer","version":"2.2.3","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.3","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"86049c3493d2ee232589196b51d39ad49414394a","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.3.tgz","fileCount":57,"integrity":"sha512-UZRaJ8DymM6Jdu2EzfC40TN2iSwVKXBDDf7Wr1rnhoLyAGUVB+DV/Ics8D3uvNoRegRMq8fNQRxYALhS4XYkQg==","signatures":[{"sig":"MEYCIQD/kNp9wz8PoW6KTpQOTMCJ/KqV4lZHll//77jni9lUAQIhALzZnEQ+zo9HrzDD6Sc8li9BropXAnlmilNyySNm9qC/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29139157},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.3.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.3.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-UZRaJ8DymM6Jdu2EzfC40TN2iSwVKXBDDf7Wr1rnhoLyAGUVB+DV/Ics8D3uvNoRegRMq8fNQRxYALhS4XYkQg==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.3_1786169928221_0.6575421370254684","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"claude-memory-layer","version":"2.2.4","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.4","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"ac4ca4640feb63ea9db37fdcb5602cacce305220","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.4.tgz","fileCount":57,"integrity":"sha512-dbhJkrwIwqmeE5GWMH+MTnfQO0eFeYXR+02ZgpqBd0fkf1UhaPto5LeU9yw6y7vMqgsPCUn/GMOrxwqwsbULqA==","signatures":[{"sig":"MEYCIQCNWLTSjWzp5iu3f5Ae7CTDflg9bX/03tiEEpzdoOsL9AIhALBjSiqOHgAf11o1yMmwnZtUxGKh44uGbXGuqnaJ9tNm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29143497},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.4.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.4.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-dbhJkrwIwqmeE5GWMH+MTnfQO0eFeYXR+02ZgpqBd0fkf1UhaPto5LeU9yw6y7vMqgsPCUn/GMOrxwqwsbULqA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.4_1786174051984_0.6387661739149979","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"claude-memory-layer","version":"2.2.5","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.5","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"2737e1ed75a17b3d9b879233760f267c9b02bafc","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.5.tgz","fileCount":57,"integrity":"sha512-knODAzW4/MQfJac3C1tkNYrBcfzTPcZTQ2inS1BtOSpyn5UiNEK/JZkP0u5GDT7gQo3CXKxXIafTUePwaERCiQ==","signatures":[{"sig":"MEUCIQDn+wcfVWxXHCWzAjBandk2+fAMHd8O/nqHLzGRM83MegIgRUWJQ6V72CdCLFPfkyw9+crz/lLw71UqsAiNPBOCo6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30783176},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.5_1786244614560_0.5678655868717994","host":"s3://npm-registry-packages-npm-production"}},"2.2.6":{"name":"claude-memory-layer","version":"2.2.6","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.6","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"f3ae2d6f3678bbbb2cf232e44dcb31a472a848a4","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.6.tgz","fileCount":63,"integrity":"sha512-j40oeylTPLIH9lwzuazAFrvDSxkp2+nPHC2gHKrP5zKOfKlo6+kKCxPad3YGnOJ+2e8TM24uOhaTDyJ4sCND5w==","signatures":[{"sig":"MEUCIQCMt5Tcj8kdbwDThSZWP1WgHW6OAijLU+clQAAsXfG2uwIgUeUGOuWC2se8REnIRgkPTrg3qBOnRLxC42uP+sQSMkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34716306},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.6_1786286215983_0.5680217194160329","host":"s3://npm-registry-packages-npm-production"}},"2.2.7":{"name":"claude-memory-layer","version":"2.2.7","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.7","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"3450585d0e9c93fd3670332c237c46477b1ff29e","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.7.tgz","fileCount":63,"integrity":"sha512-T/zitdv9QGiCV8Ye4Ev5p7yApW9taDvwAjRE7ZygItaXGUzi3n0dRGGABYCtB/8+WslURJEnrQpYBV4d0yfrYw==","signatures":[{"sig":"MEQCIHop0H0LjVSdEoTPv0s5kwD7x2sro3XNtF2yzaQAf2C1AiA4byI/xT0TD1hSguiqovRjYj47o76FkPu1VGB3rmc9IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34718509},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.7_1786370303811_0.645945526102709","host":"s3://npm-registry-packages-npm-production"}},"2.2.8":{"name":"claude-memory-layer","version":"2.2.8","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.8","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"109dc446e28955c2660269fc282addf300595099","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.8.tgz","fileCount":65,"integrity":"sha512-7SS5QSq5RdU5UDDOZsaVKoYnCCp5cqQtd9e006ejYqmuf0d2udUdIegXxPFJLci5MbGYvTTP/veZS93YS5Wgzw==","signatures":[{"sig":"MEYCIQC4ulOM+yssBqkxQSFeHg+Fv444Nv8w7Zhd4lu3N/GwvAIhAKUWU4jj/DHHojNeIw4HnvEGJKPQpbPGGZss3FOD+pR7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36841456},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.8_1786377615539_0.7609777533778357","host":"s3://npm-registry-packages-npm-production"}},"2.2.9":{"name":"claude-memory-layer","version":"2.2.9","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.9","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"70413d7bb95fee6587b636dda6e88296e263f3c6","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.9.tgz","fileCount":65,"integrity":"sha512-eIT6xpP0pcmxUgzFJVWB4yoKyGqI2ao4cuneqysfWAYW26B/Ktql1QkFlzebwARKoAUExHs7T2t1FTMPVXQyHQ==","signatures":[{"sig":"MEQCIA0PNtVBRO3R73Ady1cm2IC1H5opCChE5Jxtwp5TKtoSAiB30kEq7p7J4DNKipp/aI4ITVSh3PQgIkshEQMwSap/6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36936005},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"gitHead":"9e5f7282c26444e3c6fece0285f7303045790128","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.9_1786459799325_0.40251842851322706","host":"s3://npm-registry-packages-npm-production"}},"2.2.10":{"name":"claude-memory-layer","version":"2.2.10","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.10","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"ef5391dacee4ce6f263d16753629d66c727dd29b","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.10.tgz","fileCount":65,"integrity":"sha512-u0PJPpwtbxyYiAWJ+Xt4EqJyvcaosezb5kuUcKvpLDTHdU+bu3yo03vnxnn6fP6tcBYXi7qu8FGwbrLppkK1rA==","signatures":[{"sig":"MEUCIQDjndsoLs3e/20LrbkIcAijtaXPICu2gOLLkriV0Ds7UgIgCAqEJeav5LhIuc4m4u+yWWn+eO3ns2XoSLnnKSkflJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37051039},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.10_1786521033132_0.8092821930923348","host":"s3://npm-registry-packages-npm-production"}},"2.2.11":{"name":"claude-memory-layer","version":"2.2.11","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.11","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"c46fdde2a864703decd02c4ef1d040d75ee26cc1","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.11.tgz","fileCount":65,"integrity":"sha512-mhY/Y9dYHotqxxu18ZJ4547zJAbPPENGfvecbMEGh0ndd1JjNKDjm238Q2gSoXkQz54wzeXApbYrQawRf4lPPg==","signatures":[{"sig":"MEUCIQDnUpsfdVt/SIqacFNS21+JCjt8FwanNeDJXciG9UtR0AIgQ/yBaAPrVcVwnLiB+FHj6BH0P7GBzKIEZzNP2tQ1jGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37813097},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.11.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.11.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-mhY/Y9dYHotqxxu18ZJ4547zJAbPPENGfvecbMEGh0ndd1JjNKDjm238Q2gSoXkQz54wzeXApbYrQawRf4lPPg==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.11_1787129843315_0.13321099766898592","host":"s3://npm-registry-packages-npm-production"}},"2.2.12":{"name":"claude-memory-layer","version":"2.2.12","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.12","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"9b14f39fb51b1b3b63528d9e3fabcef504d90547","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.12.tgz","fileCount":65,"integrity":"sha512-08xThUYt8dwTWPeC16oKdO9oaZ4tBuhB+7WtNPeYOMCiJyZQS8tuorLvYM1vwYRbYTu3rXpyCdf90d4WlW4Clw==","signatures":[{"sig":"MEUCIQDKd0Lo/piZU2FRFnSTrYDqzmnUI5bdOpniADc0NIC/UwIgHRv/oM7JqsTc9zxPUc3Eqly8zIR9YaRT27iNLVsVcIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37847622},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.12.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.12.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-08xThUYt8dwTWPeC16oKdO9oaZ4tBuhB+7WtNPeYOMCiJyZQS8tuorLvYM1vwYRbYTu3rXpyCdf90d4WlW4Clw==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.12_1787130896373_0.1471581165636846","host":"s3://npm-registry-packages-npm-production"}},"2.2.13":{"name":"claude-memory-layer","version":"2.2.13","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.13","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"23e929220dab958f6de2bc737fe907c9eaad9cc5","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.13.tgz","fileCount":65,"integrity":"sha512-3ZR0EhdQrD8c5LYEyevt6BxxOU2xxTsp9zoHr7AfLQkoQ9SJu1JwfDmURfh3xH+sszXRu+hZ7e8ojEJ/r1d0XA==","signatures":[{"sig":"MEUCIQCy1TwKt430spTzF4hyTb8oE8fml5t8aTZx6PfJyZ78eQIgGs8o1cPiVrPQgz2rr+r5noqCdYIslvLyVWTZRscmewM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37899006},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.13.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.13.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-3ZR0EhdQrD8c5LYEyevt6BxxOU2xxTsp9zoHr7AfLQkoQ9SJu1JwfDmURfh3xH+sszXRu+hZ7e8ojEJ/r1d0XA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.13_1787132755089_0.736165066074616","host":"s3://npm-registry-packages-npm-production"}},"2.2.14":{"name":"claude-memory-layer","version":"2.2.14","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.14","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"dee5393c22150da424cb2e7e4e3177d393e21e8b","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.14.tgz","fileCount":65,"integrity":"sha512-r0joU/K3FCTjVPcvX6kET6u/0vWBhxQCtGPid0dv2+8XtVa5pu67hKNxxV/3J9EaiIYJiWcMzPlTIEfo38lY/w==","signatures":[{"sig":"MEYCIQDDzfDKoqrIHhG7vuxc+Esqxb+NgaFySKTYRYRH5sdlmgIhAPb8EmutgoyT/hbjnOsIOmFMtSCm+uzkaxQoq6OgTt3x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37989434},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.14.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.14.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-r0joU/K3FCTjVPcvX6kET6u/0vWBhxQCtGPid0dv2+8XtVa5pu67hKNxxV/3J9EaiIYJiWcMzPlTIEfo38lY/w==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.14_1787134365885_0.21934076034087147","host":"s3://npm-registry-packages-npm-production"}},"2.2.15":{"name":"claude-memory-layer","version":"2.2.15","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.15","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"b0e0323cd3e287274000bdce5585ffb3e3caa26b","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.15.tgz","fileCount":65,"integrity":"sha512-Xj9NW6ngyMhZVsxqC8s58JIyVq75fwZtFgdNwHatL4QruOk9Mco5QeLxytedr5aDGR/adHJMC7KOl9Ut1fT3kg==","signatures":[{"sig":"MEYCIQCNWMfRWpAvurUTVVdcrHrpZog04VECmhVx3kLTMtBTjgIhAIcPbvrKO673LP+yS5MoR7xsw+fNTn/brfpfJFwQ9+pS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37998442},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.15.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.15.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-Xj9NW6ngyMhZVsxqC8s58JIyVq75fwZtFgdNwHatL4QruOk9Mco5QeLxytedr5aDGR/adHJMC7KOl9Ut1fT3kg==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.15_1787137536105_0.17718099151810285","host":"s3://npm-registry-packages-npm-production"}},"2.2.16":{"name":"claude-memory-layer","version":"2.2.16","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.16","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"879c5e13ca2530b0a1ff21fe9ea99551e4630efb","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.16.tgz","fileCount":65,"integrity":"sha512-qt3twlg27Uw+W9jGSZ85NPXWzvphHqII+LTlU3mzm8lUvoQ9Tg+BVgGoHGQ7bNB8LWi8s79ocPYrLPFIvkssHQ==","signatures":[{"sig":"MEUCIQDKSs7nAzBasX4dWA3S0GMLKsh7XbAfrUjEegZcOocEQgIgJTyc/cNlwR7skkeryyuhWR42EAC1IhaC+Uc6lGAzbTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38252994},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.16.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.16.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-qt3twlg27Uw+W9jGSZ85NPXWzvphHqII+LTlU3mzm8lUvoQ9Tg+BVgGoHGQ7bNB8LWi8s79ocPYrLPFIvkssHQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.16_1787138432893_0.10837405430987168","host":"s3://npm-registry-packages-npm-production"}},"2.2.17":{"name":"claude-memory-layer","version":"2.2.17","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.2.17","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"4120b1c8fc68438d3d3b14a0023c55908681a26c","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.2.17.tgz","fileCount":65,"integrity":"sha512-ZCenyejnNCP5YRQVxMSqhoBAj/trIqVE9mrvOdCDeEaGhvsy6qGV7M0gKvOtxifgD9cFw+5sCWrj8YSKgUxebA==","signatures":[{"sig":"MEQCIFLCXwuNr5BYgC4wc0uVOkz57andxILEEwBuo1KG9KeHAiBz05aXiyj9anKyxrDmutg6vt2jxhpfcSjwm28AuZDSPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.2.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38836760},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.2.17.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.2.17.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-ZCenyejnNCP5YRQVxMSqhoBAj/trIqVE9mrvOdCDeEaGhvsy6qGV7M0gKvOtxifgD9cFw+5sCWrj8YSKgUxebA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.2.17_1787140564815_0.27415306506028014","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"claude-memory-layer","version":"2.3.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.3.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"60edd6bd758d2fd1bd1e9e5cf7b5bd997ca18d92","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.3.0.tgz","fileCount":65,"integrity":"sha512-kDPP+u0gBQ+ll/LSJVsC0e3zcwRr/kWz9dSRImjIDnMeYfy8zpcxk02D1gzxc5OD5x8kw43bNVxcParUK5GeKg==","signatures":[{"sig":"MEQCIHbzirLUyH2zx1blnYXjcmyonN7WNugK5CUUicrA5JO4AiAcgn49+AhEeDL7Zw2nN5nPYwpw9hurD+26B2TJkTT3DQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38866205},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.3.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.3.0.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-kDPP+u0gBQ+ll/LSJVsC0e3zcwRr/kWz9dSRImjIDnMeYfy8zpcxk02D1gzxc5OD5x8kw43bNVxcParUK5GeKg==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.3.0_1787141246416_0.05935319967374997","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"claude-memory-layer","version":"2.3.1","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.3.1","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"73714131440b15cc5a7a6f73b9f8513c18ce71a2","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.3.1.tgz","fileCount":65,"integrity":"sha512-pfQjaluQewi/BQC8pulngaDa0buhr6EC93WleLso8fIhMbZSboqlvFYfLiC/nPWgdfR5dXLjffPtWnoKcVM/mQ==","signatures":[{"sig":"MEUCIEkZJbDmn67iRKkpnTFIL840LsijOnpSA3jnaC1DsCgiAiEAspih21OF1+8iotIbL/y00nYeNSQtwpECOIiICAIa8cY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38893128},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.3.1.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.3.1.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-pfQjaluQewi/BQC8pulngaDa0buhr6EC93WleLso8fIhMbZSboqlvFYfLiC/nPWgdfR5dXLjffPtWnoKcVM/mQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.3.1_1787143070409_0.43249333646387433","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"claude-memory-layer","version":"2.3.2","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.3.2","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"c9bd21ff3a7e77e7537e8818fa5e320f7a78bc62","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.3.2.tgz","fileCount":65,"integrity":"sha512-WrXzq7lRpr7h99FSpUvJrkAoP1xnIMy0xcWsU2EzRgrh3S/3GTc9prf8afuODGQRZLN8VaFIUTfTAzZ25xlqHg==","signatures":[{"sig":"MEQCIDP5xX60qpubZCdoHUuBhJyUqBqjkqvw0+DZim0qINi5AiBOCPLptcbsK32gaBA8za1hVbrtwguN8z/tK9R7M/9Lcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38982463},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.3.2.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.3.2.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-WrXzq7lRpr7h99FSpUvJrkAoP1xnIMy0xcWsU2EzRgrh3S/3GTc9prf8afuODGQRZLN8VaFIUTfTAzZ25xlqHg==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.3.2_1787143565159_0.4378284600774689","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"claude-memory-layer","version":"2.3.3","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.3.3","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"6ac7edbc6c7c9ab5a950ba3eb4b2113d29b6b713","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.3.3.tgz","fileCount":67,"integrity":"sha512-iYH61IWcYs2Xt1ePjUh3LNKs9MbF7/NSObMq8CcqlrGhYl+Kz/SNqDyOcDR+SBwSJ8RJ+vcIY+v+QL7nH2EMkA==","signatures":[{"sig":"MEQCIGzjftddB2cMcCSBRbVxwoiMezRLjHZ86cRRIPxKddTBAiB8Zg72C8TYxnpECyw3jcCloqg2tVFUE6l08Pn9l0/WZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42565609},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.3"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.3.3_1788160219234_0.6992760673394176","host":"s3://npm-registry-packages-npm-production"}},"2.3.5":{"name":"claude-memory-layer","version":"2.3.5","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.3.5","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"88bceaa110efc0c27727b74d1dfcfe78bd28ea13","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.3.5.tgz","fileCount":67,"integrity":"sha512-6Zi4IyZ934BqQKuPQnCAR2j2cCbpyNeH066zIWdoNALfJVpJrRainIcGdQQVOkJitlNI5EYFHQuBtDx4uBHCsQ==","signatures":[{"sig":"MEYCIQCPQb1eR6QQvXZH4KeZlVG0JevmeZFRgMFEIjbMqhqNjgIhAKaUkV8wX4uewkoh5URzllTfCT6z0Ho5aH1rxkYeqvJ4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42622371},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.3.5.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.3.5.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-6Zi4IyZ934BqQKuPQnCAR2j2cCbpyNeH066zIWdoNALfJVpJrRainIcGdQQVOkJitlNI5EYFHQuBtDx4uBHCsQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.3.5_1788357982441_0.2508035148627259","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"claude-memory-layer","version":"2.4.0","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.0","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"d90989debbd258af8582075f9488357cfcbf020a","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.0.tgz","fileCount":67,"integrity":"sha512-jJzNMM0fqXC9FbUw8u9Bnf9565gVH+JBMATJxiiaYiQkzZ5pxso0xz3BRx4gvFSl54vkvLwMTRtSev1tf4puoA==","signatures":[{"sig":"MEQCIHPAgqWjRWh10O62l7T0JYXharkUPmtL6mcVjyWk1pyjAiAbaOzSvhlO6lbmp1c2C4tb3uU99M8kpcQkX8bMkv/1MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42831029},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.4.0.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.4.0.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-jJzNMM0fqXC9FbUw8u9Bnf9565gVH+JBMATJxiiaYiQkzZ5pxso0xz3BRx4gvFSl54vkvLwMTRtSev1tf4puoA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.0_1788598410722_0.2211576031983462","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"claude-memory-layer","version":"2.4.2","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.2","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"16a533f1a9f4479861fcb60e2fd08ba81ef62f73","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.2.tgz","fileCount":69,"integrity":"sha512-En0t6f6Psui9pWIULBcEwRkUb5w0c34k+Ove5ecINepHFrxaLXbb+Zyl0Mdl66yzW42kBHtT3XRDC+5l2qTnOQ==","signatures":[{"sig":"MEQCIEv3v2vGVMSjxvDKq3gNBGCv1nd8hcV2qIoyIWzwfFjEAiArE9VEvdIWffMxESfSmQUxUnfR1GQIfxBbL2B/tYhA+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAULug7yjuLfzpcruWn1a43k1RrNeizgjPJMavt/hXMSAiEA2i1DdHOlkWpn3avWwV2OQdDLV6N3tfBF4pvV0QWaNiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44150315},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.4.2.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.4.2.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-En0t6f6Psui9pWIULBcEwRkUb5w0c34k+Ove5ecINepHFrxaLXbb+Zyl0Mdl66yzW42kBHtT3XRDC+5l2qTnOQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.2_1789943799097_0.38579716454832313","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"claude-memory-layer","version":"2.4.3","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.3","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"320f238e47262605f2608cc81c5fe49df94288e4","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.3.tgz","fileCount":69,"integrity":"sha512-IdSQD5FIKBQaLH9rYK7M+eEiA5Q9/++hH/ADyZb+etws3EtARaJ97ifR/pR2gYC//CPJy1rT1hd0mn6/+54dSA==","signatures":[{"sig":"MEUCIQC9ZRayqnX67U0yjEsOmdHJma4FZn3vHp+8eYZ7Poxs9AIgOSOhiysbVt/0zgMXJJYlZ3LacOd5K7xTOphJ3aJZGvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFU2qpOjcLrT9PGsob3/wQh+mRk1XKG7FhSespFsYHu4AiEA3QpuJj37lVXsQl9tKNESLda5e1Jg/pSSN5AuEr9RzLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44162937},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.4.3.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.4.3.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-IdSQD5FIKBQaLH9rYK7M+eEiA5Q9/++hH/ADyZb+etws3EtARaJ97ifR/pR2gYC//CPJy1rT1hd0mn6/+54dSA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.3_1789994498129_0.3869159952355572","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"claude-memory-layer","version":"2.4.4","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.4","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"f85b001e9563ef5cf83a5bc726c3710fedb0eb77","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.4.tgz","fileCount":69,"integrity":"sha512-l0utDizrzc+9VkaofD13TiYiMBr7k2wHz/sc83vvor9fgmzW+ZZQ6q6kFE3OHvon4+WlWC8hPNUPcSgAjD0XOw==","signatures":[{"sig":"MEUCIQD+uJaUSFF8SrDb3/H9QUOrziryMwRaxbqmPEryY3BiGwIgVLPjFe/Flluk9ATFbVM89FLowoJEXDMmL3vYKzzkDzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDCSPdsinrQbVGECgifkfYULJiBFyYdnGdEdFSXyZ7LFAiEAz2jX0t+VyRAgoYsNUwZ/8QLWMqEX5e/LYYZPLOkbZXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47506404},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.4.4.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.4.4.tgz","overrides":{"sharp":"0.35.3"},"_integrity":"sha512-l0utDizrzc+9VkaofD13TiYiMBr7k2wHz/sc83vvor9fgmzW+ZZQ6q6kFE3OHvon4+WlWC8hPNUPcSgAjD0XOw==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.4_1790068887414_0.3036681703114614","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"claude-memory-layer","version":"2.4.5","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.5","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"1b214e6bb7f5dc5e33908346ee29af2575aac54f","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.5.tgz","fileCount":68,"integrity":"sha512-hXiejyCWm19OVBuNW9Rb4dLPzzdtDHE/UDBHFRCmLCP0LOFTm9iPLvm4vV/lPk/x4HqX8brp5/id5x+bY18Gig==","signatures":[{"sig":"MEUCIGR3wxcmQTMR4auip/3Px13skF5MAV0OLzLQInBr/n+SAiEAqutMW6HwYumpXf1j0edVmbZ8DmnYK8pDLMkah13Csgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDCp7DS68PHlm64L9a2uVwviYJLOWTxaw7G7d1rQrDJygIhAIPUsIRQ2morq2+rkVj3Uz0oGUaClJcKEp0Nwb+qk+Ic","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47529913},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.4"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.5_1790293523523_0.33823528261577196","host":"s3://npm-registry-packages-npm-production"}},"2.4.6":{"name":"claude-memory-layer","version":"2.4.6","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.6","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"91c646141fbc199d22104381ab60d1a61ac64966","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.6.tgz","fileCount":68,"integrity":"sha512-naSgAoPBdIhEog4A4mgACsTOPfevRBSioMV+yTAN2CqOHQyrUYaUno7ppFDsfPW0h8sb41ZokDNZk+OLIAXp2A==","signatures":[{"sig":"MEQCIFpEUaaoPuN/ClvOX4ZQ0pbdZd/cmRAP+k9bw0bTrzu8AiAVpBq2/S7uWC+rvUtJVEY+xcldALob8vm50Kv9r3nrMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDHemenQ0rPeL4ql0TwX9phv21FQrEzOeOLXr0X6fjctgIgDOXZDVK+GzmfOoOzCVnrJNGEQqRkqxxanxAq6elk/Q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47531311},"main":"dist/index.js","type":"module","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"overrides":{"sharp":"0.35.4"},"devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.9.8","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.6_1790389334607_0.5120748903198384","host":"s3://npm-registry-packages-npm-production"}},"2.4.7":{"name":"claude-memory-layer","version":"2.4.7","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"author":{"name":"Buzzni"},"license":"MIT","_id":"claude-memory-layer@2.4.7","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"homepage":"https://github.com/buzzni/claude-memory-layer#readme","bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"dist":{"shasum":"596171a9827d89b30f445ebd0494b14175c337b7","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.7.tgz","fileCount":68,"integrity":"sha512-o7fIdgj1YuamVhqd27MCWUUr5up08Zz5MwAT98ox28t1BKlIDui9MNgV1GzMTKRHHTtJ4Mx6vCJRnMMZnnjKzQ==","signatures":[{"sig":"MEUCIQDOo6/76cfeae/CZi/TYC4cVDCgAExYXE61/uHdNXrDgAIgfBG3O7hE+d/xTexmgg4tzSdeomC3cOx9tVPtQN4mX7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEjcd4vwIRWoR9rIH0P+CbkBmF+rTzp9mZ6V/1GAJB6PAiEA3LbyuXteJq/gHHPrQIEORo94I+ZCDsrKiLU9tQ7eBHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47519176},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.4.7.tgz","engines":{"node":">=20.19.0"},"scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.4.7.tgz","overrides":{"sharp":"0.35.4"},"_integrity":"sha512-o7fIdgj1YuamVhqd27MCWUUr5up08Zz5MwAT98ox28t1BKlIDui9MNgV1GzMTKRHHTtJ4Mx6vCJRnMMZnnjKzQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/claude-memory-layer_2.4.7_1790477276576_0.0028176212197721373","host":"s3://npm-registry-packages-npm-production"}},"2.4.8":{"_id":"claude-memory-layer@2.4.8","bin":{"claude-memory-layer":"dist/cli/index.js","claude-memory-layer-mcp":"dist/mcp/index.js"},"bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"dist":{"shasum":"e494dfd8c234912928ffe399ac725057c1f1bf50","tarball":"https://registry.npmjs.org/claude-memory-layer/-/claude-memory-layer-2.4.8.tgz","fileCount":68,"integrity":"sha512-TEL2Hl2IF2NLSdLePH31SMESlarwGzwx4f4Nwz7TGFjUTCQG61jyGNG16/9CLdPt8M9K5T8imjpLL+BHUR7JWw==","signatures":[{"sig":"MEUCIQCrLNjmYliyzUp+8DlSpzlASTZy+YK8sTOsEX8+ijP/0AIgFI5J4nr4DINr/HRuoEthxvtA791Kb+BUA5tTKSQ093c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQChVocadYwE3/KPHoIufqFL6+RUBx+smeyRh58nITJqoQIhAPapkYeNAbWATwofEhqdNumyxOSMB32WbLeJ1V6JhTiz"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/claude-memory-layer@2.4.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48054165},"main":"dist/index.js","name":"claude-memory-layer","type":"module","_from":"file:/home/runner/work/_temp/claude-memory-layer-2.4.8.tgz","author":{"name":"Buzzni"},"engines":{"node":">=20.19.0"},"license":"MIT","scripts":{"dev":"tsx src/apps/cli/index.ts","lint":"eslint \"src/**/*.ts\"","test":"vitest","build":"tsx scripts/build.ts","verify":"npm run typecheck && npm run lint && npm run test:run","test:run":"vitest run","typecheck":"tsc --noEmit","ops:health":"npm run ops:sync-gap:report && npm run ops:sync-gap:heal && npm run ops:review:resolve","postinstall":"node scripts/postinstall-embedding-backend.cjs","release:npm":"bash scripts/release-npm.sh","ops:heartbeat":"bash scripts/heartbeat-memory-orchestrator.sh","test:coverage":"vitest --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test:run && npm run build","benchmark:qrels":"tsx scripts/generate-session-qrels.ts","smoke:dashboard":"tsx scripts/dashboard-smoke.ts","benchmark:replay":"tsx scripts/replay-retrieval-benchmark.ts --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:sync-gap:fix":"node scripts/fix-sync-gap.js","eval:memory-field":"tsx scripts/evaluate-memory-field.ts","ops:sync-gap:heal":"bash scripts/sync-gap-auto-heal.sh","check:architecture":"node scripts/check-import-boundaries.mjs","eval:lesson-hybrid":"tsx scripts/evaluate-lesson-hybrid.ts","ops:review:resolve":"node scripts/review-queue-auto-resolve.js","ops:sync-gap:report":"node scripts/report-sync-gap.js","eval:retrieval-replay":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query --min-query-yield 1 --min-no-match-accuracy 1 --max-forbidden-hits 0 --max-failed-queries 0","ops:projects:clean-unknown":"node scripts/delete-unknown-projects.js","check:public-output-privacy":"tsx scripts/scan-public-output-privacy.ts","eval:longmemeval:codex-batch":"tsx scripts/longmemeval-codex-batch.ts","eval:longmemeval:codex-judge":"tsx scripts/longmemeval-codex-judge.ts","eval:retrieval-replay:report":"tsx scripts/replay-retrieval-benchmark.ts --fixture benchmarks/replay/golden-memory-usefulness-v1.json --format markdown --no-per-query","benchmark:replay:promote-review":"tsx scripts/promote-retrieval-review-queue.ts","eval:longmemeval:retrieval-smoke":"tsx scripts/longmemeval-retrieval-smoke.ts --input benchmarks/longmemeval/fixtures/retrieval-smoke-mini.json --no-per-query","benchmark:replay:validate-promotion":"tsx scripts/validate-replay-promotion-candidates.ts"},"version":"2.4.8","_npmUser":{"name":"namsangboy","email":"namsangboy@gmail.com"},"homepage":"https://github.com/buzzni/claude-memory-layer#readme","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"_resolved":"/home/runner/work/_temp/claude-memory-layer-2.4.8.tgz","overrides":{"sharp":"0.35.4"},"_integrity":"sha512-TEL2Hl2IF2NLSdLePH31SMESlarwGzwx4f4Nwz7TGFjUTCQG61jyGNG16/9CLdPt8M9K5T8imjpLL+BHUR7JWw==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=20.19.0"},"packageManager":{"name":"npm","onFail":"warn","version":">=10.9.0"}},"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"_npmVersion":"10.8.2","description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","directories":{},"maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.0","hono":"^4.12.25","mongodb":"^6.14.0","commander":"^12.0.0","better-sqlite3":"^12.6.2","@lancedb/lancedb":"^0.5.0","@hono/node-server":"^2.0.12","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.39.4","vitest":"^4.1.8","esbuild":"^0.28.0","typescript":"^5.4.0","@types/node":"^20.11.0","typescript-eslint":"^8.62.0","@types/better-sqlite3":"^7.6.13","@huggingface/transformers":"3.8.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-memory-layer_2.4.8_1790991314445_0.669317240756989"}}},"time":{"created":"2026-02-01T02:43:18.737Z","modified":"2026-10-03T01:35:15.091Z","1.0.0":"2026-02-01T02:43:18.934Z","1.0.1":"2026-02-01T03:47:04.973Z","1.0.2":"2026-02-01T03:49:28.043Z","1.0.3":"2026-02-01T04:33:34.839Z","1.0.4":"2026-02-01T04:41:29.631Z","1.0.5":"2026-02-01T04:43:45.384Z","1.0.6":"2026-02-01T04:49:37.190Z","1.0.7":"2026-02-01T05:30:05.675Z","1.0.8":"2026-02-01T10:45:41.496Z","1.0.9":"2026-02-02T02:42:04.313Z","1.0.10":"2026-02-02T03:11:59.969Z","1.0.11":"2026-02-22T01:55:40.778Z","1.0.12":"2026-02-26T11:34:21.516Z","1.0.13":"2026-02-26T11:53:02.593Z","1.0.14":"2026-02-26T12:01:00.620Z","1.0.15":"2026-02-26T12:12:09.649Z","1.0.16":"2026-02-26T13:06:50.275Z","1.0.17":"2026-02-26T13:40:04.212Z","1.0.18":"2026-02-26T13:58:15.551Z","1.0.19":"2026-03-03T15:07:50.222Z","1.0.20":"2026-03-03T15:34:12.105Z","1.0.21":"2026-03-04T00:49:38.653Z","1.0.22":"2026-03-04T06:35:01.398Z","1.0.23":"2026-03-04T06:40:08.046Z","1.0.24":"2026-03-04T10:46:57.775Z","1.0.25":"2026-03-04T14:22:49.181Z","1.0.26":"2026-03-04T15:10:52.797Z","1.0.27":"2026-03-05T08:00:38.740Z","1.0.28":"2026-05-07T05:15:30.456Z","1.0.29":"2026-05-07T12:28:42.211Z","1.0.30":"2026-05-07T22:57:24.953Z","1.0.31":"2026-05-08T10:45:23.442Z","1.0.32":"2026-05-08T12:05:51.416Z","1.0.33":"2026-05-10T00:03:36.644Z","1.0.34":"2026-05-10T04:20:25.773Z","1.0.35":"2026-05-10T05:43:38.405Z","1.0.36":"2026-05-10T07:29:50.969Z","1.0.37":"2026-05-10T09:36:33.157Z","1.0.38":"2026-05-10T13:52:04.938Z","1.0.39":"2026-05-10T14:25:09.185Z","1.0.40":"2026-05-10T14:39:52.848Z","1.0.41":"2026-05-21T15:39:01.221Z","1.0.42":"2026-05-25T23:22:22.012Z","1.0.43":"2026-05-27T13:03:04.549Z","1.0.44":"2026-06-02T08:30:43.192Z","1.0.45":"2026-06-02T23:49:00.337Z","1.0.46":"2026-06-03T14:39:57.961Z","1.0.47":"2026-06-13T02:46:00.435Z","1.0.48":"2026-06-13T02:49:39.658Z","1.0.49":"2026-06-13T12:36:26.524Z","1.0.50":"2026-06-15T11:12:47.173Z","1.0.51":"2026-06-17T04:47:31.165Z","1.0.52":"2026-06-26T08:48:07.243Z","1.0.53":"2026-06-27T01:14:48.126Z","1.0.54":"2026-06-27T06:49:45.376Z","1.0.55":"2026-07-08T09:00:11.678Z","1.0.56":"2026-07-14T23:44:46.271Z","1.0.57":"2026-07-15T00:15:34.124Z","1.0.58":"2026-07-15T06:47:27.412Z","1.0.59":"2026-07-15T13:31:23.474Z","1.0.60":"2026-07-16T09:36:11.586Z","1.0.61":"2026-07-17T14:55:33.802Z","1.1.0":"2026-07-27T15:09:36.843Z","1.1.1":"2026-07-29T00:01:39.508Z","1.1.2":"2026-07-29T00:26:07.827Z","1.1.3":"2026-07-29T04:10:33.094Z","1.2.0":"2026-08-01T04:19:07.760Z","1.2.1":"2026-08-01T04:55:30.682Z","1.2.2":"2026-08-01T05:15:10.864Z","1.2.3":"2026-08-01T08:15:14.770Z","2.0.0":"2026-08-02T14:48:29.709Z","2.1.0":"2026-08-04T16:43:22.727Z","2.2.0":"2026-08-04T23:28:15.150Z","2.2.1":"2026-08-04T23:52:51.247Z","2.2.2":"2026-08-06T23:44:47.405Z","2.2.3":"2026-08-08T06:18:48.491Z","2.2.4":"2026-08-08T07:27:32.256Z","2.2.5":"2026-08-09T03:03:35.270Z","2.2.6":"2026-08-09T14:36:56.276Z","2.2.7":"2026-08-10T13:58:24.078Z","2.2.8":"2026-08-10T16:00:15.859Z","2.2.9":"2026-08-11T14:49:59.613Z","2.2.10":"2026-08-12T07:50:33.409Z","2.2.11":"2026-08-19T08:57:23.596Z","2.2.12":"2026-08-19T09:14:56.650Z","2.2.13":"2026-08-19T09:45:55.518Z","2.2.14":"2026-08-19T10:12:46.163Z","2.2.15":"2026-08-19T11:05:36.407Z","2.2.16":"2026-08-19T11:20:33.170Z","2.2.17":"2026-08-19T11:56:05.106Z","2.3.0":"2026-08-19T12:07:26.771Z","2.3.1":"2026-08-19T12:37:50.696Z","2.3.2":"2026-08-19T12:46:05.432Z","2.3.3":"2026-08-31T07:10:19.564Z","2.3.5":"2026-09-02T14:06:22.916Z","2.4.0":"2026-09-05T08:53:31.047Z","2.4.2":"2026-09-20T22:36:39.313Z","2.4.3":"2026-09-21T12:41:38.362Z","2.4.4":"2026-09-22T09:21:27.669Z","2.4.5":"2026-09-24T23:45:23.734Z","2.4.6":"2026-09-26T02:22:14.892Z","2.4.7":"2026-09-27T02:47:56.842Z","2.4.8":"2026-10-03T01:35:14.760Z"},"bugs":{"url":"https://github.com/buzzni/claude-memory-layer/issues"},"author":{"name":"Buzzni"},"license":"MIT","homepage":"https://github.com/buzzni/claude-memory-layer#readme","keywords":["claude-code","plugin","memory","learning","personalization","context","mcp","codex","hermes","dashboard","sqlite","lancedb","vector-search","agent-memory","perspective-memory"],"repository":{"url":"git+https://github.com/buzzni/claude-memory-layer.git","type":"git"},"description":"Project-scoped memory layer for Claude Code, Codex, Hermes, MCP, and dashboards","maintainers":[{"name":"namsangboy","email":"namsangboy@gmail.com"}],"readme":"# Claude Memory Layer\n\nClaude Code, Codex, Hermes, MCP 클라이언트가 함께 쓰는 **프로젝트 스코프 메모리 레이어**입니다. 대화/세션 기록을 SQLite 이벤트 저장소와 LanceDB 벡터 인덱스로 관리하고, 작업 시작 시 필요한 기억·타임라인·액션 프런티어를 privacy-safe 컨텍스트로 제공합니다.\n\n## 개요\n\nClaude Memory Layer는 AI 에이전트의 대화와 작업 이벤트를 프로젝트별로 저장하고, 새로운 작업을 시작할 때 관련 기억을 자동 검색해 컨텍스트로 제공합니다. 최신 npm 패키지는 단순 Claude Code hook을 넘어 다음 용도로 사용할 수 있습니다:\n\n- **연속성 있는 대화**: 이전 세션에서 논의한 결정, 오류, 검증 결과를 검색\n- **프로젝트 맥락 이해**: 프로젝트별 isolated store와 `projectPath` 기반 MCP/CLI 조회\n- **다중 에이전트 호환**: Claude Code hooks + Codex/Hermes session import + MCP stdio server\n- **운영형 메모리**: actions/frontier/checkpoints/facets/lessons/retention audit로 다음 작업을 이어받기\n- **Perspective Memory**: 사용자/어시스턴트/서브에이전트 관점의 actor card와 observation 관리\n- **신뢰 가능한 벡터 동기화**: Vector Outbox V2, worker lock, dashboard/vector-status health로 누락 복구\n\n## 최신 릴리스 하이라이트\n\n- **MCP Context Navigator**: `mem-context-pack`, `mem-project-timeline`, `mem-source-ref`, `mem-import-latest`로 Hermes/Codex/Claude Desktop이 같은 프로젝트 기억을 안전하게 조회합니다.\n- **Memory Operations Layer**: facet/action/frontier/checkpoint/retention/graph/lesson 도구와 CLI가 추가되어 “무엇을 다음에 해야 하는가”를 메모리에서 바로 복원합니다.\n- **Honcho-inspired Perspective Memory**: actor/session membership, actor cards, perspective observations, contradiction/derived observation, perspective context/query 도구를 제공합니다.\n- **Vector Outbox V2**: SQLite source write와 vector enqueue를 같은 트랜잭션으로 묶고, versioned LanceDB upsert와 stuck-job recovery를 지원합니다.\n- **Dashboard 운영성 강화**: local-only 기본 bind, 선택적 password gate, Vector Health 카드, Perspective Memory aggregate 카드, retrieval trace/score breakdown과 aggregate-only strategy/context-pack telemetry를 제공합니다.\n- **Codex/Hermes history ingest**: 원본 세션은 read-only validate/replay로 먼저 확인하고, 명시적 import로만 프로젝트 메모리에 반영합니다.\n- **Hermes/CML/Headroom 운영 모델**: Hermes built-in memory, `session_search`, CML context-pack, read-only Hermes provider, Headroom reference stance는 [`docs/HERMES_CML_HEADROOM_OPERATING_MODEL.md`](docs/HERMES_CML_HEADROOM_OPERATING_MODEL.md)에 정리되어 있습니다.\n- **npm 설치 안정화**: `@huggingface/transformers`는 보안 버전의 `sharp`를 고정한 격리 backend로 설치하며, CUDA 11 환경에서는 CPU-only ONNX Runtime으로 자동 복구합니다.\n- **코드 에이전트 메모리 4종 (v2.1)**: codify-lite 코드 구조 앵커링(`source_file` 엔티티 + `touched_in` 그래프 + session-file 검색 레인), Letta식 코어 메모리 블록(`mem-core-block-get/update`, SessionStart 상시 주입), Mem0식 사실 조정(`mem-entity-supersede`), Zep/Graphiti식 bitemporal 엣지 히스토리(`mem-graph-query`의 `asOf`/`knownAt`)를 제공합니다.\n- **operations.json 기능 플래그 (v2.2)**: codify-lite 등 옵트인 기능을 `~/.claude-code/memory/operations.json` 파일 하나로 켤 수 있습니다. 아래 [선택 기능 활성화](#선택-기능-활성화-operationsjson) 참고.\n\n## 빠른 시작 (신규 프로젝트 기준)\n\n아래 순서대로 하면 됩니다.\n\n> **Runtime requirement:** Claude Memory Layer 2.0.0부터 Node.js 20.19 이상이 필요합니다.\n> Hono 정적 파일 서버와 로컬 embedding 이미지 backend의 보안 수정 버전을 사용하기 위한 최소 버전입니다.\n\n### 0) 최초 1회(머신 전체) 설치\n\n권장 설치 방식은 npm에 배포된 패키지를 **전역 설치**하는 것입니다. `install`은 Claude Code hook 파일 경로를 `~/.claude/settings.json`에 저장하므로, 일회성 `npx claude-memory-layer install`보다 전역 설치 또는 고정된 로컬 checkout을 쓰는 것이 안전합니다.\n\n```bash\nnpm install -g claude-memory-layer@latest\n\n# 기본: Claude Code 훅만 설치\nclaude-memory-layer install\n\n# 또는: 훅과 주기 maintenance를 한 번에 설치\nclaude-memory-layer install --with-maintenance\n\nclaude-memory-layer status\n\n# 설치 후 뭔가 이상하면 환경 진단 (Node 버전, embedding backend, PATH 중복 설치, 훅, 스토어 쓰기 권한)\nclaude-memory-layer doctor\n\n# Codex에서도 자동 컨텍스트 적재/불러오기를 사용할 때\nclaude-memory-layer codex hooks install\nclaude-memory-layer codex hooks status\n```\n\n로컬 개발 checkout에서 설치할 때:\n\n```bash\ngit clone https://github.com/buzzni/claude-memory-layer.git\ncd claude-memory-layer\nnpm install\nnpm run build\nnpx claude-memory-layer install\nnpx claude-memory-layer status\nnpx claude-memory-layer doctor\n```\n\n- `install`은 **한 번만** 하면 됩니다(Claude Code hooks 등록).\n- `npm install`만으로는 백그라운드 서비스를 등록하지 않습니다. `maintenance install` 또는 `install --with-maintenance`를 사용자가 명시적으로 실행해야 합니다.\n- `codex hooks install`은 `~/.codex/hooks.json`에 SessionStart/UserPromptSubmit/SessionEnd 훅을 병합합니다. Codex를 재시작한 뒤 `/hooks`에서 새 훅 정의를 검토하고 신뢰해야 실행됩니다.\n- Embedding backend은 런타임 필수 기능이며, postinstall이 패키지 내부의 격리된 관리 디렉터리에 설치합니다. 이 경계에서 `sharp` 보안 버전을 강제하고, CUDA 11 환경에서는 `onnxruntime-node`를 CPU-only로 설치합니다.\n- 이후 프로젝트별로 메모리 저장소가 자동 분리됩니다.\n- `install` / `uninstall`은 `~/.claude/settings.json`을, `codex hooks install` / `uninstall`은 `~/.codex/hooks.json`을 수정합니다. `maintenance install` / `uninstall`은 사용자 계정의 launchd/systemd 정의만 변경합니다. 기존의 다른 훅과 서비스는 보존합니다.\n\n#### 선택: 자동 maintenance\n\n프로젝트별 pending embedding/vector outbox와 5분 이상 멈춘 processing 작업을 주기적으로 처리하려면 최초 1회 활성화합니다.\n\n```bash\n# macOS: ~/Library/LaunchAgents에 사용자 LaunchAgent 등록\n# Linux: ~/.config/systemd/user에 systemd user timer 등록(sudo 불필요)\nclaude-memory-layer maintenance install\n\n# 기본 5분 대신 15분 주기\nclaude-memory-layer maintenance install --interval 900\n\nclaude-memory-layer maintenance status\nclaude-memory-layer maintenance run --json\nclaude-memory-layer maintenance run --no-compaction\n\n# 기본 5 GiB보다 넉넉한 여유 공간을 요구할 때\nclaude-memory-layer maintenance run --min-free-gb 10\n\n# 스케줄러 정의만 제거하며 메모리 데이터는 보존\nclaude-memory-layer maintenance uninstall\n```\n\n각 실행은 최근 저장소부터 순차적으로 확인하고 프로젝트별 worker lock을 사용합니다. 기본적으로 저장소당 최대 4 processing round(각 vector schema당 최대 한 batch)를 처리해 장시간 자원 독점을 피합니다. pending, retry 가능한 failed, 5분 이상 멈춘 processing 작업만 자동 복구하며 재시도 한도를 넘은 quarantined 작업은 무한 반복하지 않고 상태에 남깁니다.\n\nmaintenance는 메모리 루트가 있는 파일시스템의 여유 공간이 기본 5 GiB 미만이면 쓰기 작업을 `blocked`로 기록하고 큐 현황만 보고합니다. 기준은 `maintenance run --min-free-gb <GiB>`로 조정할 수 있으며, `0`은 이 보호 장치를 명시적으로 끕니다. 예약 실행도 같은 기본값을 사용합니다.\n\nsystemd user session이 없는 최소 Linux, 컨테이너, 일부 WSL 환경에서는 스케줄러 설치 대신 `claude-memory-layer maintenance run`을 기존 cron/작업 스케줄러에서 호출할 수 있습니다.\n\n#### CUDA 11 / `onnxruntime-node` 설치 에러\n\nLinux x64 서버에 CUDA 11이 설치되어 있으면 `@huggingface/transformers`의 하위 의존성인 `onnxruntime-node`가 `nvcc --version`을 감지한 뒤 CUDA 11용 GPU 바이너리를 자동 설치하려고 합니다. 현재 해당 install script는 CUDA 11 자동 설치를 지원하지 않아 다음 오류로 `npm install`이 실패할 수 있습니다.\n\n```text\nError: CUDA 11 binaries are not supported by this script yet.\n```\n\nClaude Memory Layer는 로컬 semantic/vector embedding에 필요한 `@huggingface/transformers`를 런타임 필수 backend로 취급합니다. 설치 중 postinstall repair가 이를 격리된 관리 디렉터리에 설치하면서 `ONNXRUNTIME_NODE_INSTALL_CUDA=skip`으로 CPU-only ONNX Runtime과 보안 수정된 `sharp`를 함께 고정합니다. npm 로그의 최종 exit code가 0이고 `claude-memory-layer --version`이 동작하면 정상입니다. 최신 버전에서는 일반적으로 아래 명령이 그대로 동작해야 합니다.\n\n```bash\nnpm install -g claude-memory-layer@latest\nclaude-memory-layer --version\n```\n\n만약 npm 버전/환경 차이로 같은 오류가 계속 나면 아래처럼 CUDA 바이너리 다운로드를 명시적으로 건너뛰어 재설치하세요.\n\n```bash\n# 실패한 전역 설치가 일부 남아 있으면 먼저 제거\nnpm uninstall -g claude-memory-layer || true\n\n# CPU-only ONNX Runtime으로 재설치\nONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install -g claude-memory-layer@latest\nclaude-memory-layer --version\n```\n\n로컬 checkout 개발 환경에서 같은 오류가 나면 아래처럼 설치합니다.\n\n```bash\nONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install\n```\n\n이미 설치된 패키지 디렉터리에서 backend만 손상/누락된 경우에는 해당 패키지 디렉터리에서 아래 복구 스크립트를 실행할 수 있습니다.\n\n```bash\nONNXRUNTIME_NODE_INSTALL_CUDA=skip node scripts/postinstall-embedding-backend.cjs\n```\n\n`npm warn deprecated ...` 경고는 하위 의존성 경고이며 설치 실패 원인이 아닙니다.\n\n#### Embedding model\n\n기본 로컬 embedding 모델은 `Xenova/multilingual-e5-small`입니다.\n\n- `@huggingface/transformers`/ONNX Runtime CPU에서 동작하므로 CUDA가 필요 없습니다.\n- 원본 `intfloat/multilingual-e5-small`은 multilingual + Korean(`ko`) 지원 모델이고, Xenova variant는 Transformers.js용 ONNX 파일을 제공합니다.\n- 384차원이라 대규모 세션 import에서도 CPU/메모리 부담이 작습니다.\n- 더 높은 품질이 필요하면 `--embedding-model <hf-model>` 또는 `CLAUDE_MEMORY_EMBEDDING_MODEL`로 `onnx-community/Qwen3-Embedding-0.6B-ONNX`, `onnx-community/embeddinggemma-300m-ONNX` 같은 Transformers.js/ONNX 모델을 실험할 수 있습니다. 다만 이들은 다운로드/CPU 비용이 더 크거나 모델/라이선스 성숙도를 별도 검토해야 합니다.\n\n```bash\nclaude-memory-layer import --project \"$PWD\" --embedding-model Xenova/multilingual-e5-small\nCLAUDE_MEMORY_EMBEDDING_MODEL=onnx-community/Qwen3-Embedding-0.6B-ONNX claude-memory-layer process --project \"$PWD\"\n```\n\n### 1) 새 프로젝트에서 초기 메모리 생성\n\n```bash\ncd /path/to/your-project\nclaude-memory-layer import\n```\n\n- 현재 프로젝트의 기존 Claude Code 세션(`~/.claude/projects/...`)을 읽어와 메모리로 적재합니다.\n- 벡터 임베딩까지 한 번에 처리됩니다.\n\n### 2) 사용 중 확인\n\n```bash\n# 프로젝트 메모리 검색\nclaude-memory-layer search \"인증 구조\"\n\n# 통계 확인\nclaude-memory-layer stats\n\n# 대시보드 실행\nclaude-memory-layer dashboard --no-open\n```\n\n### 3) 다른 프로젝트에도 동일하게 적용?\n\n네. **완전히 동일한 흐름**을 각 프로젝트에서 반복하면 됩니다.\n\n```bash\ncd /path/to/another-project\nclaude-memory-layer import\nclaude-memory-layer search \"배포 이슈\"\n```\n\n프로젝트마다 내부적으로 별도 저장소(`~/.claude-code/memory/projects/<hash>`)를 사용하므로,\n기억이 자동으로 분리됩니다. 같은 저장소(git) 안의 워크트리·하위 디렉터리는 메인 체크아웃으로\n자동 수렴합니다.\n\ngit 경계를 넘어 수렴시키고 싶을 때 — 예: 워크스페이스 제품이 채팅/인스턴스마다 디렉터리(각자\ngit repo인 경우 포함)를 만들어 메모리가 파편화될 때 — 워크스페이스 루트에 빈 마커 파일을 두면\n하위 모든 경로가 그 디렉터리 하나의 저장소를 공유합니다:\n\n```bash\ntouch <workspace-root>/.claude-memory-root\n```\n\n- 마커는 **빈 일반 파일**이어야 합니다(같은 이름의 디렉터리는 무시).\n- 마커 디렉터리 자체의 해시는 변하지 않으므로, 이미 그 경로에 있던 저장소는 그대로 이어집니다.\n- 가장 가까운(안쪽) 마커가 이기므로 중첩 워크스페이스는 분리 상태를 유지합니다.\n- 마커는 자체 `.git`을 가진 하위 repo보다 우선합니다 — 그것이 이 opt-in의 존재 이유입니다.\n- 마커 판정은 git 수렴 **이후의** 기준 경로에서 위로 올라가며 이루어집니다. 그래서\n  워크스페이스 밖에 체크아웃된 워크트리도 메인 체크아웃을 통해 마커에 도달하고,\n  repo에 커밋된 루트 마커가 워크트리를 개별 저장소로 쪼개지 않으며,\n  repo **하위 디렉터리**의 마커는 무시됩니다(서브트리가 repo 저장소에서 분리되지 않음).\n- 홈 디렉터리·시스템 temp 루트·파일시스템 루트에 놓인 마커는 무시합니다 —\n  실수로 놓인 마커 하나가 머신의 모든 프로젝트를 한 저장소로 합치는 사고 방지.\n- 훅은 프로세스가 매번 새로 뜨므로 즉시 반영되지만, 장수 프로세스(MCP 서버·대시보드·데몬)는\n  재시작해야 마커를 반영합니다.\n- 기존 파편 저장소의 과거 데이터가 자동 병합되지는 않습니다(새 세션부터 수렴).\n  마커 채택 후 기존 파편 저장소에 project-scope repair를 실행하면 과거 행들이\n  현재 해시 기준과 달라 격리될 수 있으니 주의하세요.\n\n### 4) 운영 팁\n\n- 특정 프로젝트를 명시하고 싶으면 대부분 명령에 `--project <path>` 사용 가능\n- 대규모 리임포트가 필요하면 `import --force` 사용\n- 최근 일부만 가져오고 싶으면 `--session-limit <n>` 또는 `--limit <n>` 사용\n- 백그라운드 worker가 못 처리한 임베딩은 opt-in `maintenance install`로 주기 처리하거나 `process`로 수동 처리\n- 상태 점검:\n  - `GET /health` (서버 헬스)\n  - `GET /api/health` (outbox pending/failed 포함 상세 헬스)\n  - `GET /api/stats/retrieval-traces` (검색→컨텍스트 채택 추적)\n- 주입 임계값 튜닝(환경변수):\n  - `CLAUDE_MEMORY_RETRIEVAL_MODE` (기본 `hybrid`, `keyword`/`hybrid`/`semantic`)\n  - `CLAUDE_MEMORY_SEMANTIC_DAEMON_IDLE_MS` (기본 `600000`, semantic daemon 유휴 종료 시간)\n  - `CLAUDE_MEMORY_MIN_SCORE` (기본 0.4)\n  - `CLAUDE_MEMORY_FALLBACK_MIN_SCORE` (기본 0.3, 결과 0건일 때 재시도)\n\n---\n\n## 다른 서버 초기 세팅 & 이전 대화 ingest\n\n새 서버에서 Claude Memory Layer를 설치하고 기존 Claude Code/Codex/Hermes 대화 기록을 처음 적재할 때는 아래 체크리스트를 따르세요.\n\n### 1) 새 서버 준비\n\n```bash\nnode --version   # Node.js >= 18 필수\nnpm --version\nnpm install -g claude-memory-layer@latest\nclaude-memory-layer install\nclaude-memory-layer status\n```\n\n> `claude-memory-layer install`은 Claude Code hooks를 등록합니다. 이미 Claude Code가 실행 중이면 재시작해야 hook이 반영됩니다.\n\n### 2) 이전 서버의 원본 대화 기록 가져오기\n\n가장 안전한 방식은 **원본 대화 기록을 새 서버로 복사한 뒤 새 서버에서 다시 import**하는 것입니다. 필요한 것만 선택해서 복사하세요. 이 디렉토리/DB에는 민감한 대화와 경로가 포함될 수 있으므로 공개 저장소에 커밋하거나 공유하지 말고, SSH/사설망 등 신뢰할 수 있는 경로로만 복사하세요.\n\n```bash\n# Claude Code 원본 세션(JSONL)\nmkdir -p ~/.claude/projects\nrsync -a OLD_HOST:~/.claude/projects/ ~/.claude/projects/\n\n# Codex CLI 원본 세션(JSONL) - Codex 기록도 가져올 때만\nmkdir -p ~/.codex/sessions\nrsync -a OLD_HOST:~/.codex/sessions/ ~/.codex/sessions/\n\n# Hermes Agent SessionDB - Hermes 기록도 가져올 때만\n# 권장: OLD_HOST에서 Hermes/gateway/agent 프로세스를 먼저 멈춘 뒤 SQLite sidecar까지 함께 복사\nmkdir -p ~/.hermes\nrsync -a OLD_HOST:'~/.hermes/state.db*' ~/.hermes/\n```\n\nHermes를 멈출 수 없는 운영 서버라면, `state.db` 파일을 직접 복사하는 대신 OLD_HOST에서 SQLite `.backup`으로 일관된 스냅샷을 만든 뒤 가져오세요.\n\n```bash\nssh OLD_HOST 'sqlite3 ~/.hermes/state.db \".backup /tmp/hermes-state.db.backup\"'\nmkdir -p ~/.hermes\nrsync -a OLD_HOST:/tmp/hermes-state.db.backup ~/.hermes/state.db\n```\n\n이미 처리된 CML 저장소를 그대로 옮기고 싶다면, 이전/새 서버의 관련 agent, dashboard, semantic daemon/worker 등 모든 CML writer를 멈춘 뒤 아래처럼 복사할 수도 있습니다. 단, 재현성과 모델/버전 migration을 위해서는 위의 원본 기록 re-ingest 방식을 우선 권장합니다.\n\n```bash\nmkdir -p ~/.claude-code\nrsync -a OLD_HOST:~/.claude-code/memory/ ~/.claude-code/memory/\n```\n\n### 3) 프로젝트별로 read-only 검증 후 import\n\n프로젝트 메모리는 프로젝트 경로 기준으로 분리됩니다. 새 서버의 실제 repo 경로를 `PROJECT`에 넣고, 필요한 importer만 실행하세요.\n\n중요: Codex/Hermes/Claude Code 원본 세션의 project filter는 **대화가 생성될 당시의 절대 경로**를 기준으로 매칭합니다. 새 서버에서도 repo 절대 경로가 이전 서버와 같으면 아래 project import를 그대로 쓰면 됩니다.\n\n```bash\nexport PROJECT=/path/to/your-project\ncd \"$PROJECT\"\n\n# Claude Code 기록: import 가능한 세션 확인 후 프로젝트 메모리로 적재\nclaude-memory-layer list --project \"$PROJECT\"\nclaude-memory-layer import --project \"$PROJECT\" --verbose\n\n# Codex 기록: 먼저 읽기 전용 리포트로 확인한 뒤 명시적으로 import\nclaude-memory-layer codex validate --project \"$PROJECT\" --format markdown\nclaude-memory-layer codex import --project \"$PROJECT\" --verbose\n\n# Hermes 기록: 먼저 읽기 전용 리포트로 확인한 뒤 명시적으로 import\nclaude-memory-layer hermes validate --project \"$PROJECT\" --format markdown\nclaude-memory-layer hermes import --project \"$PROJECT\" --verbose\n\n# pending embedding이 남아 있으면 수동 처리\nclaude-memory-layer process --project \"$PROJECT\"\n```\n\n이전 서버와 새 서버의 repo 절대 경로가 다르면, `OLD_PROJECT`로 원본 세션을 찾고 특정 session 파일/id를 새 프로젝트 저장소(`NEW_PROJECT`)로 가져오세요.\n\n```bash\nexport OLD_PROJECT=/old/server/path/to/your-project\nexport NEW_PROJECT=/path/to/your-project\ncd \"$NEW_PROJECT\"\n\n# Claude Code: list 출력의 JSONL session file path를 확인해서 사용\nclaude-memory-layer list --project \"$OLD_PROJECT\"\nclaude-memory-layer import --project \"$NEW_PROJECT\" --session /path/to/claude-session.jsonl --verbose\n\n# Codex: validate 결과에서 session JSONL 파일을 확인한 뒤 import\nclaude-memory-layer codex validate --project \"$OLD_PROJECT\" --format markdown\nclaude-memory-layer codex import --project \"$NEW_PROJECT\" --session /path/to/codex-session.jsonl --verbose\n\n# Hermes: validate 결과에서 Hermes session id를 확인한 뒤 import\nclaude-memory-layer hermes validate --project \"$OLD_PROJECT\" --format markdown\nclaude-memory-layer hermes import --project \"$NEW_PROJECT\" --session 20260505_010203_abcd1234 --verbose\n\nclaude-memory-layer process --project \"$NEW_PROJECT\"\n```\n\n주의:\n\n- `claude-memory-layer import --all`은 모든 Claude Code 세션을 전역 저장소로 가져옵니다. 프로젝트별 컨텍스트 품질이 중요하면 각 repo에서 `--project <path>` 방식으로 반복하는 것을 권장합니다.\n- `codex import --all`, `hermes import --all`도 의도적으로 전역 메모리를 만들 때만 사용하세요.\n- import/validate/list 결과에는 대화 내용 일부나 로컬 경로가 포함될 수 있습니다. 외부 공유 전에는 민감정보와 경로를 제거하고, Codex validate 리포트는 필요하면 `--anonymize-projects`를 함께 사용하세요.\n- import는 콘텐츠 해시 기반으로 중복을 건너뛰므로 여러 번 실행해도 같은 내용이 중복 저장되지 않습니다. 단, `--force`는 기존 import 이벤트를 지우고 재적재하므로 신중히 사용하세요.\n\n### 4) 검증\n\n```bash\nexport VERIFY_PROJECT=/path/to/your-project  # 위에서 쓴 PROJECT 또는 NEW_PROJECT\nclaude-memory-layer stats --project \"$VERIFY_PROJECT\"\nclaude-memory-layer search \"최근에 하던 작업\" --project \"$VERIFY_PROJECT\" --top-k 5\nclaude-memory-layer dashboard --no-open --port 37777\n# 다른 터미널에서: curl http://localhost:37777/api/health\n\n# 프로젝트 저장소 분리 상태를 aggregate-only 리포트로 점검\nclaude-memory-layer project scope-audit --days 7\n```\n\n### 5) MCP/다른 agent에 연결\n\nClaude Desktop은 CLI로 자동 등록할 수 있습니다. GUI 앱에서 shell `PATH`가 다를 수 있으면 stdio binary의 절대 경로를 command로 넣는 방식이 더 견고합니다.\n\n```bash\nclaude-memory-layer mcp install --command \"$(command -v claude-memory-layer-mcp)\"\n# Claude Desktop 재시작\n```\n\nCodex/Hermes 등 MCP client에도 전역 설치된 stdio binary를 등록하면 됩니다.\n\n```bash\n# Codex 예시\ncodex mcp add claude-memory-layer -- claude-memory-layer-mcp\n\n# Hermes 예시\nhermes mcp add claude-memory-layer --command claude-memory-layer-mcp\n```\n\nMCP client가 환경에 따라 PATH를 못 찾으면 `command -v claude-memory-layer-mcp`로 절대 경로를 확인해서 command에 넣으세요.\n\nMCP 서버는 client의 stdio가 닫히거나 부모 프로세스가 사라지면 자원을 정리하고 종료합니다. 연결은 유지됐지만 호출이 없을 때는 기본 10분 후 embedding 모델/native 자원을 해제하며, 다음 호출에서 자동으로 다시 준비합니다. 필요하면 `CLAUDE_MEMORY_MCP_IDLE_RELEASE_MS`를 60000~86400000ms 범위에서 지정할 수 있습니다.\n\n---\n\n## Features\n\n### Core Features\n\n- **Project-scoped Conversation Memory**: Claude Code, Codex, Hermes의 user/assistant turn을 프로젝트별 SQLite store에 저장\n- **Hybrid Retrieval**: keyword/semantic/auto 전략, progressive disclosure, source/citation drill-down\n- **MCP Context Navigator**: 작업 시작용 compact context pack + recent project timeline + privacy-safe source refs\n- **Memory Operations**: facets, actions, frontier, checkpoints, retention audit, graph query, procedural lessons\n- **Perspective Memory**: actor list, actor card, observer→observed observations, contradiction/derived lanes\n- **Vector Outbox V2**: transactional enqueue, versioned vector upsert, worker lock, stuck recovery, aggregate health\n- **Dashboard**: localhost dashboard, retrieval trace, aggregate-only strategy/context-pack telemetry, Vector Health, Perspective Memory aggregate panels\n- **External Context**: DART/FRED/Finnhub read-only market context snapshot for research/analysis workflows\n\n### Advanced Features\n\n- **Citations System**: 검색 결과를 `[mem:abc123]` 형태로 추적하고 `source`/`mem-source-ref`로 근거 확인\n- **Source Neighbor Expansion**: `mem-source-ref(includeNeighbors=true, neighborWindow=1..5)`로 MemPalace식 hit 주변 세션 이벤트를 privacy-safe preview로 함께 확인\n- **Progressive Disclosure**: index → timeline → details 순서로 필요한 만큼만 확장해 토큰 비용 절감\n- **Codex/Hermes Importers**: read-only validate/replay와 explicit import 지원; Codex는 사용자가 설치한 lifecycle hook을 통한 프로젝트별 자동 import도 지원\n- **Perspective Query Agent**: 관점별 observation + raw memory를 읽기 전용으로 조합하고 source refs를 유지\n- **Governance Audit**: facet/action/checkpoint/perspective mutation은 actor/evidence metadata와 함께 기록\n- **Privacy Guardrails**: `<private>` 태그, credential/path redaction, aggregate-only dashboard/API/CLI 출력\n- **Append-only Markdown Mirror**: 선택적으로 저장 이벤트를 `memory/<namespace>/.../YYYY-MM-DD.md`에 append\n- **Mongo Sync**: 멀티 서버 협업을 위한 선택적 이벤트 push/pull sync\n- **Endless Mode / Shared Memory**: 세션 경계 없는 연속 기억 및 공유 store 실험 기능\n\n### 현재 feature status\n\n| 영역 | 상태 | 비고 |\n|------|------|------|\n| Claude Code hooks / CLI | Stable | `install`, `search`, `import`, `stats`, `dashboard`, `process` |\n| SQLite event store / project registry | Stable | 프로젝트별 canonical source of truth, WAL 기반 동시 읽기/쓰기 |\n| LanceDB vector index / Embedder | Stable accelerator | 격리된 `@huggingface/transformers` backend + security-pinned `sharp`, versioned vector tables |\n| Vector Outbox V2 | Implemented | transactional enqueue, worker lock, stale recovery, `vector-status`, dashboard Vector Health |\n| Progressive disclosure / retrieval traces | Implemented | `search --disclosure`, `expand`, `source`, score breakdown, privacy-safe lanes, aggregate-only strategy/context-pack telemetry |\n| MCP server | Implemented | package bin `claude-memory-layer-mcp`, project-aware read tools + audited operation tools |\n| Codex/Hermes session ingestion | Implemented | validate/replay는 read-only, explicit import 지원; Codex는 opt-in SessionStart/UserPromptSubmit 조회와 SessionEnd 자동 import 지원 |\n| Memory Operations layer | Implemented | facets/actions/frontier/checkpoints/retention/graph/lessons |\n| Perspective Memory | Implemented P0/P1 | actors, actor cards, perspective observations, context-pack lanes, aggregate dashboard |\n| Dashboard | Implemented | local-only default bind, optional password, vector/perspective/trace panels |\n| External Market Context | Implemented | DART/FRED/Finnhub read-only snapshot + MCP tool |\n| Mongo sync / Endless mode / shared memory | Experimental | 고급/운영 옵션으로 취급 |\n| Codify-lite (코드 구조 앵커링) | Implemented, opt-in | `operations.json`으로 활성화, 아래 참고 |\n| Core memory blocks / entity supersede / temporal graph | Implemented | MCP 도구로 상시 사용 가능 (`mem-core-block-*`, `mem-entity-supersede`, `mem-graph-query asOf`) |\n\n## 선택 기능 활성화 (operations.json)\n\n검색 랭킹에 영향을 주는 기능은 기본적으로 꺼져 있고(옵트인), `~/.claude-code/memory/operations.json` 파일로 켭니다 (v2.2.0+):\n\n```bash\nmkdir -p ~/.claude-code/memory\ncat > ~/.claude-code/memory/operations.json <<'EOF'\n{\n  \"enabled\": true,\n  \"codifyLite\": { \"enabled\": true }\n}\nEOF\n```\n\n동작 방식:\n\n- **적용 범위**: 머신 전역 — 이 파일 하나로 해당 머신의 모든 프로젝트에 적용됩니다.\n- **반영 시점**: 훅은 세션마다 새 프로세스라 다음 세션부터 바로 적용됩니다. MCP 서버·semantic daemon 같은 장수 프로세스는 재시작해야 반영됩니다.\n- **끄기**: 해당 플래그를 `false`로 바꾸거나 파일을 삭제하면 됩니다.\n- **안전장치**: 파일이 없거나 JSON이 깨졌거나 스키마에 맞지 않으면 조용히 전부-꺼짐 기본값으로 동작합니다 (세션 시작을 절대 실패시키지 않음).\n- **경로 변경**: `CLAUDE_MEMORY_OPERATIONS_CONFIG_PATH` 환경변수로 다른 파일을 지정할 수 있습니다 (주로 테스트·격리용).\n\n켤 수 있는 플래그 (전체 스키마는 `MemoryOperationsConfigSchema` 참고):\n\n| 플래그 | 효과 | 권장 |\n|--------|------|------|\n| `codifyLite.enabled` | 파일을 만지는 도구 호출마다 `source_file` 엔티티/`touched_in` 엣지를 축적하고, 현재 세션이 만지는 파일과 연결된 과거 메모리를 검색에 올리는 session-file 레인을 켭니다 | 켜기 권장 |\n| `graphExpansion.enabled` | 쿼리에서 추출한 엔티티 기준 그래프 확장 검색 레인 | 랭킹 영향 미검증, 기본 유지 |\n| `retention.enabled` / `lessons.enabled` / `perspectiveMemory.*` | retention audit, lesson, perspective memory 하위 기능 | 필요 시 |\n\n참고: 코어 메모리 블록·`mem-entity-supersede`·temporal graph 조회는 플래그와 무관하게 항상 사용 가능합니다. 이 플래그들은 자동 수집·검색 랭킹처럼 \"가만히 있어도 동작이 바뀌는\" 부분만 게이트합니다.\n\n## 설치 방법\n\n### 1. 의존성 설치\n\n```bash\ncd claude-memory-layer\nnpm install\n```\n\n### 2. 빌드\n\n```bash\nnpm run build\n```\n\n### 3. Claude Code에 플러그인 등록\n\nClaude Code hook 설정은 CLI가 등록합니다:\n\n```bash\nnpx claude-memory-layer install\n```\n\n> 주의: `install` / `uninstall`은 `~/.claude/settings.json`을 수정합니다. 자동 테스트나 임의 실행 대신, 실제 사용자가 설치/해제를 원할 때만 실행하세요.\n\n## 사용 방법\n\n### 자동 동작 (Hooks)\n\n플러그인은 Claude Code 세션에 자동으로 연결되어 동작합니다:\n\n| Hook | 동작 |\n|------|------|\n| **SessionStart** | 세션 시작 시 프로젝트 관련 컨텍스트 로드 |\n| **UserPromptSubmit** | 프롬프트 입력 시 관련 기억 검색 및 저장 |\n| **Stop** | AI 응답 완료 시 응답 내용 저장 |\n| **SessionEnd** | 세션 종료 시 요약 생성 및 저장 |\n\n### Slash 명령어\n\nClaude Code 내에서 사용할 수 있는 명령어:\n\n```bash\n# 메모리 검색 - 관련 기억 찾기\n/memory-search \"authentication 구현 방법\"\n\n# 대화 기록 보기\n/memory-history\n/memory-history --limit 50\n/memory-history --session <session-id>\n\n# 통계 확인\n/memory-stats\n\n# 기존 대화 기록 임포트\n/memory-import                            # 현재 프로젝트\n/memory-import --all                      # 모든 프로젝트\n/memory-import --project /path/to/project # 특정 프로젝트\n\n# 임포트 가능한 세션 목록\n/memory-list\n\n# 메모리 삭제\n/memory-forget --session <id> --confirm\n```\n\n### 기존 메모리 정리 Import (구조화)\n\n레거시 markdown 메모리를 읽어서 구조화 경로로 재저장(import)할 수 있습니다.\n\n```bash\n# 미리보기(실제 저장 없음)\nclaude-memory-layer organize-import /path/to/legacy-memory --dry-run\n\n# 실제 import\nclaude-memory-layer organize-import /path/to/legacy-memory --project /path/to/project\n\n# 일부만 import\nclaude-memory-layer organize-import /path/to/legacy-memory --limit 100\n\n# source에 markdown이 없으면 자동 bootstrap(코드+git 분석)\nclaude-memory-layer organize-import /path/to/empty-dir --project /path/to/project\n\n# bootstrap 강제 실행\nclaude-memory-layer organize-import /path/to/memory --force-bootstrap --repo /path/to/project\n\n# 자동 bootstrap 비활성화\nclaude-memory-layer organize-import /path/to/empty-dir --no-bootstrap-if-empty\n\n# markdown이 없는 초기 상태면 bootstrap 생성 + import\nclaude-memory-layer organize-import /path/to/empty-dir --bootstrap --repo /path/to/codebase\n\n# bootstrap 강제 재생성 (기존 markdown 있어도)\nclaude-memory-layer organize-import /path/to/legacy-memory --force-bootstrap --repo /path/to/codebase --out /path/to/legacy-memory/bootstrap-kb\n\n# 증분 bootstrap (기본값): 이전 manifest를 기준으로 변경분 중심 업데이트\nclaude-memory-layer organize-import /path/to/legacy-memory --bootstrap --repo /path/to/codebase --incremental\n\n# 전체 재생성 bootstrap\nclaude-memory-layer organize-import /path/to/legacy-memory --bootstrap --repo /path/to/codebase --no-incremental\n```\n\n### CLI 명령어\n\n전역 설치 후에는 `claude-memory-layer`를 그대로 쓰고, 로컬 checkout에서는 `npx claude-memory-layer` 또는 `node dist/cli/index.js`를 사용할 수 있습니다.\n\n```bash\n# 메모리 검색 / progressive disclosure\nclaude-memory-layer search \"React 컴포넌트 패턴\" --top-k 10\nclaude-memory-layer search \"API 에러 처리\" --disclosure\nclaude-memory-layer expand mem:abc123\nclaude-memory-layer source mem:abc123\n\n# 대화 기록 / 통계\nclaude-memory-layer history --limit 50 --type user_prompt\nclaude-memory-layer stats --project /path/to/project\n\n# Claude Code 세션 import\nclaude-memory-layer list --project /path/to/project\nclaude-memory-layer import --project /path/to/project --verbose\n\n# Codex/Hermes 세션은 read-only 검증 후 명시적으로 import\nclaude-memory-layer codex validate --project /path/to/project --format markdown --anonymize-projects\nclaude-memory-layer codex import --project /path/to/project --verbose\nclaude-memory-layer hermes validate --project /path/to/project --format markdown\nclaude-memory-layer hermes import --project /path/to/project --verbose\n\n# 임베딩/벡터 outbox 처리와 상태 점검\nclaude-memory-layer process --project /path/to/project\nclaude-memory-layer process --project /path/to/project --dry-run-recovery\nclaude-memory-layer vector-status --project /path/to/project\n\n# MCP/semantic daemon의 aggregate-only 런타임 리소스 상태\nclaude-memory-layer runtime-status\nclaude-memory-layer runtime-status --json\n\n# 머신 전체 프로젝트 저장소의 bounded maintenance\nclaude-memory-layer maintenance run\nclaude-memory-layer maintenance run --min-free-gb 10\nclaude-memory-layer maintenance install --interval 300\nclaude-memory-layer maintenance status\nclaude-memory-layer maintenance uninstall\n\n# registry/canonical store 분리 상태의 aggregate-only 감사\nclaude-memory-layer project scope-audit --days 7\nclaude-memory-layer project scope-audit --days 7 --json\n\n# Perspective Memory actor/session membership backfill\nclaude-memory-layer actors repair --project /path/to/project --dry-run\nclaude-memory-layer actors repair --project /path/to/project --apply\n\n# Memory Operations\nclaude-memory-layer facet query --project /path/to/project --dimension workflow\nclaude-memory-layer facet tag --project /path/to/project --target-type event --target-id <id> --dimension workflow --value release --actor <actor> --apply\nclaude-memory-layer action list --project /path/to/project\nclaude-memory-layer frontier --project /path/to/project --limit 20\nclaude-memory-layer checkpoint list --project /path/to/project\nclaude-memory-layer retention audit --project /path/to/project\n\n# Dashboard\nclaude-memory-layer dashboard --no-open\nclaude-memory-layer dashboard --bind localhost --port 37777 --password \"<local-password>\" --no-open\n\n# External read-only market/company context\nclaude-memory-layer market-context --company 삼성전자 --dart-corp-code 00126380 --symbol 005930.KS --json\n```\n\nMongoDB 동기화는 선택 기능입니다. 여러 서버에서 같은 프로젝트를 개발할 때, 각 서버의 로컬 SQLite 이벤트를 하나의 MongoDB로 모아 push/pull할 수 있습니다. Pull된 이벤트를 바로 semantic search/context-pack에서 쓰고 싶다면 `--process-after-sync`를 함께 켜서 새 이벤트가 내려온 뒤 pending embedding/vector outbox를 처리하세요.\n\n```bash\nexport CLAUDE_MEMORY_MONGO_URI=\"mongodb://USER:***@HOST:PORT/\"\nexport CLAUDE_MEMORY_MONGO_DB=\"claude_memory_layer\"\nexport CLAUDE_MEMORY_MONGO_PROJECT=\"my-project\"\nclaude-memory-layer mongo-sync\nclaude-memory-layer mongo-sync --watch --interval 30000\nclaude-memory-layer mongo-sync --watch --interval 30000 --process-after-sync --process-interval 120000\n```\n\n`--process-after-sync`는 pull된 이벤트가 있을 때만 실행되며, `--process-interval` 동안 debounce되어 매 sync tick마다 불필요하게 임베딩을 재처리하지 않습니다. 내부적으로 project-scoped `vector-worker.lock`을 사용하므로 별도 `process` worker가 이미 실행 중이면 skip합니다.\n\n### memU-inspired Retrieval 사용 예시\n\n아래 예시는 SDK/서비스 레벨에서 `retrieveMemories()` 호출 시 적용되는 옵션입니다.\n\n```ts\nimport { getMemoryServiceForProject } from './src/services/memory-service.js';\n\nconst memory = getMemoryServiceForProject('/path/to/project');\n\n// 1) Fast: 키워드 기반 빠른 검색\nconst fast = await memory.retrieveMemories('브리핑 포맷', {\n  strategy: 'fast',\n  topK: 5,\n  minScore: 0.6\n});\n\n// 2) Deep: 벡터 검색 + 키워드 오버랩 재정렬\nconst deep = await memory.retrieveMemories('브리핑 포맷', {\n  strategy: 'deep',\n  topK: 10,\n  rerankWithKeyword: true\n});\n\n// 3) Scoped filter: 세션/타입/계층형 메타데이터로 범위 제한\nconst scoped = await memory.retrieveMemories('아침 브리핑', {\n  strategy: 'deep',\n  scope: {\n    sessionIdPrefix: 'agent:main:',\n    eventTypes: ['user_prompt', 'agent_response'],\n    canonicalKeyPrefix: 'pref/briefing',\n    contentIncludes: ['아침'],\n    metadata: {\n      'scope.project.id': 'alpha'\n    }\n  }\n});\n```\n\n팁:\n- `strategy: 'auto'`는 기본적으로 fallback 체인을 사용해 결과를 찾습니다.\n- 저지연 응답이 중요하면 `fast`, 정확도 우선이면 `deep`를 권장합니다.\n- 프로젝트 서비스(`getMemoryServiceForProject`) 기준 검색 스코프는 기본적으로 project-aware(엄격 모드)로 동작합니다.\n\n## Privacy 기능\n\n### Private Tags\n\n민감한 정보를 메모리에서 제외하려면 `<private>` 태그를 사용합니다:\n\n```markdown\n이 부분은 저장됩니다.\n\n<private>\nAPI_KEY=sk-xxxx\nSECRET_TOKEN=abc123\n이 내용은 메모리에 저장되지 않습니다.\n</private>\n\n이 부분도 저장됩니다.\n```\n\n저장 결과:\n```\n이 부분은 저장됩니다.\n[PRIVATE]\n이 부분도 저장됩니다.\n```\n\n### 자동 필터링\n\n다음 패턴은 자동으로 마스킹됩니다:\n- `password`, `api_key`, `secret`, `token`\n- Bearer 토큰\n- Private Key 블록\n\n## Citations (인용 시스템)\n\n검색 결과에는 인용 ID가 포함됩니다:\n\n```\n🔍 Search Results:\n\n#1 [mem:a7Bc3x] (score: 0.94)\n   \"SQLite/WAL을 사용하여 이벤트 소싱 패턴을...\"\n   📅 2026-01-30 | 🔗 Session abc123\n```\n\n원본 확인:\n```bash\nclaude-memory-layer show mem:a7Bc3x\n```\n\n## Endless Mode\n\n세션 경계 없이 연속적인 메모리 스트림을 유지합니다:\n\n```bash\n# Endless Mode 활성화\nclaude-memory-layer endless enable\n\n# 상태 확인\nclaude-memory-layer endless status\n\n# 출력 예시:\n# Mode: Endless\n# Working Set: 47 events (last 18 hours)\n# Continuity Score: 0.85 (seamless)\n# Consolidated: 23 memories\n```\n\n### 모드 비교\n\n| 기존 세션 모드 | Endless Mode |\n|---------------|-------------|\n| 명확한 시작/끝 | 연속적 스트림 |\n| 세션별 요약 | 점진적 통합 |\n| 재시작 시 빈 상태 | 이전 컨텍스트 유지 |\n\n## MCP Desktop Integration\n\n> 현재 상태: MCP server implementation은 `src/extensions/mcp/`로 이동되어 있고,\n> `src/mcp/*`는 compatibility shim입니다. package bin으로\n> `claude-memory-layer-mcp`가 제공됩니다.\n\nClaude Desktop 설정은 CLI로 자동 등록할 수 있습니다:\n\n```bash\nclaude-memory-layer mcp install\n# Config: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)\n```\n\n이 명령은 Claude Desktop config의 기존 값을 보존하면서 다음 MCP server entry를 추가/갱신합니다:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-memory-layer\": {\n      \"command\": \"claude-memory-layer-mcp\",\n      \"args\": []\n    }\n  }\n}\n```\n\n옵션:\n\n```bash\nclaude-memory-layer mcp install --dry-run\nclaude-memory-layer mcp install --config-path /path/to/claude_desktop_config.json\nclaude-memory-layer mcp install --server-name claude-memory-layer --command claude-memory-layer-mcp\n```\n\n설정 후 Claude Desktop을 재시작하면 MCP 서버가 로드됩니다. Codex/Hermes처럼 MCP client가 있는 다른 agent에는 로컬 checkout의 built server를 직접 등록할 수 있습니다:\n\n```bash\n# Codex\ncodex mcp add claude-memory-layer -- node /path/to/claude-memory-layer/dist/mcp/index.js\n\n# Hermes\nhermes mcp add claude-memory-layer --command node --args /path/to/claude-memory-layer/dist/mcp/index.js\n```\n\n로컬 checkout에서 서버만 바로 테스트하려면 `npm run build` 후 다음처럼 직접 실행할 수도 있습니다:\n\n```bash\nnode dist/mcp/index.js\n```\n\nMCP 서버는 stdio 종료·부모 프로세스 소실 시 함께 종료됩니다. 유휴 상태에서는 기본 10분 후 embedding 모델/native 자원을 반납하고 다음 도구 호출에서 다시 적재합니다. 유휴 해제 시간은 `CLAUDE_MEMORY_MCP_IDLE_RELEASE_MS`(60000~86400000ms)로 조정할 수 있습니다.\n\nMCP 도구 surface는 `CLAUDE_MEMORY_MCP_PROFILE`로 `core`, `operations`, `governance`, `experimental`, `all` 중 하나를 선택할 수 있습니다. 기본값 `all`은 기존 전체 도구 목록과 동작을 보존합니다. 작은 context/search 중심 surface가 필요하면 MCP server entry의 `env`에 `CLAUDE_MEMORY_MCP_PROFILE=core`를 설정하세요. 프로필별 범위, mutation 분류, 롤백 방법은 [`docs/MCP_TOOL_PROFILES.md`](docs/MCP_TOOL_PROFILES.md)를 참고하세요.\n\n### 제공되는 MCP 도구\n\n| 범주 | 도구 | 설명 |\n|------|------|------|\n| Search | `mem-search` | 프로젝트/세션 스코프 메모리 검색 |\n| Search | `mem-timeline` / `mem-details` | 검색 결과 주변 타임라인과 상세 내용 조회 |\n| Search | `mem-stats` | aggregate memory/vector/outbox 통계 |\n| Context | `mem-context-pack` | 작업 시작용 relevant memory + recent timeline + follow-up refs; privacy-safe query trace를 기록해 dashboard/replay usage 분석에 포함 |\n| Context | `mem-import-latest` | 최신 Claude/Codex/Hermes 세션을 bounded import 후 context-pack freshness 확보 |\n| Context | `mem-project-timeline` | 최근 프로젝트 메모리를 session/source/count/safe-preview로 요약 |\n| Context | `mem-source-ref` | `mem:`/`event:` ref를 redacted preview와 safe metadata로 해석; `includeNeighbors` + `neighborWindow`로 같은 세션의 전후 이벤트를 bounded/privacy-safe preview로 확장 |\n| Operations | `mem-facet-query` / `mem-facet-tag` | project-scoped facet 조회/태깅 |\n| Operations | `mem-action-list` / `mem-action-update` | 다음 작업/action 상태 조회·갱신 |\n| Operations | `mem-frontier` | blocked/next action frontier와 safe resume hints |\n| Operations | `mem-checkpoint-create` / `mem-checkpoint-list` | resumable action/session checkpoint 관리 |\n| Operations | `mem-retention-audit` | dry-run retention governance audit |\n| Operations | `mem-graph-query` | bounded graph expansion/query diagnostics |\n| Operations | `mem-lesson-list` | 저장된 procedural lesson 조회 |\n| Operations | `mem-lesson-candidates` | 반복 성공 워크플로우에서 아직 저장 안 된 lesson 후보 탐지 (LLM 추출, 그룹별 캐시) |\n| Operations | `mem-lesson-save` | 검토한 lesson을 curated lesson으로 저장 |\n| Perspective | `mem-actor-list` | project-scoped actor 목록 |\n| Perspective | `mem-actor-card-get` / `mem-actor-card-upsert` | observer→observed actor card 조회/갱신 |\n| Perspective | `mem-perspective-query` | observer→observed perspective observation 검색 |\n| Perspective | `mem-perspective-context` | actor card + perspective observations context bundle |\n| Perspective | `mem-perspective-observation-create` / `mem-perspective-observation-delete` | audited observation 생성/soft-delete |\n| External | `external-market-context` | DART/FRED/Finnhub read-only MarketContextSnapshot |\n\n대부분의 project-scoped 도구는 `projectPath`를 지원하거나 요구합니다. mutating 도구는 audit용 `actor`와 evidence/source refs를 요구하고, raw transcript/path/secret 출력은 피합니다.\n\n### LLM lesson 추출 설정\n\n`mem-lesson-candidates`는 반복 성공 패턴 그룹을 결정적으로 채굴한 뒤, 로컬에 로그인된 `claude`(또는 `codex`) CLI 서브프로세스로 lesson 텍스트(name/trigger/steps/failureModes)를 추출합니다. 별도 API 키가 필요 없고, 추출 결과는 후보 그룹별로 캐시되어 재조회·승격 시 동일 텍스트를 반환합니다. 트랜스크립트는 서브프로세스에 넘기기 전에 경로/자격증명 redaction을 거칩니다.\n\n| 환경변수 | 기본값 | 설명 |\n|------|------|------|\n| `CLAUDE_MEMORY_LESSON_MODE` | (켜짐) | `off`면 추출 비활성. 후보 그룹은 계속 채굴되지만 lesson 텍스트 없이 `extraction.skippedNoExtractor`로 보고됨 |\n| `CLAUDE_MEMORY_LESSON_PROVIDER` | `claude` | `codex` 선택 가능 |\n| `CLAUDE_MEMORY_LESSON_MODEL` | claude는 `claude-haiku-4-5-20251001`, codex는 CLI 자체 기본값 | 명시 설정 시 그대로 `--model`로 전달 |\n| `CLAUDE_MEMORY_LESSON_TIMEOUT_MS` | `120000` | 그룹당 추출 타임아웃 |\n\n호출당 신규(미캐시) 추출은 3그룹으로 제한됩니다. 남은 그룹은 응답의 `extraction` 통계와 `note`에 보고되며, 다시 호출하면 캐시된 그룹은 건너뛰고 이어서 추출합니다.\n\n예시 workflow:\n\n```text\n1. 새 작업 시작: mem-context-pack(projectPath, query)\n2. 최근 흐름 확인: mem-project-timeline(projectPath)\n3. 근거가 더 필요할 때: mem-source-ref(projectPath, ids=[\"mem:abc123\"], includeNeighbors=true, neighborWindow=1)\n```\n\n이 workflow는 Hermes/Codex/Claude Code가 같은 project-scoped memory backend를 공유할 때 특히 유용합니다. `mem-source-ref`는 raw transcript를 그대로 덤프하지 않고 allowlisted metadata와 privacy-filtered preview만 반환합니다.\n\n## Web Viewer\n\n브라우저에서 메모리 대시보드를 확인할 수 있습니다:\n\n```bash\n# 웹 서버 시작\nclaude-memory-layer dashboard\n\n# 브라우저에서 접속\n# http://localhost:37777\n```\n\n### 주요 기능\n- 실시간 이벤트 스트림과 세션/프로젝트별 탐색\n- 벡터/키워드 검색 인터페이스와 저장소 통계\n- Retrieval Trace: 질의 → 후보/채택 수 → 최종 context IDs, score breakdown(semantic/lexical/recency), lane debug\n- Vector Health: embedding/vector queue pending/processing/failed/stuck, vector count, recovery action 결과\n- Perspective Memory: actor/session membership, observer→observed graph, actor-card counts, observation/contradiction/source-evidence aggregate\n- Dashboard auth hardening: 기본 `localhost` bind, 명시적 `0.0.0.0`, 선택적 password gate\n- API errors/output은 aggregate 중심으로 렌더링하고 raw path, item id, error payload, memory content 노출을 피함\n\n## 기존 대화 기록 임포트\n\n이미 Claude Code를 사용해왔다면, 기존 대화 기록을 임포트하여 바로 활용할 수 있습니다:\n\n```bash\n# 1. 먼저 임포트 가능한 세션 확인\nnpx claude-memory-layer list\n\n# 2. 현재 프로젝트의 모든 세션 임포트\nnpx claude-memory-layer import\n\n# 3. 또는 모든 프로젝트의 세션 임포트\nnpx claude-memory-layer import --all --verbose\n```\n\n### 임포트 결과 예시\n\n```\n📥 Importing all sessions from all projects\n\n⏳ Processing embeddings...\n\n✅ Import Complete\n\nSessions processed: 15\nTotal messages: 342\nImported prompts: 156\nImported responses: 186\nSkipped duplicates: 0\nEmbeddings processed: 342\n```\n\n### Codex 세션 임포트\n\nCodex CLI 기록(`~/.codex/sessions`)은 기본적으로 read-only validate/replay로 먼저 확인하고, 명시적 import 명령으로 메모리에 저장할 수 있습니다:\n\n```bash\n# 읽기 전용 검증/리포트\nnpx claude-memory-layer codex validate --project /path/to/project --format markdown\n\n# 현재 프로젝트 Codex 세션을 프로젝트별 메모리로 import\ncd /path/to/project\nnpx claude-memory-layer codex import\n\n# 특정 세션만 import\nnpx claude-memory-layer codex import --project /path/to/project --session /path/to/session.jsonl\n\n# 모든 Codex 세션 import (전역 저장소 사용; 필요할 때만)\nnpx claude-memory-layer codex import --all --verbose\n```\n\n옵션: `--sessions-dir`, `--limit`, `--force`, `--no-process-embeddings`.\n\n#### Codex 자동 적재와 자동 컨텍스트 주입\n\nCodex lifecycle hook을 opt-in으로 설치하면 프로젝트별 자동 메모리를 사용할 수 있습니다.\n\n```bash\n# 최초 1회\nclaude-memory-layer codex hooks install\n\n# Codex를 재시작하고 /hooks에서 정의를 검토·신뢰한 뒤 상태 확인\nclaude-memory-layer codex hooks status --project /path/to/project\n\n# 제거 시 다른 Codex 훅은 보존되고 CML 훅만 제거됨\nclaude-memory-layer codex hooks uninstall\n```\n\n- `SessionStart`: 해당 프로젝트의 core memory와 최근 작업 메모리 인덱스를 Codex에 주입합니다. 일반 메모리는 제목·짧은 요약·`mem:` source ref·세션/턴 위치만 제공하며, 새 세션뿐 아니라 resume/clear/compact에도 적용됩니다.\n- `UserPromptSubmit`: 질문마다 관련 메모리 인덱스를 검색합니다. Codex는 필요할 때만 `mem-source-ref`/`mem-details`로 원문을 확장하고, 실제로 사용한 경우에만 답변 끝에 `📎 Recalled memories: <title> ([mem:ID])`를 표시합니다.\n- `SessionEnd`: 완료된 현재 transcript 하나만 별도 worker에 전달해 프로젝트 저장소로 적재합니다. Codex 종료, 대화 archive/delete, 또는 열려 있지 않은 대화의 30분 유휴 종료 시 실행됩니다.\n- 자동 import는 콘텐츠 해시로 중복을 건너뛰며, embedding 계산은 hook 제한 시간 밖의 기존 vector worker가 처리합니다.\n- `codex hooks status --project <path>`는 해당 프로젝트의 마지막 자동 import 성공/실패 시각과 집계 결과를 보여줍니다. transcript 본문은 상태 파일에 기록하지 않습니다.\n- Codex transcript 형식은 Codex의 안정된 공개 API가 아니므로, `codex validate`와 importer 회귀 테스트를 함께 유지해야 합니다.\n\n### Hermes 세션 임포트\n\nHermes Agent 기록(`~/.hermes/state.db`)도 원본 DB를 read-only validate/replay로 먼저 확인하고, 명시적 import 명령으로만 프로젝트별 메모리에 저장합니다. 기본 전략은 live sync가 아니라 **SessionDB → CML explicit derived import**입니다:\n\n```bash\n# 읽기 전용 검증/리포트\nnpx claude-memory-layer hermes validate --project /path/to/project --format markdown\n\n# 현재 프로젝트 Hermes 세션을 프로젝트별 메모리로 import\ncd /path/to/project\nnpx claude-memory-layer hermes import\n\n# 특정 Hermes session id만 import\nnpx claude-memory-layer hermes import --project /path/to/project --session 20260505_010203_abcd1234\n\n# 모든 Hermes 세션 import (전역 저장소 사용; 필요할 때만)\nnpx claude-memory-layer hermes import --all --verbose\n```\n\n옵션: `--state-db`, `--limit`, `--force`, `--no-process-embeddings`.\n\nHermes import는 user/assistant turn만 저장하고 tool/system 메시지는 건너뜁니다. 검증 리포트에는 aggregate count만 포함되며 transcript 본문은 포함하지 않습니다.\n\n### 중복 처리\n\n임포트는 콘텐츠 해시 기반으로 중복을 자동 감지합니다. 여러 번 실행해도 같은 내용이 중복 저장되지 않습니다.\n\n## 동작 원리\n\n### 1. 메모리 저장\n\n```\n사용자 프롬프트 입력\n        ↓\n    EventStore에 저장 (SQLite/WAL, append-only)\n        ↓\n    Outbox에 임베딩 요청 등록\n        ↓\n    Vector Worker가 임베딩 생성\n        ↓\n    VectorStore에 저장 (LanceDB)\n```\n\n### 2. 메모리 검색\n\n```\n새 프롬프트 입력\n        ↓\n    임베딩 생성\n        ↓\n    VectorStore에서 유사 벡터 검색\n        ↓\n    AXIOMMIND Matcher로 신뢰도 계산\n        ↓\n    컨텍스트로 Claude에 제공\n```\n\n### 3. 메모리 승격 (Graduation)\n\n자주 참조되는 메모리는 더 높은 레벨로 승격됩니다:\n\n| Level | 이름 | 설명 | 승격 조건 |\n|-------|------|------|-----------|\n| L0 | EventStore | 원본 이벤트 | 기본 저장 |\n| L1 | Structured | 구조화된 패턴 | 3회 이상 접근 |\n| L2 | Candidates | 검증된 스키마 | 5회 이상, 다중 세션 참조 |\n| L3 | Verified | 교차 검증됨 | 높은 신뢰도 |\n| L4 | Active | 활성 지식 | 10회 이상, 3개 이상 세션 |\n\n## 매칭 신뢰도\n\n검색 결과는 신뢰도에 따라 분류됩니다:\n\n| 신뢰도 | 점수 | Gap | 동작 |\n|--------|------|-----|------|\n| **High** | ≥0.92 | ≥0.03 | 자동으로 컨텍스트에 포함 |\n| **Suggested** | ≥0.75 | <0.03 | 대안 제시 |\n| **None** | <0.75 | - | 매칭 없음 |\n\n## Architecture\n\n### System Overview\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│ Agent surfaces                                                       │\n│ Claude Code Hooks │ CLI │ Dashboard │ MCP Clients │ Codex/Hermes import │\n└───────────────────────────────┬──────────────────────────────────────┘\n                                │\n                                ▼\n┌──────────────────────────────────────────────────────────────────────┐\n│ Memory Service / Runtime                                             │\n│ Retrieval Orchestrator │ Disclosure │ Operations │ Perspective Memory │\n│ Evidence/Privacy filters │ Governance audit │ Context-pack assembler │\n└───────────────────────────────┬──────────────────────────────────────┘\n                                │\n          ┌─────────────────────┼─────────────────────┐\n          ▼                     ▼                     ▼\n┌──────────────────┐   ┌──────────────────┐   ┌───────────────────────┐\n│ SQLite EventStore│   │ Operations tables│   │ External read-only ctx │\n│ events/sessions  │   │ facets/actions/  │   │ DART/FRED/Finnhub     │\n│ actor/perspective│   │ checkpoints/...  │   │                       │\n└─────────┬────────┘   └──────────────────┘   └───────────────────────┘\n          │ same transaction\n          ▼\n┌──────────────────┐      worker lock/recovery      ┌──────────────────┐\n│ Vector Outbox V2 │ ─────────────────────────────▶ │ LanceDB vectors  │\n│ itemKind/id/ver  │   versioned delete+add upsert  │ per item/version │\n└──────────────────┘                                └──────────────────┘\n```\n\n핵심 원칙은 SQLite가 canonical source of truth이고, LanceDB는 재생성 가능한 derived accelerator라는 점입니다. 모든 vector write는 outbox를 통해 idempotent하게 처리하며, MCP/dashboard/CLI 출력은 가능한 aggregate 또는 redacted preview만 제공합니다.\n\n### Entity-Edge Model (3-Layer)\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                        edges                                 │\n│  ┌──────────┐    evidence_of    ┌──────────┐               │\n│  │  Entry   │ ─────────────────▶│  Entity  │               │\n│  │ (Fact,   │                   │ (Task,   │               │\n│  │ Decision)│                   │ Artifact)│               │\n│  └──────────┘                   └──────────┘               │\n│       │                              │                       │\n│       │ derived_from                 │ blocked_by           │\n│       ▼                              ▼                       │\n│  ┌──────────┐                   ┌──────────┐               │\n│  │  Entry   │                   │  Entity  │               │\n│  └──────────┘                   └──────────┘               │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### Progressive Disclosure (토큰 효율화)\n\n```\nLayer 1: Search Index (~50-100 tokens/result)\n    │     { id, summary, score }\n    │\n    └──▶ Layer 2: Timeline Context (~200 tokens)\n              │     시간순 전후 맥락\n              │\n              └──▶ Layer 3: Full Details (~500-1000 tokens)\n                        선택된 항목만 전체 로드\n```\n\n### MCP Integration\n\n```\n┌─────────────────────┐         ┌─────────────────────┐\n│   Claude Desktop    │◀────────│ claude-memory-layer │\n│   (MCP Client)      │  stdio  │    (MCP Server)     │\n└─────────────────────┘         └──────────┬──────────┘\n                                           │\n                                           ▼\n                                ┌─────────────────────┐\n                                │   Shared Storage    │\n                                │  ~/.claude-code/    │\n                                └─────────────────────┘\n```\n\n## AXIOMMIND 7 원칙\n\n1. **Single Source of Truth**: SQLite/WAL EventStore가 유일한 진실의 원천\n2. **Append-Only**: 이벤트는 수정/삭제 없이 추가만\n3. **Idempotency**: dedupe_key로 중복 이벤트 감지\n4. **Evidence Alignment**: 주장이 실제 소스에 기반했는지 검증\n5. **Entity-Based Tasks**: canonical_key로 일관된 엔티티 식별\n6. **Vector Store Consistency**: SQLite outbox → LanceDB 단방향 흐름\n7. **Standard JSON**: 모든 데이터는 이식 가능한 JSON 형식\n\n## 저장 위치\n\n메모리는 기본적으로 다음 위치에 저장됩니다:\n\n```\n~/.claude-code/memory/\n├── projects/<hash>/events.sqlite  # 프로젝트별 이벤트 저장소 (primary)\n├── projects/<hash>/vectors/        # 프로젝트별 벡터 임베딩\n└── shared/                         # (옵션) 공유 지식 저장소\n```\n\nClaude Code 세션 기록 위치:\n\n```\n~/.claude/projects/<project-hash>/<session-id>.jsonl\n```\n\n## 개발\n\n```bash\n# 의존성 설치\nnpm install\n\n# 빌드\nnpm run build\n\n# 테스트\nnpm test\n\n# 타입 체크\nnpm run typecheck\n\n# 개발 모드 실행\nnpm run dev\n```\n\n## 기술 스택\n\n- **SQLite / WAL**: 이벤트 저장소 (canonical append/read model)\n- **LanceDB**: 벡터 저장소 (derived acceleration index)\n- **@huggingface/transformers**: 로컬 임베딩 생성 (lazy import; Embedder는 `src/extensions/vector/`)\n- **Zod**: 런타임 타입 검증\n- **Commander**: CLI 인터페이스\n- **TypeScript**: 타입 안전한 코드\n- **Node.js + Hono**: HTTP 서버 / Web Viewer\n- **Hono**: 경량 라우터\n- **MCP SDK**: Claude Desktop 통합 (`claude-memory-layer-mcp` stdio server)\n\n## Specification Documents\n\n상세 설계 문서는 `specs/` 디렉토리에서 확인할 수 있습니다:\n\n| 문서 | 설명 |\n|------|------|\n| [memory-utilization-improvements/2026-08-31-audit](specs/memory-utilization-improvements/2026-08-31-audit/README.md) | 현재 컴퓨터 감사 기반 MCP read-only, scope, retrieval, vector, retention, telemetry 상세 spec |\n| [agentmemory-inspired-memory-operations](specs/agentmemory-inspired-memory-operations/spec.md) | facets/actions/frontier/checkpoints/retention/lessons 운영형 메모리 |\n| [honcho-inspired-peer-context-memory](specs/honcho-inspired-peer-context-memory/spec.md) | actor card / perspective observation / multi-agent 관점 메모리 |\n| [vector-outbox-v2](specs/vector-outbox-v2/spec.md) | Transactional Outbox, versioned vector upsert, worker recovery |\n| [mcp-desktop-integration](specs/mcp-desktop-integration/spec.md) | MCP 서버 통합 |\n| [progressive-disclosure](specs/progressive-disclosure/spec.md) | 토큰 효율화 검색 |\n| [citations-system](specs/citations-system/spec.md) | 메모리 인용 시스템 |\n| [private-tags](specs/private-tags/spec.md) | 프라이버시 태그 |\n| [entity-edge-model](specs/entity-edge-model/spec.md) | 3-Layer 데이터 모델 |\n| [task-entity-system](specs/task-entity-system/spec.md) | Task Entity 관리 |\n| [evidence-aligner-v2](specs/evidence-aligner-v2/spec.md) | 증거 정렬 시스템 |\n| [post-tool-use-hook](specs/post-tool-use-hook/spec.md) | 도구 사용 기록 |\n| [endless-mode](specs/endless-mode/spec.md) | 연속 세션 모드 |\n| [web-viewer-ui](specs/web-viewer-ui/spec.md) | 웹 대시보드 |\n\n## Roadmap / Current State\n\n### Completed / shipped\n\n- [x] SQLite/WAL Event Store + project registry\n- [x] LanceDB vector store + local embedding backend\n- [x] Claude Code hooks, CLI, dashboard\n- [x] History import for Claude Code, Codex, Hermes\n- [x] Progressive disclosure, citations, source refs, retrieval traces\n- [x] MCP server with project-aware context/search/stat tools\n- [x] Memory Operations layer: facets/actions/frontier/checkpoints/retention/graph/lessons\n- [x] Perspective Memory P0/P1: actors, actor cards, observations, context lanes, dashboard aggregate stats\n- [x] Vector Outbox V2: transactional enqueue, versioned upsert, worker lock, stuck recovery, vector-status/dashboard health\n- [x] Dashboard hardening: localhost default bind, optional password auth, safe error rendering, aggregate-only retrieval/context-pack telemetry\n- [x] External Market Context: DART/FRED/Finnhub read-only snapshot + MCP tool\n\n### Active / experimental\n\n- [ ] Entity-Edge Model productization beyond diagnostic graph expansion\n- [ ] Task Entity System broader productization and UX\n- [ ] Mongo sync operational hardening for multi-server teams\n- [ ] Endless/shared memory UX and default safety policy\n- [ ] Retrieval/replay benchmarks for ranking-changing features before default enablement\n- [ ] Perspective Memory LLM deriver/specialists broader production rollout (currently opt-in/guarded)\n\n## External Market Context (DART/FRED/Finnhub)\n\n`claude-memory-layer market-context` fetches read-only external company and market data from environment-configured providers and returns a structured `MarketContextSnapshot` plus a Markdown analysis report.\n\nExample:\n\n```bash\nexport DART_API_KEY=...      # env-only; never commit real keys\nexport FRED_API_KEY=...\nexport FINNHUB_API_KEY=...\nclaude-memory-layer market-context \\\n  --company 삼성전자 \\\n  --dart-corp-code 00126380 \\\n  --symbol 005930.KS \\\n  --providers dart,fred,finnhub \\\n  --fred-series FEDFUNDS,CPIAUCSL \\\n  --json\n```\n\nSecurity and behavior:\n\n- API keys are read only from `DART_API_KEY`, `FRED_API_KEY`, and `FINNHUB_API_KEY`.\n- `.env*` files are ignored; `.env.example` is placeholder-only.\n- Missing provider keys produce skipped-provider statuses rather than hard failures.\n- Provider requests use bounded timeouts; large FRED series lists are capped to the first 10 unique series.\n- Empty Finnhub profile responses are treated as skipped-provider/no-data results, not profile evidence.\n- Provider errors and rendered reports redact credential-bearing query params such as `crtfc_key`, `api_key`, and `token`.\n- The MCP `external-market-context` tool is read-only and does not initialize or mutate memory storage.\n- `--no-snapshot` / MCP `includeSnapshot: false` disables both `analysis.marketSnapshot` and the DART company snapshot.\n\n`MarketContextSnapshot` includes:\n\n- `schemaVersion: market-context-snapshot.v1`\n- `subject`: company, DART corpCode, ticker symbol\n- `coverage`: DART/FRED/Finnhub provider status and counts\n- `bullCases`, `bearCases`, `risks`, `catalysts`: deterministic evidence-backed insights\n- `watchlist` and `followUpQuestions`\n\nThe Markdown report includes a `### MarketContextSnapshot` section with **Bull case**, **Bear case**, **Risks**, and **Catalysts**. DART analysis uses all fetched filings; only the rendered filing list is truncated. If `dartCorpCode` is omitted, company-name fallback is marked low-confidence, so exact DART corp codes are recommended for customer-facing analysis.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}