{"_id":"@hyperspell/openclaw-hyperspell","_rev":"41-99cfccef803af8bbff5d9108ccc8963c","name":"@hyperspell/openclaw-hyperspell","dist-tags":{"latest":"0.28.2"},"versions":{"0.1.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.1.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.1.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"fc167f8800efb914644604b74a2f9e3eaec5fe5f","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.1.0.tgz","fileCount":13,"integrity":"sha512-frpICvL+jKgOuaXc2lRoYSRRHXQkYsrMzHEpWoLAAGcwXaeYPW1nDfGABl5ySh8ONuASo0Sn5eukv9+7uzhj2A==","signatures":[{"sig":"MEQCIAjjf/ksG6FkBiy8IlEvf3TShOASckvDJsKbrHqBr3BOAiAaDUDDf2owQMHwCLcHgwoPglQUI4Bu1Q1ePdXujlendA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25456},"main":"./index.ts","type":"module","gitHead":"4f60d5b4b4b7f884c83b820b9fb9e3d90de6c1d7","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.1.0_1769912007409_0.32477874932432815","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.1.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.1.1","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"6f00d769b1e0888491e69de75aad527864f7321c","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.1.1.tgz","fileCount":13,"integrity":"sha512-8sKYhpVlipTHgC6IWXTA4gUszIT5VaoUZ+zZZYG8l7icbGE/f0/UmTdNmJ46PmXuZ7JrdRR7+AJhvczGxaF4VQ==","signatures":[{"sig":"MEUCIDo/zPyIf5xcvURdynDKxnm48oKDrgeE6Ng1ScZCdEE4AiEAlbVUtoBuN4Tb6dcAhFv81TENRoZxoP6dhiwXGVpPmSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25675},"main":"./index.ts","type":"module","gitHead":"62831585e076e46a7bdf9dfb87a8cdc10b6982ce","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.1.1_1769995030772_0.6478531895422561","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.2.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.2.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"70632c85646de612074bad3ef101ac73626ceb66","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.2.0.tgz","fileCount":14,"integrity":"sha512-ndUqWhog609XXGlI4p+HBKT2gQ5tQdW7KaX0jjyzZIRydc6W+V/WRqB53pxSeFOEZ7VWjNd3rneKxj3HBktBww==","signatures":[{"sig":"MEUCIEbZFIhC25FhTicr5hOOrSdLaKpsXKrwQooqmtNVtgy+AiEAs7z/G16fqAWQlUjF7/Io2SbHs8Dtr0ZZj/K23Z+uXiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44368},"main":"./index.ts","type":"module","gitHead":"34822e5512a2dc94aa4a8bae4a0f4214c0b07358","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.2.0_1770267838567_0.3786823890243418","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.3.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.3.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"74611d46cee704ebab3e55f4cb4341e76a91a789","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.3.0.tgz","fileCount":15,"integrity":"sha512-v5OCqcCrYN6W4VsyVLFWE2UwX9NroqZqEZrfBaCGqzPpwoJrdF5j6eOLqgKxRftvLb8ZkgGb11L7Kx5OUNX4Uw==","signatures":[{"sig":"MEYCIQCOdT5dBDhZMeQdQGm9XdVEjhgE3olEEuuXT+Kx06awIwIhANvUcwHcT7jVrvMlm+FAX33zAspQC8v6h6YN6Beg9WGs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52350},"main":"./index.ts","type":"module","gitHead":"f880c34e525651748621ca122f27b662bb89832c","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.3.0_1770310004140_0.5138440691991455","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.3.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.3.1","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"d170d27f11424f24f3ee6577a611bb7269bc884f","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.3.1.tgz","fileCount":15,"integrity":"sha512-nZ/RK3Y/0f0KXBiGrfgtKtnME/g4jJEWLhnlDfEC0VI/ubUoEjp7ttQxjS88KT0f3A0/0Lv8fPhZik41UUGhfg==","signatures":[{"sig":"MEUCIQCCzt8rPPG/tmGVNoN3VgOVtbwXPhXvK3OMZ4vJbZbNxAIgD9HWRZsV1Swgth0mazhNwVVKHjTrrGzs/3kxhlEtZKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52583},"main":"./index.ts","type":"module","gitHead":"f880c34e525651748621ca122f27b662bb89832c","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.3.1_1770317333890_0.5824822623069874","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.4.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.4.1","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"65544efc2007926c6900f4ad8985961cc55f53d5","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.4.1.tgz","fileCount":15,"integrity":"sha512-LpZli116s//45D1QP9OzX4TwPIYWxfcHayfRaGfrf21X1pNG+mvRtXtrozjchYTQ0horcZSayp8ybd+bIn0QWg==","signatures":[{"sig":"MEYCIQC899Dt8b/nVtIv3F5eVaNjqIzSTOGb9Utn8/M4iwKglwIhAOqeaEPVxFqdx0GnRTxOTo2NMFLpqgqDchjDx+vpbJWW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53834},"main":"./index.ts","type":"module","gitHead":"67ed27debbfb2db001a5e9a718c04e29c077f31a","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.4.1_1770590628653_0.4836943372657785","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@hyperspell/openclaw-hyperspell","version":"0.4.2","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.4.2","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"628818a05858dab6aa15bbc8d651a2f20b8024bb","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.4.2.tgz","fileCount":16,"integrity":"sha512-hBrGLNfz0XLDN8JlqC2P+9irVXOuDZLlXwEkdXXS2IZZIXzHQbhlAOBq7zBxvZbwATX+j8J64sqv4F807PCB1Q==","signatures":[{"sig":"MEQCICIj3zIuOh8Ma6rxrv2OtzAb9MUU2L60WCGXEI9BKoz+AiBQIomOmVPGUWl0P1in1tBAbq/xm/pu3TTF8GBvIeDm1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58858},"main":"./index.ts","type":"module","gitHead":"ead7c80db91bde9aa667ca7ddf7b070146dff8a4","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.4.2_1770677050887_0.6431497289943624","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.5.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.5.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"086b044a51da68e6c245ae7b0bcb286be2bfdd8a","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.5.0.tgz","fileCount":21,"integrity":"sha512-jqQdbTJC439LklddfYVaxSn4FEpjdYw0tEJZrnv+oi+dwcD6RePCAwYo+pu3GNtxhet0wzVDd7Np+mpId8gzbQ==","signatures":[{"sig":"MEUCIQC47IB3HInOHnWKWFLg2TeB0Fr1XjZulAx1XnfVLa7cygIgNR7Sm+pau7h7mX9nN70UCExtQCJT2MN6PYxbJk7hLhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96055},"main":"./index.ts","type":"module","gitHead":"ead7c80db91bde9aa667ca7ddf7b070146dff8a4","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.5.0_1770770194158_0.4531442899477176","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.7.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin","sommelier","wine"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.7.1","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/openclaw-hyperspell#readme","bugs":{"url":"https://github.com/hyperspell/openclaw-hyperspell/issues"},"dist":{"shasum":"baa8901353586c95ca44f60f970bc8ffc538f311","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.7.1.tgz","fileCount":32,"integrity":"sha512-gXLe2mRXOfsYLWiwnKbjqoaJZ17uhIU5IzZM0+772WgpFg1vuLftpb3VaopmjabY7ZCWjN44X0HnKgw+p8POPg==","signatures":[{"sig":"MEYCIQC//DS/q5WgD3A67FvkcYvi5c+4HDMmCVXn0JVrH4Wr0QIhAIzDngUiXUQ257jMKFxTR62hx6pZw/BnQzSUG6N6lirK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325408},"main":"./index.ts","type":"module","gitHead":"f8889b3f0c15ffb1bcb8022881ba745ab4b14325","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"maebert","email":"manuel@1450.me"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/openclaw-hyperspell.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.13.0","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.7.1_1775185511928_0.30730321478468836","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@hyperspell/openclaw-hyperspell","version":"0.7.2","keywords":["openclaw","hyperspell","memory","rag","ai","plugin","sommelier","wine"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.7.2","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/hyperspell-openclaw#readme","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"1937e519d04513ce82c44f8620b3816c10f72a7b","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.7.2.tgz","fileCount":32,"integrity":"sha512-RRjyAr20ZZPO209DP0pLvLIq2fmYmQwa9wK6DEGNGLMVEqASq53ykmizOtN+ME1W6ytifKfwakBYHBnHhRpcoQ==","signatures":[{"sig":"MEUCIFiE80Ri6PNehAwwwMl+2f0adOrVGSKmGpaeSC/h4gWoAiEApHMtoYqzzQEeRyb+CxZWXyiTfPaCjVooG/Pod+sbpwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325425},"main":"./index.ts","type":"module","gitHead":"a38addbf9400afdf0aac04825d98601ea4690504","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"hooks":[],"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.7.2_1775188207456_0.36640882351484216","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.8.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.8.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://github.com/hyperspell/hyperspell-openclaw#readme","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"ccace607e197fe658945afc5b11a01689fb57b43","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.8.0.tgz","fileCount":22,"integrity":"sha512-828QgHkvMIcTF2gt3859owXZmYynxc3ksmP13SRPDQJtjiZ3gj2jl92fTn3bznO8J36gWM3BLe0QbAvX6Yqwdg==","signatures":[{"sig":"MEYCIQCZcjJpQU/1Dr9zjkZoJIVpKFb50/hHRSZKw3SmbW9ZUwIhANB1a0eXLTdkLsG7y+5zKCToVspwYrAMrvO20nE7NSC2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104060},"main":"./index.ts","type":"module","gitHead":"1d205b54f2c183943beb9c1ae4a3ad031ae864f4","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"hooks":[],"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.30.0","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.8.0_1775496209323_0.6120106983808713","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.8.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.8.1","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"76e8f9df17edad3ae12833ed46211c09722b376e","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.8.1.tgz","fileCount":22,"integrity":"sha512-NbeHp1ydO7wG4RpGTlCUEs+VtqHGP3y6WOIocgfZ3etq+BWCPIcdREXxtZ9avyGh9voOvLTAVaC8Wu6Z3HtcFg==","signatures":[{"sig":"MEQCIAdXYvEy6rZka+xb4dsH5SkQbQwJ3w+cvXUHdHxyTCeHAiAarwt6SQSfLCnKXv2gvp0XKD/M596SFqQ51gURekF3Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105490},"main":"./index.ts","type":"module","gitHead":"3428b2686919de5f5d70ed54fe23ccae8b9edcfa","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.8.1_1776458410676_0.8803629205361836","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.9.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.9.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"90d7d7579aab2346641bf6578c37753ceb1a8e24","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.9.0.tgz","fileCount":23,"integrity":"sha512-Qoaz35xNHf+VTcaCaPPb2ZCQ037w43Er8jOjwJa9khc1vfu86FsewpZkv+XYkN8dIQKDA5RVE/s8Rp5QYIj/1w==","signatures":[{"sig":"MEUCIGhD3N93v6D6dIpEIAfNNfZaZ9EBTZ4qzjM+/33xhMJLAiEAputN8Vs0pK5iBj4h9Gwzvm3vdycOBieEOefUD7f8jbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113187},"main":"./index.ts","type":"module","gitHead":"25b96cbe997c140dc3ae2ce8e3c40836955281f2","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.9.0_1776458472334_0.6347610378047306","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.10.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.10.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"43fc595304889cd9d7c39b82fc57d0aa1e6c8217","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.10.0.tgz","fileCount":24,"integrity":"sha512-SeuaCA7Ea+F2WC+mgflEf/2g85D2N6fqa+C9Sant3FR8GJtE2IHXt3I4vHN7WyxZPbhlVx4ahui7GEmiDJfwpg==","signatures":[{"sig":"MEYCIQCXojih78RKtJADCZfHlUAGXWinUyHvtBcTvCsnLOnVFgIhAOlb+25/toB4ao6jtiSxlPfg/0OEqrybuLurOopRtuQK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125265},"main":"./index.ts","type":"module","gitHead":"a43c49c5fedf787d37084b9ce48945eba3fba32c","scripts":{"lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.10.0_1776458548522_0.7869265807790684","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.11.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.11.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"9f9e8631c8e0dee576e0ee56d501f224257b30d9","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.11.0.tgz","fileCount":27,"integrity":"sha512-iGivEKyWdRskmVpDNH8GROwYDMaKBoFaU5CUydEek6s99AybAI3vPg/QXf6Yx+4v5VHQlyDC/FQHI0JmhGWdUw==","signatures":[{"sig":"MEYCIQCivNrxyykiTDOBROWkLh4ot5zaI8Df5U+hyqIlTosMSwIhAJNXVKZYFoqKdU3cQuNI55kpsPDVzsFtvXyeMGbDQFZ8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":156062},"main":"./index.ts","type":"module","gitHead":"dc0b96ba15ee1c1b1f142969908b713f1fd948d8","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.11.0_1776458716876_0.29154725715205254","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.11.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.11.1","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"296e43fe077f3dd8a4aae249334158e8f4f69465","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.11.1.tgz","fileCount":29,"integrity":"sha512-kqFUIh6masZNpVfluwMpTM8JNrsLfT6u0kT6dvzjhcH1rBbCoYKkmvt6zc29zTOAxnfaVXwxCv1Qnj2fJkQT/A==","signatures":[{"sig":"MEUCIGCisQ6s8rmK1c6N3zG0NT18I5cy1wPyAR0FZ11O0R+IAiEAsr4aSNRZ7YvlpUKCwh7vcSk+a9V+iHMlq2qkSJJGRKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169605},"main":"./index.ts","type":"module","gitHead":"155837f56e09087e966ffe6539f876229dc82deb","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.11.1_1776466053441_0.7798274928044218","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.12.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.12.0","maintainers":[{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"bae46fbf13835dc3e5e1aa7287cbb51ed35df3a8","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.12.0.tgz","fileCount":29,"integrity":"sha512-NqYEsSqSCvfbhzyhcXSOYq+06qRb6IbE5njXrUq3TN1XHkZOCZsD7IPhppr9GhWHMNL9BnEJD2wGTUXDHHLhtA==","signatures":[{"sig":"MEYCIQDlhQB5otpZdceErety2hz7eolYxf3U+3TaRSJPXWnUDwIhAJRN9Tlo22RSj9mAm55uQ/Bmc7jBUu0jsymoQGq6afEd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169903},"main":"./index.ts","type":"module","gitHead":"d8c9a142ae2930fe742b1a8710ecf005440ee14d","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.12.0_1776467282084_0.17305033076175813","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.13.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.13.0","maintainers":[{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"e8dac5eef9e7cda35501add83e6330d94dede2cc","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.13.0.tgz","fileCount":25,"integrity":"sha512-7BMc0laGVpKu0zOv6VNMVQkmHOJxMEVTv6Ia3dTxw9f9vqzWh+niVzLtmI3Wi7olCeBJvxSOqQZQqYw64yX4wg==","signatures":[{"sig":"MEQCIAFRA+Vudxwm2tWV16zeVkMWho6aKTsj5CzcH6Ffjx/AAiBEQoLTuoe7nSIKhWpEzn2Wuhm5mv1qsIxBuSxJGxV0SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":156438},"main":"./dist/index.js","type":"module","gitHead":"072d1adde318ceb842a67c6735ab02eab620e37e","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.13.0_1778040657070_0.38327727050823124","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.13.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.13.1","maintainers":[{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"7090c0b272d33d627e92d488dfd379bae35913a3","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.13.1.tgz","fileCount":25,"integrity":"sha512-ej7L2tWsQdX7OAA7KJBchM5b1B09MiJxOEDu3PaPTDhaar03tIlXwbN6CNC3upgYuZZz3yXkZRZxr/tks8b8RQ==","signatures":[{"sig":"MEQCIEzGwx1GQMk0hrYx+jFtShhBpNmPOC6O1wAB5/O4c5jmAiBvkmSCqwBHeevGyUGeB1bqtcukQ33UZH5SoaSZEe2UFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160111},"main":"./dist/index.js","type":"module","gitHead":"3ccb46f1c4c98149fbb69a6dbcb893f167e0e246","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.14.1","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.13.1_1778209341690_0.9782117864056483","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.14.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.14.0","maintainers":[{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"305afe356f4b9f4a2dc79ce7a1151105ce00d0a1","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.14.0.tgz","fileCount":25,"integrity":"sha512-6lXHouaxGKZS/8/oKVmwRtM0e1YGJBOgVgRMwOczzb96PRIH9YxiFlfdDwNBl1trjzhu8+8uClp7hfx0ag0ORA==","signatures":[{"sig":"MEUCIGtJctNqytkWk1NQcOFvMEErSbiiDBtxfVYhqUe7yDKDAiEA3U+DOGeswH1RIiD9s8d/pLTsg4okqyJ1B4BUaIZjq5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":183512},"main":"./dist/index.js","type":"module","gitHead":"93338c32b43295ab698233300fc9e54111d0ea69","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.15.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.14.0_1778998233063_0.690690178670823","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.14.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.14.1","maintainers":[{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"c073d3691b36fcdfa57d4ee38deb97badf573870","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.14.1.tgz","fileCount":25,"integrity":"sha512-Fh87RWkg7UY01FZIA2M56wGwRD0E5fE3dRI7x67pqTnjun+ORw9dDZEE/Z5z8zqvoWMTJ4qJNLulK/9to+vx2Q==","signatures":[{"sig":"MEUCIQCUawstqdtYZoLdotmX0+OcjdOr26kovcSHo83g+28v5gIgHstYQ1hQvsZ3ooA3TyUZmq5HiiwYJGPWik0jF6Z6/gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187622},"main":"./dist/index.js","type":"module","gitHead":"5918737d3f1dcc8eb40ee15c075c5b0e5d2d7088","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.15.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.14.1_1779131657074_0.9152580785340407","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"@hyperspell/openclaw-hyperspell","version":"0.14.2","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.14.2","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"8a6230f4b946440d821e0f98c6b277ec4d3c049b","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.14.2.tgz","fileCount":26,"integrity":"sha512-0oD5QWFCLGXjMAog14hcPfyZ9UxyfTUOgzKCLQbPsx2sZUmXKmlZISrt5j+FQ1YIVYdncmKGvnbAAA3n8FEMXQ==","signatures":[{"sig":"MEUCIH0pPPRUWIm2/wFYZOhWjgb2UrcKxDsZSPsoYtNr+i8JAiEAz8oRWll35WW64z1HYDgEWAV+AsnOBk9VtFErUGcNxUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":191039},"main":"./dist/index.js","type":"module","gitHead":"37421e684cf34b967c8230d939c094ec364f16fa","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts lib/filters.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.16.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.14.2_1781902727472_0.25464147272930426","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.15.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.15.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"642ef7573b7758cdd4e7977415d9a44f789eb9b3","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.15.0.tgz","fileCount":27,"integrity":"sha512-mDgH8KYXzPx9GN4xlFpltK0UKZ2UPEfRXIOX6Uz2PPZhFywBq+W3kC4d63/nWJ9Sr6cVXXUukoz75eCC4ZI5Jg==","signatures":[{"sig":"MEQCIG4Xbi5IS7rbQZSo8S+kUj/2d6VRz9Y6h0zYmNwzQzMWAiAN709lfwQ5UKcXqNMJu5feRxu1UDDcwDaVaU8DIVxU7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203101},"main":"./dist/index.js","type":"module","gitHead":"db5880ef87492198a0a8da20bfbbd002f9e4a0b7","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types lib/sender.test.ts lib/filters.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.16.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.15.0_1782280761477_0.06003229706847368","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.16.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.16.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"cd731a3bcd2af3e754077f2f8ac6c3c3fdd08356","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.16.0.tgz","fileCount":29,"integrity":"sha512-J5ea/J5MGHJWbJdTcPDqVKO9Xk03ZpLmTZcKMPeH5crSKujHN7hO8ie1X3RJ4Z2ec8pkJj0Tm6hGh97pDtV94g==","signatures":[{"sig":"MEQCIGyWiWQCVuHFkJBGcJkgFyjlU4Xw2ya7QflUUerd2O9YAiBOAmI9QIMrLCgi3X9fWvqNSXmw9S57wsyeyAjeseHGVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225852},"main":"./dist/index.js","type":"module","gitHead":"f6a4f31f23554281097a0aca21f35463a2c3d05e","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/session.test.ts tools/search.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.17.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.16.0_1782412238274_0.6463850971381107","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.17.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.17.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"c505eb71a044df78d3ab9f5e216460da81baaca3","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.17.0.tgz","fileCount":30,"integrity":"sha512-HazQxZRHaWFYVvLpuK5zK82Lwow+VtAsCNvrDLov9UJe4Ly8t3hbrtrPVpUBWSbeAeCrym1UEIfMDlkb1xoRWQ==","signatures":[{"sig":"MEUCIEo3GRy6hbXODpFsJ69fZvlvWGl/Fx4q6CNbGmm/eMm/AiEA5veAkRd5KhMXCRruqckJP3MkmztCPadlt3xvje1E2mQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":233887},"main":"./dist/index.js","type":"module","gitHead":"617f0e22aa14eb3d51f49d5959ae04cbaa09d22e","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/session.test.ts lib/ranking.test.ts tools/search.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.17.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.17.0_1782416885235_0.974293904121593","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.17.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.17.1","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"08d5d2653c04e4fe4528b0506a73f6e4c7f086e3","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.17.1.tgz","fileCount":30,"integrity":"sha512-zJ0OR8lK0/Vj+JosQMVhEMJD/IYyLzFuI7mLSuQ1zXzrMuDew4fv9RIFo6prgS15vRBaTTnphbmzrvG3lyO3nQ==","signatures":[{"sig":"MEYCIQDLIoZ7qEL0Bg59gvhlMre7ROMCBEUAQTXP7Cx0FLXAPAIhALpiFrw0fPdfKzUo+/TmHlaiiPY1O+Sb8pcel3V1RTFP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":234401},"main":"./dist/index.js","type":"module","gitHead":"715a583ebbf03a5d3e10517dfeede1ce3ce435ad","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/session.test.ts lib/ranking.test.ts tools/search.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.17.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.17.1_1782428323886_0.048088961363772276","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.18.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.18.1","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"12f16a217c18125e8f06093bde4345ccb81d32fe","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.18.1.tgz","fileCount":33,"integrity":"sha512-A/2hluCaWs9OyHE0qUqUDLjMQsRnnIBMCC1kJ+NCRRPn4GadPf21F+rtFNgqfhtSRPAE0TsObHFJ1Bhu4ETrDQ==","signatures":[{"sig":"MEUCIQDUyzIGiygp67TaO7+LYayjsMZi2o1q5/f7nuppcGUQBwIgI950FJC/JqhreEhnly6LmcGizDyBq/sT4lldvUr4WDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":259078},"main":"./dist/index.js","type":"module","gitHead":"056dcd9710a26b84bbef4ba72353e99b41af8f73","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts tools/search.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.18.1_1783012515461_0.40336989822840996","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.19.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.19.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"b07a1ccafd2ebcbe19a2c073c807ae1b48ebc5d7","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.19.0.tgz","fileCount":37,"integrity":"sha512-fiJf8ei3Q2ph4oo9GtGHAy/NFioYG7+sYO9jJILtNS7QII+IKKdn1esIpPqZFI56HG3Tmmna0qFZPNfCWSC6Fw==","signatures":[{"sig":"MEUCIHYsRS62+cjZdnRPxy0d+nqkQ9yrGqVzFbk4ERRWsHLeAiEA8w+9qXF0qzSzfBcPZPsBbgZuLPht50ndEVfDe/Eh/vE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":297902},"main":"./dist/index.js","type":"module","gitHead":"6fed03f0ce1fa1d576bb10737e2533634d09e708","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.19.0_1783894897644_0.07626489862049057","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.20.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.20.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"9dff6d3b8f6c458f377b98a915a743b9b2b9ca94","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.20.0.tgz","fileCount":38,"integrity":"sha512-MLnPVW4KnScluiY/2cbTB0OzCosvglImfUAnAZpeFOXW1hicP+akmvO9PxP3ya6ZK2gxwB8oo/LLDI5fcrEWHg==","signatures":[{"sig":"MEUCIFmB1CerEeVDawuNtvUvSYbAvquff4XTsan4JcL4qcYbAiEA9nmsSSzwsiKfI6Ms+7qEIaTy2Icu4qi2asAMSn49l14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":346542},"main":"./dist/index.js","type":"module","gitHead":"88b9a6d591e51f60e4eaa12cddb3b1a39e1ed287","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.20.0_1783906836587_0.9357428478520926","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.21.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.21.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"6fa82aefd730141e94a1085f2ada6b04a81b6352","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.21.0.tgz","fileCount":40,"integrity":"sha512-Ufr03bC5sItvVOwZEo22BTKEjBhrjk+YotIyKY/c+8I2QT2+ZsDNqznQr+TKdL0uCyF18gn8ryuR4aSVhXZT2g==","signatures":[{"sig":"MEYCIQD2Xna+CfZSzwmChr5Wj/sgFT2X35zeDLS7DwnsiQVmZAIhAOTEIwkyCpjScdp2/GchX/Flpy9+CHlUpSTMs4KOB8An","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393868},"main":"./dist/index.js","type":"module","gitHead":"f994920418639ae30fdbda8b85c4a8229a5a7b59","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.21.0_1783919193439_0.42875476776100485","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.21.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.21.1","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"e2b214d05380d1cb4bcccec3acb970d9a048e6b3","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.21.1.tgz","fileCount":40,"integrity":"sha512-INive1BGzs9Nr3Up1RYJ2ny0wwxY7alas8kcGBexFnJluzhw9Fst4fxhT5OVHZp7bv4sst7XnSRz7xvgj9/IYw==","signatures":[{"sig":"MEQCICAaqJ/nOuYc0A2h1gQzkC2wZbLS06KaGc9GZ+q/9mmIAiAxtYn9myAA4OlA70knqUv6JowK+zv8bIaSMqQe1R30Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":397316},"main":"./dist/index.js","type":"module","gitHead":"a4eae23f5d1929ab693085fe67ce07cf38a82933","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.21.1_1785012027159_0.28064468908720275","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.22.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.22.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"621ea5910bace42cccdd173d38c4a0bedca28918","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.22.0.tgz","fileCount":40,"integrity":"sha512-dBiLGOtc44VNg9G/F3hxUweitklRgTL1Dd/EzBEpqmSAkO3eWlRI/iCe99XA+d1medrXx63tT1dO50ZYvs8o3Q==","signatures":[{"sig":"MEQCID4iH+MFfNjREc7HrHQoR3BIIZzff1ePrIfUZ5bQnI3pAiBhKTk1v4t0gOCNhcUQtSbNLTJO9ibprBC/Huw8D5SPiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":398519},"main":"./dist/index.js","type":"module","gitHead":"88dbc1127808cbf41dfe46a7676b397fd9158a51","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.22.0_1785182669403_0.3806015560421756","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.23.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.23.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"9f5eb525961fb1f08ca7cd272b67e58665de9d0c","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.23.0.tgz","fileCount":40,"integrity":"sha512-30p2eC8qMp65VvXKHkNOh7WYeNDp86ln7s90vT2i3ZQ5Sl5hix2viFjBqFcoU0M2NP4c94nLbp+wF9pFoi6VTw==","signatures":[{"sig":"MEYCIQDzo0JSZRKjQJO3N0pGZEuiUOxA0qELZU1+4Je9DXy39QIhAMmeB1JkiezFWkcLk7mv2ADY605HvJYcPKwLKrLtwr23","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":399205},"main":"./dist/index.js","type":"module","gitHead":"e086bd945ed4b9c9fc68af9a3ddb2ba406b58e6c","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.23.0_1785188310884_0.7405130722721569","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.24.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.24.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"e54fb95fa5af8e2c94be58e314bacfe3f4d9f0f2","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.24.0.tgz","fileCount":40,"integrity":"sha512-CgLiiaQVt0AkvSOakB8oTkc5hmI9Ti2nuN2d0HDkCCcliQjGCVwLMJPTJGzZGBDWvNdmJdY+V6k1fZncLbSfOA==","signatures":[{"sig":"MEQCIDhgzi+ABdBurLbNtHoyOi8J3PFDx/aKr+ZkE/0wgJCHAiAWBcHzBFZ2mleuP2juqWiCXx2qqfDi4LPp7sWwLYwEyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":402607},"main":"./dist/index.js","type":"module","gitHead":"d9334c880f1a9a18276257efd493c01870434bff","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.24.0_1786396957997_0.6286427721722538","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.25.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.25.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"e573c3afbd5f71e39ff0f999f8926ca639f8dd33","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.25.0.tgz","fileCount":41,"integrity":"sha512-KF/Hy6uydSnr/SFVjykCFAeAc4URJ97xqxt6mH5mRBuAIB6K4tvNk0H89Yf4JfoAgs0n/H4Wl4qEhcfCsmCHKA==","signatures":[{"sig":"MEUCIQDxwAEVaQ6SLDihk1i+rR7w+aJT3CdrPDeQPkjtuOSuUQIgf0+2mZG00qpEyFWSiKMaDYEeB5q58EwIX3LDoOwsMR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":410259},"main":"./dist/index.js","type":"module","gitHead":"1d362dee9f6dae7905c89176a68355e6c5360ce8","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/quarantine.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.25.0_1786418774381_0.44422174024602556","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.26.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.26.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"cadbfb9f6a9e300fb5cdd26e2ce6eeb663de41df","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.26.0.tgz","fileCount":41,"integrity":"sha512-sGFuEb0GASVM6t+xHrdrz/ZkTyg/c+hVDM66oURqd/UcZa2pcu2mBpjCrAc7M7BJAjvdWlkubgT3zTbq7S7QiQ==","signatures":[{"sig":"MEUCIQC1GGQiMItI2RZWqPGeYl/XNYXAUuFgrxchnQv1MFUrOAIgJ5O2vpv4PMMTFkg0oClU4D+8Ia0HuIgY4wCVaneJd1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":411269},"main":"./dist/index.js","type":"module","gitHead":"30dbc124c0eee1f9d44c747d001af5baf98612bc","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/quarantine.test.ts lib/ranking.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.18.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.26.0_1786422397810_0.3709602494278752","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@hyperspell/openclaw-hyperspell","version":"0.27.0","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.27.0","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"5e29f2cf2e26dc70e1b99097cec7ae3722fbf3fd","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.27.0.tgz","fileCount":46,"integrity":"sha512-Md4ytHqqK4rGSSFtQPOOtN7u9ScC/PFobzKuP97CrqKtU25YklzRFfildeodUmkJHX46JZI4pC1bv+h7PFaL7Q==","signatures":[{"sig":"MEUCIEElcbvq1ONB2whRDyOUG2QypO/OpSL0KAtpy7wzEjorAiEArnV0oRLOEg5VC+3X0jWO0JyHNhpc0oW5jHBlwz3yJyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":473235},"main":"./dist/index.js","type":"module","gitHead":"0ab9902d33f9669c233e75ea962ca74350c9a465","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/metadata-contract.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/quarantine.test.ts lib/ranking.test.ts lib/hook-liveness.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/triage.test.ts tools/vault-list.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.19.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.27.0_1787693667656_0.3184750588381815","host":"s3://npm-registry-packages-npm-production"}},"0.28.1":{"name":"@hyperspell/openclaw-hyperspell","version":"0.28.1","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"author":{"url":"https://hyperspell.com","name":"Hyperspell","email":"hello@hyperspell.com"},"license":"MIT","_id":"@hyperspell/openclaw-hyperspell@0.28.1","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"homepage":"https://hyperspell.com","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"dist":{"shasum":"5073d09eefe8b2bf429bbe0966f9f476e4ebfc69","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.28.1.tgz","fileCount":47,"integrity":"sha512-gSNFK3YLu8yuLv+Mh3QgKR6kL74xU4h2nF4ZbNE7RKEeSRTh8AF6VwNh2CpbOBnBH9OFLbU6BslX6RNsBOBY9Q==","signatures":[{"sig":"MEQCIBnlD3GNLj+mKn4egdRDIXUNsgQjN0BlEmowWCvN+WGWAiBCRybbOXl/WRQiE8YS36eHiRj1mavxXnixv5up0Jy+hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":480822},"main":"./dist/index.js","type":"module","gitHead":"9591202a096e56217ee45c771813592437da7bd3","scripts":{"lint":"bunx @biomejs/biome ci .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/local-register.test.ts lib/metadata-contract.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/quarantine.test.ts lib/ranking.test.ts lib/hook-liveness.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/triage.test.ts tools/vault-list.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts","build":"tsc -p tsconfig.build.json","lint:fix":"bunx @biomejs/biome check --write .","check-types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"openclaw":{"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"},"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/hyperspell/hyperspell-openclaw.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenClaw Hyperspell memory plugin","directories":{},"_nodeVersion":"24.19.0","dependencies":{"hyperspell":"^0.35.1","@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"peerDependencies":{"openclaw":">=2026.1.29"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-hyperspell_0.28.1_1787752676722_0.07119764832793773","host":"s3://npm-registry-packages-npm-production"}},"0.28.2":{"name":"@hyperspell/openclaw-hyperspell","version":"0.28.2","type":"module","description":"OpenClaw Hyperspell memory plugin","license":"MIT","main":"./dist/index.js","author":{"name":"Hyperspell","email":"hello@hyperspell.com","url":"https://hyperspell.com"},"homepage":"https://hyperspell.com","repository":{"type":"git","url":"git+https://github.com/hyperspell/hyperspell-openclaw.git"},"keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"dependencies":{"@clack/prompts":"^1.0.0","@sinclair/typebox":"^0.34.0","hyperspell":"^0.35.1"},"peerDependencies":{"openclaw":">=2026.1.29"},"scripts":{"build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build","check-types":"tsc --noEmit","lint":"bunx @biomejs/biome ci .","lint:fix":"bunx @biomejs/biome check --write .","test":"node --test --experimental-strip-types client.test.ts logger.test.ts lib/sender.test.ts lib/filters.test.ts lib/search-error.test.ts lib/coverage-log.test.ts lib/local-register.test.ts lib/metadata-contract.test.ts lib/session.test.ts lib/exclude-channels.test.ts lib/quarantine.test.ts lib/ranking.test.ts lib/hook-liveness.test.ts lib/eval-matchers.test.ts lib/loops-audit.test.ts lib/mood-skew-audit.test.ts tools/search.test.ts tools/triage.test.ts tools/vault-list.test.ts tools/emotional-arc.test.ts commands/preview.test.ts commands/purge-channel.test.ts config.test.ts sync/markdown.test.ts graph/ops.test.ts hooks/memory-sync.watcher.test.ts hooks/auto-trace.test.ts hooks/auto-context.test.ts hooks/hot-buffer.test.ts hooks/emotional-state.test.ts hooks/startup-orientation.test.ts hooks/mood-weather.test.ts eval/eval.test.ts"},"openclaw":{"extensions":["./dist/index.js"],"hooks":[],"compat":{"pluginApi":">=2026.1.29","minGatewayVersion":"2026.1.29"},"build":{"openclawVersion":"2026.3.24-beta.2","pluginSdkVersion":"2026.3.24-beta.2"}},"devDependencies":{"typescript":"^5.9.3"},"gitHead":"4b66969d875cc19a6a9e88b9e25d17dd7c98f0e6","_id":"@hyperspell/openclaw-hyperspell@0.28.2","bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-RBQgg+weR3/gJqj9OF6ELWtcxh2dtw/2rTEkLGp7XixFYexBRTrfqWP7nNzvVUFeY4yDgM6ILyA9Yc+bNX8/zg==","shasum":"559bcb7b86b081ecb22f2443e92a82749cd15e5a","tarball":"https://registry.npmjs.org/@hyperspell/openclaw-hyperspell/-/openclaw-hyperspell-0.28.2.tgz","fileCount":47,"unpackedSize":482849,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hyperspell%2fopenclaw-hyperspell@0.28.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG63g7Y5XN+KiruWJUrD+jSyRvS7BkKFBoTRqpH71ScyAiBkPj4aANUi7pLVYAWy0HJRcVTtnQnVoRstMI3IWZL4Hg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f312c031-4b15-424c-81bf-62f332e5117c"}},"directories":{},"maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-hyperspell_0.28.2_1787752769943_0.298087644831722"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-01T02:13:27.303Z","modified":"2026-08-26T13:59:30.472Z","0.1.0":"2026-02-01T02:13:27.561Z","0.1.1":"2026-02-02T01:17:10.942Z","0.2.0":"2026-02-05T05:03:58.726Z","0.3.0":"2026-02-05T16:46:44.313Z","0.3.1":"2026-02-05T18:48:54.047Z","0.4.1":"2026-02-08T22:43:48.829Z","0.4.2":"2026-02-09T22:44:11.034Z","0.5.0":"2026-02-11T00:36:34.312Z","0.7.1":"2026-04-03T03:05:12.092Z","0.7.2":"2026-04-03T03:50:07.671Z","0.8.0":"2026-04-06T17:23:29.477Z","0.8.1":"2026-04-17T20:40:10.826Z","0.9.0":"2026-04-17T20:41:12.488Z","0.10.0":"2026-04-17T20:42:28.781Z","0.11.0":"2026-04-17T20:45:17.028Z","0.11.1":"2026-04-17T22:47:33.570Z","0.12.0":"2026-04-17T23:08:02.242Z","0.13.0":"2026-05-06T04:10:57.215Z","0.13.1":"2026-05-08T03:02:21.836Z","0.14.0":"2026-05-17T06:10:33.274Z","0.14.1":"2026-05-18T19:14:17.226Z","0.14.2":"2026-06-19T20:58:47.609Z","0.15.0":"2026-06-24T05:59:21.617Z","0.16.0":"2026-06-25T18:30:38.414Z","0.17.0":"2026-06-25T19:48:05.376Z","0.17.1":"2026-06-25T22:58:44.019Z","0.18.1":"2026-07-02T17:15:15.725Z","0.19.0":"2026-07-12T22:21:37.812Z","0.20.0":"2026-07-13T01:40:36.733Z","0.21.0":"2026-07-13T05:06:33.596Z","0.21.1":"2026-07-25T20:40:27.330Z","0.22.0":"2026-07-27T20:04:29.549Z","0.23.0":"2026-07-27T21:38:31.046Z","0.24.0":"2026-08-10T21:22:38.187Z","0.25.0":"2026-08-11T03:26:14.520Z","0.26.0":"2026-08-11T04:26:37.962Z","0.27.0":"2026-08-25T21:34:27.808Z","0.28.1":"2026-08-26T13:57:56.868Z","0.28.2":"2026-08-26T13:59:30.086Z"},"bugs":{"url":"https://github.com/hyperspell/hyperspell-openclaw/issues"},"author":{"name":"Hyperspell","email":"hello@hyperspell.com","url":"https://hyperspell.com"},"license":"MIT","homepage":"https://hyperspell.com","keywords":["openclaw","hyperspell","memory","rag","ai","plugin"],"repository":{"type":"git","url":"git+https://github.com/hyperspell/hyperspell-openclaw.git"},"description":"OpenClaw Hyperspell memory plugin","maintainers":[{"name":"david-hyperspell","email":"david@hyperspell.com"},{"name":"hyperben","email":"ben@hyperspell.com"},{"name":"maebert","email":"manuel@1450.me"}],"readme":"# OpenClaw Hyperspell Plugin\n\n![Hyperspell x OpenClaw](https://github.com/user-attachments/assets/5ac86aab-0f0f-4f14-bde5-0652e625aa86)\n\nOpenClaw plugin for [Hyperspell](https://hyperspell.com) - Context and memory for your AI agents.\n\n## Installation\n\n```bash\nopenclaw plugins install --dangerously-force-unsafe-install @hyperspell/openclaw-hyperspell\n```\n\n> **Note:** The `--dangerously-force-unsafe-install` flag is required because OpenClaw's automated install scanner detects standard operations that are essential to how the plugin works — opening your browser during setup, scheduling background jobs, and securely communicating with the Hyperspell API. These are normal, expected behaviors and the plugin does not execute arbitrary code or access data beyond what is needed to function. The source is fully open and auditable in this repository.\n\n## Quick Start\n\nRun the interactive setup wizard:\n\n```bash\nopenclaw openclaw-hyperspell setup\n```\n\nThe setup wizard will guide you through:\n1. Creating a Hyperspell account (if you don't have one)\n2. Configuring your API key\n3. Setting up your User ID for multi-tenant memory\n4. Connecting your apps (Notion, Slack, Google Drive, etc.)\n5. Enabling memory sync for local markdown files\n6. Syncing existing memory files to Hyperspell\n\n## Manual Configuration\n\nAdd to your `openclaw.json`:\n\n```json\n{\n  \"plugins\": {\n    \"slots\": {\n      \"memory\": \"openclaw-hyperspell\"\n    },\n    \"entries\": {\n      \"openclaw-hyperspell\": {\n        \"enabled\": true,\n        \"config\": {\n          \"apiKey\": \"${HYPERSPELL_API_KEY}\",\n          \"userId\": \"your-email\",\n          \"autoContext\": true,\n          \"syncMemories\": true,\n          \"sources\": \"vault,notion,slack\",\n          \"dreaming\": {\n            \"enabled\": true\n          }\n        }\n      },\n      \"memory-core\": {\n        \"enabled\": true\n      }\n    }\n  }\n}\n```\n\nSet the environment variable in `~/.openclaw/.env`:\n\n```bash\nHYPERSPELL_API_KEY=hs_...\n```\n\n### Running alongside Dreaming\n\nOpenClaw's memory slot (`plugins.slots.memory`) is exclusive, but the `memory-core` dreaming engine is an explicit exception: it can sidecar-load alongside the slot owner so Dreaming keeps running while Hyperspell handles remote search and storage.\n\nTo enable this, all four settings must be true at once:\n\n| Setting | Value |\n|---|---|\n| `plugins.slots.memory` | `openclaw-hyperspell` |\n| `plugins.entries.openclaw-hyperspell.enabled` | `true` |\n| `plugins.entries.openclaw-hyperspell.config.dreaming.enabled` | `true` |\n| `plugins.entries.memory-core.enabled` | `true` |\n\nThe `dreaming.enabled: true` flag on the Hyperspell plugin's config is what tells OpenClaw to load `memory-core` as a sidecar (see `resolveDreamingSidecarEngineId` in OpenClaw's plugin loader). Without it, `memory-core` is treated as a normal memory plugin and the slot policy disables it.\n\n**Two distinct memory tracks:**\n\n- **Hyperspell** — remote, cross-source (Slack, Notion, Drive, Gmail, vault, ...). Runs on every agent turn via `autoContext` and `autoTrace`. Owns the memory slot.\n- **Dreaming** — local, consolidates daily notes and session transcripts into `workspace/MEMORY.md` on cron (light every 6h, deep nightly, REM weekly). Does not read Hyperspell's remote memories. Reads only local files the agent runner writes.\n\nThe two systems don't share state at runtime. They can be enabled independently.\n\n## CLI Commands\n\n### `openclaw openclaw-hyperspell setup`\n\nInteractive setup wizard that walks you through configuration, connecting apps, and syncing memory files.\n\n### `openclaw openclaw-hyperspell status`\n\nCheck your current configuration and connection status.\n\n### `openclaw openclaw-hyperspell connect`\n\nOpen the Hyperspell connect page to link your accounts (Notion, Slack, Google Drive, etc.). After connecting, your sources are automatically updated in the config.\n\n### `openclaw openclaw-hyperspell purge-channel <channelId>`\n\nFind — and with `--yes`, delete — memories that were synced from a specific conversation/channel. Use it for retroactive cleanup after adding a channel to `excludeChannels`, which is [forward-only](#excludechannels-is-forward-only).\n\n```\nopenclaw openclaw-hyperspell purge-channel 1521620672726438171          # dry run: list what would be deleted\nopenclaw openclaw-hyperspell purge-channel 1521620672726438171 --yes    # actually delete\n```\n\n| Flag | Description |\n|------|-------------|\n| `--source <sources>` | Comma-separated Hyperspell sources to scan. Default `vault` — the hot-buffer consolidation target and default `hotBuffer.source`. |\n| `--user <userId>` | `X-As-User` to scan/delete under. Default: the configured `userId`. In `multiUser` deployments, run once per mapped userId. |\n| `--session <ids>` | Comma-separated OpenClaw session ids — matches legacy **untagged** hot-buffer resources through the `resource_id === session id` identity. |\n| `--resource <ids>` | Explicit resource ids to delete (escape hatch for traces or `/remember` memories you identified manually, e.g. via `hyperspell_search`). |\n| `--yes` | Actually delete. Without it the command is a **dry run** that prints the matches and exits. |\n\nMatching uses the same semantics as the quarantine check itself: exact id or thread suffix (`<channelId>:...`), case-insensitive. Discovery enumerates memories and filters client-side on the `openclaw_channel_id` metadata tag — deleted rows are reported per resource, and a resource that is already gone counts as deleted.\n\n**Finding session ids for `--session`:** OpenClaw session keys embed the conversation id (`agent:<agentId>:<provider>:channel:<channelId>[...]` — the same format the plugin's quarantine matching parses). Look up the quarantined conversation's sessions in OpenClaw's session store and pass their session ids; each hot-buffer resource id equals its session id.\n\n### `openclaw openclaw-hyperspell network scan|complete|sync`\n\nMemory Network primitives, used by the extraction cron's isolated session (and handy for\nmanual dry-runs — `scan` is read-only). `scan` lists unprocessed memories with content\nsummaries, `complete --ids <ids>` marks them processed, `sync` pushes `memory/` entity\nfiles back to Hyperspell.\n\n## Configuration Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `apiKey` | string | `${HYPERSPELL_API_KEY}` | Hyperspell API key |\n| `userId` | string | - | User ID for multi-tenant memory (can be your email) |\n| `autoContext` | boolean | `true` | Auto-inject relevant memories before each AI turn |\n| `emotionalContext` | boolean | `false` | Persist an emotional-state register at session end and inject the recent arc at session start |\n| `moodWeatherChance` | number | `0` | Probability (0–1) that a fresh session rolls exogenous \"mood weather\". `0` disables. Suggested starting value: `0.03`–`0.05` — rare enough to read as weather, not a gimmick. Requires `emotionalContext`. |\n| `syncMemories` | boolean | `false` | Sync markdown files in `workspace/memory/` to Hyperspell |\n| `sources` | string | - | Comma-separated sources to search (e.g., `vault,notion,slack`) |\n| `maxResults` | number | `10` | Maximum memories per context injection |\n| `relevanceThreshold` | number | `0.6` | Minimum (composite) score a memory needs to be injected by auto-context |\n| `ranking` | object | see below | Composite re-ranking of auto-context results — see [Composite ranking](#composite-ranking--surfacing-your-active-work) |\n| `ranking.storyTerms` | string[] | `[]` | **Off until you set it.** Words/phrases identifying your active creative work, so it outranks conversation chatter (matched at word boundaries, case-insensitive) |\n| `ranking.processPaths` | string[] | `[]` | Case-insensitive path substrings marking synced files as the **agent's own process output** (thought logs, caches, heartbeat notes). Matches classify as `process` and score neutral — no curation boost, full-speed recency decay — instead of being promoted as curated user truth. |\n| `ranking.perFileCap` | number | `2` | Max injected results per synced source file. Distinct sections of one document pass near-duplicate dedup individually and would otherwise monopolize the pool at near-identical scores. `0` disables. |\n| `excludeChannels` | string[] | `[]` | Conversation/channel ids fully quarantined from memory: no context injection, no memory writes, no memory tools. Threads inherit. **Forward-only** — see [below](#excludechannels-is-forward-only). |\n| `quarantineResources` | string[] | `[]` | Vault resource ids excluded from every retrieval-pool read while the records stay in the vault. For kept-but-poison records — see [Retrieval quarantine](#quarantineresources--retrieval-quarantine-for-kept-records). |\n| `knowledgeGraph.enabled` | boolean | `false` | Memory Network: extract entities (people, projects, organizations, topics) from memories into `memory/` markdown files. See [Memory Network](#memory-network). |\n| `knowledgeGraph.scanIntervalMinutes` | number | `60` | Extraction cadence the setup wizard bakes into the cron job it creates. The cron job is the runtime source of truth — to change cadence after setup, edit the cron job (and keep this field in sync). |\n| `knowledgeGraph.batchSize` | number | `20` | Memories per extraction scan batch |\n| `coverageLog` | boolean | `false` | **Opt-in.** Append a local-only JSONL event whenever auto-context finds no relevant memories, so capture gaps can be told apart from ranking misses. Events include prompt text — see [Coverage log](#coverage-log). |\n| `debug` | boolean | `false` | Enable diagnostic logging. One-line diagnostics (auto-context ranked/cut/injection summaries, orientation and emotional-context injection counts) are emitted at **info** level, so they appear in `gateway.log` at default host log levels — no host `logging.level` change needed. Verbose output (per-request/response dumps, per-candidate score lines) stays at debug level. |\n| `dreaming.enabled` | boolean | `false` | Allow `memory-core` to sidecar-load so Dreaming can consolidate local session transcripts into `workspace/MEMORY.md`. See [Running alongside Dreaming](#running-alongside-dreaming). |\n\nStored emotional-state registers (`emotionalContext`) are fetchable by external processes (e.g. a nightly consolidator reconciling its own day-read) — the verified fetch contract lives in [docs/emotional-state-external-reconciliation.md](docs/emotional-state-external-reconciliation.md).\n\n## Slash Commands\n\n### `/getcontext <query>`\n\nSearch your memories for relevant context.\n\n```\n/getcontext Q1 budget planning\n```\n\n### `/remember <text>`\n\nSave something to memory.\n\n```\n/remember Meeting with Alice: discussed Q1 budget, need to follow up on headcount\n```\n\n### `/sync`\n\nManually sync all markdown files in `workspace/memory/` to Hyperspell.\n\n```\n/sync\n```\n\n### `/previewcontext`\n\nShow exactly what Hyperspell would inject at the start of the next session — the emotional-context arc, the auto-context setting, and the startup-orientation blocks — without starting a session or touching any session state. Read-only and idempotent: run it twice and you get the same report.\n\nMood weather is shown as its configured chance only (e.g. \"configured chance 8% per session\") and is **never rolled by the preview** — each real session rolls independently at injection time, so the actual mood (if any) is only observable in the live session.\n\n```\n/previewcontext\n```\n\n## Memory Sync\n\nWhen `syncMemories: true`, the plugin syncs markdown files from your agent's workspace memory directory (e.g., `~/.openclaw/workspace/memory/`) to Hyperspell. This includes all `.md` files in subdirectories.\n\n**How it works:**\n\n- Each markdown file is uploaded to Hyperspell as a memory in the `openclaw` collection\n- The returned `resource_id` is stored in the file's YAML frontmatter as `hyperspell_id`\n- On subsequent syncs, files with an existing `hyperspell_id` are updated rather than duplicated\n- Files are synced automatically on startup and when they change\n- Startup sync runs in the **background** — the agent boots immediately and sync proceeds without blocking it\n- A per-section content hash is tracked in `<workspace>/.hyperspell-sync-hashes.json`, so unchanged sections are skipped on subsequent syncs (no re-ingestion)\n\n**Provenance:** every synced memory carries an `openclaw_sync_source` metadata key recording where the content came from: `\"memory\"` for files under `memory/`, and the watchPath's `source` label (or a slug derived from its path, e.g. `notes/brainstem` → `notes_brainstem`) for watchPath files. This lets retrieval distinguish curated memory files from machine-generated content. The key is additive — `openclaw_source` (which pipeline wrote the row) is unchanged. Already-synced content is **not retroactively retagged**: uploads are gated by per-section content hash, so previously synced sections keep their old metadata until their content next changes.\n\n**Tuning sync (object form):**\n\n```jsonc\n\"syncMemories\": {\n  \"enabled\": true,\n  \"sectionize\": true,     // split files on ## headings into separate memories\n  \"watchPaths\": [          // extra files/dirs to sync beyond memory/\n    \"notes\",                                                  // plain path — tagged with slug \"notes\"\n    { \"path\": \"notes/brainstem\", \"source\": \"brainstem_daily\" } // labeled — tagged openclaw_sync_source: \"brainstem_daily\"\n  ],\n  \"debounceMs\": 2000,      // wait for writes to settle before syncing\n  \"maxAgeDays\": 30          // startup skips already-synced files older than this\n}\n```\n\n`watchPaths` is how you make **externally generated notes** searchable: tools that write dated markdown reports under the workspace (nightly consolidators, journal generators — e.g. a Brainstem consolidator writing `notes/brainstem/YYYY-MM-DD.md`) are invisible to sync until their file or directory is listed here. Watched paths are picked up by the startup bulk sync. Use the labeled object form so machine-generated content is distinguishable from curated memories at retrieval time. Sectionized mode (the default) is **recommended for external directories**: legacy whole-file mode (`sectionize: false`) writes a `hyperspell_id` frontmatter line back into the source file — i.e. the plugin edits another tool's files — while sectionized mode tracks state in the sync manifest and leaves watched files untouched.\n\n`maxAgeDays` bounds steady-state load: on startup, files whose mtime is older than the cutoff **and** already recorded in the sync manifest are skipped without re-reading. Files not yet in the manifest are always synced once regardless of age, and editing an old file bumps its mtime back into the window. Set to `0` to disable the cutoff.\n\n**Example frontmatter after sync:**\n\n```markdown\n---\ntitle: Meeting Notes\nhyperspell_id: abc123-def456\n---\n\n# Meeting Notes\n...\n```\n\n## AI Tools\n\nThe plugin registers tools that the AI can use autonomously:\n\n- **hyperspell_search** - Search through connected sources\n- **hyperspell_remember** - Save information to memory\n- **hyperspell_vault_triage** - Read-only audit search that does NOT apply the retrieval quarantine: quarantined hits come back flagged with content suppressed, plus the current quarantine roster. For hunting bad/stale/misattributed records proactively (quarantine is otherwise discovered only by being injected) and for verifying a quarantine took effect — not for normal recall\n- **hyperspell_emotional_arc** - Re-fetch the recent emotional arc mid-conversation (requires `emotionalContext: true`); returns the same block injected at session start, e.g. after compaction removed it\n\n## Auto-Context\n\nWhen `autoContext: true` (default), the plugin automatically:\n\n1. Intercepts each user message before the AI responds\n2. Searches Hyperspell for relevant memories\n3. Injects matching context into the AI's prompt\n\nThis ensures the AI always has access to relevant information from your connected sources.\n\n### Composite ranking — surfacing your active work\n\nRaw semantic relevance rewards *frequency*: a phrase repeated across a hundred\nauto-saved conversation fragments looks \"most similar\" to everything and buries\nquieter, truer memory — like the manuscript you're actually writing. When\n`ranking.enabled` is on (default), auto-context re-scores candidates:\n\n```\ncomposite = relevance\n          + curationBoost   (a memory you deliberately kept: journals, notes, synced files)\n          + storyBoost      (your active story/manuscript — matched via storyTerms)\n          − chatterPenalty  (an auto-saved conversation fragment)\n```\n\nChatter is additionally capped at `chatterQuota` results per injection,\nregardless of score.\n\nClassification is **origin-aware where origin is known**: results carrying the\nplugin's own write-pipeline metadata are classified by that tag first (a\nhot-buffer session the backend consolidator happened to *title* is still a\nconversation echo, not curated memory), and synced files matching\n`ranking.processPaths` classify as `process` — the agent's own operational\noutput, scored neutral rather than promoted. Without that knob, a \"titled,\nnon-UUID\" heuristic hands agent thought-logs and caches the same curation\nboost as deliberately kept user notes, and at volume the agent's process noise\nout-competes the user's quiet, durable memory. The title/id-shape heuristic\nremains the fallback for records with no origin metadata.\n\nOne more diversity guard: `ranking.perFileCap` (default `2`) bounds how many\nsections of a single synced file can be injected at once. Sectionized sync\nturns a big file into many sibling candidates at near-identical scores; they\npass near-duplicate dedup individually (different text, same document) and\nwould otherwise fill the pool.\n\nProvenance is a signal too: an optional `sourceWeights` map multiplies a\nresult's **base relevance** (before the kind boosts/penalties are added) by a\nper-source factor, so \"a journaled Notion page is more intentional memory than\na titled Slack aside on the same topic\" is expressible. Any source not listed\n— including sources that don't exist yet — is neutral (`1.0`); the shipped\ndefault is `{}`, a strict no-op. It weights sources already in the result set;\nto *exclude* a source, use the `sources` filter instead (weights of 0 are\nrejected at load with exactly that pointer). Suggested starting points, priors\nto seed your own tuning rather than measured truth: authored systems slightly\nup (`notion` 1.15, drive/box/dropbox 1.1), conversational exhaust slightly\ndown (`slack`/`microsoft_teams` 0.85, `trace` 0.8) — magnitudes small enough\nto break ties, never to override a real relevance gap. Typos in weight keys\nare not schema errors (new backend sources must not fail validation); with\n`debug: true` unknown keys are flagged once at startup in `gateway.log`.\n\nSelected results are also checked against each other for **near-duplicates**:\nwhen the same memory exists in several forms (a re-synced doc section, a\n`remember` note quoting it, a curated copy of a hot-buffer row), every copy\nclears the threshold, none is chatter, and pre-dedup they filled multiple\ninjection slots with one piece of information. Each candidate's lead text is\ncompared against already-selected results by token overlap; above\n`dedupThreshold` (0.8) the copy is skipped and its slot passes to the\nnext-ranked *different* memory. Skipped copies never consume the chatter\nquota. Set `dedupThreshold: 0` to disable. Paraphrased duplicates (same fact,\ndifferent words) are beyond a string measure and out of scope.\n\nWithin each selected memory, the second excerpt earns its place: a result\nrenders up to two highlight bullets, and the runner-up rides along only when\nits score is within 0.15 of the top one's — a .95/.40 pair renders one bullet\n(the distant second is usually a weaker paraphrase), a .95/.85 pair renders\nboth. The top highlight is always kept, so a selected memory never disappears\nfrom the injection because of this rule.\n\nAn optional **elbow cutoff** (`ranking.elbow`, **off by default**) stops\ninjecting at a natural score cliff instead of always filling `maxResults`: a\nnarrow query backed by 3 genuinely relevant memories no longer pads the\ncontext with a plateau of marginal ones that happen to clear the threshold.\nIt is strictly conservative — it only ever cuts *earlier*, never later, never\nbelow `minResults` (default 3), and when no clear cliff exists (gradual\ndecline, flat plateau) selection is identical to today. A cliff means the\ndrop from the last accepted result is both large against the decline seen so\nfar (`gapRatio` × mean gap, default 2.5×) *and* material in absolute terms\n(`minGap`, default 0.05). Before enabling, run\n`node --experimental-strip-types docs/elbow-scan.mjs` against your real data\nto check firing rate and cut depth (with `debug: true` the live verdict shows\nin `gateway.log` as `auto-context: elbow stopped at k (ceiling N)`).\n\nAge matters too, gently: results accrue a small **recency penalty** that grows\nwith age (exponential decay, 90-day half-life by default) and is hard-capped at\n`recencyMaxPenalty` (0.1) so it can break near-ties toward current information\nbut never bury a strong old match. Deliberately-kept memory (curated/story)\nages at half rate (`recencyCuratedFactor`) — an old truth you chose to keep\nstill beats a fresh shallow echo. Results without a timestamp are never\npenalized. Set `recencyHalfLifeDays: 0` to disable.\n\n**`storyBoost` does nothing until you set `storyTerms`.** The default is `[]`,\nso no result ever classifies as \"story\". Set it to the distinctive proper nouns\nof your active work — the title, character names, a project codename, invented\nterminology:\n\n```jsonc\n\"config\": {\n  \"ranking\": {\n    \"storyTerms\": [\"lighthouse keeper\", \"mira\", \"the shoal chapters\"]\n  }\n}\n```\n\nFor example: if you're writing a novel called *The Lighthouse Keeper* with a\nprotagonist named Mira, the config above makes any memory whose **title or\nhighlight excerpt** contains those terms rank as \"story\" — it gets\n`storyBoost + curationBoost` (+0.35 by default) and is exempt from the chatter\ncap. If you sync the manuscript via `syncMemories` with `sectionize: true`,\nevery section is titled `The Lighthouse Keeper — <section>`, so the title term\nalone catches the whole manuscript.\n\n**How matching works:** terms are matched case-insensitively at **word\nboundaries** against the result's title and highlight excerpts. `\"mira\"`\nmatches \"Mira\", \"Mira's\", and \"mira-class\", but **not** \"ad**mira**l\" or\n\"**mira**cle\" — a short name can't false-positive inside longer words.\nMulti-word phrases (`\"lighthouse keeper\"`) match the same way. There is no\nprefix/stem matching: to catch inflected or partial forms, add each full form\nas its own term.\n\nTips:\n\n- **Use 3–15 distinctive terms.** Every term is checked per result per search;\n  more terms means more false-positive surface, not more recall. Never add a\n  word that appears in unrelated conversation (\"book\", \"chapter\", \"draft\").\n- Terms are normalized on load — trimmed, lowercased, deduplicated — so casing\n  and stray whitespace in your config don't matter.\n- **Update the list when the active story changes.** A stale term is worse than\n  a missing one: it keeps granting the boost to a dead thread's echoes.\n- Ranking (including `storyTerms`) applies only to **auto-context** injection.\n  The `hyperspell_search` tool and `/getcontext` return raw relevance order —\n  don't test `storyTerms` there and conclude it's broken.\n- To verify it's working, enable `debug: true` and watch `gateway.log` for the\n  per-search tally (`auto-context: ranked {...} candidates → selected {...}`) and the cut tally (threshold / max-results / elbow / near-duplicate / chatter-quota) —\n  it appears at default host log levels. The per-candidate lines\n  (`[story] 0.47→0.82 The Lighthouse Keeper — Chapter 3`), which show story\n  matches even when they lose to the threshold, are debug-level and also need\n  host debug logging.\n\nFull knobs and defaults:\n\n```jsonc\n\"ranking\": {\n  \"enabled\": true,\n  \"curationBoost\": 0.2,     // lift for deliberately-kept memory\n  \"chatterPenalty\": 0.2,    // penalty for auto-saved conversation fragments\n  \"storyBoost\": 0.15,       // extra lift for storyTerms matches (stacks with curationBoost)\n  \"storyTerms\": [],         // REQUIRED for storyBoost to do anything\n  \"candidateMultiplier\": 3, // fetch this × maxResults candidates before re-ranking\n  \"chatterQuota\": 2,        // hard cap on chatter results per injection\n  \"recencyHalfLifeDays\": 90,  // age at which half the recency penalty has accrued (0 = off)\n  \"recencyMaxPenalty\": 0.1,   // ceiling on the recency penalty — a tiebreaker, never a burial\n  \"recencyCuratedFactor\": 0.5, // kept memory (curated/story) ages at this fraction of the rate\n  \"sourceWeights\": {},        // per-source multiplier on base relevance; unlisted = 1.0\n  \"dedupThreshold\": 0.8,      // token-overlap ratio that skips a near-duplicate (0 = off)\n  \"elbow\": {                  // stop early at a natural score cliff (opt-in)\n    \"enabled\": false,\n    \"minResults\": 3,          // never cut below this many accepted results\n    \"gapRatio\": 2.5,          // cliff = drop >= this multiple of the mean gap so far...\n    \"minGap\": 0.05            // ...AND at least this big on the raw composite scale\n  }\n}\n```\n\n### Coverage log\n\nNo ranking tweak can surface a memory that was never captured — and by default nothing distinguishes \"ranking failed\" from \"it was never stored.\" With `coverageLog: true`, every auto-context turn that injects **no** memory sections appends one line to `<workspaceDir>/.hyperspell-coverage.jsonl`:\n\n- `outcome: \"empty\"` — the search succeeded but returned zero candidates (a capture question: was this ever stored?)\n- `outcome: \"below_threshold\"` — candidates existed but none cleared `relevanceThreshold`; `topScore` vs `threshold` says how near the miss was (a ranking question)\n\nFailed searches never produce events — backend-unavailable is not \"no memories.\" In multi-user mode there is one event per turn with per-lane detail, and a lane whose search failed is recorded as `status: \"error\"`, never as zero candidates.\n\n**Local-only guarantee:** the log is written only to the workspace directory and is never sent to Hyperspell or anywhere remote. Because each event carries the triggering prompt (truncated to 500 chars), the feature is **off by default** — prompt text reaches disk only if you explicitly opt in. The file is capped at 5 MB with one `.old` rotation generation (~10 MB total), so content ages out instead of accumulating.\n\nReview with `jq`, e.g.: `jq -r '[.ts, .outcome, .topScore, .prompt] | @tsv' ~/.openclaw/workspace/.hyperspell-coverage.jsonl` — after a week or two of labeling (capture gap / ranking near-miss / correct absence), the tallies say whether the next investment belongs in capture or ranking. Delete the file when done.\n\n### `excludeChannels` is forward-only\n\nAdding a channel to `excludeChannels` stops all future injection/writes/tools for that conversation, but does **not** remove content that was synced before the channel was quarantined.\n\n- **Hot-buffer content** written by plugin versions since 2026-07 is tagged with `openclaw_channel_id` and can be removed with [`openclaw openclaw-hyperspell purge-channel <id>`](#openclaw-openclaw-hyperspell-purge-channel-channelid). Older hot-buffer rows are untagged, but each row's resource id equals its OpenClaw session id, so they are reachable via the purge command's `--session` flag.\n- **Auto-trace resources and `/remember` memories** written by current versions carry the same `openclaw_channel_id` tag going forward. Ones written by older versions are not channel-tagged and cannot be automatically purged — identify them manually (e.g. via `hyperspell_search`) and use the purge command's `--resource` escape hatch.\n- **Emotional-state registers** are keyed by relationship, not channel, and live behind the `/emotional-state` API rather than the memories store this command scans — they are never matched by `purge-channel`, and deletion of them is per-relationship, all-or-nothing. (Newer plugin versions tag registers with a `channelId` metadata field for analysis, but that does not make them purgeable per channel.)\n- **Server-side extractions** derived from traces (`extract: [\"procedure\", \"memory\", \"mood\"]`) are created backend-side; whether deleting the parent trace removes them is an open backend question (see `docs/hyperspell-backend-followups.md`).\n\nThe purge command prints these standing limitations on every run.\n\n### `quarantineResources` — retrieval quarantine for kept records\n\nSome records should be **kept but never surfaced as live context**: correctly attributed, deliberately preserved (an audit trail, a documented failure), yet false or poisonous as testimony about the present. Deleting them destroys evidence; leaving them in the retrieval pool re-injects them as if current.\n\n`quarantineResources` lists vault resource ids that every retrieval-pool read skips — auto-context (both single- and multi-user lanes), the `hyperspell_search` tool, startup orientation, and `/getcontext`. The drop happens client-side after fetch (no added search latency, no write to the record needed), and the fetch limit is widened to compensate so quarantined hits don't eat result slots.\n\nWhat quarantine does **not** do:\n\n- It does not delete or modify anything — the records stay in the vault untouched.\n- It does not block addressed reads: fetching a quarantined record directly by id still works. The point is to stop ambient injection, not to make the record unreadable.\n- It does not hide records from management enumeration — `purge-channel` and similar tooling still see them.\n\nThe ids to use are exactly the `resource_id` values shown in injected context blocks and search results. Design rationale (including why this is not a backend metadata filter): [docs/quarantine-retrieval.md](docs/quarantine-retrieval.md).\n\n## Available Sources\n\n### Documents & Storage\n- `vault` - User-created or synced memories\n- `notion` - Notion pages and databases\n- `google_drive` - Google Drive files\n- `box` - Box files\n- `dropbox` - Dropbox files\n- `onedrive` - Microsoft OneDrive files\n\n### Communication\n- `slack` - Slack messages\n- `google_mail` - Gmail messages\n\n### Calendars & Meetings\n- `google_calendar` - Google Calendar events\n- `zoom` - Zoom meeting recordings and transcripts\n- `fathom` - Fathom meeting recordings\n- `fireflies` - Fireflies.ai meeting transcripts\n\n### Project Management\n- `linear` - Linear issues and comments\n\n### CRM\n- `hubspot` - HubSpot contacts, companies, and deals\n- `attio` - Attio CRM contacts, companies, and deals\n\n### Developer Tools\n- `github` - GitHub repositories and commits\n\n### Other\n- `web_crawler` - Crawled web pages\n\n## Memory Network\n\nThe Memory Network (config key: `knowledgeGraph`) automatically builds a local knowledge\ngraph from your memories. A periodic cron job runs in an isolated session and:\n\n1. **Scans** unprocessed memories (`hyperspell_network_scan` / `network scan`)\n2. **Extracts** people, projects, organizations, and topics with relationships\n3. **Writes** one markdown file per entity into `memory/people/`, `memory/projects/`,\n   `memory/organizations/`, `memory/topics/` (`hyperspell_network_write`)\n4. **Marks** the batch processed so it is never re-scanned (`hyperspell_network_complete`;\n   state lives in `memory/.network-state.json`)\n5. **Syncs** the entity files back to Hyperspell so they are searchable (`network sync`)\n\nIf you also maintain a hand-written people/projects reference file, this feature\nautomates most of that by hand-off — see\n[Migrating from a hand-maintained archive](docs/memory-network-migration.md) for a safe\ndry-run and comparison procedure before adopting it.\n\n### Enabling it\n\nThe easiest path is the setup wizard, which flips the config, writes the extraction\nprompt to `<workspace>/HYPERSPELL-MEMORY-NETWORK.md`, and creates the extraction cron\n(interval from `knowledgeGraph.scanIntervalMinutes`, default 60 minutes):\n\n```bash\nopenclaw openclaw-hyperspell setup   # answer \"yes\" at the Memory Network step\n```\n\nOr manually: set the plugin config and create the cron yourself:\n\n```json\n\"knowledgeGraph\": { \"enabled\": true }\n```\n\n```bash\nopenclaw cron add --name \"Hyperspell Memory Network\" --every 60m --session isolated \\\n  --message \"Read the file at <workspace>/HYPERSPELL-MEMORY-NETWORK.md and follow the instructions inside it.\"\n```\n\nThe `hyperspell_network_*` tools only register when `knowledgeGraph.enabled` is true.\n\n### What an extracted entity file looks like\n\n`memory/people/alice-chen.md`:\n\n```markdown\n---\ntitle: Alice Chen\ntype: person\ngraph_entity: true\nemail: alice@hyperspell.com\nsource_memories: {\"slack\":[\"C073WR69EPM\"],\"google_mail\":[\"19bbe68026553623\"]}\nrelationships: [\"works-at:organizations/hyperspell\",\"leads:projects/memory-network\"]\nlast_extracted: 2026-07-07T12:00:00Z\n---\n# Alice Chen\n\nEngineering Manager at Hyperspell. Leads the Memory Network project.\n\n## Contact\n\n- Email: alice@hyperspell.com\n\n## Relationships\n\n- works-at: [hyperspell](../organizations/hyperspell.md)\n- leads: [memory network](../projects/memory-network.md)\n```\n\nRe-extraction **merges**: existing `source_memories`, `relationships`, and\n`hyperspell_id` are preserved and unioned, so files are safe to hand-edit between runs.\n\nRe-extraction is idempotent by design (the cron agent re-derives the same entities and\nmarks rows complete). A previously known gap meant entity files synced back to Hyperspell\nre-entered future scans as unprocessed source memories; the fix lands alongside\n[`proposal/06-knowledge-graph-enablement`](docs/proposals/06-knowledge-graph-enablement.md)\n(PR #99), which propagates the `graph_entity` frontmatter into sync metadata and makes\nthe scanner skip memories synced from the entity directories.\n\n---\n\n## Troubleshooting\n\n### \"No relevant memories found\"\n- Check that your sources are connected: `openclaw openclaw-hyperspell status`\n- Verify your API key is set: `echo $HYPERSPELL_API_KEY`\n- Make sure content has been indexed (initial sync can take a few minutes)\n\n### Memory sync not working\n- Ensure `syncMemories: true` in your config\n- Check that markdown files are in `~/.openclaw/workspace/memory/`\n- Run `/sync` manually to trigger a sync and see any errors\n\n### Auto-context not injecting\n- Verify `autoContext: true` in your config\n- Enable `debug: true` — the ranked/cut/injection summary lines land in\n  `gateway.log` at default host log levels\n- Check that you have memories matching your conversation topics\n- **After a gateway update**, grep `gateway.log` for `unknown typed hook` — a\n  host release that renames/removes a hook silently disables the feature\n  behind it (writes can keep working while all injection is dead). The plugin\n  logs its registered hooks at startup (`typed hooks registered: …`) and runs\n  a cross-hook liveness watchdog: if turn traffic proves one of the\n  injection/write hook pair alive while its sibling never fires, it logs an\n  **error** naming the dead hook instead of staying silent.\n\n### Enabling `memory-core` disabled Hyperspell\n- This means `memory-core` was placed in `plugins.slots.memory`. The slot should stay on `openclaw-hyperspell`; `memory-core` rides alongside as a sidecar.\n- Restore: set `plugins.slots.memory = \"openclaw-hyperspell\"`, set both plugins `enabled: true`, and add `dreaming: { enabled: true }` to the Hyperspell config. See [Running alongside Dreaming](#running-alongside-dreaming).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}