{"_id":"@cognee/cognee-openclaw","_rev":"16-e56a9a711fc24f35b223cff371f1ea22","name":"@cognee/cognee-openclaw","dist-tags":{"latest":"2026.8.5"},"versions":{"2026.2.4":{"name":"@cognee/cognee-openclaw","version":"2026.2.4","_id":"@cognee/cognee-openclaw@2026.2.4","maintainers":[{"name":"vasilije90","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"},{"name":"boris.topoteretes","email":"boris@topoteretes.com"}],"dist":{"shasum":"716d562d282f4629bc3532cabc288aacd481fbb6","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.2.4.tgz","fileCount":6,"integrity":"sha512-9Ry1ulPqcZgrJpJ7W1WYXwyPir5AkQJ7eSI4wA8cCLFDOSoTke9SBiYRjiYil6Gem11gVEr1Al5WeiMH/20F3g==","signatures":[{"sig":"MEUCIQDf3A91r9bPdeOHHJ1bn1H3FJGd1NRGQrw9Yp3jt0icbgIgHIPwj/H9jIvPEgDOH9JYSVPY8WPEsFbGXrquD7DwSNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54498},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e818a6901e76d32657c7a8412a8bebd79110f609","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vasilije90","email":"vasilije@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"openclaw":"2026.2.3-1","typescript":"^5.3.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.2.3-1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.2.4_1770316951795_0.330781221670831","host":"s3://npm-registry-packages-npm-production"}},"2026.3.0":{"name":"@cognee/cognee-openclaw","version":"2026.3.0","_id":"@cognee/cognee-openclaw@2026.3.0","maintainers":[{"name":"vasilije90","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"},{"name":"boris.topoteretes","email":"boris@topoteretes.com"}],"dist":{"shasum":"ad7ce02166d9a0740a1cc84f8358c0d852c4bfc1","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.3.0.tgz","fileCount":6,"integrity":"sha512-Llm/JQY7X9INeiKIciWM4IYcovqEoWZgCIUXzZzvjI3ON7I7yMzMfjhVe5BRGcLMKCv8+CPM7ATurDdAuDPwxw==","signatures":[{"sig":"MEYCIQDmYG7LFD54ilBOp8kanqasw+zvxaypY0KDvtV7t0JytQIhAJZ5oWvIzPI0pObQoxqMD2pz0aUw5C8nCsUvEwASHvXK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78259},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node"},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a9e04ba5607046c873e34d6a804de326d4a4a127","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vasilije90","email":"vasilije@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.2.3-1","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.2.3-1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.3.0_1772648076173_0.8269235139281963","host":"s3://npm-registry-packages-npm-production"}},"2026.3.1":{"name":"@cognee/cognee-openclaw","version":"2026.3.1","_id":"@cognee/cognee-openclaw@2026.3.1","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"},{"name":"boris.topoteretes","email":"boris@topoteretes.com"}],"dist":{"shasum":"75da550467f0b4156e856a552ca7fb86fe06b67b","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.3.1.tgz","fileCount":30,"integrity":"sha512-GFno3+/zjaIXqhKixdV78bHgxDmrGRXvTYY69JDd4foqA351av/chcqq2B2ndc4SKuRiE0tq+bqvfjFE+emNsA==","signatures":[{"sig":"MEQCID6yN1KHZ1lUq6B+VnaJ8JcooSGl52A4FuyWlJFlv+nVAiB1YkU2JwHfCgA+GyC7l72YYikmstBexy4NjxtFfT7/0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153142},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"27649244873f33cf2b1e99132f328716b74d7807","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vkovac2","email":"veljko@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.11.0","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.2.3-1","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.2.3-1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.3.1_1773760425017_0.6724095582065541","host":"s3://npm-registry-packages-npm-production"}},"2026.3.2":{"name":"@cognee/cognee-openclaw","version":"2026.3.2","_id":"@cognee/cognee-openclaw@2026.3.2","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"ae95ed5400b905acc8a1b429173eecb5ae4b384d","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.3.2.tgz","fileCount":30,"integrity":"sha512-AHOPGX1vXpSXg1B0+HxKDwJ3/E6NKcw6u+40lxpCpMg030i1vWJCFc5xH6dt0+cfbgO0djV7H2seFk1TNIZJuA==","signatures":[{"sig":"MEQCIBCdoV13NBtJ+FRxO862fZYb1Ih9oYmbVeoELBHxxJICAiAQoMkqbWSK6tJK+0ki3hrrfUk4klcZ+dGhaIyZRpF6hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154578},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"0723d77adf939a6d486658200f40dc6aa12fe7e0","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"handekafkas","email":"hande@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.2.3-1","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.2.3-1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.3.2_1775052598041_0.7662250263897283","host":"s3://npm-registry-packages-npm-production"}},"2026.3.5":{"name":"@cognee/cognee-openclaw","version":"2026.3.5","_id":"@cognee/cognee-openclaw@2026.3.5","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"3fd25db34cb52f70f721eb73ed6793d8c2c9fe8c","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.3.5.tgz","fileCount":33,"integrity":"sha512-H7L4pyMo3cmG7uY2uRjoJswJvLJD9CZwcxACLXONvZFSozVss2asIiQgHK9l09u7FQLMjdjKvDO7cQG2a4nyoA==","signatures":[{"sig":"MEYCIQDiJzFvegokmYC/3h9u82zPKQwbVPcPw97rYCNgFrlwqwIhAKxp1fwU0sGl1OBlG9LHeIxSvJ7Xpsj93mh58Ol2No+X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177536},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"5a31cd0b861613321761e2a8b7c00058e7cf4472","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cognee_","email":"vasilije@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.4.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"^2026.4.5","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.4.1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.3.5_1775453060901_0.1943050726325637","host":"s3://npm-registry-packages-npm-production"}},"2026.3.6":{"name":"@cognee/cognee-openclaw","version":"2026.3.6","_id":"@cognee/cognee-openclaw@2026.3.6","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"3c25ed37087df7af17dc2e2836ef9c7ed61cccf6","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.3.6.tgz","fileCount":33,"integrity":"sha512-7Tfn6131nAsAmj9qQzeg41eVkYgQ3nBBQKMNedZLmocQNNNgKZ+MYMJOMvxr9u2ZbaXDBTQGZMcBelI73GBkpQ==","signatures":[{"sig":"MEUCIFh3wxma+u+6qWtQUEJ9KWwtDi3aC+gf8pQ27LAyz48fAiEAqV93jUFQ72FURUHWBSRVY7y9ehnb6/bEBC2o7DX1GdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178008},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"7d7787e3798e9520226398defdbbd900694458c0","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"handekafkas","email":"hande@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.4.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.4.1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.3.6_1775834291446_0.14854827945803883","host":"s3://npm-registry-packages-npm-production"}},"2026.4.12":{"name":"@cognee/cognee-openclaw","version":"2026.4.12","_id":"@cognee/cognee-openclaw@2026.4.12","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"b7257cce8fa62ac4fd01d7c61816057a6cfa8328","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.4.12.tgz","fileCount":33,"integrity":"sha512-U0utuyC4WemcztLZUqUSKLV5NsT2Fiz0fBZNCbn4xuBY4YOUZKGhYlaU6Hc+XlpXNYNZzPFIOvQFJceHCsjiqA==","signatures":[{"sig":"MEUCIHiUiHwna19mzbb58J8ZCmipa9lFFJbZehUEtB526+WLAiEA2+Q55MNDqi3Zie4VfNC3YvbKOvGYcXejnrE6rCi37ug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179479},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"4cdf3f0f517a9a1e60a71c4b7981a26059ce26ec","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cognee_","email":"vasilije@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.4.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.4.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.4.1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.4.12_1776014822518_0.22905629828724283","host":"s3://npm-registry-packages-npm-production"}},"2026.4.13":{"name":"@cognee/cognee-openclaw","version":"2026.4.13","_id":"@cognee/cognee-openclaw@2026.4.13","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"ff7c3537d4ab4ddf2b4522c42c5dc7db5e9c96d2","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.4.13.tgz","fileCount":33,"integrity":"sha512-UYao++NY19uZGDXOjlDBWipPvKnXw1NiYrBGg1Vld+VAvKCF6y8MJDL28aya9v+Sp3/X9FeUwU6wUfJZ4EkfUQ==","signatures":[{"sig":"MEQCIB5gcU3ssx4NooAGX5dixXjeESFY1cUNweUJVvjDR+V/AiBOiEVSdlg/p0ShJyqQRiM3mwFkwtKQ5kljaCs0HJN5IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206767},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"8e7696038e237402a1a869bdbe79084621209a04","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cognee_","email":"vasilije@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.4.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.4.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.4.1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.4.13_1779072644414_0.24802653024254617","host":"s3://npm-registry-packages-npm-production"}},"2026.5.21":{"name":"@cognee/cognee-openclaw","version":"2026.5.21","_id":"@cognee/cognee-openclaw@2026.5.21","maintainers":[{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"d3ee49403e5309730fcc264a88e154f164b88da5","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.5.21.tgz","fileCount":33,"integrity":"sha512-fFVuk/MXridsqF4bA1JYGi446+XbOq25Paz8no68XmFgEEcqXSBCRRLGdHsqlzsBjyjgdVfWPJt1VHOsuPjgpw==","signatures":[{"sig":"MEYCIQCRmLZKsdub2X2/V1XN9xHmTESdj02VOsQa7GNIKgUTGwIhAOUVhesNJQ21ybFrniBqbZOaDRNQzZfXHvUAUch76GgC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209222},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b1ef8f35de122388fe675b9a7138c76317869c11","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cognee_","email":"vasilije@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.4.2","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.4.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.4.1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.5.21_1779704352651_0.9038476532342867","host":"s3://npm-registry-packages-npm-production"}},"2026.6.11":{"name":"@cognee/cognee-openclaw","version":"2026.6.11","_id":"@cognee/cognee-openclaw@2026.6.11","maintainers":[{"name":"andrej_cognee","email":"andrej@topoteretes.com"},{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"handekafkas","email":"hande@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"},{"name":"hajdul88_cognee","email":"laszlo@topoteretes.com"}],"dist":{"shasum":"dcbc7bc8bfd10b9c0c454afe46e2331e9e54c0e1","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.6.11.tgz","fileCount":33,"integrity":"sha512-VGViak7QvkxmHPi142aJsJeAtaRtO+4hJXYHOIf2PemYsnQd+WfSNpq3+uR/P1anYRxgT7Y6V+G//f92dobReA==","signatures":[{"sig":"MEQCIFTLQv3ADsPQTQyA8mEcT++HJlZzQ3nW3dem/LokBoHMAiACh58XQfa0QsCfU31NzzalAKwuhhqLmW97cP2x+azpSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245495},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c9787183037522a92101e5eec2f9a65bd2d3c5e7","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"andrej_cognee","email":"andrej@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.3","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"2026.4.2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.4.1"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.6.11_1781261777069_0.3948481121896459","host":"s3://npm-registry-packages-npm-production"}},"2026.7.9":{"name":"@cognee/cognee-openclaw","version":"2026.7.9","_id":"@cognee/cognee-openclaw@2026.7.9","maintainers":[{"name":"andrej_cognee","email":"andrej@topoteretes.com"},{"name":"dmytro_gordon","email":"dmytro@topoteretes.com"},{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"}],"dist":{"shasum":"6da808ad5d89f21a5fe5bac4c6521126c47ee81a","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.7.9.tgz","fileCount":39,"integrity":"sha512-mg8DVQyAVNf55Ot/mxyCUhbw/0lP4BcfYUnquMfWJhVLTtX3hcWjGKowqEgObyg2oRad7vC+FWZIqAC0rZqWEA==","signatures":[{"sig":"MEUCIQD46U0QO/DFhoUx7+Ya/JfjW9oyCOQZUN5x8GOLP5a+bgIgFywL0inewXhYMWtdaPBheY+UFHSyEAeSURsGq3n6VJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345155},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1","^openclaw/plugin-sdk/sandbox$":"<rootDir>/__mocks__/openclaw-sandbox.cjs"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"6a774a5c120420a634d2edacdb0454bdd7ecf642","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"andrej_cognee","email":"andrej@topoteretes.com"},"openclaw":{"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.3","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"^2026.6.10","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.6.5"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.7.9_1783550981685_0.6091478489646169","host":"s3://npm-registry-packages-npm-production"}},"2026.8.4":{"name":"@cognee/cognee-openclaw","version":"2026.8.4","_id":"@cognee/cognee-openclaw@2026.8.4","maintainers":[{"name":"andrej_cognee","email":"andrej@topoteretes.com"},{"name":"dmytro_gordon","email":"dmytro@topoteretes.com"},{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"}],"dist":{"shasum":"accdd36d076c93b84d51c5f6cd2d17e132ae07c7","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.8.4.tgz","fileCount":39,"integrity":"sha512-8yjSTaLgeIjy23xCXgE71CvtLfoTPZw5BNVWsloCcNnHIiHYfb1EbsxP38REX0X6GbIdvdzrAzsUNKyW+Mmfhw==","signatures":[{"sig":"MEUCIQDry0Ah94EtWGjfoNONlJax87u+A1LT4LOL4C7jvr78QQIgLv3mQw1r0xXhfRVwpt2EIp7mUvaCA7CIIkwRdGP+nD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349159},"jest":{"preset":"ts-jest","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"testEnvironment":"node","moduleNameMapper":{"^(\\.\\.?/.*)\\.js$":"$1","^openclaw/plugin-sdk/sandbox$":"<rootDir>/__mocks__/openclaw-sandbox.cjs"}},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c8b788a2395bd059a50ad40ac548b1b8a5e64315","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"andrej_cognee","email":"andrej@topoteretes.com"},"openclaw":{"build":{"openclawVersion":"2026.7.1-2"},"compat":{"pluginApi":">=2026.6.5"},"extensions":["./dist/index.js"]},"overrides":{"tar":"7.5.7"},"_npmVersion":"10.9.8","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","openclaw":"^2026.7.1-2","typescript":"^5.3.0","@types/jest":"^30.0.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":">=2026.6.5"},"_npmOperationalInternal":{"tmp":"tmp/cognee-openclaw_2026.8.4_1785855956802_0.14322419203226322","host":"s3://npm-registry-packages-npm-production"}},"2026.8.5":{"name":"@cognee/cognee-openclaw","version":"2026.8.5","type":"module","description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","main":"dist/index.js","types":"dist/index.d.ts","openclaw":{"extensions":["./dist/index.js"],"compat":{"pluginApi":">=2026.6.5"},"build":{"openclawVersion":"2026.7.1-2"}},"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"jest"},"jest":{"preset":"ts-jest","testEnvironment":"node","transform":{"^.+\\.ts$":["ts-jest",{"useESM":true}]},"moduleNameMapper":{"^openclaw/plugin-sdk/sandbox$":"<rootDir>/__mocks__/openclaw-sandbox.cjs","^(\\.\\.?/.*)\\.js$":"$1"}},"peerDependencies":{"openclaw":">=2026.6.5"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^20.0.0","jest":"^30.2.0","openclaw":"^2026.7.1-2","ts-jest":"^29.4.6","typescript":"^5.3.0"},"overrides":{"tar":"7.5.7"},"_id":"@cognee/cognee-openclaw@2026.8.5","gitHead":"18f65c2ad5c056c6ec0e7564f9bbff67e0d225a9","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-fIzk1lhQl7Yz3hUcPymB8o4hTNM4xDxneuap2XbPbGaX5edKvNsKWddl+5rC0oTq/8+80vQHlshWEhLI1TJjCA==","shasum":"2fc71e087541421f2b6c4b01ac249fef53fbe37c","tarball":"https://registry.npmjs.org/@cognee/cognee-openclaw/-/cognee-openclaw-2026.8.5.tgz","fileCount":39,"unpackedSize":349946,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCASs+ip7FHtg/m90m/vbpMz3uYVYNCcnGTNIb0cZYrrgIgN2ndGbOpH+MjQ0Do2cyLLFiuSbIVcco7oc9bFLAYOJ4="}]},"_npmUser":{"name":"andrej_cognee","email":"andrej@topoteretes.com"},"directories":{},"maintainers":[{"name":"andrej_cognee","email":"andrej@topoteretes.com"},{"name":"dmytro_gordon","email":"dmytro@topoteretes.com"},{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cognee-openclaw_2026.8.5_1785860417233_0.013440221648252537"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-05T18:42:31.724Z","modified":"2026-08-04T16:20:17.655Z","2026.2.4":"2026-02-05T18:42:31.941Z","2026.3.0":"2026-03-04T18:14:36.320Z","2026.3.1":"2026-03-17T15:13:45.163Z","2026.3.2":"2026-04-01T14:09:58.249Z","2026.3.5":"2026-04-06T05:24:21.049Z","2026.3.6":"2026-04-10T15:18:11.596Z","2026.4.12":"2026-04-12T17:27:02.658Z","2026.4.13":"2026-05-18T02:50:44.553Z","2026.5.21":"2026-05-25T10:19:12.855Z","2026.6.11":"2026-06-12T10:56:17.222Z","2026.7.9":"2026-07-08T22:49:41.819Z","2026.8.4":"2026-08-04T15:05:56.929Z","2026.8.5":"2026-08-04T16:20:17.412Z"},"description":"OpenClaw Cognee-backed memory plugin with auto-recall/capture","maintainers":[{"name":"andrej_cognee","email":"andrej@topoteretes.com"},{"name":"dmytro_gordon","email":"dmytro@topoteretes.com"},{"name":"vkovac2","email":"veljko@topoteretes.com"},{"name":"cognee_","email":"vasilije@topoteretes.com"}],"readme":"# @cognee/cognee-openclaw\n\nOpenClaw plugin that adds Cognee-backed memory with **multi-scope support** (company/user/agent), session tracking, and automatic recall.\n\n## Features\n\n- **Multi-scope memory**: Separate datasets for company-wide knowledge, per-user preferences, and per-agent context\n- **Scope-aware routing**: Memory files are automatically routed to the correct dataset based on directory structure\n- **Multi-scope recall**: Before each agent run, searches across all configured scopes and injects labeled context\n- **Session tracking**: Multi-turn conversation context via Cognee's session system\n- **Agent lifecycle registration**: Registers/unregisters each agent session with the Cognee server on every prompt turn; combined with `COGNEE_AGENT_MODE=true` on the server, Cognee shuts down automatically when all agents disconnect\n- **14 search types**: From simple semantic search (CHUNKS) to chain-of-thought graph reasoning (GRAPH_COMPLETION_COT) to auto-selection (FEELING_LUCKY)\n- **Lazy dataset resolution**: On first prompt, if a dataset UUID is not cached locally, the plugin queries the Cognee server by name so you can connect to any pre-existing dataset without manual configuration\n- **Health check**: Verifies Cognee API connectivity before operations\n- **Auto-index**: Syncs memory markdown files to Cognee via `/remember` (add new, update changed, forget removed, skip unchanged). The `/remember` endpoint runs ingest, graph build, and graph enrichment in one server-side call.\n- **In-session memory**: Every tool call is stored as a `TraceEntry` and every prompt/answer pair as a `QAEntry` in Cognee's session cache (`captureSession`, on by default); with `AUTO_FEEDBACK=true` set on the Cognee container, follow-up messages are auto-classified as feedback and attached to the previous QA; `session_end` triggers `/improve` to bridge the session cache into the graph\n- **One-command setup**: `openclaw cognee setup` configures Cognee as the sole memory provider and sets the required hook permissions\n- **CLI commands**: `openclaw cognee setup`, `openclaw cognee index`, `openclaw cognee status`, `openclaw cognee health`, `openclaw cognee scopes`, `openclaw cognee forget`, `openclaw cognee improve`\n\n## Security: Recommended Plugin Allowlist\n\nOpenClaw will auto-load any plugin it discovers if `plugins.allow` is not set. To restrict which plugins can load, add an explicit allowlist to your `~/.openclaw/openclaw.json`:\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"cognee-openclaw\"]\n  }\n}\n```\n\n> **Important**: `plugins.allow` must be a JSON **array**, not an object. `{\"cognee-openclaw\": true}` is invalid and will cause a config parse error.\n\nWithout this, any plugin found in your environment could be loaded automatically.\n\n## Installation\n\n### Published package\n\n```bash\n# Pin to an exact version to avoid unintended updates (supply-chain best practice).\n# Check https://www.npmjs.com/package/@cognee/cognee-openclaw for the latest release.\nopenclaw plugins install @cognee/cognee-openclaw@2026.8.5\n```\n\n### Development install (symlink)\n\nWhen developing or modifying the plugin, install as a symlink so that `npm run build` takes effect immediately without reinstalling:\n\n```bash\ncd integrations/openclaw\nnpm install\nnpm run build\nopenclaw plugins install --link .\n```\n\n> **Why `--link`?** A standard install copies the built files once. Any subsequent `npm run build` updates the source but not the installed copy — so OpenClaw keeps running the stale version. With `--link`, the installed path **is** the source directory, so every build is reflected on the next gateway start.\n\nAfter install, verify the install entry in `~/.openclaw/openclaw.json`:\n\n```json\n\"installs\": {\n  \"cognee-openclaw\": {\n    \"source\": \"path\",\n    \"sourcePath\": \"/path/to/integrations/openclaw\",\n    \"installPath\": \"/path/to/integrations/openclaw\"\n  }\n}\n```\n\n`sourcePath === installPath` confirms the symlink is in place.\n\n## Quick Start\n\nAfter installing, run the setup command to configure Cognee as the memory provider:\n\n```bash\n# Cognee only (replaces built-in memory)\nopenclaw cognee setup\n\n# Or keep built-in memory enabled in config\nopenclaw cognee setup --hybrid\n```\n\n**Default mode** disables built-in memory providers — all recall comes from Cognee.\n\n**Hybrid mode** keeps `memory-core` enabled in config, but on OpenClaw versions with exclusive memory slots only the slot winner loads at runtime. This plugin registers its own memory flush plan, so pre-compaction flush works when Cognee owns the memory slot.\n\nBoth modes also write the plugin's hook permissions (`allowPromptInjection`, `allowConversationAccess`) into the plugin entry — see the note below for why both are needed.\n\nThen configure the Cognee connection in `~/.openclaw/openclaw.json`:\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"cognee-openclaw\"],\n    \"entries\": {\n      \"cognee-openclaw\": {\n        \"enabled\": true,\n        \"hooks\": {\n          \"allowPromptInjection\": true,\n          \"allowConversationAccess\": true\n        },\n        \"config\": {\n          \"baseUrl\": \"http://localhost:8011\",\n          \"datasetName\": \"agent_sessions\"\n        }\n      },\n      \"memory-core\": { \"enabled\": false },\n      \"memory-lancedb\": { \"enabled\": false }\n    },\n    \"slots\": {\n      \"memory\": \"cognee-openclaw\"\n    }\n  }\n}\n```\n\n> **Both `hooks` keys are required — they gate different hook groups.** `openclaw cognee setup` writes them for you; if you configure manually, set both:\n>\n> - **`allowConversationAccess: true`** — OpenClaw blocks *conversation hooks* (`llm_output`, `agent_end`) for installed (non-bundled) plugins unless this is explicitly `true`. Without it, Q&A session capture and post-agent memory sync are **silently skipped** — the only trace is a warning in gateway diagnostics.\n> - **`allowPromptInjection: true`** — gates *prompt-injection hooks* (`before_prompt_build`), which the plugin uses to inject recalled memories. This one defaults to allowed, but set it explicitly: it also signals hook startup intent to OpenClaw's plugin activation.\n>\n> Earlier versions of this README claimed `allowConversationAccess` was renamed to `allowPromptInjection` in OpenClaw 2026.4.2 — that was wrong; the two keys coexist and both matter. Restart the gateway after adding or changing either flag.\n\n### Multi-Agent Quick Start\n\nFor a gateway with multiple named agents sharing a default dataset:\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"cognee-openclaw\"],\n    \"entries\": {\n      \"cognee-openclaw\": {\n        \"enabled\": true,\n        \"hooks\": { \"allowPromptInjection\": true, \"allowConversationAccess\": true }\n      },\n      \"memory-core\": { \"enabled\": false },\n      \"memory-lancedb\": { \"enabled\": false }\n    },\n    \"slots\": { \"memory\": \"cognee-openclaw\" }\n  },\n  \"auth\": {\n    \"profiles\": {\n      \"openai:manual\": { \"provider\": \"openai\", \"mode\": \"token\" }\n    }\n  },\n  \"models\": {\n    \"providers\": {\n      \"openai\": {\n        \"baseUrl\": \"https://api.openai.com/v1\",\n        \"models\": [{ \"id\": \"gpt-4o-mini\", \"name\": \"GPT-4o mini\" }]\n      }\n    }\n  },\n  \"agents\": {\n    \"defaults\": {\n      \"model\": { \"primary\": \"openai/gpt-4o-mini\" },\n      \"models\": { \"openai/gpt-4o-mini\": {} }\n    },\n    \"list\": [\n      { \"id\": \"Will\", \"name\": \"Will\" },\n      { \"id\": \"Elizabeth\", \"name\": \"Elizabeth\" }\n    ]\n  },\n  \"gateway\": {\n    \"auth\": { \"mode\": \"token\", \"token\": \"your-gateway-token\" }\n  }\n}\n```\n\n> **Required fields when adding a `models.providers.<provider>` block**: `baseUrl` is required by the config schema. Omitting it causes a validation error that prevents the gateway from starting.\n\n#### Default: all agents share one dataset\n\nBy default — no matter how many agents are configured — every agent reads and writes the **same dataset** (`agent_sessions`), exactly like the claude-code and codex Cognee integrations. Agents stay distinguishable within it: each agent session registers separately and its conversation is keyed by its own Cognee session id, so recall and session bridging never mix sessions up. Shared memory is usually what you want: agents benefit from each other's knowledge.\n\n#### Opt-in: per-agent isolated datasets\n\nTo give each agent its own dataset (own graph, own recall space), set **both** of these in the plugin config:\n\n```json\n\"config\": {\n  \"perAgentMemory\": true,\n  \"agentDatasetPrefix\": \"myorg-agent\"\n}\n```\n\nWith this, agent `Will` writes to dataset `myorg-agent-will`, agent `Elizabeth` to `myorg-agent-elizabeth`, and each agent's recall only searches its own dataset (plus any shared `company`/`user` scopes you configure). Use `agentDatasetTemplate` (e.g. `\"{agentId}\"`) instead of the prefix if you need full control over the dataset names.\n\n> **Both settings are required.** `perAgentMemory: true` on its own does nothing — isolation only activates when an `agentDatasetPrefix` or `agentDatasetTemplate` is also set. Per-agent memory is never enabled automatically.\n\n### Cognee Cloud\n\nCognee Cloud tenants (staging and production) serve the **same `/api/v1/*` API as a self-hosted server**, so connecting to the cloud is just the default configuration pointed at your tenant URL, with an API key:\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"cognee-openclaw\": {\n        \"enabled\": true,\n        \"hooks\": { \"allowPromptInjection\": true, \"allowConversationAccess\": true },\n        \"config\": {\n          \"baseUrl\": \"https://tenant-xxx.aws.cognee.ai\",\n          \"apiKey\": \"${COGNEE_API_KEY}\"\n        }\n      }\n    }\n  }\n}\n```\n\nOr via environment variables:\n\n```bash\nexport COGNEE_BASE_URL=https://tenant-xxx.aws.cognee.ai\nexport COGNEE_API_KEY=your-api-key\n```\n\nDo **not** set `mode: \"cloud\"` — leave it at the default. All operations (file sync, updates, recall, session capture, agent registration, improve) work against cloud tenants through the standard paths.\n\n> **`COGNEE_API_KEY` is mandatory for any remote/cloud server.** On a local server the plugin auto-mints a key on first use (a one-time JWT login as the default user bootstraps the mint); remote servers expose no login route, so there is nothing to mint with — every request authenticates via `X-Api-Key`. The variable must be present in the environment the **gateway process** starts from — a daemonized gateway does not see `export`s from your current shell. Set it, then `openclaw gateway stop && openclaw gateway start`.\n\n> **Deprecated: `mode: \"cloud\"` / `COGNEE_MODE=cloud`.** This mode targets a legacy path scheme (`baseUrl` ending `/api`, alias routes like `/recall` without the `/api/v1` prefix) that no current Cognee Cloud deployment serves — the platform control plane exposes no data routes, and tenants use the standard `/api/v1/*` paths. The mode is kept only for backward compatibility with older deployments; on current tenants it will 404. Newer capabilities (session capture, agent registration) are not implemented for the legacy scheme and never will be.\n\n## Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `COGNEE_BASE_URL` | `http://localhost:8011` | Cognee API base URL |\n| `COGNEE_PLUGIN_DATASET` | `agent_sessions` | Dataset name for single-scope mode. Overridden by `datasetName` in config if set. Same variable name used by the claude-code and codex Cognee integrations. |\n| `COGNEE_MODE` | `local` | **Deprecated** — leave at `\"local\"` for self-hosted *and* cloud tenants. `\"cloud\"` targets a legacy path scheme no current deployment serves (see \"Cognee Cloud\") |\n| `COGNEE_API_KEY` | — | API key (cloud mode or authenticated self-hosted) |\n| `COGNEE_USERNAME` | — | Login username (self-hosted with auth) |\n| `COGNEE_PASSWORD` | — | Login password (self-hosted with auth) |\n| `OPENCLAW_USER_ID` | — | User identifier for user-scoped memory |\n| `OPENCLAW_AGENT_ID` | `default` | Agent identifier for agent-scoped memory |\n\n## Multi-Scope Memory\n\nFor production use, enable multi-scope mode by setting any scope-specific dataset name:\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"cognee-openclaw\": {\n        \"enabled\": true,\n        \"hooks\": { \"allowPromptInjection\": true, \"allowConversationAccess\": true },\n        \"config\": {\n          \"baseUrl\": \"http://localhost:8011\",\n          \"companyDataset\": \"acme-shared\",\n          \"userDatasetPrefix\": \"acme-user\",\n          \"agentDatasetPrefix\": \"acme-agent\",\n          \"userId\": \"${OPENCLAW_USER_ID}\",\n          \"agentId\": \"code-assistant\",\n          \"recallScopes\": [\"agent\", \"user\", \"company\"],\n          \"defaultWriteScope\": \"agent\"\n        }\n      }\n    }\n  }\n}\n```\n\n### Memory Scope Hierarchy\n\n| Scope | Dataset | Purpose | Example Files |\n|-------|---------|---------|---------------|\n| **Company** | `acme-shared` | Shared knowledge across all users/agents | `memory/company/policies.md`, `memory/company/domain-glossary.md` |\n| **User** | `acme-user-alice` | Per-user preferences, feedback, corrections | `memory/user/preferences.md`, `memory/user/feedback.md` |\n| **Agent** | `acme-agent-code-assistant` | Per-agent learned behaviors, tool outputs | `memory/tools.md`, `MEMORY.md` |\n\n### Scope Routing\n\nFiles are routed to scopes based on their path. Default routing rules:\n\n```\nmemory/company/**  ->  company scope\nmemory/user/**     ->  user scope\nmemory/**          ->  agent scope (catch-all)\nMEMORY.md          ->  agent scope\n```\n\nCustom routing via config:\n\n```json\n{\n  \"scopeRouting\": [\n    { \"pattern\": \"memory/shared/**\", \"scope\": \"company\" },\n    { \"pattern\": \"memory/personal/**\", \"scope\": \"user\" },\n    { \"pattern\": \"memory/**\", \"scope\": \"agent\" }\n  ]\n}\n```\n\n### Multi-Scope Recall\n\nDuring recall, the plugin searches each scope independently and injects labeled results:\n\n```xml\n<cognee_memories>\n  <agent_memory>[agent-specific results]</agent_memory>\n  <user_memory>[user preference results]</user_memory>\n  <company_memory>[shared knowledge results]</company_memory>\n</cognee_memories>\n```\n\nThis lets the agent distinguish between personal context, shared knowledge, and its own learned patterns.\n\n## Configuration Options\n\n### Connection\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `baseUrl` | string | `http://localhost:8011` | Cognee API base URL (also: `COGNEE_BASE_URL`) |\n| `apiKey` | string | `$COGNEE_API_KEY` | API key for authentication |\n| `username` | string | `$COGNEE_USERNAME` | Login username |\n| `password` | string | `$COGNEE_PASSWORD` | Login password |\n\n### Dataset\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `datasetName` | string | `agent_sessions` | Dataset name for single-scope mode (also: `COGNEE_PLUGIN_DATASET`) |\n\n### Memory Scopes\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `companyDataset` | string | — | Dataset for company-wide memory. Setting this enables multi-scope mode |\n| `userDatasetPrefix` | string | — | Prefix for user datasets (becomes `{prefix}-{userId}`) |\n| `agentDatasetPrefix` | string | — | Prefix for agent datasets (becomes `{prefix}-{agentId}`) |\n| `agentDatasetTemplate` | string | — | Template for per-agent dataset with `{agentId}` placeholder; takes precedence over `agentDatasetPrefix` |\n| `userId` | string | `$OPENCLAW_USER_ID` | User identifier for user-scoped memory |\n| `agentId` | string | `default` | Agent identifier for agent-scoped memory (also: `OPENCLAW_AGENT_ID`) |\n| `recallScopes` | string[] | `[\"agent\",\"user\",\"company\"]` | Scopes to search during recall, in priority order |\n| `defaultWriteScope` | string | `agent` | Default scope for files not matching any route |\n| `scopeRouting` | object[] | (see above) | Path-to-scope routing rules |\n| `perAgentMemory` | boolean | `false` | Give each agent its own dataset. Strictly opt-in (never auto-enabled); requires `agentDatasetPrefix` or `agentDatasetTemplate` to also be set — see \"Multi-Agent Quick Start\". By default all agents share one dataset. |\n\n### Sessions\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `enableSessions` | boolean | `true` | Enable session-based conversation tracking |\n| `persistSessionsAfterEnd` | boolean | `true` | Persist session Q&A into the knowledge graph |\n| `captureSession` | boolean | `true` | Store each tool call as a `TraceEntry` and each prompt/answer pair as a `QAEntry` in Cognee's session cache (requires `enableSessions`) |\n\n### Search\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `searchType` | string | `HYBRID_COMPLETION` | Search strategy (see below) |\n| `maxResults` | number | `3` | Max memories to inject per scope (sent as `top_k` to Cognee) |\n| `minScore` | number | `0.3` | Minimum relevance score filter |\n| `maxTokens` | number | `512` | Token cap for recall per scope |\n| `searchPrompt` | string | `\"\"` | System prompt to guide search |\n| `recallInjectionPosition` | string | `prependContext` | Where recalled memories are injected: `prependSystemContext`, `appendSystemContext`, or `prependContext` |\n\n### Search Types\n\n| Type | Description |\n|------|-------------|\n| `HYBRID_COMPLETION` | **Default** — combined vector + graph retrieval |\n| `GRAPH_COMPLETION` | Graph traversal + LLM reasoning; slower but deeper — best for offline/CLI queries rather than the per-prompt recall path |\n| `CHUNKS` | Semantic vector search, returns raw stored text (no generation) |\n| `FEELING_LUCKY` | Auto-selects a strategy per query (may pick generative modes) |\n| `GRAPH_COMPLETION_COT` | Chain-of-thought reasoning over graph (iterative) |\n| `GRAPH_COMPLETION_CONTEXT_EXTENSION` | Extended context retrieval (multiple rounds) |\n| `GRAPH_SUMMARY_COMPLETION` | Graph with pre-computed summaries |\n| `RAG_COMPLETION` | Traditional RAG with document chunks |\n| `TRIPLET_COMPLETION` | Subject-predicate-object search |\n| `CHUNKS_LEXICAL` | Keyword/lexical search |\n| `SUMMARIES` | Pre-computed hierarchical summaries |\n| `TEMPORAL` | Time-aware graph search |\n| `NATURAL_LANGUAGE` | Natural language to graph query |\n| `CYPHER` | Direct graph database queries |\n| `CODING_RULES` | Code-specific rule search |\n\n### Automation\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `autoRecall` | boolean | `true` | Inject memories before agent runs |\n| `autoIndex` | boolean | `true` | Sync memory files on startup, after agent runs, and on session end |\n| `improveOnSessionEnd` | boolean | `true` | On `session_end`, call `/improve` with the session id to bridge session-cache QAs into the graph |\n| ~~`autoCognify`~~ | boolean | `true` | **Deprecated** — `/remember` runs the cognify step server-side |\n| ~~`autoMemify`~~ | boolean | `false` | **Deprecated** — graph enrichment now runs server-side via `/remember` |\n| ~~`deleteMode`~~ | string | `soft` | **Deprecated** — `/forget` always runs soft delete |\n\n### Timeouts\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `requestTimeoutMs` | number | `120000` | HTTP timeout for Cognee requests |\n| `ingestionTimeoutMs` | number | `300000` | HTTP timeout for add/update requests |\n\n### Recall budget & circuit breaker\n\nRecall runs on the prompt hot path, so it is bounded: each recall call gets a short timeout, the whole recall step gets a wall-clock budget, and repeated failures open a circuit breaker that skips recall until the server recovers. Memories missed under the budget are dropped for that turn only — writes (traces, QA, file sync, improve) are never budgeted. The breaker state is shared with the claude-code and codex integrations via `~/.cognee-plugin/recall-breaker.json`, so all plugins using one Cognee server back off together.\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `recallTimeoutMs` | number | `2500` | Per recall HTTP call timeout (no retries) |\n| `recallBudgetMs` | number | `4000` | Overall wall-clock budget for the recall step per prompt |\n| `recallBreakerThreshold` | number | `5` | Consecutive failures (network/timeout/5xx) before the breaker opens |\n| `recallBreakerCooldownMs` | number | `120000` | How long recall is skipped once the breaker opens |\n\nNote: Files are stored in Cognee using sanitized relative paths as filenames (e.g., `MEMORY.md.txt` for `MEMORY.md`, `memory.tools.md.txt` for `memory/tools.md`) for easy identification and to avoid path separator issues.\n\n## CLI Commands\n\n```bash\n# Configure Cognee as the memory provider (run once after install)\nopenclaw cognee setup              # Cognee only\nopenclaw cognee setup --hybrid     # Keep built-ins enabled in config\n\n# Manually sync memory files to Cognee\nopenclaw cognee index\n\n# Check sync status (files indexed, dataset info, per-scope breakdown)\nopenclaw cognee status\n\n# Verify Cognee API connectivity\nopenclaw cognee health\n\n# Show memory scope routing for current workspace files\nopenclaw cognee scopes\n\n# Wipe a dataset, or all of this user's data, from Cognee\nopenclaw cognee forget --dataset <name>\nopenclaw cognee forget --everything --confirm\n\n# Bridge captured QAs (and any feedback) into the permanent graph\nopenclaw cognee improve                       # current dataset, all sessions\nopenclaw cognee improve --session-id <id>     # scope to one session\n```\n\n## Development\n\n```bash\ncd integrations/openclaw\nnpm install\nnpm run build\nopenclaw plugins install --link .\n```\n\nFor live rebuilds during development:\n\n```bash\nnpm run dev\n```\n\nAfter each build, restart the OpenClaw gateway to pick up the new code.\n\n## Testing\n\n```bash\nnpm test\n```\n","readmeFilename":"README.md"}