{"_id":"@pify/memory","_rev":"27-b36fd4f5602c2f9d1221f99f87a90a90","name":"@pify/memory","dist-tags":{"latest":"0.13.1"},"versions":{"0.1.0":{"name":"@pify/memory","version":"0.1.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.1.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"f22ad1ec348b182afddcb47df0b83ffaa2e557d0","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.1.0.tgz","fileCount":13,"integrity":"sha512-dcqDqO7ueCL3CsIlxPSc6dllbtnrHBfkig1bAmym2ywc6elTqbE1nz+VSPp4izqbmtN3MFv9Zd8wGwu22eTiVg==","signatures":[{"sig":"MEUCIG5G2CKJNRVuV2nFgFHlIp8CeB6VFMF6VsGNF+lmw3f/AiEAkibRcgqS7xiGtlhUhp/Vf75heT2WZ1OtI9dRJEfuLTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34560},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2a93145713270d1a2c0fb95a5fbd764e16b684e9","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.84.4","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.1.0_1788455870644_0.8929937427764785","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@pify/memory","version":"0.2.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.2.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"572bebd42de0db13b299ae704c00bbf12ab59f28","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.2.0.tgz","fileCount":13,"integrity":"sha512-2QnUyix7XurXdayh6Lmk5e/lggY/+jPa9luMef6xYgp/FNoSJe8/J9J8MJgwEEEAu8OysjQGUMAShw1PfTb9eA==","signatures":[{"sig":"MEUCIEAMvnbB93kR2gi79z2dE/iSkbUJVC8qfY7OiKSpHRADAiEApClOyvOg8xRUrHfffp3kPtCIdfsVkjdO0LB/3+c4K7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36273},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"92e09ad5f16a3f4b69763a479382499bc877536f","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.84.4","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.2.0_1788632445785_0.2533671924821783","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@pify/memory","version":"0.3.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.3.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"8935ec0e1b01230a5661365aa1fae2a529042fc7","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.3.0.tgz","fileCount":14,"integrity":"sha512-X/XnhYc0U1QSVyYPjitkA5UJ0xjMI49q3LpdTkrhIF1P1Uo5UgT04gc6i05BF2Fi1VQoS2pNhPAiLBH2jqTOWQ==","signatures":[{"sig":"MEUCIQDsm+nWf/gRur3sx3UfrxZeWR8Z9dF9DbsXlNQdmu5IEAIgbAZL8no0m37lxePQD86RoYS7QBxL7QqTCgFMcrF1x/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48759},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"1e77db408c30988921e94c6221c31f9dd843fa51","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.84.4","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.3.0_1788637875569_0.3289113145383842","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@pify/memory","version":"0.4.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.4.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"ae4549fcad8554fa28abd6681bc35dcca832ff50","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.4.0.tgz","fileCount":14,"integrity":"sha512-9XAbO6FxJI4xxH90UH3p+FaK8acFH96pOlYAGRKcVTyypbKUfCkh8NHKuIXP11rh7AOy9OaWsI5RYdMp7YGeNw==","signatures":[{"sig":"MEUCIAln4Xg6KCAo2NGPvHyJ5sMdHVCyCPp5yCzgnzmlo7VtAiEAslrdXZXYj90Zvjx3WPYaFQhuQJC3W59rC7cklPQj6vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49018},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"1218c722aded545bca059e17355936d00eda3528","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.84.4","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0_1788675213963_0.3196758841524383","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@pify/memory","version":"0.4.1","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.4.1","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"b3ca74dad7ba33bd08f40f2812d208512a06e811","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.4.1.tgz","fileCount":14,"integrity":"sha512-FNA8hqeC3+xPqzuX8TvEYEYeJzFVBfTVccrLiCj71ldm/NWQVW5vKODQl+I6S5sOoAMxmPJ8ftsFKHgB00NU7w==","signatures":[{"sig":"MEQCIA0D7t1hCTYpd667HuzzXNkpeEz4EXMDOksxhy92jOgtAiAtCQ1mfODDSeKkAwXZAktg47MF9AkAr+Dxnd6dmFoZew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49357},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"0168381079f17433370474e8161607a4de2980d5","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.1_1788710764354_0.2751168612429069","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@pify/memory","version":"0.5.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.5.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"7efc58da2e4de656dd2f6fdc45f3b97378c64a93","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.5.0.tgz","fileCount":15,"integrity":"sha512-AU1gGVCq5TlFJ8wpyaX2lG918gWz7z/4k2N4jhUAlueGPvt7tREplMKUriX79QHG+L41P78ZZydZ8YvjzT/loQ==","signatures":[{"sig":"MEYCIQD18dj00Fw3DA7V+cSVk8h1GQpuSVwaf+flHobkpzKICgIhAKGw6lVIXDqpt+X0TmjUmI/Et+0rUnLNEEPtJM5aNdp2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56971},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"105dcb5a432fa6e44bcd6bd5067beea80f3f947f","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.5.0_1788792575523_0.2561877673012549","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@pify/memory","version":"0.6.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.6.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"85c5ee98931aae1d40a2c5dd9928f9cfef7f710d","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.6.0.tgz","fileCount":16,"integrity":"sha512-hq+Lq+n4T51fad9WcYwYuo8Tjk2igP3FAVxeL/eF+4zmtQ3INOZmBdns/PHqbGH2tM00x5AqFPt/8H4XmSH2tQ==","signatures":[{"sig":"MEUCIQCHSA5Ns2KHdJUuX4WUNaG93PVzj3sLQYAWB+d7PsE2fwIgQN339YCednSvIlSth7m2QgDCRs8jORdG8IOIGCLSX8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66596},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e08e170f8c504a1128dd6f98d1ca8ad20d25e9ac","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.0_1788806496589_0.6360640838719016","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@pify/memory","version":"0.6.1","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.6.1","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"17055e720487279c17b5dc9c09aed8804ab4ed75","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.6.1.tgz","fileCount":16,"integrity":"sha512-xq49nJ1sqN3E2YKIU1OH7/TwzGq8ugW4S4nkcNBR0ZgCBAnxLenWbdAeeREKiYevwd+cHs/PXmU9lG+iY+R8/g==","signatures":[{"sig":"MEUCIQDPGrv9Fb9dQbp5TACDSFsAgOEeY2E8gxG6oJHduEffjAIgJqySPv35qZWPQ5gKmGASuBAsTOqoJLK6rE/0sXlRBaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66525},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4951b8af26ed73a6b61fcdd0765f2c225af32b5a","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.1_1788915779043_0.24441114409434483","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@pify/memory","version":"0.7.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.7.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"e034caf9ea31d22ff570522e887b107256064e1f","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.7.0.tgz","fileCount":16,"integrity":"sha512-7GId9F1+Mt9MFAYraGI4VTTIYxN6nNM4pJ/BuOwQODHLLZPirHn86MzoyfaE/buDbI3NWgwjjrf2bPsx10RNBA==","signatures":[{"sig":"MEYCIQDA3LL9B8Ma0Nf6ObOCjpqr//w9pqMc+qn69Ib5Ms8uyAIhAKVgmIA6xEs4fzXiBJPvCb7rVG9/GJwD+/d3x+p428GR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70608},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"95af785d222013e9444c93fe60baac31018090bc","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.7.0_1789194276985_0.33332976128711267","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@pify/memory","version":"0.8.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"7ca1972915955bb45d09c57c3b036c2c6f976f81","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.0.tgz","fileCount":17,"integrity":"sha512-MatmpiFUVY+qkenfu2kVHqbwMuDhb08cRQI68TTO5dEIGoPYJTcVKTHJw4pZQG8GHoE4whGocpAPMl18dDgGow==","signatures":[{"sig":"MEQCIFiVNBK8n7pOKFMPo07dlBd6e0EWyPC5pqIuErctn6NVAiB4QG6Slq1aByNuGbBYKzRwk6muSBXzlsud/00JQjuUCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97841},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"09b0e7770b46b811ea980d700a3f337303fe313d","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.0_1789197054557_0.1500304086238724","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@pify/memory","version":"0.8.1","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.1","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"0969b198168b2d4cbefa3480e02ceb8ce5567765","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.1.tgz","fileCount":17,"integrity":"sha512-yEn4gavd04ntcthH3VyVlzj3zQIDNrQAO5g5zX7beKlpAILfLy+8P0OYnY8KK51mf3kydpnIQSNRgOc6s4+8iQ==","signatures":[{"sig":"MEUCIBvLUWsK21wPPUZjKjvcffOpfDBkIL8+/voY4Tv8PQnQAiEA/UV3Aa+yzt2Shjh9pnfXlx4KaAL+6gOdPH7+H/5wsMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98187},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"495f073171830612749525ffdee03caca9c2fd7c","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.1_1789197963097_0.24414069604851707","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@pify/memory","version":"0.8.2","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.2","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"cfa7308bd7b5aa6395bc263275f0386698fe35d2","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.2.tgz","fileCount":17,"integrity":"sha512-CTmgarMpHC8reFGfhsofdnnD2WVcvQGyxWPqf5pKiVmZMWPcZ5gLXIyk9q2OFWazvjzGTbNHqcHbLvtIr8CNTQ==","signatures":[{"sig":"MEYCIQCqjwc4vzsMaXe3WO3IKIZ76PecMAGsJnqDpeyjonTa3wIhAKjGZjbs3hnw5q2H9Inw6XUvWokLQgH+M+XNY77VPO/P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98763},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"851e05bf36c82dabd51fd48ce2567f32e6d20682","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.2_1789204462675_0.8111011347561716","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@pify/memory","version":"0.8.3","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.3","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"cae3356b945698377c4c0c058c931b7b2c833ca7","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.3.tgz","fileCount":17,"integrity":"sha512-Si9ZiRgAIoKZ4G9WQOCsvvfSDQF8fbKnQDW1T2/0fU/abn1HF8Q4jqn1pMypQVcKgluE+748OUPs/zYjRPgJEw==","signatures":[{"sig":"MEUCIQDl335zqLLeCZQMccY/5x2SOH4Cotpw/ur5K77+t7rsWgIgFOV/PFqxE/CV7YRFL6n3aBjS6l7WCCgmDhYwiAaoFkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100685},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"6675443768ecd4cd7b97e66f39df5e13876cef3f","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.3_1789228447637_0.4362981539273534","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@pify/memory","version":"0.8.4","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.4","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"35363c5073eebe6d4c612edfe26f5b32a804fc3a","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.4.tgz","fileCount":17,"integrity":"sha512-DV6btlY1QtuuYah56qVS0umvWeJgfqZtuWivxvXY2zQ0cgGOzD92+yU1EnBo5BGqH6/3N0XaDihb8/qBiJRL9g==","signatures":[{"sig":"MEUCIQDHedF/RNMOIr3boroz9Bs4yUYum7mKOBddIx7OUQ4KHgIgexQyGWoGfFsJlLUtv43pGKwkPyI/m87RiX8fJpqOMcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101156},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e97a65fbac53aab9ec05e147a9a0f47fccca650b","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.4_1789231544863_0.8837485000267622","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@pify/memory","version":"0.8.5","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.5","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"2a073ccbef88ce85ed10efe852693d4090a8ae32","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.5.tgz","fileCount":18,"integrity":"sha512-L6RcioVOSL5DsmnLP/1Yal+7VUOFDxMT0oNbV62Ywu3CETc1SoD/7NHtjqQKS+u2dqfO5mXc5d1OKQtNGauchw==","signatures":[{"sig":"MEYCIQCmWTErsKtaA6QtRL3y8nV75Whs6idACa4A4j5wQaYA7QIhAIfuKU8ChiUJUeQqGxWGnx571KisHE+ykw5d83pHi2VD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103285},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"439b6164018daf8ef79f082aee34eff2704a0369","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.5_1789233126860_0.7418678376644148","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@pify/memory","version":"0.8.6","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.6","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"53589e18ea31bf33f6a71d95759cc67bfb730503","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.6.tgz","fileCount":18,"integrity":"sha512-7xd1NV2eLqQLHB28Es0ARDcshMYXjnoOnPeJ9o0cIG9CftnFOcBhTh4MpYfHbbdVid5gIKys0kYA4EygMu6JyQ==","signatures":[{"sig":"MEYCIQDmn9eXMCsQz/y3vl9p8ODcpmjbplEQFsnchlC1f2pt7gIhANrhMwjU5DRezMzFXMApX4+1Uqy7DCRxh1Byx/3quFqi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104410},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"fc91c51bfe0cf0bfe7d3ba32dace88b8ae503319","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.6_1789275109655_0.16074049648407862","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@pify/memory","version":"0.8.7","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.7","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"b63505e454535f0bf0b3a199ec5440b36977239c","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.7.tgz","fileCount":18,"integrity":"sha512-1elXb2oMtaNIfXID+Ch4Hyo5IJLkMjoRH9O/sCwOWeSTgjT0ATSFaxiRObopomDEW6BLUtGsXtPyZYdQnMJfzA==","signatures":[{"sig":"MEUCIBQVlSKIk85YSavkCDIA6jB+WDi1SR5fF/UR8VHVFD3jAiEArML5GPsdQRTZu5D1mPYX8EKQL0zwA3slLvlOvRAXT9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104622},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"c5b1794dadcb0df6562c42a8b969e4f9820119b1","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.7_1789302652793_0.18504688089087162","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@pify/memory","version":"0.8.8","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.8.8","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"3dbb4d673f6b04aaed0186aabbc575b2934f11b4","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.8.8.tgz","fileCount":18,"integrity":"sha512-0GiUxBK9KoARUHxCsBXy4utAGs2Ftbmo7VO5r21ECUm7s/Ie2NjBIrl8PNBBimoarXWdc21YXu7hNrU8jvAJ2g==","signatures":[{"sig":"MEQCIAnbixNDuuRxszAlVVnWgoZnl7bzxzF6DPgDsI6eGRMBAiAtmdkR45Md4Y7Ot6b/dUyQdJtTmI30erU7OqUPZYvyQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.8.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104760},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"d2be606abbde8e4d713b12cf6c91af7b9b315156","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.8.8_1789313027113_0.7888045465913072","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@pify/memory","version":"0.9.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.9.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"4035e66cafe88336da3fade55441340b609e51f6","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.9.0.tgz","fileCount":18,"integrity":"sha512-YwrIHF9uU7D5Yqguv8gjOf7kWM5U3zozYAwq9Sy6UOPmbLE6JTTdJLLR2rFuDYDaDmzk9OToRSJ9XVoJ/v11Sw==","signatures":[{"sig":"MEUCIQDi0Fl48yO5zUx1PBMvcR7UVOzWDD4/YSlri2zz9cPS+QIgUuBHbyuzFKL7myLUxDIhuJRrEA3yagcGkg6NZUQ0aCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107764},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"b435d460d67aea23336ae1c2481679dfecc4816a","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.9.0_1789360200365_0.5695603797370408","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@pify/memory","version":"0.9.1","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.9.1","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"2da867527803b7e885c5286461b242da83fd78d3","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.9.1.tgz","fileCount":18,"integrity":"sha512-vTAIxs/EHEtXY9Dj3n6M9f7EUNYBvufGkis7QCUOfaaN2DGLTjpVjDMJIwoIx5dGT5KkB2t4C2BDesNF7pESCg==","signatures":[{"sig":"MEQCIEs9QSwQmnHhU8pTF3uz3gJdRDrEgCZWrJg0cyCJslyYAiBCLLjw6S8v58MK32hWRQxXlksxqqByEBHmSZlbpbsWdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108743},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"f5649b7ee441ce90c2645f59ee986c4a0540caeb","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.9.1_1789378598733_0.44125451363352197","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@pify/memory","version":"0.9.2","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.9.2","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"20ee042139ea607af11126fe54956613f14f7467","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.9.2.tgz","fileCount":18,"integrity":"sha512-eLSjWoK3Qr7bFcaex3OTCwRjgK7QfmYTmzMXMwjuFA1N6YpcYaz0oHi5VqlQkeBELS8RXe1G3v5gyTfkoMNN0A==","signatures":[{"sig":"MEUCIQDvZVbA6J7Q7NxPttBL4NYjyl72RNBA1f+ySIT420u+5QIgUSkoRqUnjKqex19oPLqZfLKJA4wSllgmTf4Azaic2xM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD5IVeonEakHO+bT2dnbXxQWrkNQ39qYgnbFwUNfqlQLAIhANZCRDqeYgmAjYrtTFFQAYHVisQCuB0/NHuK4w0HAR+9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111019},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"82fd13ecdca555e69f75b50143df23ac2e1e9ce1","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.9.2_1789457290461_0.17351935136976393","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@pify/memory","version":"0.10.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.10.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"283d93dd24a47d538110d45da44f354b92d8d781","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.10.0.tgz","fileCount":19,"integrity":"sha512-vwsWbRJdcp+oqRpYf7HFVPesf3zdjDAp53TBqIfitXmCs5A1FYMzyLdkBWnWFkqlR1xp3K2NYmeVWsts2UHmiA==","signatures":[{"sig":"MEUCIC+NkEQxTS9pZ02jGzhNfsp1ndDqDL1GhNPK2EHeGdUbAiEAzHJRZ8cxx97csLLuCbtBwTcFUwYqkKpDUsQMRALLubw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDMsGtLy5aZ9Nom9KqSMiCQwpBa7dfUNzfqamKuXyikvQIhAKGkDwSlQcUo8pOgJ9rP6WFK3TOl2Xtiz3HIG3lZDBNB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121415},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"257488de8aa8e7f738b19e05109d73466d2f641a","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.10.0_1789623338740_0.2706074585097269","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@pify/memory","version":"0.11.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.11.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"7c674680eef381061755821bfe96b10252cbbd01","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.11.0.tgz","fileCount":19,"integrity":"sha512-NiVSKv7yXVSJzoEW/h0SXkjbp/DD2JUVnfx6RzCzwW00eBd1juFfz3lzOvGu/zUcD3J7GjPFIlTAkXoClkpDwQ==","signatures":[{"sig":"MEYCIQCSVh8m5Ny7TS9yqCyI5JUif7mh6mOXLIYynOm7vf7oSAIhAKy6ZA4ajqSnpCgM5/rcwj5wt8EDFlUA9aYOZuQs8qGr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDY1jJVsuxbSJuBbPLUi3JaCMCAoVTNZ12btxlYxmPL3wIhAIutafZZ3eaHcVmR05Bv9rFFDtxuXEiclgUi9xKunLin","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122220},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3004d68b936579d35805940d612ef9edb5a94556","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.87.0","@earendil-works/pi-tui":"^0.87.0","@earendil-works/pi-coding-agent":"^0.87.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.11.0_1790092154212_0.5316361875198192","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@pify/memory","version":"0.11.1","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.11.1","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"b679ee6a074c5fe046a9519e1d7e7d633b162c7b","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.11.1.tgz","fileCount":19,"integrity":"sha512-I6D7zthWzrePQBL9lBYqpa1PYpFzP+v0UH5IfRNZmbkem2kxXQM/utd1INWLp7EU2dPkFq8+BWOZxm+1GWwXMg==","signatures":[{"sig":"MEYCIQCIlvMqyzHR/uMtyWakh6ZzHS6mflhQY3GB5Aw6u/8p/AIhAOxAWAq8dE8/A7jlvr7kQ0yRZvAL0KR92j0dKClY2FKT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDpv/9LbbQhWc9EtSJ3vbpl8xTbjmeOzXwXc0XY/G+hjQIhAMJlcYMZAUueciX2cO59cJy/EqOLZ8pER/BtWTcUnYo1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122401},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e6df93f4990ecb4671901a2bd87fbe25dbdcd8c0","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.87.0","@earendil-works/pi-tui":"^0.87.0","@earendil-works/pi-coding-agent":"^0.87.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.11.1_1790130454837_0.825350655937608","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@pify/memory","version":"0.12.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.12.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"534b1d6f765034d38649e639dff78975d28c976e","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.12.0.tgz","fileCount":19,"integrity":"sha512-jd90GHk/EiKsfplO2oSat9XmKdHHJWQLtM3q1W7cuxLoVKfMmAx0TWnc8/YCRwKSLypXeUJdABBM1hUWkEYoCA==","signatures":[{"sig":"MEUCIBr+p8vek7UlS86yo/EeGKbD632gmSu7aJbQ/QMTAS3XAiEAtSPXy94wvfCwyRdJdA6P/iP2T10FMjcQZGrRTpjAVUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC3lbc/b+/bZL6KDeCaAARh+7oXuddmPIdyypkLOTRPkAIgI5ypqDIaaMqd9j6cFuqxkHdEeVWduPmhUA/YPyMHyC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125262},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"09d15b1e632a09b11a43be66e3d79c8aa12f1625","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.87.0","@earendil-works/pi-tui":"^0.87.0","@earendil-works/pi-coding-agent":"^0.87.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.12.0_1790412328203_0.6929359085591604","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@pify/memory","version":"0.13.0","keywords":["pi-package","pi-extension","pi","pify","memory"],"author":{"name":"Pify maintainers"},"license":"MIT","_id":"@pify/memory@0.13.0","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"homepage":"https://github.com/pifydev/memory#readme","bugs":{"url":"https://github.com/pifydev/memory/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"dist":{"shasum":"2965ed9ee00ab5e391ec9c16dda624c7b7c76a57","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.13.0.tgz","fileCount":20,"integrity":"sha512-WSs1ZEr5qrAWKDqTmQSrxj0purrNfqo/t3nNduZ8fRkM513EIFzmp174N2F0UrjJM2aSMUqupoVajpPbirnVRA==","signatures":[{"sig":"MEYCIQDEJcZWCn/T0jnMNUi5QgOLn8dKfnt68C2oAcjhPDDO5gIhAPa09HmdlLjMpUNZtRIrCJdgER04WBaqZG+EmJwXRZrc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCn90Y7NteqWc0dMtSmAhn+Q0JT8Ti/wBorqGqI0pGRmwIgRVpsuWxps8cPipQ7LdPsDsllb9tmZ6cFZbsqf32afEo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132293},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"5596151d5709aa017f915bcb040df542195b5775","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.8","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.87.0","@earendil-works/pi-tui":"^0.87.0","@earendil-works/pi-coding-agent":"^0.87.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memory_0.13.0_1790412874009_0.5138937363400848","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"pi":{"skills":["./skills"],"extensions":["./extensions/memory.ts"]},"_id":"@pify/memory@0.13.1","bugs":{"url":"https://github.com/pifydev/memory/issues"},"dist":{"shasum":"63e9302b41d14ac9d7d04bacaca80680951a9e53","tarball":"https://registry.npmjs.org/@pify/memory/-/memory-0.13.1.tgz","fileCount":20,"integrity":"sha512-3vqp8Kx6qWHFxWmuwkafn+7b+RYVJ2z2ugHptfj7ySVueUwKc29PCTNTh0Dp78NGJ4yA0jfwhvTlQ9YzMjmAyw==","signatures":[{"sig":"MEUCIQCJd5PkRVV6ZEpM4o83KAhplbTO+1NotUP9mJ4q3TcRwQIgVLW2xrcnJflGMsG8Dl+xujhBY8pK2mMFVqoX3L7xR/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID2E+283o5L7WFLA1VNOx2/1QtZtco8GXTf4YG+8Qs+UAiEAgN9oIQwwSnBciNIV8eFvejRDqxvZbHidwseLIVtdXpo="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@pify%2fmemory@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133117},"name":"@pify/memory","type":"module","author":{"name":"Pify maintainers"},"engines":{"node":">=22.19.0"},"gitHead":"63be7aca5fff2ebe448e9e8546efbeb52a76f62f","license":"MIT","scripts":{"test":"bun test","typecheck":"tsc --noEmit","prepublishOnly":"npm run typecheck && npm test"},"version":"0.13.1","_npmUser":{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"},"homepage":"https://github.com/pifydev/memory#readme","keywords":["pi-package","pi-extension","pi","pify","memory"],"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"_npmVersion":"10.9.9","description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","directories":{},"maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"_nodeVersion":"22.23.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typebox":"^1.1.38","typescript":"^5.7.2","@types/node":"^22.10.2","@earendil-works/pi-ai":"^0.87.0","@earendil-works/pi-tui":"^0.87.0","@earendil-works/pi-coding-agent":"^0.87.0"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory_0.13.1_1790851059119_0.9396937662684399"}}},"time":{"created":"2026-09-03T17:17:50.479Z","modified":"2026-10-01T10:37:39.561Z","0.1.0":"2026-09-03T17:17:50.812Z","0.2.0":"2026-09-05T18:20:45.952Z","0.3.0":"2026-09-05T19:51:15.690Z","0.4.0":"2026-09-06T06:13:34.105Z","0.4.1":"2026-09-06T16:06:04.487Z","0.5.0":"2026-09-07T14:49:35.681Z","0.6.0":"2026-09-07T18:41:36.730Z","0.6.1":"2026-09-09T01:02:59.176Z","0.7.0":"2026-09-12T06:24:37.119Z","0.8.0":"2026-09-12T07:10:54.697Z","0.8.1":"2026-09-12T07:26:03.224Z","0.8.2":"2026-09-12T09:14:22.820Z","0.8.3":"2026-09-12T15:54:07.801Z","0.8.4":"2026-09-12T16:45:45.007Z","0.8.5":"2026-09-12T17:12:06.999Z","0.8.6":"2026-09-13T04:51:49.800Z","0.8.7":"2026-09-13T12:30:52.975Z","0.8.8":"2026-09-13T15:23:47.242Z","0.9.0":"2026-09-14T04:30:00.506Z","0.9.1":"2026-09-14T09:36:38.856Z","0.9.2":"2026-09-15T07:28:10.566Z","0.10.0":"2026-09-17T05:35:38.815Z","0.11.0":"2026-09-22T15:49:14.317Z","0.11.1":"2026-09-23T02:27:34.948Z","0.12.0":"2026-09-26T08:45:28.281Z","0.13.0":"2026-09-26T08:54:34.099Z","0.13.1":"2026-10-01T10:37:39.221Z"},"bugs":{"url":"https://github.com/pifydev/memory/issues"},"author":{"name":"Pify maintainers"},"license":"MIT","homepage":"https://github.com/pifydev/memory#readme","keywords":["pi-package","pi-extension","pi","pify","memory"],"repository":{"url":"git+https://github.com/pifydev/memory.git","type":"git"},"description":"Persistent memory across pi sessions: plain-markdown two-tier storage, FTS5 search via node:sqlite, secret-scanned writes, cache-stable injection that survives compaction, opt-in session notes","maintainers":[{"name":"hypnguyen1209","email":"hypnguyen1209@gmail.com"}],"readme":"# @pify/memory\n\n[![CI](https://github.com/pifydev/memory/actions/workflows/ci.yml/badge.svg)](https://github.com/pifydev/memory/actions/workflows/ci.yml) [![npm version](https://img.shields.io/npm/v/@pify/memory)](https://www.npmjs.com/package/@pify/memory) [![npm downloads](https://img.shields.io/npm/dm/@pify/memory)](https://www.npmjs.com/package/@pify/memory)\n\nPersistent memory for [pi](https://github.com/earendil-works/pi): durable facts, project conventions, and a daily activity log — all plain markdown you can read, edit, and commit.\n\nPart of the [Pify suite](https://github.com/pifydev). Install with [`pify install memory`](https://github.com/pifydev/cli) or `pi install npm:@pify/memory`.\n\n## Why\n\nEverything an agent learns about you disappears when the session ends: the convention it was corrected on, the command that fails behind your proxy, the reason the obvious fix does not work here. You explain it again next week.\n\nThe design constraint is that memory must never become a black box. Every file is markdown you can open, and the agent writes only when you ask or when a correction should stick — never through a surprise model call at shutdown that summarises your session into something you did not sanction.\n\n## Storage\n\nTwo tiers, both plain markdown:\n\n- **Global** — `~/.pi/agent/memory/`, holding `MEMORY.md` and `daily/YYYY-MM-DD.md`, for facts that follow you across projects.\n- **Project** — `.pi/memory/MEMORY.md`, for conventions belonging to one repository. Commit it if the team should share it.\n\nDaily logs are keyed by your **local** calendar day, not UTC, so \"yesterday\" means the day you actually worked.\n\n## Tools\n\n| Tool | Parameters | What it does |\n|---|---|---|\n| `memory_write` | `scope`: `global` \\| `project` \\| `daily`, `text`, `category?` | Save one entry |\n| `memory_read` | `target`: `global` \\| `project` \\| `daily` \\| `list`, `date?` | Read a memory file, or list the daily logs |\n| `memory_search` | `query`, `limit?` (1–25, default 8) | Full-text search across every memory file |\n| `memory_forget` | `pattern` | Delete matching entries, writing a recovery record first |\n| `memory_restore` | `recoveryId` | Undo a `memory_forget` |\n\n## Lessons that stop a repeat\n\n`memory_write` takes an optional `category`: `failure`, `correction`, `insight`, `preference`, `convention`, or `tool-quirk`. It is stored as a readable bullet, so the files stay ordinary markdown:\n\n```markdown\n- [failure] npm ci fails behind the proxy, use --offline\n```\n\nRecent **failures and corrections are recalled unprompted** at the start of later sessions, newest first, capped at 8 entries and 30 days. \"Newest first\" means dated daily lessons (within the 30-day window) come first, most recent first, ahead of the undated `MEMORY.md` lessons, which are ordered last-written-first — so a correction you make today is recalled ahead of an undated one of unknown age, and today's is never crowded out by the oldest eight. A lesson you have to search for is a lesson that gets repeated; an old one about a file that no longer exists costs context and credibility. The other categories stay searchable but are not pushed at the agent.\n\n## Behaviour\n\n- **A repository's memory needs your consent.** `.pi/memory/MEMORY.md` is a file the repo ships, and this block goes in front of the model before your first prompt — a repo you had just cloned would otherwise get to speak first. pi's own project trust turned out to be necessary but not sufficient: pi asks about trust only when the repository ships one of the resources **pi itself** loads (`.pi/settings.json`, `.pi/extensions`, `.pi/skills`, `.pi/prompts`, `.pi/themes`, `SYSTEM.md`, `APPEND_SYSTEM.md`). A repo carrying only `.pi/memory/MEMORY.md` triggers no prompt, and `isProjectTrusted()` then returns true by default — measured, not assumed. So the question is this extension's to ask: once per project, remembered afterwards, refused in a headless run with no answer on record, and never able to override a project pi itself refused. `/memory` says the file was found and refused rather than pretending it does not exist. For CI, set `PIFY_TRUST_PROJECT=1` — an environment variable, because the repository being read cannot set one for itself.\n- **Memory cannot break out of the block it travels in.** These files are hand-editable by design, so a line reading `</memory>` would otherwise end the block early and everything after it would arrive looking like this extension's own framing rather than like your notes. Such tags are neutralised and shown as data; nothing is silently dropped.\n- **Current evidence wins.** The injected block says explicitly what to do when memory disagrees with the repository: prefer what you can see, and say that memory disagreed. Memory outlives the code it describes, and the project tier is a file anyone with repo access can edit.\n- **It survives compaction.** A long session eventually compacts: pi keeps the most recent `keepRecentTokens` and folds everything older into a summary. The memory block is injected before your first prompt, which makes it the oldest entry in the session and guaranteed to be in the folded region — so without this, memory lasts until the first compaction and then quietly goes missing for the rest of the day's work. It is re-attached afterwards, **model-free**: pi's own summariser still writes the summary, and this puts your bytes back in front of it. Nothing is rewritten, and no surprise model call happens at the moment that temptation is strongest. Measured both ways — with re-injection disabled as a control, the memory appeared in **0 of 3** post-compaction requests and was not preserved in paraphrase either; with it, 3 of 3 (`bun run test/live/compact-survival.mjs`).\n- **Cache-stable injection.** Memory arrives once per session as a hidden message before your first prompt — the capped `MEMORY.md` tiers, today's and yesterday's logs, and an overview of the searchable archive. It never touches the system prompt, so the provider request prefix stays stable and prompt caching keeps working. This is measured rather than asserted: `bun run test/live/wire.mjs` captures the real provider payload and checks that the content reached the model, that it is **not** in the system prompt, and that the system prompt is byte-identical across runs.\n- **Secret gate.** Every write is scanned for AWS, GitHub, GitLab, Slack (tokens + webhooks), Stripe, SendGrid, Google (API + OAuth), OpenAI and npm keys, private key blocks, JWTs, `Authorization:` headers, credentials embedded in URLs, and `api_key=` assignments — and rejected with an explanation. Obvious non-secrets are let through so they don't block a real note: a doc example like `sk-xxxx…`, a template `${GITHUB_TOKEN}`, an env-var name, or a `changeme`/`REDACTED` placeholder. A secret with no recognisable shape is caught by its value instead: the values of the environment's secret-shaped variables (`*_KEY`, `*_TOKEN`, `*_SECRET`, `*PASSWORD*`, …, 8+ characters, not a plain word or placeholder) and the password of any `scheme://user:pass@host` value are known to the gate for the session — compared against, never written down. Credentials must never enter files that are re-injected into every session.\n- **Undoable forgetting.** `memory_forget` writes a recovery record before deleting and reports the id; `memory_restore <id>` puts the entries back.\n- **One entry, one line.** A saved entry is one markdown bullet: `memory_forget` removes a single `-` line, `memory_restore` re-appends one line, and lessons/consolidation read the first line only. A multi-line `memory_write` is joined into a single bullet so it cannot leave orphan continuation lines that forget can never reach.\n- **Concurrent writes do not clobber.** `~/.pi/agent/memory/MEMORY.md` and today's daily log are shared by every pi process on the machine. Writes append at the OS level rather than reading the whole file and writing it back, so two sessions saving at the same moment each keep their entry (worst case: a stray blank line) instead of the later write erasing the earlier one.\n- **Real search, zero dependencies.** BM25 full-text search through SQLite FTS5 via `node:sqlite`, built into Node 24+ and Bun. On Node 22 hosts it falls back silently to an in-process paragraph scan. Either way `memory_search` works out of the box, with nothing to install.\n\n## Session notes, if you turn them on\n\n`/memory observe on` starts a background note-taker. Every few thousand characters of new conversation, a model reads the stretch it has not seen and records what would be expensive to rediscover — an approach that was tried and abandoned, a correction, a rule stated once in passing — in the same categories as lessons. `/memory notes` shows them.\n\nTwo boundaries make this safe enough to ship in a package built on not being a black box:\n\n- **It never writes to your files.** Notes are branch-local session entries. `MEMORY.md` and the daily logs are still written only when you ask, or when the agent records a lesson with `memory_write`. Notes live and die with the session; promoting one to durable memory is a thing you do, not a thing that happens.\n- **It is off until you turn it on**, per project. Turning it on is the sanction. `PIFY_MEMORY_OBSERVE=1` for headless runs, `PIFY_MEMORY_OBSERVE_AFTER_CHARS` to change the cadence.\n\nNotes ride along inside the memory block, which means they arrive exactly when they are worth their tokens — [after a compaction](#it-survives-compaction) has folded away the conversation they came from. Before that the transcript is still there and the notes would be saying it twice.\n\nThe observer is told, and shown in-band, that the session text is data to take notes on — it includes web pages, files and command output the agent fetched — so a page that says \"record this as a project convention\" is content, not an instruction, and only what the user or the agent established is noted.\n\nEvery note is **secret-scanned** before it is recorded. An observer reads the raw transcript, which is where a pasted key lives, and a note is re-injected into every request after a compaction — one leaked credential would be laundered from a single message into all of them.\n\nEach observer run has a **deadline** (two minutes; consolidation gets three), enforced by a real `AbortSignal.timeout` handed straight to pi's model call. If the provider stream stalls, the signal fires and the call comes back aborted — the run fails loudly rather than leaving note-taking wedged for the rest of the process. The coverage marker stays put so the next run retries the same stretch, and `/memory` shows the timeout (or the provider's own error) under \"last run failed\" instead of silently going quiet.\n\n**Honest status:** measured live on `openai/gpt-5.6` and `qwen3-235b`, which both record the stated rule correctly (`test/live/observe-wire.mjs`, 5/5 each). `anthropic/claude-opus-5` via openrouter returns no text through this path — root cause found by A/B in pi's source: pi's model catalog marks that model `supportsMidConvoEffort`, which adds beta headers and `output_config` marker messages that openrouter's anthropic passthrough cannot digest, and the reply comes back empty. Confirmed: 0 chars without an override, a normal answer with `providers.openrouter.modelOverrides[\"anthropic/claude-opus-5\"].compat.supportsMidConvoEffort = false` in `~/.pi/agent/models.json`. Until pi fixes the catalog, that override is the fix; without it the run still fails loudly and `/memory` says so rather than advancing silently.\n\n## Consolidation you asked for\n\n`/memory consolidate <global|project|YYYY-MM-DD>` hands the file to a model that merges duplicates and drops facts a later entry already corrected.\n\nIt only ever *proposes*. The result is refused outright if it invents an entry appearing nowhere in the original, empties the file, or drops more than 60% of it. It passes the same secret gate as any other write. You see a preview and confirm. And the previous content is kept as a recovery record, so `/memory restore <id>` puts it back.\n\n## Command\n\n`/memory` — status: file paths, sizes, which search engine is active, and whether session notes are on. The project line says exactly what injection would do — `injected`, `NOT injected: refused`, `NOT injected: not yet asked`, or `(no project file)` — computed the same way the block itself is, so an env override or the live session answer is reflected rather than only the on-disk store.\n`/memory observe on|off` — turn session note-taking on or off for this project.\n`/memory notes` — what this session has noted so far.\n`/memory search <query>` — search yourself, without going through the agent.\n`/memory read <global|project|list|YYYY-MM-DD>` — print a memory file.\n`/memory consolidate <global|project|YYYY-MM-DD>` — propose a merged, de-duplicated file.\n`/memory restore <id>` — undo a `memory_forget` or a consolidation by its recovery id (the id printed by the deletion or in the \"Undo with:\" notice).\n`/memory skill <name> <query>` — promote the lessons that match `<query>` into a pi skill at `<agentDir>/skills/<name>/SKILL.md`: you see the file, confirm, it is written and pi reloads. A procedure that keeps coming up as a `[failure]`/`[correction]` bullet becomes something discoverable by name. It passes the secret gate, is capped at 64KB, and never overwrites a skill this command did not write.\n\n## Conflicts\n\nThis extension registers the `memory_*` tool names, so it cannot run alongside another that registers the same ones. If you have `pi-memory` installed, remove it first — the on-disk layout is compatible, so existing `MEMORY.md` files and daily logs carry over untouched:\n\n```bash\npi remove npm:pi-memory\npify install memory\n```\n\n## License\n\nMIT © [Pify maintainers](https://github.com/pifydev)\n","readmeFilename":"README.md"}