{"_id":"@dzhi/ocpg","_rev":"27-f6a7f7b8b5013b556b49042dd925e213","name":"@dzhi/ocpg","dist-tags":{"latest":"0.43.0"},"versions":{"0.1.0":{"name":"@dzhi/ocpg","version":"0.1.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.1.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"9be8198c10e8ebded25aecee487fed13eee4b501","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.1.0.tgz","fileCount":3,"integrity":"sha512-w/3l8OvuBB2PqI0abTQynAKP77qm2QDiMrhIz8hx8jYkaw3kXHTVEZpahLqf/Y3aHGmQlgMhy3QtwuwmrJekdA==","signatures":[{"sig":"MEQCIE4X/O+C54arjC4V06arQOKsbELVflGDR3WaCAk2aBBuAiBVY5hMFp6Uc7MMjs3fDx7MzXuav7mFCsO5ZIjGD+QvYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11658},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts","./server":"./ocpg.ts"},"gitHead":"90f5bafa97f7750737c9c844b0c07b913a47deba","_npmUser":{"name":"dzhi","email":"0xdzhi@pm.me"},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"12.0.2","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"26.8.2","dependencies":{"zod":"^4.1.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.1.0_1789405412710_0.926974130313716","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dzhi/ocpg","version":"0.4.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.4.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"71e20e97f6384ddf5d1f4572462129e15037660c","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.4.0.tgz","fileCount":3,"integrity":"sha512-5TUq1cSzO16piBvB/N4uvM8lP9D5EEYVhlOpKxHSvmjbf55uSgq0kaqw2Laodefk/oFhoD1dvyVjF8H75PERJw==","signatures":[{"sig":"MEQCICq7xz9yyg8BKhIONmOODpR6GjMqc/GBRlFvvCVzSYXnAiB6l+M7rZYATFcZzUPFFabe/annMOAGonf84warmVXLDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJ+GNO0vWJ3VfsI8v8QRoDSMLsJvGLT6if0O0QBx8/tgIgBieCYaRnMNUgBPYjjICMXkU8PXCE418YfDUouJv51Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11495},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts","./server":"./ocpg.ts"},"gitHead":"6458fd14eff4a674f6615850d0f984b742a3f549","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.1.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.4.0_1789411264783_0.6485330996471153","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@dzhi/ocpg","version":"0.4.1","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.4.1","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"cd623307e32c19f594f1985dd5471390362d4290","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.4.1.tgz","fileCount":3,"integrity":"sha512-sDoqQadYOQBnsII24XGMnLSNWFVxDuJ6skcYfeYYL0NVZyV0aAw1ib5ubutVKzZVBYtzmuoAMEgJBeIa6mEi5A==","signatures":[{"sig":"MEYCIQCy3CSZL+vqRna8vyNaCTlCctgkyq10AK0cZBovXqxAAQIhAKR62g3dj1FVstzcNs5A+BknKESDRWsCbbm9a4XNnbmM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE5d3JnpWe75daSLNjg4+7opFdmZbI+iO6t+xF23a0K+AiBCgcVcuMC2k80h2SHtoDI8zo68/v6aLf3VfSI2WaqdbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11534},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts","./server":"./ocpg.ts"},"gitHead":"c82b0058d674160893a1ed7c944d4e51c8d1bbd7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.1.8","@opencode-ai/plugin":"^1.18.29"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.4.1_1789419358075_0.7904145058583054","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dzhi/ocpg","version":"0.5.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.5.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"f1fcd6d4b1326a35a46c257d286e8fe559cdb85d","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.5.0.tgz","fileCount":3,"integrity":"sha512-UZMsZkl4Uncr/PpKXiW1yX0rFNl4eOXEnQ7h3/HK0VpWVDp/oqFYrXWBT/AQ9/j+kYpKd/frysVo68afQHrrpQ==","signatures":[{"sig":"MEUCIAFnXkCVY91BWyeOmf16RaNUv9R+cnm9kZUNe1n+gPhJAiEAtvWS7olEXaLyMkuFPY32gR22C5/WlSLGHXCgVco0nzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC2gpsIzETPl3iW/IFwnyrFoT8zAQlriqVeKssr1RRDWQIhAP/bXffvC7NGX3mZ6JWBaNkgP0hjDGOmttQJnRzitnGv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11777},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts","./server":"./ocpg.ts"},"gitHead":"a8b2d7ef1d3e14d9eb8f5b0bd408c401786a5a1c","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.1.8","@opencode-ai/plugin":"^1.18.29"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.5.0_1789493780043_0.26040353847613584","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@dzhi/ocpg","version":"0.6.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.6.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"1efb16630e4ead600a4ba6002f39deb6823259e6","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.6.0.tgz","fileCount":3,"integrity":"sha512-o36NJmkTJ4TI83IyaAumgXb+FS9MgJ6fbnEIkECQUP1dY2Ngp+8XW+NRtJbtmw9dcR0+F+kt71cVEfTGU9TF1w==","signatures":[{"sig":"MEUCIQDxlHCod9msptdUOExbxBqh8r31cqkZJxlw30hh12/UxwIgSNCyIWfJZzdZmS618RbMtMgHurP6lRIL/gptgt1N0Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB5EAB1HsU1lVlM5yFcHkq6oav4Cu2IWRnYZ6HXTuXTcAiEA8yFNVBjq37dsTJnAAz68yTeHeOD3N4Wb4O8cQplaNB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13314},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"322b601513d212c50a0524e9131b376881876086","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.6.0_1789551090473_0.38080953717432076","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@dzhi/ocpg","version":"0.6.1","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.6.1","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"37b0374ab463302f8ac9fe5f5c38ee606a51b581","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.6.1.tgz","fileCount":3,"integrity":"sha512-pOH0yjdFj9rv5mmM9riGFEkXwqoroxGjCfh63HNi0pVBm7u8H5AMCPkVwTdbXON5jQQJPoTixBkQE/Yh5kJInA==","signatures":[{"sig":"MEYCIQDmTXis3pQuVwZhGptgWVNqJDoOAKyOAsbZ/wlTzUP3owIhAMfu03jnrWcbmB01pND3SoInQJr8dTUPVtV/EP+8YhTF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBlPzrnHwevxFUaiQDEm0PvH3Eu0vnF6lwey7cD5PU+IAiAigUw0ia29NgkAfq5ZlUG/y74cSo8Iy0zjNPBOLqnyWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13314},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"1840f494fc89de5c7bcbc9724a5c0f2dae9ff424","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.6.1_1789552125714_0.510057628355399","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@dzhi/ocpg","version":"0.6.2","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.6.2","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"e24ac1445bca2e997932bf22330c19ea67373109","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.6.2.tgz","fileCount":3,"integrity":"sha512-6vqu03w0qMes77kVnjUq2/gOkyEMcjaf4Y2y6soAkcYvJS7ZM0SSFz+u2E2bP0IoDK+35PFf160hRIOyxSBqjA==","signatures":[{"sig":"MEUCIHNO4+p497GVgffNjR/YwYbiFIeoGoz30z/NHqA4yiK1AiEAzlsUAy3MV+pHw4TTJ+Y46+QR/COc1p6fuN/na20Cfm0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDE5bZtNE9ji0DZBSCerbOYREORWRtLuDPpC4xYvEkxagIhAKAwWjbERkeliFiqi9lxIqHknLrcZd7IJrugQKFWpWv9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13470},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"48310f128a4067c61de09d57c2289c70ca08f8e8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.6.2_1789555436162_0.6316727159709759","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@dzhi/ocpg","version":"0.7.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.7.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"58ec3e2d8f2a14af7f3d087f5999d519f5320f74","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.7.0.tgz","fileCount":3,"integrity":"sha512-QZYxqtWvhqkhGZ7j6xe7dTRwbgVurtNc/NPHf8te8WWQNdTSOUBIQ5ximrK31DMohHUrNWP5xsr7iH0wsNUWOw==","signatures":[{"sig":"MEUCIB3RaXg47ahztSTXiA3y879mfoyFHmEqM+LvSHvXFD3CAiEA1NGFg4D1lAPYBWHIHrkfY5N8wHt1VtSyLY9CD90qVmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCVghAIZ3+UBWoMQ9WXYmITOu30PZpwcYelWBnzsYXcjAIhALeT7X7Z6I+Nj4zk9U0aduRoezPvHE19QJNHlCcHCwAr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12915},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"a51b1474e7d42c0a92ddd0ed0b427899fbb10c1f","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.7.0_1789559638288_0.8706055765513958","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@dzhi/ocpg","version":"0.8.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.8.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"2e4312e0cbb87fcc26b9438d31393bb5e72947d7","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.8.0.tgz","fileCount":3,"integrity":"sha512-HF4Bh9b+1mJ9V9s12Cd1sk+EqAEibgpvjG5DVFGjN5xalc5w+YRbmix+zcItXZdsAWSaRaCfUdcmA0elBKUWPA==","signatures":[{"sig":"MEUCIQC51Mx4j40RowrqCXIAeY2MMrZJ/t7BCdsPF1S6NqrLigIgQLoDm18dkqw6QOBpUhCelmWBYRlC2+0pcCg+hOPeuR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDcXot78Zsth+XTgW7hHCSfH5VTAVFEQndcpwmYMK22fwIhALarOcvSKE9Con0LjmkeieF7j/P6jOdUY3uqKBSQnEqu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12889},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"ff07a3eb89a60d085d5f8d7a77b50519f0ac0153","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.8.0_1789561195165_0.7835728406651634","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@dzhi/ocpg","version":"0.10.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.10.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"16dc5db51219670f7374a34eb78a92d3930c7c16","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.10.0.tgz","fileCount":3,"integrity":"sha512-Hm/bv9J/OEvfEWVVCAk3jbG3JNxC3HCoOp9mDd4JyPufVSaJoU35+DcKih3zpf1+owaRFzYb+MwFX0VHYIDMKg==","signatures":[{"sig":"MEUCICBMZBJTUH2iC9mR3Pc2ObqADYPszCVGU2iq8GhZ41gqAiEApVLqul9qQVzaAS62u9dGjHcTDvJ4sKnRAQiV1CsN5TM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCnxjy4M+8psRV8j/qlQvvYuhg9UCwn1LH6a7yAIazcwAIhAIOnFLYtj/tlR/NovuQOWLwP33F0mR9JVuLP/j5TdP34","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24364},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"e1f4b83d9fbe8225e53ab95c611a03d45c3e1b8a","scripts":{"test":"bun test","check":"biome check .","format":"biome format --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.10.0_1789587995619_0.9885298275417249","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@dzhi/ocpg","version":"0.11.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.11.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"b67da2a892198052ba95d89f3db625b54b51fd2b","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.11.0.tgz","fileCount":3,"integrity":"sha512-lqleIZmfHB+nhwc1iobpBNedNZeAZVASul2CdHJZhcwmfOLRL+hr7FCsmN7ZPmX1w8JtaIy910r3RiGdlSUlDg==","signatures":[{"sig":"MEUCIQCzBQzvS4ziSLfO72P6BpAM15mkUVP9XVCYzKDRiwBAhgIgcCF3FE8uaZakYoh/ORfsR5PgjKCBSRUYEr1ZjHTyQ1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCvwzB75NeFdQdvCFiPlk7XkqBt3Sx/ofdJzYx4WqKEBgIhAMzjvRg0sKdld/U7tkvmiaDXpjDssrsZodKje3bS/ksh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24883},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"5448121291c08920bf40031c639f89e0650ce544","scripts":{"test":"bun test","check":"biome check .","format":"biome format --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.11.0_1789638362115_0.6046883531335057","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@dzhi/ocpg","version":"0.12.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.12.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"4e9e7c49aa20ffb75205a78fb851e2eaa4e5296f","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.12.0.tgz","fileCount":3,"integrity":"sha512-ZWX2YA39OhfDQaX6BJIjmUCV+A+wplK43Z5uJqnN667EOFT928fTzjO5O/0zx5aJzy4hzvxY7B/3YebIh2UWYQ==","signatures":[{"sig":"MEQCIBJo0yiE5qBDZxwj4ba5GsrvlrNqhcsaK0es0JlzLW7oAiBsjHsXyDeKrSd7ao2RgTvw85v3YFS6h0X6XSZF8h6cuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIArwkfjNrPuuA6SYAHDt8t+zmMH8gC21KvwwZlzR2kzJAiAC6ifHKat53WJ38/5Rtr/DSobEh1/LEaKoG8sq3cQs1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25013},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"2ad184e402f582e0c6b6ddabc05e314199b8b770","scripts":{"test":"bun test","check":"biome check .","format":"biome format --write .","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.12.0_1789644903918_0.13189309718475828","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@dzhi/ocpg","version":"0.14.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.14.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"4b679e27bc650ef12959fe8b19e3a3d39921fcf9","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.14.0.tgz","fileCount":3,"integrity":"sha512-mP+cQmRGjVqyM+yvSXApXLOnDQq4G5MUS9u2Z4nnWaB5WF+2Spd2E0YGVYrhtPcLeAdiU3OmTcgV05CHdrXRVg==","signatures":[{"sig":"MEUCICst/qju6eoiZyIPeUGYjgnK9ejnqcNhJYAND2hTz8pDAiEAvXpDHQFB7VJyz/W8/ROoz8bCFYtY/VCeTVaaWFVPp5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDR0fwYhHGIDQN9khI8jeSCoO1wxTsHA8e7f6PSYKNaQQIgAeHzPBBIb+bXejcbmfrMktNwqdmqRaL234QdLr81808=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42505},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"9d605c8db819d49881e3e69036e63fb301fcdd75","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","typecheck":"tsc --noEmit","bench:generate":"bun bench/generate.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.14.0_1789674024101_0.3618873025569378","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@dzhi/ocpg","version":"0.15.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.15.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"5b9080b097d5b6b037da4068c219f05657207c1f","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.15.0.tgz","fileCount":3,"integrity":"sha512-x7OH3bA/GR6X862uxDiQW76XhHr30Wd37XskeJS71/57y2zkek0V8A47IRDLpr0XF4aQ7TWJuzCd3r0cf9yO0w==","signatures":[{"sig":"MEUCIHwLYRYnNnVkXer6M/FrtoFgIA9SkQlNSmautXw8P2vDAiEA91TEjHMVwdTirLdaohqLVapHycYko+q+SZ5NSTDEsI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDLZLlgQIqk0n+FFq4O6SE4G52veoVvJn62ieEhFzTEpgIhALvTD92zDGgtCJTplOWHSkakI31PK+nz6AE4E0hWe6sE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44193},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"7bbfd7b58cd5de8e6fbd70b537cdd45f51b53805","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","typecheck":"tsc --noEmit","bench:generate":"bun bench/generate.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.15.0_1789677595134_0.19226800578013248","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@dzhi/ocpg","version":"0.16.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.16.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"18e05eb92b62778217da51fdebb33dc56b6ee4b3","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.16.0.tgz","fileCount":3,"integrity":"sha512-oZHW/2nZHd40hx25uLZZuzBiqY2GocgSPeZb0cFKvuWybLy2mKcT4kw/pvk7++VuDDbXIeKuNzMXvj/pj2TZ7Q==","signatures":[{"sig":"MEUCIQD2A/y5Mnt/03otrVPIDrcJYVwHhnEYRPnt66CWPm7gxwIgBh0OVLin5bh6K3qEc5+X+AGEGFCj1JOJjBSuOG+pWF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA6X6xv8BNRHGioq5oHmQLBMV8/rFRaz36Uq2NNMWJNwAiATI2Ew2n7Fk41h7WJLyB6Wh+QSFfiQ2Re1WgBNGQnCRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48284},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"761756db871790b3b41a61e1fcc445f30fec9d62","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","typecheck":"tsc --noEmit","bench:generate":"bun bench/generate.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.16.0_1789679958550_0.9857482701471616","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@dzhi/ocpg","version":"0.20.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.20.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"241de5a25f40455fade80dac4cad17534f157b02","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.20.0.tgz","fileCount":3,"integrity":"sha512-dGOUa0mFsplohKHWAgqhjoSgZBKOsUb0KK5HfnjcYv5wqPwLrH7GOm1gT+jtii97b17/Nfrm3OMc6v1soh3xZw==","signatures":[{"sig":"MEYCIQDhoj8F5YTqbWKzQnljpOeKFOnxGb+pcWvBa/dSXW6/jgIhAO8eae+E3qv5CHHgBsa+oqNbtnT188ItBepUMHQq2XOW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDgppPi2ijzZ8CuPj8xEC5vjN1G3rTM+dG08GGH/ZesoQIgBS6osCpCGNoEHLMx2zX0BEl4QVLRJXZKXKwXcSzB4vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60305},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"1c1a0a6544748343de04015adfbe8eb4316caa92","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:generate":"bun bench/generate.ts","bench:thesaurus":"bun bench/generate-thesaurus.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.20.0_1789758318171_0.2702136374541635","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@dzhi/ocpg","version":"0.22.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.22.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"a2e923467a8bd9bbaa9ecabefe77062b7295a324","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.22.0.tgz","fileCount":3,"integrity":"sha512-dfvqRR8QgOPLIjpy5OhCeLHsHcYO7hl+hRKRKSdxwWkEKy8deHc6rBFpw9QamAkf7Uymz+Wj2LAMsBNgnz6dFA==","signatures":[{"sig":"MEUCIA+NgLiELeyrufaGt8KuoB+YQYgHoOC9cpcDAhqmwX8dAiEA84FmOawEkXHvPcCq1MBjqXKdqby5bSPe8tSgj6Rz45o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEu1PAs2QUDUGf37QvqYfsxuVImIYhT0IuyXYmqSUka+AiEAjpl9F94IFVPf3912HgHRWwnj4O8utr0HLVa7KnXs5rY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81901},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"2b5a470f199d69cbbb5f5d7d4c8618d66895d1d1","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:judge":"bun bench/judge.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:thesaurus":"bun bench/generate-thesaurus.ts","bench:rrf-weights":"bun bench/rrf-weights.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.22.0_1789770872497_0.13622441908199767","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@dzhi/ocpg","version":"0.23.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.23.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"1e4e7795446243346909a8c2e7e5d145e1c71eca","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.23.0.tgz","fileCount":3,"integrity":"sha512-2IqGHO5+nMklNlgmgJVLoBA1cSz7nrvkrMKzfUB/7N3u8SLzaVFQNKDYWdM2Obe6eFWcoQVwsE5isBTXya904A==","signatures":[{"sig":"MEQCIBja3azT2hPDwrVr1WE2oAqScJz2ybT79FCADt56O3IeAiBJvPGvKztaa+RZgubQ8Bai4/zDwHqXux1p4EsP3o5zHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDNeIYbbDOf5cTMRhQqeeneugsVldIsMD6nIicyRxuBWgIgPTo3mZ7NZJcAbDAj8T5ooaRODYkhw2YSCcyb891oxWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81901},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"a56d601b0569c4bd0ec71f7269a5f8e1115dc434","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:judge":"bun bench/judge.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:thesaurus":"bun bench/generate-thesaurus.ts","bench:rrf-weights":"bun bench/rrf-weights.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.23.0_1789771931915_0.38833943014778427","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@dzhi/ocpg","version":"0.25.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.25.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"4f1febb614085b19fe3b226cbbfec8739228b71f","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.25.0.tgz","fileCount":3,"integrity":"sha512-yF5Fe5s6Pakw7Vx6EWPssAPNDlW/I4fIHsOlQ6uJdYTkwH9zGEEOgvJuY2EazAW3Y0bE5uI+0hpa/igFp2Yfyg==","signatures":[{"sig":"MEYCIQCgUvVK1k/lRZsBHIs5ypgOMRVYv/mkdcBlSWHHIepJcQIhAPLb1XnJNYQxFr7vmSL/HWRXCgnk//Aauw7mSrzFjWek","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHYkgM7kLOjBjL74XNpOh7sUFN4A0YMcITPF0iDx900pAiEA5hakOMdIgYKQYXUUT2yFFyeNcQ0fqH8f0RVzJp3B0to=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69973},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"132debcf5243e5f8732cff9beda93242885403bd","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:thesaurus":"bun bench/generate-thesaurus.ts","bench:rrf-weights":"bun bench/rrf-weights.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.25.0_1789822203015_0.612006251354934","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@dzhi/ocpg","version":"0.26.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.26.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"3df47e160e69c900b531c3a36385718ae71a3e76","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.26.0.tgz","fileCount":3,"integrity":"sha512-kt2sO/zGZdveopCSxEvV6mP24cbl5mdugvsRdJJK2GbxQNU9RMJDdZgG6oy3jLxSl4kJ11k8tufO7wlLdeZEUw==","signatures":[{"sig":"MEYCIQDPKSveCDFEb/lYKwe3EbRy0jiAuN+UjICz2R6mChfcGQIhAKkpDRbDfZsuVXx9cjLb+c/lD6qPXvOcDiRcECuj6rUi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAeyqxPpq5NJRRi6SqxCKbQNTr6GAZsulqlpJgdj2P2fAiBZx4k0h5WwqPNhHaokgUNFfQQMwkCF11TizlmrQwFt7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72690},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"a0c82b874c07e72ab35ee610b87dc02e220075a8","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:thesaurus":"bun bench/generate-thesaurus.ts","bench:rrf-weights":"bun bench/rrf-weights.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.26.0_1789844655294_0.6910860865520705","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"@dzhi/ocpg","version":"0.26.1","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.26.1","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"84cb6f4c09a321c047f868986b5a9aa1a25ab286","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.26.1.tgz","fileCount":3,"integrity":"sha512-Ur1YHsKwraa5CEfK3kQRB3BPrqJQarMKHnsiAObcbDGOsY9IeY0QXMFsg9XIvcXbV22K6FCMIlwiSoponnVCdg==","signatures":[{"sig":"MEQCIGkam+9wFjYzTDFnyoBvStxTwBl1L8hhP4T9s4RE5L4PAiBAod2EsGtObK/qEXnbyrIMb89V/cgfa21fDBmCdftIvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD8mtwPwx0YzzbVcGc1bvF1KXxDnHQl3FlZBbR47L62gwIhAJn+lxW4fhvVtgWj7wurWvFb3dLxRbyOSyLLBwk9fS1R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72632},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"d83520e923565bc4231f635233798eb65f18a813","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.26.1_1789848929896_0.6582971418222581","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@dzhi/ocpg","version":"0.27.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.27.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"9756bfe34001b0516a33fc4b8cd0dab60ee1a2bb","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.27.0.tgz","fileCount":3,"integrity":"sha512-sPasnYqI16pGCHQoFaTZ2EDuQi5GhuEGfpDFaquhb6A9MV+Hi5ogwRYidiMfiFqjrRpI/1f4FCbhaIVvtOMCJw==","signatures":[{"sig":"MEUCIA9ZQMkN7TMgVNPoX429ps/eWzkTuIDIdvdapDAU3rEyAiEAl57lxrZmw2GLaq09KXWHoK+qpny1CKTfLmM0A+4ccLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDYomo+6aJCbALyiyHGX/GxnLvj+kqXvIAnBSXIBeYV7AiEAwfUk2ppu54WjTnc9SNozPCYooUI4boq8CffAN0+1gVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":77764},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"4b000cd465edd1649222237f79fe6e1f4e6cac80","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts","bench:cross-session":"bun bench/cross-session.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.27.0_1789903641005_0.6767064211503386","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@dzhi/ocpg","version":"0.30.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.30.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"1630497e06be66c12c04cf1620002322f8102dea","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.30.0.tgz","fileCount":3,"integrity":"sha512-BRfOGhi/cAzAZsSz+1YsKhgL5G2Abfdxyc87KAymiUwukdio7vu4wROfkRQcXkTKxcLDNbVGbLOi05a8ia6POA==","signatures":[{"sig":"MEUCICJ+tYIGtn5n0ofCWQlu3cinBF9ECk9UWKe5ZlEWbCCWAiEAl7L3rw3BjudNH4R+oWgu7rkwK99SImrXTffmCboKv/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDdi5E3GUpSEiA3MQ0EENQYjL/ThCK9YZVCtSJSQcpxzQIhAJxb+v8fiNNtpUkOaQfyB1b3d5HVvN1QWfxwNFcESahg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86028},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"78c9efcfbbb187686376b828f7570aeba69682b1","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts","bench:cross-session":"bun bench/cross-session.ts","bench:qqp-consolidate":"bun bench/qqp-consolidate.ts","bench:ocpg-shaped-consolidate":"bun bench/ocpg-shaped-consolidate.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.30.0_1789911264895_0.30113167969276167","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@dzhi/ocpg","version":"0.40.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.40.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"99e564ea093ace1120e65acbd57fdd347be031b6","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.40.0.tgz","fileCount":3,"integrity":"sha512-mwr5EgOoWGdWRp5Qf12wo9bxw+UsviH7yxih6L3Zs0I80Q3tsM1EhlbFKZan4CmRCFHWC4se/XUYk5zE0HcPNg==","signatures":[{"sig":"MEQCIH283hmPafXKnLBhN9VfZz1xd1CLREpCgdteaTRYXPimAiAM8axYwjLLtmBJYgOMKQ9md7M9AyfmPHSxs7G8AiXwXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIESKEwqyxU0vA+ZLtJ1ap+64bUeKrg0P3ErUMFm0SKF4AiEA5wxw8ezjY7ivRs4IouSLw0DmfRaqiF0hvQqkTNeAapw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98350},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"55016389c2c454ae7a0480bdef4bc72a45403352","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts","bench:cross-session":"bun bench/cross-session.ts","bench:qqp-consolidate":"bun bench/qqp-consolidate.ts","bench:ocpg-shaped-consolidate":"bun bench/ocpg-shaped-consolidate.ts","bench:embeddinggemma-calibration":"bun bench/embeddinggemma-calibration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.40.0_1790068368832_0.15434957436370134","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"@dzhi/ocpg","version":"0.41.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.41.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"b1f8e67ba0d3598bfdc150568bf3f17dd2738c1a","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.41.0.tgz","fileCount":3,"integrity":"sha512-MQRmZl8TaA6KOv3FlS+Z51n1RwGSWclP2G1JR7rBhDZlEj42+4g0luV4viZ4PpQUC74FZl37+yyO9VLs5PFwrg==","signatures":[{"sig":"MEQCIGgQBy1BsCp6Ca5eRoDnMYAw0u4MZZVDjiPcnKXYMjykAiAMKWYY8pcKxv3ZvnMBnlSLB3/4ZzIR/wh9vHBFOyD3Pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCjwzCprVaLriPi13rTLiWeegHGjt2nUc+PcqkhabJuygIhALveRqHtbLUxDtBUsG6/OjS9mFjA7foVB/4CKfAipndF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105204},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"bd3c2bd5ca25b260e4386c071614c340f6d42463","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts","bench:cross-session":"bun bench/cross-session.ts","bench:qqp-consolidate":"bun bench/qqp-consolidate.ts","bench:ocpg-shaped-consolidate":"bun bench/ocpg-shaped-consolidate.ts","bench:embeddinggemma-calibration":"bun bench/embeddinggemma-calibration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.41.0_1790073673598_0.9345270337012586","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@dzhi/ocpg","version":"0.42.0","keywords":["opencode-plugin","opencode","postgres","memory"],"license":"MIT","_id":"@dzhi/ocpg@0.42.0","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"homepage":"https://github.com/pentago/ocpg#readme","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"dfef3da1c39b750bdd1e342ac79d91460f6714af","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.42.0.tgz","fileCount":3,"integrity":"sha512-JnAs9cMVfvigyHOSOGWGWv3pAKe5FzA1FpjY23XAHZtiw6ib2nTnHD5i9eEzD8S0hMvSAk09LZU1xAF9+NMj2w==","signatures":[{"sig":"MEQCIDB22GOfMN+w1bYqEwPihjemEHeL2S6bWopRwoTmla1GAiAg6xOKmhQjJLAh2lXSXBiFP0s1t9S+iOvgwAvvZfuMHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDGtoCt6lUZVMcgTFhxPKd5EzP2qFfBqpMb2LWNXRAl1QIhAOFOoZ7Mnr/vEq3FPmeewsvA+/jeW2DtiJOU3WKH4efU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110223},"main":"ocpg.ts","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"159de41098bc7de9ccba8969cf6f11eb8f075e8f","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts","bench:cross-session":"bun bench/cross-session.ts","bench:qqp-consolidate":"bun bench/qqp-consolidate.ts","bench:ocpg-shaped-consolidate":"bun bench/ocpg-shaped-consolidate.ts","bench:embeddinggemma-calibration":"bun bench/embeddinggemma-calibration.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/ocpg_0.42.0_1790109129882_0.3789418005547722","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"_id":"@dzhi/ocpg@0.43.0","bugs":{"url":"https://github.com/pentago/ocpg/issues"},"dist":{"shasum":"801295dfb71cc86ecb33f0ce6f15fffd6dd82cab","tarball":"https://registry.npmjs.org/@dzhi/ocpg/-/ocpg-0.43.0.tgz","fileCount":3,"integrity":"sha512-ewbv1mOehGc0zIkVzkmiN7sjGRqHqZIS9ACIulzmsVK3WpkhZqBI3oPU6py7F1GECQkMsNUfx/UX9dqLH+onYQ==","signatures":[{"sig":"MEYCIQDlMJfL+B2Nb8jK49YxTz6d5RktieUV9vuyRHYbjDItbAIhAIAI9iYlOsuffCWSaB8WZtSisyI4F8A5TWq/SMWoToVy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDVqGMWe51eDJge99hgBAOhuRfJKdb3fVibWm5jo5i5eAIhAKi4QLXzCEsRMWmKMBB8hL4fFO83Ckh21fZvW8hhspCI"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dzhi%2focpg@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110225},"main":"ocpg.ts","name":"@dzhi/ocpg","type":"module","exports":{".":"./ocpg.ts"},"gitHead":"44216349fcadd09cd21fe9a98b23041be353b976","license":"MIT","scripts":{"test":"bun test","bench":"bun bench/run.ts","check":"biome check .","format":"biome format --write .","backfill":"bun deploy/backfill.ts","typecheck":"tsc --noEmit","bench:embed":"OCPG_USER=ocpguser OCPG_PORT=5433 OCPG_PASSWORD=bench bun bench/embed.ts","bench:report":"bun bench/report.ts","bench:backends":"bun bench/ollama-backends.ts","bench:generate":"bun bench/generate.ts","bench:rrf-slots":"bun bench/rrf-slots.ts","bench:rrf-weights":"bun bench/rrf-weights.ts","bench:cross-session":"bun bench/cross-session.ts","bench:qqp-consolidate":"bun bench/qqp-consolidate.ts","bench:ocpg-shaped-consolidate":"bun bench/ocpg-shaped-consolidate.ts","bench:embeddinggemma-calibration":"bun bench/embeddinggemma-calibration.ts"},"version":"0.43.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9134f601-b514-4738-89e2-d951d99af652"}},"homepage":"https://github.com/pentago/ocpg#readme","keywords":["opencode-plugin","opencode","postgres","memory"],"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"_npmVersion":"11.19.0","description":"Postgres-backed persistent memory plugin for OpenCode","directories":{},"maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"_nodeVersion":"24.21.0","dependencies":{"@opencode/plugin":"^2.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.4.2","typescript":"^7.0.2","@biomejs/biome":"^2.5.14"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ocpg_0.43.0_1790159885227_0.4595433919947671"}}},"time":{"created":"2026-09-14T17:03:32.493Z","modified":"2026-09-23T10:38:05.650Z","0.1.0":"2026-09-14T17:03:32.850Z","0.4.0":"2026-09-14T18:41:04.853Z","0.4.1":"2026-09-14T20:55:58.156Z","0.5.0":"2026-09-15T17:36:20.150Z","0.6.0":"2026-09-16T09:31:30.567Z","0.6.1":"2026-09-16T09:48:45.784Z","0.6.2":"2026-09-16T10:43:56.256Z","0.7.0":"2026-09-16T11:53:58.383Z","0.8.0":"2026-09-16T12:19:55.253Z","0.10.0":"2026-09-16T19:46:35.694Z","0.11.0":"2026-09-17T09:46:02.190Z","0.12.0":"2026-09-17T11:35:03.990Z","0.14.0":"2026-09-17T19:40:24.178Z","0.15.0":"2026-09-17T20:39:55.235Z","0.16.0":"2026-09-17T21:19:18.638Z","0.20.0":"2026-09-18T19:05:18.267Z","0.22.0":"2026-09-18T22:34:32.580Z","0.23.0":"2026-09-18T22:52:11.992Z","0.25.0":"2026-09-19T12:50:03.101Z","0.26.0":"2026-09-19T19:04:15.380Z","0.26.1":"2026-09-19T20:15:29.982Z","0.27.0":"2026-09-20T11:27:21.087Z","0.30.0":"2026-09-20T13:34:24.985Z","0.40.0":"2026-09-22T09:12:48.924Z","0.41.0":"2026-09-22T10:41:13.693Z","0.42.0":"2026-09-22T20:32:09.963Z","0.43.0":"2026-09-23T10:38:05.316Z"},"bugs":{"url":"https://github.com/pentago/ocpg/issues"},"license":"MIT","homepage":"https://github.com/pentago/ocpg#readme","keywords":["opencode-plugin","opencode","postgres","memory"],"repository":{"url":"git+https://github.com/pentago/ocpg.git","type":"git"},"description":"Postgres-backed persistent memory plugin for OpenCode","maintainers":[{"name":"dzhi","email":"0xdzhi@pm.me"}],"readme":"# ocpg\n\nPostgres-backed persistent memory for [OpenCode](https://opencode.ai).\n\n## In simple terms\n\nYour OpenCode agent normally forgets everything the moment a session\nends. ocpg fixes that: it gives the agent a real memory that survives\nacross sessions and across projects, stored in your own Postgres\ndatabase.\n\n**What it's good at:**\n\n- **It remembers on its own.** Say \"remember that we use jose, not\n  jsonwebtoken\" and it's stored, word for word, with no extra step. The\n  agent can also choose to save things itself when it decides something\n  is worth keeping.\n- **It finds things even if you don't ask the same way twice.** Search\n  works both by keyword and by meaning, so asking about \"the API rate\n  limit\" still finds a memory that only says \"requests per minute\" - you\n  don't have to remember your own wording.\n- **It keeps project knowledge separate from general knowledge**,\n  automatically. A fact about *this specific customer's setup* stays out\n  of every other project. A fact about *your tooling in general* is\n  available everywhere. You don't have to manage folders or configure\n  this - the agent picks the right one when it saves something, and you\n  can correct it if it gets it wrong.\n- **It corrects itself properly.** When something changes, the old\n  memory doesn't just sit there contradicting the new one - it's marked\n  as replaced and stops showing up, while still being there if you ever\n  want to check the history.\n- **It never gets in the way.** If the database or the search engine is\n  slow or offline, the agent just keeps working with whatever it already\n  has - memory is a helpful extra, never something that can break or\n  stall a request.\n- **Nothing disappears by accident.** Cleaning up duplicate memories is\n  something you trigger on demand, you can preview exactly what would be\n  removed before committing to it, and it always shows you exactly what\n  it removed before it's gone for good.\n- **It's yours.** Everything runs on your own Postgres database and your\n  own local embedding model (via Ollama) - no data leaves your machine,\n  no cloud service, no API key required.\n\nIf you only read one more section, read \"Using it well\" below - a\nhandful of habits that make the difference between a memory system that\nquietly helps and one that quietly fills up with noise.\n\n---\n\n## Technical overview\n\nEvery memory is a row in one Postgres `memories` table. Four things\nhappen around it:\n\n**1. Memories get in - three ways**\n- The agent calls `memory_remember` when it decides something is worth\n  keeping.\n- You say \"remember that…\", \"don't forget…\", or \"keep in mind…\" in a\n  prompt, and the text after the phrase is stored verbatim. This is a\n  fixed regex, not a model call - deterministic and auditable. Questions\n  (\"remember when X broke?\") are deliberately skipped.\n- On write, the row is embedded (`embeddinggemma:300m` via Ollama)\n  fire-and-forget, so a slow or dead embedder never delays the write\n  confirmation.\n\n**2. Memories come back - automatically, ranked by relevance to what you\njust asked.**\nBefore every model request, ocpg reads your latest message and runs two\nsearches at once:\n- **Keyword search** - your prompt becomes an OR-of-stemmed-words\n  Postgres full-text query.\n- **Embedding search** - the same prompt is embedded and compared by\n  cosine similarity (pgvector HNSW).\n\nThe two ranked lists merge: the vector list's **top 2 rows are reserved\nunconditionally**, and the rest is filled by reciprocal rank fusion (RRF,\nk=60). This is why phrasing something differently than you originally\nstored it still finds the memory - the keyword half alone can't do that.\nNear-duplicates are collapsed out, the top 5 survive, and they're\ninjected into the system prompt as a `<persistent-project-memory>`\nblock.\n\nIf Ollama is unreachable, the vector half is skipped and search silently\ndegrades to keyword-only. If the database is unreachable, injection is\nskipped entirely. Neither ever blocks or fails a model request - the\ninjection query has a hard 1s deadline.\n\n**3. Duplicates get cleaned up - on demand, never automatically.**\nWrites are never rejected. `memory_consolidate` is the cleanup tool, and\nyou (or the agent) run it when you want. It makes two passes - trigram\nwording similarity, then embedding meaning similarity - keeps the newest\nof each duplicate group, and **returns the text of everything it\ndeleted** so nothing is lost silently.\n\n**4. Corrections replace, not just add.**\nCall `memory_remember` with `supersedes: <id>` when a new memory corrects\nor reverses an older one. The old memory is marked as superseded (not\ndeleted) and stops showing up in recall or injection, so a correction\ncan't end up sitting next to the outdated fact it was meant to replace.\n`memory_recall` with `includeSuperseded: true` brings it back into view,\nnoting what replaced it.\n\n### Scoping: the one concept worth understanding\n\nEvery memory has a **type**, and the type decides who can see it:\n\n- `stack_fact` - about your tooling, portable across every project using\n  the same stack (\"our Terraform RDS module needs `ignore_changes`\").\n  Visible everywhere.\n- `project_fact` (the default) - true about this specific\n  project/customer only (\"customer A's staging DNS is flaky\"). Visible\n  **only from its origin project**.\n\nThe test when storing something: *would this help in a different\ncustomer's repo using the same tools?* Yes → `stack_fact`. No →\n`project_fact`.\n\n### Using it well\n\n- **Let the agent store things, but say \"remember that…\" when it\n  matters.** The keyword trigger is a guarantee; the agent's own\n  judgment is not.\n- **Get the type right.** A `project_fact` that should have been a\n  `stack_fact` is invisible in every other project - that's the most\n  common way a useful memory goes missing.\n- **Run `memory_consolidate` occasionally**, not constantly. It's cheap\n  and it shows you what it removed before you lose anything.\n- **Phrase recall queries naturally.** Hybrid search means you don't\n  have to remember your original wording - meaning-based matching covers\n  the gap.\n- **Keep memories self-contained.** \"Use jose, not jsonwebtoken, for\n  Edge compatibility\" survives out of context; \"we decided on the second\n  option\" does not.\n- **Use `supersedes` when you correct something**, not a second\n  unrelated memory. Two memories that disagree with no link between them\n  is exactly the situation `supersedes` exists to avoid.\n\n---\n\nUses the `memories` table (`content`, `tags`, `session_id`, `project`,\n`created_at`, `search_vector`, `embedding`, `memory_type`,\n`access_count`, `last_accessed_at`, `updated_at`, `superseded_by`) plus a\n`memory_recalls` table (which sessions have recalled a memory, feeding a\nsmall ranking tiebreak) and the `pg_trgm` + `vector` extensions, and\nexposes `memory_recall` / `memory_remember` / `memory_forget` /\n`memory_update` / `memory_consolidate` / `memory_tags` / `memory_retag`\ntools.\n\n## Install\n\nIn `opencode.json`:\n\n```json\n{\n  \"plugin\": [\n    \"@dzhi/ocpg\"\n  ]\n}\n```\n\n## Connecting to the database\n\nNeed a Postgres instance? The [`deploy/`](./deploy) directory ships a\nhardened Docker Compose setup (localhost-only, `memories` schema\nauto-created on first boot, plus an optional Ollama service as the\nembedding backend) - see [`deploy/README.md`](./deploy/README.md).\n\nConfigure the connection via shell environment variables:\n\n```bash\nexport OCPG_HOST=\"localhost\"\nexport OCPG_PORT=\"5432\"\nexport OCPG_USER=\"ocpguser\"\nexport OCPG_PASSWORD=\"your-postgres-password\"\nexport OCPG_DB=\"ocpg\"\nexport OCPG_SSL=\"disable\"\n```\n\n| Env var            | Default              |\n| ------------------ | -------------------- |\n| `OCPG_HOST`         | `localhost`           |\n| `OCPG_PORT`         | `5432`                |\n| `OCPG_USER`         | `ocpguser`             |\n| `OCPG_DB`           | `ocpg`                 |\n| `OCPG_SSL`          | `disable`              |\n| `OCPG_INJECTION`    | `relevance`             |\n| `OCPG_OLLAMA_HOST`  | `localhost`              |\n| `OCPG_OLLAMA_PORT`  | `11434`                   |\n| `OCPG_EMBED_MODEL`  | `embeddinggemma:300m`      |\n\n`OCPG_SSL` accepts `disable`, `prefer`, `require`, `verify-ca`, or\n`verify-full` (anything else falls back to `disable`). It defaults to\n`disable` for the usual localhost setup - **set it to `require` or\nstricter whenever `OCPG_HOST` is not local**, otherwise the password\nhandshake crosses the network in plaintext.\n\nAnything under `\"options\"` in `opencode.json` is ignored - configuration\nis env-only.\n\n## How memory works\n\nVisibility is **type-based**:\n\n| Type           | Visibility                          | What it's for                                                                                                                                             |\n| -------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `stack_fact`   | Global                                | True about the tooling/stack itself - portable to any project using the same stack (a Terraform module quirk, a Helm convention)                          |\n| `project_fact` | Origin project only (default)          | True about this specific project/customer only; pass `global: true` on `memory_recall` to reach across projects                                          |\n| `episodic`     | Global (same rule as `stack_fact`)      | Reserved for a future feature; nothing writes it automatically today, but a manual `memory_remember` with this type stores and is visible everywhere, same as `stack_fact` |\n\n`memory_forget` / `memory_update` follow the same rule: a foreign\nproject's `project_fact` is off-limits (the call fails and names the\nowning project); the global type (`stack_fact`) is maintainable from any\nproject.\n\n`access_count` and `last_accessed_at` are updated on every\n`memory_recall` read but nothing currently ranks by them - they're\ncollected as data for possible future use, not consumed by any ranking\ntoday. (An access-frequency ranking was tried and reverted: bumping\nexactly the returned top-5 created a rich-get-richer loop where a few\nrows pinned the top slot after a handful of runs.)\n\n`memory_recall` also records which session did the recalling in a\nseparate `memory_recalls` table - a memory recalled from several\ndistinct sessions gets a small ranking tiebreak (capped, weighed well\nbelow the same-project boost). Recalling it many times from the *same*\nsession doesn't compound the count, which is the deliberate difference\nfrom `access_count`'s reverted attempt above.\n\n## How injection picks memories\n\nBy default the block is **relevance-ranked, not recency-ranked**: the\nuser's latest prompt is turned into a full-text query (OR of stemmed\nwords) over every **visible** memory (global types from anywhere,\n`project_fact` from its origin project), ranked by relevance with a\nsmall same-project tiebreak, top 5 injected - each line labeled with its\norigin project. When neither search half matches the prompt, it falls\nback to the latest visible memories, newest first. Near-duplicate\nmemories (>=80% trigram content similarity) are collapsed out of this\nblock automatically before the top 5 are chosen, so five near-identical\nrestatements of one fact won't crowd out everything else. Injected\ncontent is truncated to 600 characters per memory.\n\nSet `OCPG_INJECTION=recency` to restore the old blind-last-5 behavior\ninstead: no prompt-matching, just the most recent visible memories.\n\nRetrieval is **hybrid**: the prompt runs through keyword full-text\nsearch and, when Ollama is reachable, through embedding search\n(`embeddinggemma:300m`, pgvector HNSW, cosine) - the two ranked lists\nmerge with 2 reserved embedding slots plus reciprocal rank fusion (k=60)\nfor the rest (bench-verified: R=2 recovers half the real-corpus\nparaphrase gap at zero synthetic cost), so exact-word hits and\nsaid-differently paraphrase hits both surface. The internal benchmark\nshows hybrid recall never worse than either half alone at 485/5k/50k\nrows, and `embeddinggemma:300m` outperforming the previous default\n(`bge-m3`) on every quality metric while running roughly 10x faster\nwarm ([`bench/README.md`](./bench/README.md)). Writes are embedded\nfire-and-forget; rows from before this feature carry no embedding until\n`bun run backfill` fills them (see\n[`deploy/README.md`](./deploy/README.md)).\n\nIf Ollama is unreachable - or the database predates the embedding column\n- search silently degrades to keyword-only; nothing breaks. A cold model\nload is over the 1s injection deadline, so the plugin warms the model at\nsession start and pins it with `keep_alive`; a warm embed runs\nconcurrently with the keyword query, well inside the query budget.\n\n## Tools\n\nSeven agent tools are registered: `memory_remember` (store),\n`memory_recall` (search), `memory_forget` (delete by id), `memory_update`\n(rewrite an existing memory, keeping its original learned date),\n`memory_consolidate` (remove near-duplicates on demand),\n`memory_tags` (list tags currently in use, with counts, to reuse an\nexisting tag instead of minting a near-duplicate), and `memory_retag`\n(rename a tag across every memory that has it, once `memory_tags` shows\ntwo variants of the same tag exist). The agent reads their usage rules\nfrom the tool schemas - as the user, the things worth knowing are:\n\n- Visibility follows the type (see the table above); `memory_recall`\n  takes `global: true` to also search other projects' `project_fact`\n  memories (`stack_fact` is always searched regardless of this flag).\n  `memory_tags` takes the same flag, plus `limit` (default 200).\n  `memory_retag` follows the same project-boundary rule as\n  `memory_forget`/`memory_update` (no `global` flag - a rename's reach\n  is whatever it's already allowed to touch, not something to opt into\n  widening).\n- Duplicate writes are **never rejected** - `memory_remember` is a plain\n  store. Near-duplicates are collapsed out of the injected block\n  automatically, and `memory_consolidate` cleans them up when you ask.\n- `memory_remember` takes an optional `supersedes: <id>` to mark an\n  earlier memory as replaced rather than just narrating the change in\n  prose - see \"Supersede tracking\" below.\n\nWrites are capped at 4000 characters of content, 10 tags, and 64\ncharacters per tag; oversized writes are rejected with the actual size\nrather than silently truncated. A write over 700 characters still\nsucceeds, but the response includes a note that most of it won't fit in\nthe 600-character injected block - a nudge to keep entries short, not a\nrejection. Memories carry a `type` (`stack_fact`, `project_fact` default,\nor `episodic` - see the visibility table above).\n\n### Automatic capture\n\nSaying \"remember this/that\", \"remember to ...\", \"don't forget ...\", or\n\"keep in mind ...\" in a prompt stores the text following the phrase\nverbatim, tagged `user-requested` - matched by a fixed pattern, not an\nLLM call, so it's deterministic and auditable. Questions using the\ntrigger phrase (\"remember when the pool broke?\") are deliberately not\ncaptured, since they're asking about the past, not asking to store\nsomething new - only imperative uses (\"remember that when X happens, do\nY\") trigger it.\n\nThis runs alongside the model's own judgment to call `memory_remember` -\nit doesn't replace it, it's a safety net for the cases where you\nexplicitly signal \"this matters\" and want it captured regardless of\nwhether the model separately decides to store it.\n\n### Duplicates\n\nWrites are never rejected for duplicates - cleanup is\n`memory_consolidate`'s job, run on demand. Pass `dryRun: true` to preview\nexactly what a real run would remove, without deleting anything - review\nthe output, then call again without `dryRun` to commit. (The preview\nreflects the corpus at that moment; if memories are added in between, a\nfollow-up real call re-evaluates independently and may not match\nexactly.) It runs two passes and reports which one found each removed\ngroup:\n\n- **`[wording]`** - trigram content similarity (>=80%): catches\n  restatements that share most of their wording (the old\n  FTS-on-first-60-chars rule missed 28 such pairs on the real corpus).\n- **`[meaning]`** - embedding cosine similarity\n  (`embeddinggemma:300m`, >=0.83): catches the same fact stated in\n  completely different words, which trigram similarity structurally\n  cannot reach. Only memories that have an embedding participate, and\n  templated auto-generated content (background-task status logs,\n  session-compaction summaries, per-app checklist entries) is excluded -\n  real-corpus testing found that boilerplate sentence shapes drive\n  cosine similarity high between genuinely different facts (different\n  task IDs, sessions, apps).\n- **`[meaning-uncertain]`** - a pair that matched by meaning, but with a\n  specific number, path, or name that differs between them (a rate limit\n  of 100 vs 500; two different file paths). Close enough to look like a\n  duplicate, different enough that deleting either side could lose a\n  real fact - so neither is touched. Review the pair yourself and use\n  `memory_update` if it turns out to be the same fact after all.\n\nBoth passes (`[wording]`, `[meaning]`) keep the newest of every group and\ndelete the rest (capped at 25 groups per pass per run), returning the\nremoved texts so the agent can merge back any unique detail with\n`memory_update`. `[meaning-uncertain]` pairs are the exception - nothing\nis deleted, they're only reported. Both passes refuse to cluster across\na project boundary that `memory_forget`/`memory_update` already won't\ncross. Near-duplicates are also collapsed out of the\ninjected block automatically between consolidations. The wording pass\nneeds the trgm index; fresh installs from [`deploy/`](./deploy) get it\nautomatically, existing databases run the upgrade block in\n[`deploy/README.md`](./deploy/README.md). The meaning pass needs the\n`embedding` column populated - rows Ollama never reached simply aren't\ncandidates for it.\n\nThe 0.83 meaning-similarity threshold was calibrated and independently\nre-verified against two different embedding models (the original\n`bge-m3` and the current `embeddinggemma:300m`) - both land on the same\nvalue, and `embeddinggemma:300m` actually shows a cleaner separation\nbetween duplicates and distinct pairs than `bge-m3` did.\n\nIf the database is unreachable, memory injection is skipped and the\ntools return a generic error - a slow or dead database never blocks a\nmodel request.\n\n### Supersede tracking\n\nA correction or a reverted decision used to leave the OLD memory in\nplace, discoverable by recall/injection exactly like a current fact -\nthe only signal it was reverted was a *later*, unrelated memory\nnarrating the change in prose, which recall/injection have no reason to\nalways return together. `memory_remember` now takes an optional\n`supersedes: <id>`: the new memory is inserted and the old one is marked\n`superseded_by` in a single transaction (either both happen or neither\ndoes - a rejected supersede, e.g. across a project boundary, rolls back\nthe whole write). A superseded memory is excluded from `memory_recall`\nand injection by default - it is not deleted, just no longer treated as\ncurrent - and stays visible with `memory_recall`'s `includeSuperseded:\ntrue`, annotated with what replaced it. `memory_consolidate` also skips\nsuperseded rows entirely on both passes: they are already a resolved,\nexplicit decision, not an accidental duplicate to guess about. Forgetting\nthe *newer* memory un-supersedes the old one (`ON DELETE SET NULL`)\nrather than leaving a dangling reference; forgetting or updating the\nsuperseded memory itself works as normal, since ownership checks are\nseparate from \"is this current\".\n\n## Development\n\n```bash\nbun install\nbun run check      # biome lint\nbun run typecheck  # tsc --noEmit\nbun test           # integration suite, needs a live Postgres with pg_trgm\n```\n\nEnable the commit hooks once per clone\n([pre-commit](https://pre-commit.com)):\n\n```bash\npre-commit install\n```\n\nIt runs lint and typecheck on commits that touch `.ts` files. `bun test`\nis left out of the hook because it writes to a real database - CI runs\nit against a throwaway Postgres service container instead.\n\nThere's also a retrieval benchmark (`bench/`) that measures\nrecall/latency of candidate retrieval strategies against synthetic data\nwith known ground truth - see [`bench/README.md`](./bench/README.md) if\nyou're evaluating a ranking or retrieval change.\n","readmeFilename":"README.md"}