{"_id":"@blaspat/openclaw-noesis","_rev":"27-48a397a9360e9e316d0de4e08a9a5366","name":"@blaspat/openclaw-noesis","dist-tags":{"latest":"1.5.2"},"versions":{"1.1.1":{"name":"@blaspat/openclaw-noesis","version":"1.1.1","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.1.1","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"2a963859ae1447bc172fcda7a87db6181eb2d173","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.1.1.tgz","fileCount":43,"integrity":"sha512-RfO4pjmu4qx7hJRQdLsbnq7DI9M1CvCzanzqMjNlshnWpK8qvtkvnssmHZL5wcmBYirx7krCYxje1V9MSm4NvA==","signatures":[{"sig":"MEUCIG4DYdHwNl+i8URLDAUj6IIRG8wA1tA4WnZiddP7XH+6AiEAsrRozmFfFjI6jG2akVlScwJ8xbICwmDsBvRvQ3hiaGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381881},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"fe8f118f5a95173e03df1b653748f899f99871e4","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"tsc"},"_npmUser":{"name":"blaspat","email":"blasius.patrick@gmail.com"},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"10.9.4","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.1.1_1776191745801_0.12392306952598386","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@blaspat/openclaw-noesis","version":"1.1.2","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.1.2","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"44d992b0be5f730511435ae3fa6d58d7b348129b","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.1.2.tgz","fileCount":44,"integrity":"sha512-/YsK8aoBJ4anN19U21jPJN3T8aarxh8pYBjs6c95Or0xGCoANzAVAEQjKv4i8st9RcoMVAXClgPEhQ3zGdNTBg==","signatures":[{"sig":"MEUCIH36WgPgt5QT0wCwfH9J9/kI4kpsF7fQepL80py4z4GAAiEA0snrYLYKqed5iBi/pUnhgH98EQFdz10bajlLp+1Flmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383137},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"ed2414cbc5634854cc23931be1add9fcbc429c78","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58f02cb3-963e-4cc9-8456-829f1e3fdac4"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.1.2_1776233970005_0.5103637648454318","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@blaspat/openclaw-noesis","version":"1.1.3","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.1.3","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"8dbb3bf7c6c6b75dd81c369a1deb1ba2b7558435","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.1.3.tgz","fileCount":44,"integrity":"sha512-mH0RuaKuAs5bljGaTgheulI72Nkn6i1XTQ7nUBh9nzemXSxdEGlT5dfgOv5Nx/PzQn2+0iflruiw3VCFhXCaqg==","signatures":[{"sig":"MEUCIQDRWEV98c8VAG9+27iPKy9jUcTDt4ntVU/8vQjrd7RH7AIgLxp3qRRqOCWulC7yQbnli9eDqCfaqPRzHQtRjNceLKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383019},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"030a7c647b038d4f63e08cc95b6b44993aa51873","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58f02cb3-963e-4cc9-8456-829f1e3fdac4"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.1.3_1776235849847_0.7760711982145647","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@blaspat/openclaw-noesis","version":"1.1.4","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.1.4","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"1e975738fe0c57e94bd6210111210c2c21f3083f","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.1.4.tgz","fileCount":44,"integrity":"sha512-zDaWtNyt2oRqMWAcO7dTXnBoKAH2x/hQAcwn7UyANNAeCkYhaGFPnQjRgPFAJl9QgwQ3YexLrzyO70olTuJAUA==","signatures":[{"sig":"MEUCIQDNt/joFdmvY3Ebl5ut5ukkBf0WqJqzfgT+7NXJmAtkBgIgG6oM4N3gzhG54DdwtMojflvIyNT8kVYUUePPkdMDzr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383010},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"115629db43837d2f89c494db8d36b40a85547434","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58f02cb3-963e-4cc9-8456-829f1e3fdac4"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.1.4_1776241532372_0.10466892628383073","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@blaspat/openclaw-noesis","version":"1.1.5","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.1.5","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"7acb6f0cf7fe04bd1c30259ce68bc30d43fc65df","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.1.5.tgz","fileCount":45,"integrity":"sha512-gPO4dMKsVKMTMz5fdP7ZAWl/9+V6R59D/qaNkcLaDlnCLAU5B6C1mvMY8uWTYBGxtkWEIocYlxl6EXrQJkYxpg==","signatures":[{"sig":"MEQCIHtBXrszJF38+sAWFJ0tOdCUsoIuG9yq/S81Hg6BXd+QAiAnkI2Tvzt4frTzq6gOttbYygk2lxfgIswcSx7wKsnWEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385226},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e4d23dab8f08ad2696c6827f9c8759fdc0499c4c","scripts":{"dev":"tsc --watch","build":"tsc","prepublishOnly":"node scripts/sync-version.js && tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58f02cb3-963e-4cc9-8456-829f1e3fdac4"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.1.5_1776246574526_0.8051509136813622","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@blaspat/openclaw-noesis","version":"1.1.10","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.1.10","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"f3371c75a76c727b187e664a2d0410e3d84b78b5","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.1.10.tgz","fileCount":44,"integrity":"sha512-ZdUh7wxF0iv4iCUQpB2Q6wu+nqH7MZ3gBNqLasbWUO90yxt16IYpaSldeA5nVzW2g+5Jqs6/fLLgfwE/ecFJvA==","signatures":[{"sig":"MEUCIGxEiJxVTCdK1gTHAlOiSSBMB+xERMIEkztInQ0YT66JAiEAh6NSWicifG/58N+ghMApbsb1BOWdltaooVC7igiYMEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379824},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"f464e6a1f104aae310519a8a4457bccfb4275b0c","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58f02cb3-963e-4cc9-8456-829f1e3fdac4"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.1.10_1776320173782_0.6494674475026485","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@blaspat/openclaw-noesis","version":"1.3.1","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.3.1","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"4a6ff2f1a6ebc2aa940f211539a3ccdacc19f86a","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.3.1.tgz","fileCount":50,"integrity":"sha512-EG13HvFmiLDzUdHzxqVI7zznAk7Yt9PvlWT1RXB/NbhsWPodx/Jg/rvl+JL1kywsAvaSl3+13ohLFLuuPnJqiA==","signatures":[{"sig":"MEUCIQDLYhD5b6Ik0dQU1IaESOU0T6z+Vo29OOBAIjYi6qlfKgIgOX0ypN7WYO7DVtjmOLfXpGfCNj+Haj2+sUMYPtI9eoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430175},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c37a0cd120f48cea9faca0e7fe3f18e36ec1e0ae","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dc0ff804-208f-4288-a2a0-8d19b1319569"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.3.1_1776416433855_0.278402816287324","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@blaspat/openclaw-noesis","version":"1.3.6","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.3.6","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"e8269e91d63f146232b8c21760fece546f02bb0c","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.3.6.tgz","fileCount":50,"integrity":"sha512-fFRiJMEoqBb/MzdJL1Awo7ymMZW35su0GBCahuoL25gQOO/GlI2KES1tdSD4H0fv4OGfKjJ2PJs+VCV3EJ2Iaw==","signatures":[{"sig":"MEUCIEH/i7lW3B/OEpwUCZ5kXNvPLxerWshiC/TFoOk3B+FBAiEAxuANnkXHfvQL5WISXC32pLTDY+Rt7SWC1L1WxmWB2bs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430979},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"40582a9ad5115185527542eb02cec8436c2c2768","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.3.6_1776439433904_0.18023416024677497","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@blaspat/openclaw-noesis","version":"1.3.7","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.3.7","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"7d72fc5bead068b05090856ec949ae53b3b44c12","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.3.7.tgz","fileCount":50,"integrity":"sha512-r+k8A/lDRjjpso0x449xluDwtRccej0TcUo8qcvhz54NKgnSf6VJImjoU/+hNdgwUPTqRvttF09IIZmsmlZ2FQ==","signatures":[{"sig":"MEQCIAdgYRcl8bOeUxtFRlJuNfeTsxJ+sAhvOyp6/It/NLB2AiBVyIHu4ZOIj6HvZZmuP1mqO19C5ZK2dmBed8iuDVIumA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430563},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"0ea319d66432c4933a464100d0e807ff9d6dd937","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.3.7_1776489294633_0.2003578927925238","host":"s3://npm-registry-packages-npm-production"}},"1.3.8":{"name":"@blaspat/openclaw-noesis","version":"1.3.8","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.3.8","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"1c7b52048ba086818a7ba7f7ef208e4e8ea2667f","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.3.8.tgz","fileCount":50,"integrity":"sha512-OUrB/xy/P5F4piLjH+z2nEff2FC1M3StfNZNQrciHGVWeCjSWy4mOLj0EPfXTVxwgbc1DI9e5cnLK7KCeO3fBg==","signatures":[{"sig":"MEQCIHT+V3LD0MBJ+NR1LAjitERuUro8uqV1FViTdvNtl0RJAiBymosGPpO1GibmN6JuQqJZDs785j8sDjtOi4fkmT75yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430213},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a22bb76aaf491ad2a0bb116a40a7e7e969c267d1","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.3.8_1776490451871_0.008535896460256653","host":"s3://npm-registry-packages-npm-production"}},"1.3.9":{"name":"@blaspat/openclaw-noesis","version":"1.3.9","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.3.9","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"f4ef9302b2880e8daae1bcaa7fc1117cbcd5c987","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.3.9.tgz","fileCount":50,"integrity":"sha512-5hd2lQ0TEExcm7rnFm2HbLxOoI89OsJngtFSWVv1Jgj6k16+0FZqRjbjJ1IGd/pBh+cZSqri54Gpf2lViMz1DA==","signatures":[{"sig":"MEQCIDbEayuSwBCX0das0LoBvkMoVoC0oWz1oPtGEK4RJX2gAiAgippIWNgmTiBp4BEhjelEjlDrVLQ4n2StvLH3AjZGww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430213},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c538b86d878ebc4a26027d6325c7e0147d2d935f","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.3.9_1776493499202_0.06553831147087275","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@blaspat/openclaw-noesis","version":"1.4.0","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.4.0","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"574c3bf66238e15b554c85495b2fafaf28496171","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.4.0.tgz","fileCount":50,"integrity":"sha512-+iXgE4A6z6otXyV5qu0wRIn0PTWXD2TbhqAnrNRnMpOw8GdWvEAOBE0Kd0TtpEDHVWIAIhbpnh4GUGA6o0czMA==","signatures":[{"sig":"MEQCIBt+3LXQGuU/f0gcq9leOsEreJkaCd6Fs1LfYIl6QrlVAiASiuM8m3E+dhnRytJID48IwqlRImLAh/mqlu2yiVK3aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":430266},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"96f67c6ee8aae88c3bd12cfe693e4366f2f43218","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.4.0_1776494396303_0.8311778825889102","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@blaspat/openclaw-noesis","version":"1.4.1","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.4.1","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"12f1eb5b31b21d610c4ac34524ca5bb4e4454be1","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.4.1.tgz","fileCount":51,"integrity":"sha512-ZFNy7aTCQrnjCXkSYOOtN0aYOYQW1KtflYmckI6RmvnEfpyW8sKXEp0eKp5MihJXHK1CNOD+NngZ9fZ+lK1FzA==","signatures":[{"sig":"MEUCIBmRFOgQYtTfG62HZkGq6OZXCRYqXUQCg71ExuEy/bvFAiEApYRUyygyntDKm3itfygsfc+UuAvEVlNbYQ9hc2+uqls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":460629},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a40d4ab17b0793ed82cded67c8f74c1270801b67","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.4.1_1776502746193_0.816485994549186","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@blaspat/openclaw-noesis","version":"1.4.2","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.4.2","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"12fc3d2b4e72c60b02af4aacb4b712e668caff21","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.4.2.tgz","fileCount":51,"integrity":"sha512-nnha6/atlI+CN8lg4P+ZFcHHr1LKLykpHpxp6U5t5+GWDl4PzcZ78TYUYvEq+GBypSWM7XIpONFSmSvxYFWBCA==","signatures":[{"sig":"MEQCIC+FL295ySZslO4bP1/nWayaLRKLfSYqodxu8idihSTvAiBlIqc/MZZD+YF46M4fNALtBV5cBWkDzRZWaIihE1Rv0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":462913},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a17b06c398486093934bd697a4bc4cb5d352a3b6","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.4.2_1776508893037_0.18903873140657446","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@blaspat/openclaw-noesis","version":"1.4.3","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.4.3","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"a0312c73cf3bfd9f5f913df01335eb577ba5e7d6","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.4.3.tgz","fileCount":51,"integrity":"sha512-HhIFd1c8z86fp2BkaJ3MBsoRf/M8k3gIYyAeSv5KiwQu1ImZpelodnLHMjcY+eby8z1+2OXMFLhuqA3G+TAEnw==","signatures":[{"sig":"MEUCIQD5ctAGbkNhF/9/W5kONs3Xvn7pNzn+LldYE2okjUmRBwIgTt66ZiHlO4jR4hlDRKrhtD2xtH2BWmh1a3CbiqKwokk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":465295},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"17728f8a8cf09c4f068e46efba3723608ee275c8","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.4.3_1776510362245_0.07927285773234338","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"@blaspat/openclaw-noesis","version":"1.4.5","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.4.5","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"1cd229bd7815b7cebc9016f4c5bdac12d01372a2","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.4.5.tgz","fileCount":51,"integrity":"sha512-OV/PN88ZnEA9xnGUj69qmcyeWEhW+pMaeUNHbfZ4kh/+6miIfAcmtgSyAl6cPAi+ytrqd945NBcbkyzWD/8Y2w==","signatures":[{"sig":"MEUCIEWHdjg0L5jDrk+GIqtQe644iI2UhGTAp2B6hJ/JfXWBAiEA4vcZFt0WktwgOHlXNObAaPftiRkIGp6Fhn+osbgaj/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":458035},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"95c4260dede9785d5b872ae5d276692658c4c932","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.4.5_1776574764839_0.010966837837088184","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@blaspat/openclaw-noesis","version":"1.5.0","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.5.0","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"aafb99561c1936429c6b79e90ba9d3a7707a4c84","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.5.0.tgz","fileCount":56,"integrity":"sha512-W95Akq1+ceO9YPqFV7TIdi3IvCT9TJlOdzKtpWvjeFm2x0BoKfQDH47mdSD/ezxOVORK2HT0Wx5mgY94FPcJYA==","signatures":[{"sig":"MEQCIBymVeeDdCcg2vBTUdnxfGYW+/Le/74wCmg4oZ9hg02kAiAXuUFK6VZOEPJL4bnWdHqHIt4Bcf5fdEClQNP3QIJrpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":476945},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"81a4f5a13d74b52bdab7f6eb031d92a1e85b0510","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0","@huggingface/transformers":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.5.0_1776657122472_0.34504788129089436","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@blaspat/openclaw-noesis","version":"1.5.1","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","_id":"@blaspat/openclaw-noesis@1.5.1","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"dist":{"shasum":"df98bafeb5ce5ef976a3fa55485f496578d787f1","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.5.1.tgz","fileCount":56,"integrity":"sha512-R3OQ2/mcfldf+2axF+dfyw+PqbPPWCeG5RJeyli/Jk875hEepFq79rTfQafNk7wwRcPhoBwSisd/q+X0EIonQQ==","signatures":[{"sig":"MEYCIQD+cC+6E0vqs3OMb2LGL1lJhMz/Yd29fl42eF1PbFzJjwIhAIqXH4ZzrTdFGEa6gsBjxwpZSVy/K2wJsqBudkowJHyL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":484536},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"39ec1b2fdfdb86b1a36da4cd070c1444b5436263","scripts":{"dev":"tsc --watch","bump":"node scripts/bump-version.js","build":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"openclaw":{"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blaspat/openclaw-noesis.git","type":"git"},"_npmVersion":"11.11.0","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^10.0.0","chokidar":"^5.0.0","apache-arrow":"^18.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0","@huggingface/transformers":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"peerDependencies":{"openclaw":">=2026.4.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-noesis_1.5.1_1776663353376_0.3863644937758681","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@blaspat/openclaw-noesis","version":"1.5.2","description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","type":"module","openclaw":{"extensions":["./dist/index.js"],"compat":{"pluginApi":">=2026.4.0","minGatewayVersion":"2026.4.0"}},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch","bump":"node scripts/bump-version.js"},"keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"author":{"name":"Blasius Patrick"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/blaspat/openclaw-noesis.git"},"homepage":"https://github.com/blaspat/openclaw-noesis#readme","bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"peerDependencies":{"openclaw":">=2026.4.0"},"dependencies":{"@huggingface/transformers":"^3.0.0","@lancedb/lancedb":"^0.28.0-beta.5","@sinclair/typebox":"^0.34.0","apache-arrow":"^18.0.0","chokidar":"^5.0.0","uuid":"^10.0.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.9.3"},"gitHead":"e5a9c9db6b4ab2d7c883abfb304c9d8d7cb6d5e5","_id":"@blaspat/openclaw-noesis@1.5.2","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-DoGmlZXvQY62Pi22L5VAV4PIMk3ks51bS8UlBprERHBfn3Hlf7xHkwUfg3AOUklhTI4LTt1SmgsUfg1oswdSUg==","shasum":"ef7b2895ae1b5d5441e3ea3503e7bda239978566","tarball":"https://registry.npmjs.org/@blaspat/openclaw-noesis/-/openclaw-noesis-1.5.2.tgz","fileCount":54,"unpackedSize":547082,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blaspat%2fopenclaw-noesis@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICLrOggBUzcYgko7DZNBf2nlRhxWzZHlxWGmiInUPwa6AiEAm4UuqzujLBECq0wSXjHV34pNlUIm3fwCYKoxMapW6eI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c43febc3-1db9-4313-b696-074c30056bf9"}},"directories":{},"maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-noesis_1.5.2_1776869071842_0.5034275682520684"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-14T18:35:45.683Z","modified":"2026-04-22T14:44:32.304Z","1.0.0":"2026-04-13T16:11:46.842Z","1.0.1":"2026-04-13T16:22:22.758Z","1.0.2":"2026-04-13T16:43:12.124Z","1.0.3":"2026-04-13T16:44:45.044Z","1.1.0":"2026-04-14T12:00:22.394Z","1.1.1":"2026-04-14T18:35:45.952Z","1.1.2":"2026-04-15T06:19:30.135Z","1.1.3":"2026-04-15T06:50:50.019Z","1.1.4":"2026-04-15T08:25:32.501Z","1.1.5":"2026-04-15T09:49:34.679Z","1.1.10":"2026-04-16T06:16:13.983Z","1.3.1":"2026-04-17T09:00:34.015Z","1.3.6":"2026-04-17T15:23:54.186Z","1.3.7":"2026-04-18T05:14:54.819Z","1.3.8":"2026-04-18T05:34:12.018Z","1.3.9":"2026-04-18T06:24:59.345Z","1.4.0":"2026-04-18T06:39:56.485Z","1.4.1":"2026-04-18T08:59:06.334Z","1.4.2":"2026-04-18T10:41:33.188Z","1.4.3":"2026-04-18T11:06:02.387Z","1.4.5":"2026-04-19T04:59:24.986Z","1.5.0":"2026-04-20T03:52:02.610Z","1.5.1":"2026-04-20T05:35:53.511Z","1.5.2":"2026-04-22T14:44:32.015Z"},"bugs":{"url":"https://github.com/blaspat/openclaw-noesis/issues"},"author":{"name":"Blasius Patrick"},"license":"MIT","homepage":"https://github.com/blaspat/openclaw-noesis#readme","keywords":["openclaw","memory","semantic-search","lancedb","ollama","vector-store","agent-memory","local-first"],"repository":{"type":"git","url":"git+https://github.com/blaspat/openclaw-noesis.git"},"description":"Local-first semantic memory plugin for OpenClaw — LanceDB + Ollama, no cloud required.","maintainers":[{"name":"blaspat","email":"blasius.patrick@gmail.com"}],"readme":"# Noesis — Local-First Semantic Memory for OpenClaw\n\nLocal-first semantic memory + context engine for OpenClaw. No API keys. No cloud. Memory layer + proactive context assembly (zero LLM cost).\n\nNoesis gives your OpenClaw agents a persistent, searchable memory layer backed by [LanceDB](https://lancedb.com) and [Ollama](https://ollama.ai). It slots directly into OpenClaw's memory system so the auto-recall loop just works — your agents remember things across sessions, across restarts, and across each other.\n\n---\n\n## Table of Contents\n\n- [Why Noesis?](#why-noesis)\n- [Stack](#stack)\n- [Installation](#installation)\n  - [1. Install the plugin](#1-install-the-plugin)\n  - [2. Set the memory slot](#2-set-the-memory-slot)\n  - [3. Start Ollama](#3-start-ollama)\n  - [4. Restart the gateway](#4-restart-the-gateway)\n- [How It Works](#how-it-works)\n  - [Active + Archive Architecture](#active--archive-architecture)\n  - [Hybrid Search Pipeline](#hybrid-search-pipeline)\n  - [Memory Types](#memory-types)\n  - [When Agents Write to Noesis](#when-agents-write-to-noesis)\n  - [Multi-Agent Isolation](#multi-agent-isolation)\n  - [Context Engine (Assemble + Ingest)](#context-engine-assemble--ingest-hooks)\n  - [ANN Index](#ann-index)\n- [Tools](#tools)\n  - [Agent tools](#agent-tools-use-these-in-your-prompts)\n  - [Memory slot tools](#memory-slot-tools-used-by-openclaw-auto-recall)\n- [Data Model](#data-model)\n  - [Active Table](#active-table-memories)\n  - [Archive Table](#archive-table-memories_archive)\n- [Migrating Existing Memory Files](#migrating-existing-memory-files)\n- [Configuration](#configuration)\n  - [Embedding Model Choice](#embedding-model-choice)\n- [Performance](#performance)\n- [Git LFS Persistence](#git-lfs-persistence)\n- [Requirements](#requirements)\n- [Python CLI Dependencies](#python-cli-dependencies)\n- [Architecture Notes](#architecture-notes)\n- [License](#license)\n\n---\n\n## Why Noesis?\n\nQMD covers the basics well. Noesis builds on it with features for more structured, long-lived memory:\n\n- **Active + archive architecture** — expired entries move to a separate archive table instead of diluting search. Clean active search, opt-in older memory.\n- **Auto-priority by memory type** — decisions get 85, preferences get 80, context gets 60, facts get 30, sessions get 20. Important memories always surface.\n- **Soft-delete on TTL** — when entries expire, they're archived (not deleted). Still retrievable via archive search, gone from active results.\n- **Structured memory types** — `fact`, `decision`, `preference`, `context`, `session`. Search is filtered by type, recall is more targeted.\n- **Agent-aware search bias** — results from the calling agent are boosted, so each agent gets memory that's actually theirs.\n- **Memory management tools** — `noesis_stats`, `noesis_cleanup`, `noesis_set_priority`, `noesis_export` give you programmatic control.\n- **Periodic automatic cleanup** — TTL cleanup runs every 6 hours by default, no manual intervention needed.\n- **Archive search fallback** — when active results are sparse (< 2), archive is queried automatically and results merged in. Older memories surface without explicit \"search old memories\" prompt.\n- **LanceDB disk-based vector store** — purpose-built for vectors, IVF-PQ ANN indexing, ARM64 native, sub-30ms at scale.\n\n---\n\n## Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Vector store | LanceDB (disk-based, ARM64 native) |\n| Embeddings | Ollama (local, no API key) |\n| Default model | `nomic-embed-text` (768d, fast, ~274MB) |\n| Alt model | `mxbai-embed-large` (1024d, higher accuracy) |\n| Search | Vector ANN + BM25 FTS + MMR rerank |\n| Session indexing | QMD session watcher |\n| Plugin type | Memory slot (`plugins.slots.memory: \"noesis\"`) |\n\n---\n\n## Installation\n\n### 1. Install the plugin\n\n```bash\n# Via ClawHub\nopenclaw plugins install clawhub:@blaspat/openclaw-noesis\n```\n\n### 2. Set the memory slot and context engine slot\n\n```bash\nopenclaw config set plugins.slots.memory noesis\nopenclaw config set plugins.slots.contextEngine noesis\n```\n\nOr edit your OpenClaw config:\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"noesis\": {\n        \"enabled\": true,\n        \"config\": {\n          \"ollamaEndpoint\": \"http://localhost:11434\",\n          \"embeddingModel\": \"nomic-embed-text\",\n          \"topK\": 6,\n          \"indexQmdSessions\": true,\n          \"watchMemoryDirs\": true,\n          \"defaultTtlDays\": 90,\n          \"autoCleanup\": true,\n          \"cleanupIntervalHours\": 6\n        }\n      }\n    },\n    \"slots\": {\n      \"memory\": \"noesis\",\n      \"contextEngine\": \"noesis\"\n    }\n  }\n}\n```\n\n### 3. Start Ollama\n\n```bash\nollama serve\n```\n\nNoesis auto-detects Ollama on startup and pulls the embedding model if it's not already downloaded. No manual steps needed.\n\n### 4. Restart the gateway\n\n```bash\nopenclaw gateway restart\n```\n\nThat's it. Your agents now have persistent semantic memory.\n\n---\n\n## How It Works\n\n### Active + Archive Architecture\n\nNoesis maintains two LanceDB tables:\n\n**`memories` (active table)**\n- Only entries where `expiresAt = 0 OR expiresAt > now`\n- Clean, fast search — no dilution from old entries\n- All write operations go here\n\n**`memories_archive` (archive table)**\n- Entries where `expiresAt > 0 AND expiresAt < now` (TTL reached)\n- Long-term storage, searchable via `noesis_search_archive`\n- Active search falls back to archive when results are sparse (< 2)\n- Both tables have ANN indexes for fast vector search\n\nWhen TTL expires:\n1. Entry is **deleted from `memories`** (no longer in active search)\n2. Same entry is **inserted into `memories_archive`** (long-term storage)\n3. User can retrieve it via archive search when needed\n\n### Hybrid Search Pipeline\n\nEvery `noesis_search` call runs through this pipeline:\n\n```\nQuery text\n   ↓\nOllama embeddings (~20ms, local)\n   ↓\nLanceDB IVF-PQ vector search on active table (topK × 2 candidates)\n   ↓\nBM25 full-text search (keyword fallback/supplement)\n   ↓\nHybrid merge (vector 60% + BM25 40%)\n   ↓\nMMR rerank (λ=0.7, balances relevance + diversity)\n   ↓\nIf results < 2 → silently query archive table + merge results\n   ↓\nTop-K results with full content (lossless)\n```\n\n### Memory Types\n\n| Type | Default Priority | Used for |\n|------|-----------------|---------|\n| `decision` | 85 | Things that were decided, logged for recall |\n| `preference` | 80 | How things should be done |\n| `context` | 60 | Project or session context |\n| `fact` | 30 | Objective info (names, settings, world knowledge) |\n| `session` | 20 | Auto-indexed from QMD session transcripts |\n\nHigher priority entries surface first. Manual priority override always wins over auto-priority.\n\n### When Agents Write to Noesis\n\nNoesis auto-indexes without needing explicit agent calls. Memory flows in through these paths:\n\n**1. Session transcripts (automatic)**\n\nWhen `indexQmdSessions: true`, a background watcher picks up new QMD session files across all session locations: `~/.openclaw/sessions/`, `~/.openclaw/agents/<agentId>/sessions/`, and `~/.openclaw/agents/<agentId>/qmd/sessions/`. Session content is chunked and stored as `memoryType: session` entries under the agent's session ID.\n\n**2. Agent memory dirs (automatic)**\n\nWhen `watchMemoryDirs: true`, Noesis watches `~/.openclaw/agents/*/workspace/memory/*.md`. Any `.md` file in an agent's memory directory is checksummed, chunked, and indexed — deduplicated by content hash. This includes `MEMORY.md`, daily notes, and anything else an agent writes to disk.\n\n**3. Manual via `noesis_index`**\n\nAgents can call `noesis_index` directly with text, tags, `memoryType`, `priority`, and `ttlDays`. Used for explicitly important entries — a decision the agent wants to guarantee will be remembered.\n\n### Multi-Agent Isolation\n\nEach entry stores an `agentId`. By default, search only returns entries from the querying agent. Pass `crossAgent: true` to search across all agents (read-only — agents can't write each other's memories).\n\n### Context Engine (Assemble + Ingest Hooks)\n\nNoesis also registers as a context engine — set `plugins.slots.contextEngine = \"noesis\"` to activate. This replaces OpenClaw's built-in LLM summarization with proactive, zero-LLM context management.\n\n**Ingest hook:** Every new message is analyzed for memory content. Pattern-matched to detect decisions (\"we decided X\", priority 85), preferences (\"I prefer Y\", priority 80), facts (topic sentences, priority 30), and sessions (summaries, priority 20). Everything else stored as context (priority 60). Stored with TTL, indexed in LanceDB.\n\n**Assemble hook:** Before each model run, queries Noesis for all entries with `priority >= assembleInjectPriority` (default: 75). Formats them as a `systemPromptAddition` block the model sees on every turn. Decisions and preferences are always in context — the model never needs to be told twice. Zero LLM cost.\n\n**Compact hook:** Delegates to OpenClaw's built-in auto-compaction (`ownsCompaction: false`). The `/compact` command continues to work. Noesis doesn't add LLM summarization cost.\n\n**Why this vs Lossless-Claw:** Lossless-Claw fires 5-10+ LLM calls per compaction (multi-level DAG condensation). Noesis context engine fires 0. Decisions and preferences are always preserved; lower-priority content stays retrievable via `noesis_search`.\n\n### ANN Index\n\nBoth `memories` and `memories_archive` tables get IVF-PQ ANN indexes when they reach ≥256 rows:\n\n- **nprobe = 16** — 16 partition probes per query. >90% recall at ~20ms on HDD.\n- **num_sub_vectors = 96** — PQ compression for 768-dim vectors.\n- Indexes are persistent on disk and survive restarts.\n- Archive table gets its own ANN index for fast archive search.\n\n---\n\n## Tools\n\n### Agent tools (use these in your prompts)\n\n| Tool | Description |\n|------|-------------|\n| `noesis_index` | Store a memory entry (text + metadata + priority + TTL). Auto-priority by type if not specified. |\n| `noesis_search` | Semantic search with filters. Falls back to archive automatically when active results < 2. |\n| `noesis_recall` | List recent entries by agent or session, newest first. |\n| `noesis_import` | Trigger MD → LanceDB migration for one agent or all agents. |\n| `noesis_stats` | Entry counts, breakdown by agent/type/priority, archive stats. |\n| `noesis_delete` | Delete entry by ID. |\n| `noesis_cleanup` | Move all expired entries from active → archive table. Manual trigger. |\n| `noesis_export` | Bulk export all active entries as JSON (with optional agent/type filters). |\n| `noesis_set_priority` | Update priority and/or TTL on an existing entry. |\n| `noesis_search_archive` | Search archived memories explicitly. For \"search older memories\" queries. |\n\n### Memory slot tools (used by OpenClaw auto-recall)\n\n| Tool | Description |\n|------|-------------|\n| `memory_search` | Auto-recall entry point |\n| `memory_get` | Retrieve by ID |\n| `memory_index` | Auto-index new content |\n| `memory_recall` | Cross-session recall |\n\n## Migrating Existing Memory Files\n\nIf you have existing markdown memory files (`MEMORY.md`, `memory/*.md`), import them:\n\n```bash\n# Import one agent\nnoesis_import agentId=<agentId>\n\n# Import all agents\nnoesis_import\n```\n\nOr use the standalone Python CLI:\n\n```bash\npip install lancedb pyarrow numpy requests\n\npython3 scripts/import_memory.py --agent <agentId>\npython3 scripts/import_memory.py --all\npython3 scripts/import_memory.py --agent <agentId> --chunk-size 256 --model mxbai-embed-large\n```\n\n---\n\n## Configuration\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `lanceDbPath` | `~/.openclaw/noesis/db` | LanceDB storage directory |\n| `ollamaEndpoint` | `http://localhost:11434` | Ollama API endpoint |\n| `embeddingModel` | `nomic-embed-text` | Embedding model (see below) |\n| `chunkSize` | `512` | Chunk size in words |\n| `chunkOverlap` | `64` | Overlap between chunks |\n| `topK` | `6` | Default search result count |\n| `autoMigrate` | `false` | Auto-import markdown files on startup |\n| `indexQmdSessions` | `true` | Watch + auto-index QMD sessions |\n| `watchMemoryDirs` | `true` | Watch agent memory dirs for changes and auto-index .md files |\n| `defaultTtlDays` | `90` | Default TTL in days for new entries. `0` = never expire. |\n| `autoCleanup` | `true` | On startup, move expired entries to archive. |\n| `cleanupIntervalHours` | `6` | Run TTL cleanup on this interval (hours). `0` = disabled. |\n| `contextEngineEnabled` | `true` | Register Noesis as context engine (assemble + ingest hooks). |\n| `assembleInjectPriority` | `75` | Min priority for Assemble hook injection. Entries >= this always enter context. |\n| `assembleMaxEntries` | `20` | Max entries to inject via Assemble hook. |\n| `assembleMaxAgeDays` | `30` | Max age (days) for Assemble injection. `0` = no limit. |\n| `gitLfsEnabled` | `false` | Enable Git LFS persistence for LanceDB backups |\n| `gitLfsRepo` | `<username>/openclaw-noesis-data` | GitHub repo for Git LFS snapshots |\n| `annNprobe` | `16` | IVF-PQ search probes (higher = more accurate, slower) |\n| `annNumSubvectors` | `96` | IVF-PQ compression granularity |\n\n### Embedding Model Choice\n\n**`nomic-embed-text` (default, 768d, ~274MB)**\n- Faster inference (~20ms on CPU)\n- Excellent for short queries and agent memory recall\n- Recommended for most setups\n\n**`mxbai-embed-large` (alternative, 1024d, ~834MB)**\n- Higher accuracy on longer contexts\n- Better MTEB scores overall\n- Use when retrieval accuracy matters more than speed\n\nSwitch model:\n```json\n{ \"plugins\": { \"entries\": { \"noesis\": { \"config\": { \"embeddingModel\": \"mxbai-embed-large\" } } } } }\n```\n\n---\n\n## Performance\n\n| Setup | Query latency | Notes |\n|-------|--------------|-------|\n| No index, small dataset | ~50–200ms | Fine for <1K entries |\n| IVF-PQ index, HDD | ~20–50ms | Recommended baseline |\n| IVF-PQ index, NVMe SSD | <10ms | Automatic when hardware allows |\n\nEmbedding latency with `nomic-embed-text` on a typical VPS/laptop CPU: **~20ms per query**.\n\n---\n\n## Git LFS Persistence\n\nTo back up your LanceDB data to GitHub:\n\n```json\n{\n  \"gitLfsEnabled\": true,\n  \"gitLfsRepo\": \"yourusername/noesis-data\"\n}\n```\n\nSet up the data repo once:\n\n```bash\ngit init noesis-data && cd noesis-data\ngit lfs install\ngit lfs track \"*.lance\" \"*.vectordata\"\ngit add .gitattributes && git commit -m \"init\"\ngit remote add origin https://github.com/yourusername/noesis-data.git\ngit push -u origin main\n```\n\nThen push snapshots manually or via cron:\n\n```bash\ncp ~/.openclaw/noesis/db/*.lance ./noesis-data/\ncd noesis-data && git add . && git commit -m \"snapshot $(date -Iseconds)\" && git push\n```\n\n---\n\n## Requirements\n\n- **OpenClaw** ≥ 2026.4.0\n- **Node.js** ≥ 18 (22 recommended)\n- **Ollama** running locally (`ollama serve`)\n- **Disk space**: ~5KB per memory entry + model size (~274MB for nomic-embed-text)\n\n---\n\n## Python CLI Dependencies\n\nThe standalone import CLI requires:\n\n```bash\npip install lancedb pyarrow numpy requests\n```\n\nThe main plugin uses the `@lancedb/lancedb` Node.js SDK directly — no Python runtime needed for normal operation.\n\n---\n\n## Architecture Notes\n\n```\nOpenClaw Gateway\n  └── Noesis Plugin (Node.js)\n        ├── @lancedb/lancedb  → disk-based vector store (memories + memories_archive)\n        ├── Ollama HTTP API   → local embeddings\n        ├── chokidar          → QMD session file watcher + memory dir watcher\n        └── Hybrid search     → vector + BM25 + MMR with archive fallback\n```\n\nMemory slot integration means OpenClaw's auto-recall loop calls `memory_search` automatically — no manual tool calls needed. Just talk to your agent normally.\n\n---\n\n---\n\n## Bug Fixes & Improvements\n\n### Critical fixes\n- `queryByPriority` — query was built but never executed (toArray called on wrong object)\n- Deduplication in `indexMemoryFile` — broken logic (`seen.add` after `return false`, dedup never worked)\n- QMD session entries — always had `priority=0`, priority surfacing non-functional\n- `parseSessionPath` — wrong path index handling for `qmd/sessions/` pattern\n- Archive detection heuristic — incorrectly flagged active table entries as archived by age alone\n- Periodic cleanup interval — reference was local, leaked on hot reload\n- `memory_index` tool — `priority` and `ttlDays` params accepted but silently ignored\n\n### Hardening\n- SQL injection in all filter string interpolations — added `escapeFilterValue()` across all queries\n- `embedBatch` — single embedding failure crashed entire batch; now uses `Promise.allSettled` with zero-vector fallback\n- `watchMemoryDirs` default — corrected to `false` (was mismatched across schema/README/DEFAULT_CONFIG)\n- Session path parsing — corrected all path patterns and removed duplicate unreachable branches\n- Archive detection — rebuilt with explicit `archiveIds` set for correct tagging\n\n---\n\n## TODO / Future Improvements\n\nThese are known limitations and planned enhancements — not bugs, but areas where Noesis can grow:\n\n- [ ] **Fix recall to filter expired entries** — ensure expired (TTL-reached) entries are excluded from `memory_recall` results. Currently `recall()` returns all non-archived entries regardless of whether their TTL has passed.\n- [ ] **Add archive TTL cleanup** — entries in the archive table live forever. Add a configurable `archiveTtlDays` option (default: 365) so archive entries are auto-deleted after N days, preventing unbounded long-term storage growth.\n- [ ] **Upgrade from beta LanceDB** — current dependency is `@lancedb/lancedb@^0.28.0-beta.5`. Pin to a stable release when one is available and tested.\n- [ ] **Add backup tool (`noesis_backup`)** — export the full LanceDB directory (`~/.openclaw/noesis/`) as a compressed tarball for point-in-time memory snapshots. Should support listing and restoring from backups.\n\n---\n\n## License\n\nSee [LICENSE.md](./LICENSE.md) for the full MIT license text.\n\n---\n\n*Built for the [OpenClaw](https://openclaw.ai) community. Feedback and PRs welcome.*\ntest version-bump fix Thu Apr 16 11:10:04 WIB 2026\n# test\n","readmeFilename":"README.md"}