{"_id":"@agentplat/collective-quorum-postgres","_rev":"9-59ced998ae4afb811653f800206c87ec","name":"@agentplat/collective-quorum-postgres","dist-tags":{"agentplat-stage-ffca668731c9":"0.3.0-beta.4","agentplat-stage-dbd047c3c9a9":"0.3.0-beta.4","agentplat-stage-dc16b2267584":"0.3.0-beta.5","next":"0.3.0-beta.8","latest":"1.1.0"},"versions":{"0.3.0-beta.4":{"name":"@agentplat/collective-quorum-postgres","version":"0.3.0-beta.4","license":"Apache-2.0","_id":"@agentplat/collective-quorum-postgres@0.3.0-beta.4","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"cb64dc7850f61cc812c583b56dab07433148eb13","tarball":"https://registry.npmjs.org/@agentplat/collective-quorum-postgres/-/collective-quorum-postgres-0.3.0-beta.4.tgz","fileCount":33,"integrity":"sha512-1hCSBPAcSkHMBMbZwcGnOmWATnMVoGisBvy7dIX3LwV5Lv4trhUyqLhsW+ZYQ2egs8D0YcnTwHdOVvo9DEW+8Q==","signatures":[{"sig":"MEUCIA5bmPlGxoSvDHtcK1fMIrJ+dDq+mFs52RMufeD6djvzAiEA3jtung/WX51PXHAuXgsb27yXRKMH1T2c2w0wQabLq0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97585},"main":"./dist/index.js","type":"module","_from":"file:/tmp/agentplat-publish-jABHQZ/tarballs/agentplat-collective-quorum-postgres-0.3.0-beta.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./agreement":{"types":"./dist/agreement.d.ts","import":"./dist/agreement.js"}},"scripts":{"test":"pnpm run build && node --test tests/*.test.mjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"douglas-grishen","email":"douglas@grishen.com"},"_resolved":"/tmp/agentplat-publish-jABHQZ/tarballs/agentplat-collective-quorum-postgres-0.3.0-beta.4.tgz","_integrity":"sha512-1hCSBPAcSkHMBMbZwcGnOmWATnMVoGisBvy7dIX3LwV5Lv4trhUyqLhsW+ZYQ2egs8D0YcnTwHdOVvo9DEW+8Q==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"_npmVersion":"10.8.2","description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"pg":"^8.13.1","@types/pg":"^8.11.10","@types/node":"^20.10.0","@agentplat/postgres":"^0.3.0-beta.4","@agentplat/collective-quorum":"^0.3.0-beta.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/collective-quorum-postgres_0.3.0-beta.4_1786996628208_0.16132531097481162","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.5":{"name":"@agentplat/collective-quorum-postgres","version":"0.3.0-beta.5","license":"Apache-2.0","_id":"@agentplat/collective-quorum-postgres@0.3.0-beta.5","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"fa9e232078e03c93f75f0df89c485866f93747d9","tarball":"https://registry.npmjs.org/@agentplat/collective-quorum-postgres/-/collective-quorum-postgres-0.3.0-beta.5.tgz","fileCount":33,"integrity":"sha512-slQshDv9PHK1UP+6mHiGk/G2/q6NtqFRrzjUzjKHbTd3o9IUgxLVGrjlBz27lyzw2AdN0avF9W0MsxRZyva8ug==","signatures":[{"sig":"MEUCIHPIun0bsUbFOzOgLaUgcxZu+DmrYDKC/NYIedIRjqhCAiEA06QripO3Nta/2eEEyd/CK8rgBkaTzYigbFXT2pK2SvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-quorum-postgres@0.3.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97585},"main":"./dist/index.js","type":"module","_from":"file:/tmp/agentplat-publish-QbF2qw/tarballs/agentplat-collective-quorum-postgres-0.3.0-beta.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./agreement":{"types":"./dist/agreement.d.ts","import":"./dist/agreement.js"}},"scripts":{"test":"pnpm run build && node --test tests/*.test.mjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:428023c6-a5a8-43c6-bec2-bec24ada4aca"}},"_resolved":"/tmp/agentplat-publish-QbF2qw/tarballs/agentplat-collective-quorum-postgres-0.3.0-beta.5.tgz","_integrity":"sha512-slQshDv9PHK1UP+6mHiGk/G2/q6NtqFRrzjUzjKHbTd3o9IUgxLVGrjlBz27lyzw2AdN0avF9W0MsxRZyva8ug==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"_npmVersion":"11.17.0","description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"pg":"^8.13.1","@types/pg":"^8.11.10","@types/node":"^20.10.0","@agentplat/postgres":"^0.3.0-beta.5","@agentplat/collective-quorum":"^0.3.0-beta.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-quorum-postgres_0.3.0-beta.5_1787371895543_0.5483767753206683","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.7":{"name":"@agentplat/collective-quorum-postgres","version":"0.3.0-beta.7","license":"Apache-2.0","_id":"@agentplat/collective-quorum-postgres@0.3.0-beta.7","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"4b705b27c12fa972e53271bf3fc79bd558e50e49","tarball":"https://registry.npmjs.org/@agentplat/collective-quorum-postgres/-/collective-quorum-postgres-0.3.0-beta.7.tgz","fileCount":33,"integrity":"sha512-7Cex0pkWkhDGk2XlfNY79A2zeuYBHTfEhHdCFTzdhoW+7UTV0XSCINbhhHaZnlTynA8p99V0myx6wmwbCXXhwA==","signatures":[{"sig":"MEUCIQDOF4m+v0sJ5P8Agiw7NIiIbvh0PbxG4ObH5a3NY/Vt7gIgV4DNJD+V785r2Mg5wf06OTVMiYfA65yrdFyJ7WCrXZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-quorum-postgres@0.3.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98003},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-0.3.0-beta.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./agreement":{"types":"./dist/agreement.d.ts","import":"./dist/agreement.js"}},"scripts":{"test":"pnpm run build && node --test tests/*.test.mjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"douglas-grishen","email":"douglas@grishen.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:d03dea14-12b6-4f7d-b39d-8a620bfbf7b3"}},"_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-0.3.0-beta.7.tgz","_integrity":"sha512-7Cex0pkWkhDGk2XlfNY79A2zeuYBHTfEhHdCFTzdhoW+7UTV0XSCINbhhHaZnlTynA8p99V0myx6wmwbCXXhwA==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"_npmVersion":"11.19.0","description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pg":"^8.13.1","@types/pg":"^8.11.10","@types/node":"^20.10.0","@agentplat/postgres":"^0.3.0-beta.7","@agentplat/collective-quorum":"^0.3.0-beta.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-quorum-postgres_0.3.0-beta.7_1788979652117_0.31004058365709564","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.8":{"name":"@agentplat/collective-quorum-postgres","version":"0.3.0-beta.8","license":"Apache-2.0","_id":"@agentplat/collective-quorum-postgres@0.3.0-beta.8","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"47263fe7b2b1d5138a586a7cd5048620b5607631","tarball":"https://registry.npmjs.org/@agentplat/collective-quorum-postgres/-/collective-quorum-postgres-0.3.0-beta.8.tgz","fileCount":33,"integrity":"sha512-xBuIlgfuxjF3NcQPm1tCoL6hvv32yD0HO2JKvbR9iRzCoCc63Okz9qR7qXdVGQ9jm81PcsMlnrPUySQOcVKnOQ==","signatures":[{"sig":"MEUCIQDVQq0KOHbFWMEKcOazj7vgTZIampAwtTCEAWsZuLMwIAIgSyG555mHDxqR7d27L5n0LRjMLtZ0LhZXfu0J6cEYJd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-quorum-postgres@0.3.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98059},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-0.3.0-beta.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./agreement":{"types":"./dist/agreement.d.ts","import":"./dist/agreement.js"}},"scripts":{"test":"pnpm run build && node --test tests/*.test.mjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"douglas-grishen","email":"douglas@grishen.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:d03dea14-12b6-4f7d-b39d-8a620bfbf7b3"}},"_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-0.3.0-beta.8.tgz","_integrity":"sha512-xBuIlgfuxjF3NcQPm1tCoL6hvv32yD0HO2JKvbR9iRzCoCc63Okz9qR7qXdVGQ9jm81PcsMlnrPUySQOcVKnOQ==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"_npmVersion":"11.19.0","description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pg":"^8.23.0","@types/pg":"^8.23.1","@types/node":"^26.4.1","@agentplat/postgres":"^0.3.0-beta.8","@agentplat/collective-quorum":"^0.3.0-beta.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/collective-quorum-postgres_0.3.0-beta.8_1789349158014_0.9202990416218446","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@agentplat/collective-quorum-postgres","version":"1.0.0","license":"Apache-2.0","_id":"@agentplat/collective-quorum-postgres@1.0.0","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"homepage":"https://github.com/Agentplat/agentplat#readme","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"7ed109cdcee021e893cf99922d96f6f1ca62dbbe","tarball":"https://registry.npmjs.org/@agentplat/collective-quorum-postgres/-/collective-quorum-postgres-1.0.0.tgz","fileCount":33,"integrity":"sha512-YBOAjfifoMiA5IJ69yGGp0ZCkSw4Yd+wjR0JSOXrnaW72gZEzXeZCC0r59cZHyHyf5FoWX0299nOSrEB2lWHWg==","signatures":[{"sig":"MEQCIEunSfSc4lXQ83Jnqv4tsg508hCgbTcvh7BrxQVzwjreAiAZ5irJOZy/UAz6dpBQsWKO9Vh66Wtz7QrWS98FUh4I9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC48XNsIMd5uwPnYEImC8Cn3JsRV5Qc2AWdwFZQ7emPQwIgcGm/PBGngP90SWJwHG8K1Er/xJTjOQ0K2uhDOvftIYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-quorum-postgres@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98038},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-1.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./agreement":{"types":"./dist/agreement.d.ts","import":"./dist/agreement.js"}},"scripts":{"test":"pnpm run build && node --test tests/*.test.mjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:40a9c947-8ee5-4e0a-bed2-f8d3118d0b8e"}},"_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-1.0.0.tgz","_integrity":"sha512-YBOAjfifoMiA5IJ69yGGp0ZCkSw4Yd+wjR0JSOXrnaW72gZEzXeZCC0r59cZHyHyf5FoWX0299nOSrEB2lWHWg==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"_npmVersion":"11.19.0","description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pg":"^8.23.0","@types/pg":"^8.23.1","@types/node":"^26.4.1","@agentplat/postgres":"^1.0.0","@agentplat/collective-quorum":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/collective-quorum-postgres_1.0.0_1790116496686_0.5121449503711673","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"@agentplat/collective-quorum-postgres@1.1.0","bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"dist":{"shasum":"8f8e2f651f9e2f759797159fa6216cafa02f1b34","tarball":"https://registry.npmjs.org/@agentplat/collective-quorum-postgres/-/collective-quorum-postgres-1.1.0.tgz","fileCount":33,"integrity":"sha512-l7TNWSt/wbfud54+M0JEVYhkpUBUu0IZMD1RirLT/zRPj205D+BNfurt6TSpb7dCvfuWILV/oxPGDOkqt87+4g==","signatures":[{"sig":"MEUCIHheb7krtM5JHQUQAnnFGgXeybvt9hsWmHpwgvenAtdZAiEAkxYPQ8jKg74L/4q7zsC0Pnsu3n9Si47a8f6nPDiAFn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFDtKy0EUdlLqbBxZKm7lq6qtcZJSrFiBqysStGjby7rAiBTDuJ3MXR/KSwqhvru90QEFqcDwuaSQDjPH/doH6ocmg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentplat%2fcollective-quorum-postgres@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98038},"main":"./dist/index.js","name":"@agentplat/collective-quorum-postgres","type":"module","_from":"file:/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.19.3"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./agreement":{"types":"./dist/agreement.d.ts","import":"./dist/agreement.js"}},"license":"Apache-2.0","scripts":{"test":"pnpm run build && node --test tests/*.test.mjs","build":"tsc -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","type-check":"tsc -p tsconfig.json --noEmit"},"version":"1.1.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"40a9c947-8ee5-4e0a-bed2-f8d3118d0b8e"}},"homepage":"https://github.com/Agentplat/agentplat#readme","_resolved":"/home/runner/work/agentplat/agentplat/release-artifacts/agentplat-collective-quorum-postgres-1.1.0.tgz","_integrity":"sha512-l7TNWSt/wbfud54+M0JEVYhkpUBUu0IZMD1RirLT/zRPj205D+BNfurt6TSpb7dCvfuWILV/oxPGDOkqt87+4g==","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"_npmVersion":"11.19.0","description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","directories":{},"maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pg":"^8.23.0","@types/pg":"^8.23.1","@types/node":"^26.6.3","@agentplat/postgres":"^1.1.0","@agentplat/collective-quorum":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/collective-quorum-postgres_1.1.0_1790699700260_0.5300277670746427"}}},"time":{"created":"2026-08-17T19:57:08.041Z","modified":"2026-09-29T16:35:00.714Z","0.3.0-beta.4":"2026-08-17T19:57:08.331Z","0.3.0-beta.5":"2026-08-22T04:11:35.731Z","0.3.0-beta.7":"2026-09-09T18:47:32.208Z","0.3.0-beta.8":"2026-09-14T01:25:58.091Z","1.0.0":"2026-09-22T22:34:56.763Z","1.1.0":"2026-09-29T16:35:00.353Z"},"bugs":{"url":"https://github.com/Agentplat/agentplat/issues"},"license":"Apache-2.0","homepage":"https://github.com/Agentplat/agentplat#readme","repository":{"url":"git+https://github.com/Agentplat/agentplat.git","type":"git","directory":"packages/collective-quorum-postgres"},"description":"PostgreSQL durability for Agentplat signed peer quorum protocols.","maintainers":[{"name":"douglas-grishen","email":"douglas@grishen.com"}],"readme":"# `@agentplat/collective-quorum-postgres`\n\nPostgreSQL durability for `@agentplat/collective-quorum`.\n\n## Installation (developer preview)\n\nInstall the coordinated preview explicitly:\n\n```sh\nnpm install @agentplat/collective-quorum-postgres@next\n```\n\nKeep all `@agentplat/*` packages on the same release version. npm's default\n`latest` tag can point to an older preview. See the\n[release channels](https://github.com/Agentplat/agentplat/blob/main/docs/release-channels.md)\nfor distribution status and version selection.\n\nMigration V2 also provides transactional vote, lock, observed-vote and commit\nstorage for the opt-in `@agentplat/collective-quorum/agreement` protocol. Import\n`PostgresCollectiveAgreementRepositoryV1` from\n`@agentplat/collective-quorum-postgres/agreement`. Existing root repository\ncontracts and tables remain available.\n\nMigration V3 adds compare-and-swap state for the live sparse round/view engine\nand bounded partial-view convergence. The root entry point exports\n`PostgresSparseAgreementRoundStoreV1` and\n`PostgresPartialViewAgreementStoreV1`.\n\nThe repository keeps these peer-local facts transactionally:\n\n- one non-equivocating semantic assignment value per lease slot;\n- the highest promised recovery ballot;\n- the last accepted recovery ballot and value;\n- per-proposer monotonic ballot counters;\n- idempotent signed responses and assembled certificates.\n\nRun migrations before constructing the peer host:\n\n```ts\nimport {\n  PostgresCollectiveQuorumRepositoryV1,\n  runMigrations,\n} from \"@agentplat/collective-quorum-postgres\";\n\nawait runMigrations(pool, { schema: \"agentplat\", createSchema: true });\n\nconst repository = new PostgresCollectiveQuorumRepositoryV1(pool, {\n  schema: \"agentplat\",\n  tenantId,\n  meshId,\n  peerId,\n  policyDomainId,\n});\n```\n\nEach independently running peer must use its own `peerId` scope. Sharing a\ndatabase is optional; the database is persistence infrastructure, not a global\ncoordinator. Transactions take row locks only within one peer and one decision\nscope.\n\nRollback is destructive and requires `verifiedBackup: true` plus the exact\nconfirmation token returned by `rollbackConfirmation`.\n","readmeFilename":"README.md"}