{"_id":"@cascade-flow/backend-postgres","_rev":"31-497c3cf67c6921bd36d70ec2272c64d9","name":"@cascade-flow/backend-postgres","dist-tags":{"latest":"0.2.31"},"versions":{"0.1.0":{"name":"@cascade-flow/backend-postgres","version":"0.1.0","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.1.0","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"72e32e1858214da913b4cf989cdac36d08b61fab","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.1.0.tgz","fileCount":10,"integrity":"sha512-o2klUgbrTv6MGUAsrEAa/VhBXdQ5Rp5Y00lB1D5VFLQlIVXTx3JUGFhktZu1ZeLTyyAHDrj7VL5F38nZvuEa5g==","signatures":[{"sig":"MEYCIQCUE+Nz5afbA/CrZNmsQ/+dN0j9+DFDd7fooRIUV2xW4gIhANkiqW2OV1D6hIWgM4McXw1nZHeo2Qu/bTHzBf2XQAOw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":675657},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"72e32e1858214da913b4cf989cdac36d08b61fab","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-o2klUgbrTv6MGUAsrEAa/VhBXdQ5Rp5Y00lB1D5VFLQlIVXTx3JUGFhktZu1ZeLTyyAHDrj7VL5F38nZvuEa5g==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.1.0","@cascade-flow/backend-interface":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.1.0_1763633310611_0.5148103945413918","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cascade-flow/backend-postgres","version":"0.1.1","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.1.1","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"468affa17a1981958bffc86d117f15f188fa8c83","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.1.1.tgz","fileCount":10,"integrity":"sha512-DrELxxU8CLB7JV5a+ScEIjr3pdh8cP7ycFmPNgAOjSzdG8kEgfQDjK0JCZHtxbCliGryp/GR79ZAsIgbSHFcBg==","signatures":[{"sig":"MEUCIQCNw5CbOVOqFyi1TxTn4KDFR+wyc1Xsfiks/sPSohfZpwIgSMsHLgfSBRn02NeVjuOr24lCxBj1gN6ThXbgp9dcRQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683221},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"468affa17a1981958bffc86d117f15f188fa8c83","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-DrELxxU8CLB7JV5a+ScEIjr3pdh8cP7ycFmPNgAOjSzdG8kEgfQDjK0JCZHtxbCliGryp/GR79ZAsIgbSHFcBg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.1.0","@cascade-flow/backend-interface":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.1.1_1763639843176_0.2230049428024823","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cascade-flow/backend-postgres","version":"0.2.0","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.0","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"ecb7e46a105379d8bfb6cea39080f2c45cc28fb4","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.0.tgz","fileCount":10,"integrity":"sha512-S9OcomVgaE7/A3strha6MlOn0Ixs04jljW9QS83ribpZT1N2zXJx+ofisSdgluoFhr/Plw5Pk26NkOAcu1n8ZQ==","signatures":[{"sig":"MEUCIQDgrpZ+tm8DFP7lRorcmun6XGHXsO8UmonQsi2nNU0mUAIgR4xQlmHv/0uNlGcmQ4LnMhDJ4/OHY2U+pW1Gdm2yNHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699016},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"ecb7e46a105379d8bfb6cea39080f2c45cc28fb4","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-S9OcomVgaE7/A3strha6MlOn0Ixs04jljW9QS83ribpZT1N2zXJx+ofisSdgluoFhr/Plw5Pk26NkOAcu1n8ZQ==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.1.0","@cascade-flow/backend-interface":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.0_1763953350760_0.3344105968580602","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cascade-flow/backend-postgres","version":"0.2.1","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.1","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"3a67c50dacdb4e9bef3fe558839878ae34a21f8a","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.1.tgz","fileCount":10,"integrity":"sha512-7pdHufa5Mdub4boRTZolTSfkNPb55CHAJw3SXpZkyzMsWdR1uQ8LFV3lLhv0qkV+lkOmMSm60WpjypRp4IzfuA==","signatures":[{"sig":"MEUCIQCaSDbi6d3GGC2UuQoD0vhLy7ZMMClKcSmyINzb7G0XgAIgNqHPvSTsbiYz14ivy6rIjRMe1TVCX9Qxe97ah3dIYuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699016},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3a67c50dacdb4e9bef3fe558839878ae34a21f8a","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-7pdHufa5Mdub4boRTZolTSfkNPb55CHAJw3SXpZkyzMsWdR1uQ8LFV3lLhv0qkV+lkOmMSm60WpjypRp4IzfuA==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.1","@cascade-flow/backend-interface":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.1_1763954050818_0.16751874532100652","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cascade-flow/backend-postgres","version":"0.2.3","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.3","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"ea1b5a4a7150786dd83783bd09d9d91549800a7e","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.3.tgz","fileCount":10,"integrity":"sha512-6rTrwR3co/qEzPKShvj5889Ss4U+qfCAA1I6CduX3+/0/r8KOrnNIbRLBIr3ht4O+lCNCOuIRp2Y4eJunVbSxQ==","signatures":[{"sig":"MEUCIQD80jvRmFt69nZt+39iD6VFFO1qArCvYRxFOaubkL/1sQIgLpBKbIu6iKp3gBPYahkSEqfPw8SdBa/74mGxR2iD/pY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699016},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"ea1b5a4a7150786dd83783bd09d9d91549800a7e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-6rTrwR3co/qEzPKShvj5889Ss4U+qfCAA1I6CduX3+/0/r8KOrnNIbRLBIr3ht4O+lCNCOuIRp2Y4eJunVbSxQ==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.3","@cascade-flow/backend-interface":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.3_1763954359738_0.9485661577819202","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@cascade-flow/backend-postgres","version":"0.2.4","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.4","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"f833481df58d34b4526ca3cae5e6c09b7325f373","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.4.tgz","fileCount":10,"integrity":"sha512-FU3ltPaBaKoho/BmIJ6Ct8TwcErJxagrcVzoJkLEegFDJXKgNLWOAJPZvUCZBEudJhLB/5t6VauOHKuRaFULRg==","signatures":[{"sig":"MEYCIQCCpTPSEmnLrZO9msg17BTpss+M+z/jWkpMHF/t9gBKtQIhANia3dJQHX7QtG6DspHB9UsYTXuC+n3kX4GXypueyDOP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699016},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"f833481df58d34b4526ca3cae5e6c09b7325f373","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-FU3ltPaBaKoho/BmIJ6Ct8TwcErJxagrcVzoJkLEegFDJXKgNLWOAJPZvUCZBEudJhLB/5t6VauOHKuRaFULRg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.4","@cascade-flow/backend-interface":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.4_1763955498162_0.335087325787949","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@cascade-flow/backend-postgres","version":"0.2.5","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.5","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"6cd0f8666da8e5b1520d2192a11de23642cbc25f","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.5.tgz","fileCount":10,"integrity":"sha512-ms2lL5HClIc2PTe5meIjKa/vtCUPqLlSPs247F3LMqgfrZhBOaF2znPvZNpJNrjMrtS2DT2jngw7N7XOluI0lw==","signatures":[{"sig":"MEUCIQCbQPszTg4O0wA9TR1ywFo9CD8sSW55RKL0HAycOWqwYgIgSyJAnMq9Z8vUazwIsZmOPzI8EKJfdnuw9Wgq0DuNeoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":702198},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"6cd0f8666da8e5b1520d2192a11de23642cbc25f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-ms2lL5HClIc2PTe5meIjKa/vtCUPqLlSPs247F3LMqgfrZhBOaF2znPvZNpJNrjMrtS2DT2jngw7N7XOluI0lw==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.4","@cascade-flow/backend-interface":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.5_1763956257200_0.9327718109300711","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@cascade-flow/backend-postgres","version":"0.2.7","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.7","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"03915984b0d1202d358ffd1defdf069aa3f77b7e","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.7.tgz","fileCount":10,"integrity":"sha512-hNga1a2d0vWFvakT3AxS/kPHqkaPi9rmi82hdv6veITM3honOfoS9hteugEn05C/EMhp5B8bzWLVD7Giv9qFHg==","signatures":[{"sig":"MEUCIQDiWel0l+xp+vOn4lFc8687u86lEhPOxMGEeYSUDNcXkAIgfYwxKAqiz4oERBNnPS/Sr86Jd2R+O+JfeEwzuhcbHPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706771},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"03915984b0d1202d358ffd1defdf069aa3f77b7e","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-hNga1a2d0vWFvakT3AxS/kPHqkaPi9rmi82hdv6veITM3honOfoS9hteugEn05C/EMhp5B8bzWLVD7Giv9qFHg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.4","@cascade-flow/backend-interface":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.7_1763957461729_0.856152732748414","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@cascade-flow/backend-postgres","version":"0.2.8","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.8","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"cc7070d66e8dffd2e14c09f8fb3dcd0dd347aa35","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.8.tgz","fileCount":10,"integrity":"sha512-bZ9vWg8F2ZNFIkEXMndkXwk6a8tSiUb+W0D0Af9usjGDxIAhUnHm4f/y7wP4qL8sAm4kpdXWeZTcQswZ8jeX2A==","signatures":[{"sig":"MEQCIHz2LDtVY9JhWDCqsqRuRa7kvqDiIkkWTsjrZb4KtQMuAiAP6JhqZqrIWYTh/dpLcglewcmpMifKhu5xVjtS+hD8Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":740093},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"cc7070d66e8dffd2e14c09f8fb3dcd0dd347aa35","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-bZ9vWg8F2ZNFIkEXMndkXwk6a8tSiUb+W0D0Af9usjGDxIAhUnHm4f/y7wP4qL8sAm4kpdXWeZTcQswZ8jeX2A==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.5","@cascade-flow/backend-interface":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.8_1764157271557_0.7475399103119031","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@cascade-flow/backend-postgres","version":"0.2.9","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.9","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"aa7d4604bfa77a38cfa13a0f6b9dd885684880a6","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.9.tgz","fileCount":10,"integrity":"sha512-mTpgftPaMqkTQTuWrJmXCtg7nbJ6EIglUkLdMioCaYFqxsQe1ys0djsvWLf86fU/wbFzQbD17OCfdZxrLBHzyw==","signatures":[{"sig":"MEUCIQD/PQc8Dej90cnmKdvUsDlYZEGUxzhW0xE3pExD5ExuOwIgLE1GrAPJHEtAco5F5c/+3fB1mROF4IaETlTyxILhcnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":776531},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"aa7d4604bfa77a38cfa13a0f6b9dd885684880a6","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-mTpgftPaMqkTQTuWrJmXCtg7nbJ6EIglUkLdMioCaYFqxsQe1ys0djsvWLf86fU/wbFzQbD17OCfdZxrLBHzyw==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.6","@cascade-flow/backend-interface":"0.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.9_1765133451480_0.14778076164050646","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@cascade-flow/backend-postgres","version":"0.2.10","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.10","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"69994a3af4a94aa92a220096059da534b25c1980","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.10.tgz","fileCount":10,"integrity":"sha512-lk+mp2bVR6q8ZcwVKtpGa7BS74tFtk+2KvT+jEjGP3OnU3QtlRgvDZNyGUQJzqeWVaXRvhH+NChF+gH0XNJplg==","signatures":[{"sig":"MEUCIHRLtXlVAHidydzEcWbNfTmRHjd4hNDpkZW0jQjFn75VAiEAn7BBQ78Jv0/xsyAyA/FYGToQl3ZUF8MfOUWYW9W7+18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":777293},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"69994a3af4a94aa92a220096059da534b25c1980","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-lk+mp2bVR6q8ZcwVKtpGa7BS74tFtk+2KvT+jEjGP3OnU3QtlRgvDZNyGUQJzqeWVaXRvhH+NChF+gH0XNJplg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.7","@cascade-flow/backend-interface":"0.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.10_1765249140371_0.06285854143653413","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@cascade-flow/backend-postgres","version":"0.2.11","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.11","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"889ffab2d9ce2a92b7d7b12bbc56b5a5c6681211","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.11.tgz","fileCount":10,"integrity":"sha512-qHNp0yDX+Eiwagoq47opONLhRwJkhi9WcXCKNj1TCvIwkMO/aVsrOb7iB8oaPhRb0Jw5YfCwOQqvFAcLaZArwA==","signatures":[{"sig":"MEUCIGq338CFPo4MmO/bdRrkg5bFTxmv1DnGmb/kFifZCsVBAiEA/yW6Qa20ySxgQI1WZTkWNZjESdCWu+Z6iFY16Uc+tFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778566},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"889ffab2d9ce2a92b7d7b12bbc56b5a5c6681211","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-qHNp0yDX+Eiwagoq47opONLhRwJkhi9WcXCKNj1TCvIwkMO/aVsrOb7iB8oaPhRb0Jw5YfCwOQqvFAcLaZArwA==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.8","@cascade-flow/backend-interface":"0.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.11_1765748215616_0.6681453102758439","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@cascade-flow/backend-postgres","version":"0.2.12","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.12","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"200a33829bb7076e409d1a9ffe3d5f01cb574a0f","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.12.tgz","fileCount":10,"integrity":"sha512-/i5aIStIPO4vbvGy1Q3Q4Dnr+WAaK24VMn9FhcvI2BjCYJfA+PyIIiluOF8cFqF8TF/EFmD2C+mIN4IKUQhaLw==","signatures":[{"sig":"MEYCIQDaE8SKWHs1NYVeHVyqGORJ4lyBlMadW94InsTi/UW7hQIhAJeFGYaWBwyQY+hQu9XvKKAmQXM1+zpvQBI/j9QggbHv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778566},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"200a33829bb7076e409d1a9ffe3d5f01cb574a0f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-/i5aIStIPO4vbvGy1Q3Q4Dnr+WAaK24VMn9FhcvI2BjCYJfA+PyIIiluOF8cFqF8TF/EFmD2C+mIN4IKUQhaLw==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.9","@cascade-flow/backend-interface":"0.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.12_1765748565355_0.16113943046731816","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@cascade-flow/backend-postgres","version":"0.2.13","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.13","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"b8ca78ed37b26abaa4a378c556df0b47cdf3a245","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.13.tgz","fileCount":10,"integrity":"sha512-kOpC0qvn6WXFh79s6OXh/c/sczJXkWyJY5DtkYAhOoICKI8DXEbaSwLHDMfXCdG7z5rhf+3keXGT7iYbJR0EjA==","signatures":[{"sig":"MEYCIQD7SeW1TNxACdwvESv1GJwlmfcA02yx65R+tqpiynoZwwIhAN0orG6f0zmkMx6hrVmZemNIX6WbAoj+UzyLjieu4/AJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778567},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"b8ca78ed37b26abaa4a378c556df0b47cdf3a245","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-kOpC0qvn6WXFh79s6OXh/c/sczJXkWyJY5DtkYAhOoICKI8DXEbaSwLHDMfXCdG7z5rhf+3keXGT7iYbJR0EjA==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.10","@cascade-flow/backend-interface":"0.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.13_1765937164716_0.8137899076724424","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@cascade-flow/backend-postgres","version":"0.2.14","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.14","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"a5c976c0db81e88ee35a432ed2ec5fcfe49fa5de","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.14.tgz","fileCount":10,"integrity":"sha512-PcOvj3DEXUisL7XRAWuF8PDxn1Gu5Wld3J9mldTmoTMUwGWEzRnhhSu8sZ/RjlXZ16L/LAbUoq4LGrGbbkOlig==","signatures":[{"sig":"MEQCID0tbkWxAB29rK9Ziosh9VO375liJRrj/3aqZzrNlVmMAiBuiW5ik8CHYWOQzeuA48NZLL4nXMnE3qsZqBwWpEFC5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778613},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a5c976c0db81e88ee35a432ed2ec5fcfe49fa5de","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-PcOvj3DEXUisL7XRAWuF8PDxn1Gu5Wld3J9mldTmoTMUwGWEzRnhhSu8sZ/RjlXZ16L/LAbUoq4LGrGbbkOlig==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.11","@cascade-flow/backend-interface":"0.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.14_1766618703439_0.3604662361284361","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@cascade-flow/backend-postgres","version":"0.2.15","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.15","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"da71bbf72c872f91c90c3a64f739fc3f4b54e43f","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.15.tgz","fileCount":10,"integrity":"sha512-JWo91sJyMROLoKAS9FbpbwV0bea628vvtTDEiGFf7Zzpuv3+kBZ6yqjePQMH1C76bzOBCMOo5C0wMfi9uR0F4A==","signatures":[{"sig":"MEUCIQCKVkeEaIiQY+faP4BaTvBP+DPEcky7s+OtUPGOmfzz4AIgS1wiZZpvqmsZKJLpHQ+lTejEf6q2C1rlBcR3qev/zPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":781046},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"da71bbf72c872f91c90c3a64f739fc3f4b54e43f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-JWo91sJyMROLoKAS9FbpbwV0bea628vvtTDEiGFf7Zzpuv3+kBZ6yqjePQMH1C76bzOBCMOo5C0wMfi9uR0F4A==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.11","@cascade-flow/backend-interface":"0.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.15_1769055200681_0.6756621147534922","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@cascade-flow/backend-postgres","version":"0.2.16","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.16","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"a81be5dc9b91ffde1987b9b0d3eed6d9c1343b72","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.16.tgz","fileCount":10,"integrity":"sha512-/iBBBJra24IunjPQ1sjbqzu3ajpVRQfsmIK9xLxdW4q1Scu3labxv7/Mf+sl5sx/7U2IXEM8ooYCVjsnNgaveg==","signatures":[{"sig":"MEYCIQD4Pvj6n5nRU4vXM95c3on3F7opfjEOsTTupmjoNmAK4wIhAO+IS88lh4DVThz87FmynOYt06Cntz7jbr+UnOlVKcjU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":785405},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"a81be5dc9b91ffde1987b9b0d3eed6d9c1343b72","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-/iBBBJra24IunjPQ1sjbqzu3ajpVRQfsmIK9xLxdW4q1Scu3labxv7/Mf+sl5sx/7U2IXEM8ooYCVjsnNgaveg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.16_1769110926144_0.2676926715997958","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@cascade-flow/backend-postgres","version":"0.2.17","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.17","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"0b20f14d48df9752bf957f2f3ea5cba6fc2e7046","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.17.tgz","fileCount":10,"integrity":"sha512-382nSYPCeKXKs3jrC42Q/BFe4vW44kSpQqap3ypJNy+sBs3w3SZUGYHtbkXUdqcD2HTtbf19fxjYkL21qsVpIA==","signatures":[{"sig":"MEUCIQCNTccZ25L4D8S+NEy1TC/6juJm67pty+iabFHI61IBtQIgGfyUp8EdAV4KKu+3UDaRAk8um9SBHya1fN5vZY7sCWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":822948},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"0b20f14d48df9752bf957f2f3ea5cba6fc2e7046","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-382nSYPCeKXKs3jrC42Q/BFe4vW44kSpQqap3ypJNy+sBs3w3SZUGYHtbkXUdqcD2HTtbf19fxjYkL21qsVpIA==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.17_1770234385866_0.25402584056268673","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@cascade-flow/backend-postgres","version":"0.2.19","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.19","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"2da0b338d0dcb0df336df193b982258244394cde","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.19.tgz","fileCount":10,"integrity":"sha512-xvPYmTNOPMe9a/9Pe3X591RFIKYu9LAp8u8uhZghbRSqWEwlHmnF4YCwgRECFjValzA1WwSB8GJtBInWTWf8ag==","signatures":[{"sig":"MEUCIQClTHcUhJ5472wLEpOb54DUa3ss9w2QYpf9+vIjQTLCkQIgdfbw2E+avmY0Gv7ngpwk6Tx2gtju+DMyTlgq2wXV3aQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836376},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"2da0b338d0dcb0df336df193b982258244394cde","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-xvPYmTNOPMe9a/9Pe3X591RFIKYu9LAp8u8uhZghbRSqWEwlHmnF4YCwgRECFjValzA1WwSB8GJtBInWTWf8ag==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.19_1770359016215_0.49249712463331585","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"@cascade-flow/backend-postgres","version":"0.2.20","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.20","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"d8e902ed668b0b7b3d1462dce81f5da7e29f8358","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.20.tgz","fileCount":10,"integrity":"sha512-GmMQgZfv8OS/eWaGAoIEp7JeCQ38POCCx2WOQ74i2f49XkFlYo0oFKmlFS7tRtFsE67VXn9GM9B+DIKEzkZUhA==","signatures":[{"sig":"MEUCIAb7m5O0vpNaKehm6XvX2iY5fmxzv8UUKlzEA8H4VKYFAiEAutUTyQ3ipYqkOfsdVyzISvOoUG4BTeK+bcl1sSecbeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":841210},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"d8e902ed668b0b7b3d1462dce81f5da7e29f8358","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-GmMQgZfv8OS/eWaGAoIEp7JeCQ38POCCx2WOQ74i2f49XkFlYo0oFKmlFS7tRtFsE67VXn9GM9B+DIKEzkZUhA==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.20_1770360476417_0.29918174790426955","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"@cascade-flow/backend-postgres","version":"0.2.21","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.21","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"f385f2ec24ef9fbc8a60f8dcb4770ce1d3df385d","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.21.tgz","fileCount":10,"integrity":"sha512-NpnVEgopkkM0l7mskTcYBRzc4PPEtElE8mLj2J0RdkPuOyBlQ8wVd/TYhFDWPsRmeXsaIcvSc8kC64ipqJ2w+Q==","signatures":[{"sig":"MEUCIQDMRFU/oBcsh4oXgxDofqMKx6laCib4d3NEg91hPx+9SgIgbkK97EUZ56vzGFSAb4/8/6H9CSyEIrq+X7BagGdGzuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":844641},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"f385f2ec24ef9fbc8a60f8dcb4770ce1d3df385d","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-NpnVEgopkkM0l7mskTcYBRzc4PPEtElE8mLj2J0RdkPuOyBlQ8wVd/TYhFDWPsRmeXsaIcvSc8kC64ipqJ2w+Q==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.21_1770522888694_0.330853818562846","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"@cascade-flow/backend-postgres","version":"0.2.22","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.22","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"ca4edb27c3b3e69b39fb4ffd6f250b6381bc7d05","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.22.tgz","fileCount":10,"integrity":"sha512-FhfXKYTp/ANWlYlCtqeOhuzZmkWj1xPtW8zNsqedNXWekTDbgmzkr6qPLSLcwc4lqOyqL/XKq/RcHJEg/rfRDg==","signatures":[{"sig":"MEUCICYCFmXrneM56YzLudwphfXypRYbtslDmTFlIxAqm69WAiEAiJTmIcBgQYQ9sFcM5cRSHWV39xs/mfJB+YfnKlhuUs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":846561},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"ca4edb27c3b3e69b39fb4ffd6f250b6381bc7d05","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-FhfXKYTp/ANWlYlCtqeOhuzZmkWj1xPtW8zNsqedNXWekTDbgmzkr6qPLSLcwc4lqOyqL/XKq/RcHJEg/rfRDg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.22_1771123538420_0.5937311048965708","host":"s3://npm-registry-packages-npm-production"}},"0.2.23":{"name":"@cascade-flow/backend-postgres","version":"0.2.23","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.23","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"aea161d6fe1f2a290a8572cd2ea54cc415832e5f","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.23.tgz","fileCount":10,"integrity":"sha512-1Yn9psZgZUZRpyiqPNbrS/gphUjPwoAJiZVtcMM0DrmjaSQJCEf1/u9RqmHCEfmIpiCBQLzlnOGKRFqNxFzkKg==","signatures":[{"sig":"MEUCIQDGG7hB1w4UyV4bPzyWqcmSilCGoKdKjewStRjTLKu9pQIgLU8vBDru3yy8l1Sx+naxVhVz2S3cr1+Aj4VWtz7Ly4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":846641},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"aea161d6fe1f2a290a8572cd2ea54cc415832e5f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-1Yn9psZgZUZRpyiqPNbrS/gphUjPwoAJiZVtcMM0DrmjaSQJCEf1/u9RqmHCEfmIpiCBQLzlnOGKRFqNxFzkKg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.23_1771216699890_0.22760612443008466","host":"s3://npm-registry-packages-npm-production"}},"0.2.24":{"name":"@cascade-flow/backend-postgres","version":"0.2.24","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.24","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"5d75a045409f4bc4cd1cfef996d220de331d0dad","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.24.tgz","fileCount":10,"integrity":"sha512-GAja7RFAnqVR31HQ8O5gftdwgFLGZnr48RuHj8b2e4dS8j+YQrRLI57x1qAxE9s/1y+QFRuPrGytFg/XA4l3Ww==","signatures":[{"sig":"MEUCIGAFF151xxNB+Cw8ynzIkFZziZUCQT45OZxLxMwP5450AiEAqkFFXaq3DWmlV+VxbbJE+6C+DU993soj4Jr0OQw0Vx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":847766},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"5d75a045409f4bc4cd1cfef996d220de331d0dad","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-GAja7RFAnqVR31HQ8O5gftdwgFLGZnr48RuHj8b2e4dS8j+YQrRLI57x1qAxE9s/1y+QFRuPrGytFg/XA4l3Ww==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.24_1771415708294_0.0792742927148844","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"@cascade-flow/backend-postgres","version":"0.2.25","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.25","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"4b8a85d8a181a12087fe57f5076f3c3edbf7403c","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.25.tgz","fileCount":10,"integrity":"sha512-pshrevXKOBMcS/SMMWvyqUCCdVrbTXYs+OMgXPalGo7QM6yxBow1lPhEEH1a4CYBNJ9WiTLHl3pD/gg+PzeckQ==","signatures":[{"sig":"MEUCIQCKIEgRpsRWdMDY6oTkKsF01Q5toBxoIW26zBucGhRDFwIgOqX9/JRBwxE1GG1sKLb9G9+sfgesuPKN2OpT5w29Jaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":847766},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"4b8a85d8a181a12087fe57f5076f3c3edbf7403c","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-pshrevXKOBMcS/SMMWvyqUCCdVrbTXYs+OMgXPalGo7QM6yxBow1lPhEEH1a4CYBNJ9WiTLHl3pD/gg+PzeckQ==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.25_1771424556070_0.10712164077316944","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"name":"@cascade-flow/backend-postgres","version":"0.2.26","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.26","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"35fe629b052b5ee17d69f8aef3052bb84fe087b0","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.26.tgz","fileCount":10,"integrity":"sha512-iTShgN7xUIO6i0JZ8Ih76BwACmdWJEGOICnVVERBte8Fwt9aLjin8l9BbahvyVnokd6l1EYKn4AQZSfr0wmDmg==","signatures":[{"sig":"MEUCIQDRNZr3EG3g/csv6K3TywqiWv704UMGnF5hRXbu+c9JUQIgfnboe0w77nv0Aq2V8dodWoJXdPPF4vgf1nWojwVByPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":847351},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"35fe629b052b5ee17d69f8aef3052bb84fe087b0","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-iTShgN7xUIO6i0JZ8Ih76BwACmdWJEGOICnVVERBte8Fwt9aLjin8l9BbahvyVnokd6l1EYKn4AQZSfr0wmDmg==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.26_1771517083519_0.9381009117378112","host":"s3://npm-registry-packages-npm-production"}},"0.2.27":{"name":"@cascade-flow/backend-postgres","version":"0.2.27","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.27","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"3c1b0a9a52e38b70fd7cf2d6859d9ebbdf8321ab","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.27.tgz","fileCount":10,"integrity":"sha512-aNk4s2FnLrm9jF5UbSP9YJ4i07CeU9ixm/jZR7MIU/xDX5SrAqlYgkhiChbVWGRZQqqQkXXfZjrEMEdNyQ+HrQ==","signatures":[{"sig":"MEUCIFKgedn8RagqsOOtMjSPtODrS3e6I8MG00nniBmNLK4pAiEA9X5a1j7Tj8y7UWyM7UwNkWuJPtg8zL2E+uX3uLW3axU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859698},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"3c1b0a9a52e38b70fd7cf2d6859d9ebbdf8321ab","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-aNk4s2FnLrm9jF5UbSP9YJ4i07CeU9ixm/jZR7MIU/xDX5SrAqlYgkhiChbVWGRZQqqQkXXfZjrEMEdNyQ+HrQ==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.27_1771816489058_0.890024440929144","host":"s3://npm-registry-packages-npm-production"}},"0.2.28":{"name":"@cascade-flow/backend-postgres","version":"0.2.28","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.28","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"dist":{"shasum":"cfcc6f3a706ebcfee6746a23ddcae2fafee3dcec","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.28.tgz","fileCount":10,"integrity":"sha512-kOFpVm2eOSmwSODN3qGNyUtRnqVNxmdEs+NjT04/R36R1FaakjgAf0Y5l1T0f72BFGxD1mqW75+XmjZSXkImmA==","signatures":[{"sig":"MEUCIBj3OCopRy5EpjxIiIKJZhizkFbUnsdELvUf03h5Q4LOAiEAyC8AQ8TPqB7LzIf3Eol2qYollkRqZc8GlAxfwz2Kgv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859698},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"cfcc6f3a706ebcfee6746a23ddcae2fafee3dcec","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_integrity":"sha512-kOFpVm2eOSmwSODN3qGNyUtRnqVNxmdEs+NjT04/R36R1FaakjgAf0Y5l1T0f72BFGxD1mqW75+XmjZSXkImmA==","repository":{"url":"https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.8.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.17","@cascade-flow/backend-interface":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.28_1771818407761_0.009835539202762034","host":"s3://npm-registry-packages-npm-production"}},"0.2.29":{"name":"@cascade-flow/backend-postgres","version":"0.2.29","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.29","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"homepage":"https://github.com/cascadeflow/cascadeflow#readme","bugs":{"url":"https://github.com/cascadeflow/cascadeflow/issues"},"dist":{"shasum":"7b5e26a382488628e4e017f054d477ba0c6e8034","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.29.tgz","fileCount":10,"integrity":"sha512-BpLk9fI2p8azNbCsgclYzU0h/qcTxbwd8GjcSIlpZ+VpAS0SYwxXeETWtcs2ImYfliLJmEm2Vw8Mt4wGftddBw==","signatures":[{"sig":"MEQCIDBlWCi8alfqqPSNbiJ1Smeniimcar3tJugCkh3e2aH7AiBDHoXakAQOuvIzXKyDooaQlAFJY5LbvlJEvJte2f8DUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":863960},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"repository":{"url":"git+https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.9.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"22.18.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"workspace:*","@cascade-flow/backend-interface":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.29_1786476962762_0.688620029821005","host":"s3://npm-registry-packages-npm-production"}},"0.2.30":{"name":"@cascade-flow/backend-postgres","version":"0.2.30","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"license":"MIT","_id":"@cascade-flow/backend-postgres@0.2.30","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"homepage":"https://github.com/cascadeflow/cascadeflow#readme","bugs":{"url":"https://github.com/cascadeflow/cascadeflow/issues"},"dist":{"shasum":"b31c5c50890a29617cc27bacd1b954ae964a1f3f","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.30.tgz","fileCount":10,"integrity":"sha512-6TiGnZ17LrhdtapLTLLknISrEqB6qe9W7Lwf7Ge/7bcbcphBfHdRgdLftnqtoehFC1pUgXc3ADqu1Jep5+2Pjg==","signatures":[{"sig":"MEYCIQC4wtxcDJepivqKj44RQp9tg7E7wBgv2ObkuT39FmkJdQIhANwnS0CfJ7gNqMTrWalHISdVfVurKtEWq2TzaAlwCWNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":873036},"main":"./dist/index.js","type":"module","_from":"file:/var/folders/ws/rw_7_fb51pg10qxjm6lc0vmc0000gn/T/cascadeflow-publish.2wiOEc/backend-postgres/cascade-flow-backend-postgres-0.2.30.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"_resolved":"/var/folders/ws/rw_7_fb51pg10qxjm6lc0vmc0000gn/T/cascadeflow-publish.2wiOEc/backend-postgres/cascade-flow-backend-postgres-0.2.30.tgz","_integrity":"sha512-6TiGnZ17LrhdtapLTLLknISrEqB6qe9W7Lwf7Ge/7bcbcphBfHdRgdLftnqtoehFC1pUgXc3ADqu1Jep5+2Pjg==","repository":{"url":"git+https://github.com/cascadeflow/cascadeflow.git","type":"git","directory":"packages/backend-postgres"},"_npmVersion":"10.9.3","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","directories":{},"_nodeVersion":"22.18.0","dependencies":{"pg":"^8.13.1","@cascade-flow/runner":"0.2.20","@cascade-flow/backend-interface":"0.2.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/backend-postgres_0.2.30_1786480470117_0.8005837994863132","host":"s3://npm-registry-packages-npm-production"}},"0.2.31":{"name":"@cascade-flow/backend-postgres","version":"0.2.31","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"rm -rf dist && bun build src/index.ts --outdir dist --target node --sourcemap=external --external=@cascade-flow/* && tsc -p tsconfig.build.json","prepublishOnly":"bun run build","test":"bun test"},"dependencies":{"@cascade-flow/runner":"^0.2.33","pg":"^8.13.1"},"devDependencies":{"@types/pg":"^8.11.10","@types/bun":"latest","typescript":"^5"},"peerDependencies":{"@cascade-flow/backend-interface":"^0.2.17","typescript":"^5"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/cascadeflow/cascadeflow.git","directory":"packages/backend-postgres"},"license":"MIT","description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"_id":"@cascade-flow/backend-postgres@0.2.31","bugs":{"url":"https://github.com/cascadeflow/cascadeflow/issues"},"homepage":"https://github.com/cascadeflow/cascadeflow#readme","_integrity":"sha512-FvvvqZQrVmuv9/QNIc0d+IKdoFnAHCLQziTCN4qSbuNQltPXLKpfnouUWJa58x46dyhmEqLnWsrGe2O5v3JcVg==","_resolved":"/var/folders/ws/rw_7_fb51pg10qxjm6lc0vmc0000gn/T/cascadeflow-publish.IHsYGM/backend-postgres/cascade-flow-backend-postgres-0.2.31.tgz","_from":"file:/var/folders/ws/rw_7_fb51pg10qxjm6lc0vmc0000gn/T/cascadeflow-publish.IHsYGM/backend-postgres/cascade-flow-backend-postgres-0.2.31.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-FvvvqZQrVmuv9/QNIc0d+IKdoFnAHCLQziTCN4qSbuNQltPXLKpfnouUWJa58x46dyhmEqLnWsrGe2O5v3JcVg==","shasum":"bdc557000b85221f7f527fd5587ef43ac7daed5f","tarball":"https://registry.npmjs.org/@cascade-flow/backend-postgres/-/backend-postgres-0.2.31.tgz","fileCount":10,"unpackedSize":873038,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDG6kWB0uN1pPlEGfPIvN+XVXMYf6lAH+jRm3HTjQFroAiAk71VLfnQXqE2MK8ItVTEA3C2VyTxiBiiUbgoq/KTBlQ=="}]},"_npmUser":{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"},"directories":{},"maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/backend-postgres_0.2.31_1786486117325_0.24364742175519272"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-20T10:08:30.511Z","modified":"2026-08-11T22:08:37.672Z","0.1.0":"2025-11-20T10:08:30.857Z","0.1.1":"2025-11-20T11:57:23.419Z","0.2.0":"2025-11-24T03:02:31.026Z","0.2.1":"2025-11-24T03:14:11.077Z","0.2.3":"2025-11-24T03:19:19.941Z","0.2.4":"2025-11-24T03:38:18.450Z","0.2.5":"2025-11-24T03:50:57.459Z","0.2.7":"2025-11-24T04:11:01.977Z","0.2.8":"2025-11-26T11:41:11.750Z","0.2.9":"2025-12-07T18:50:51.634Z","0.2.10":"2025-12-09T02:59:00.535Z","0.2.11":"2025-12-14T21:36:55.767Z","0.2.12":"2025-12-14T21:42:45.530Z","0.2.13":"2025-12-17T02:06:04.895Z","0.2.14":"2025-12-24T23:25:03.620Z","0.2.15":"2026-01-22T04:13:20.866Z","0.2.16":"2026-01-22T19:42:06.375Z","0.2.17":"2026-02-04T19:46:26.035Z","0.2.19":"2026-02-06T06:23:36.400Z","0.2.20":"2026-02-06T06:47:56.590Z","0.2.21":"2026-02-08T03:54:48.838Z","0.2.22":"2026-02-15T02:45:38.560Z","0.2.23":"2026-02-16T04:38:20.067Z","0.2.24":"2026-02-18T11:55:08.488Z","0.2.25":"2026-02-18T14:22:36.214Z","0.2.26":"2026-02-19T16:04:43.781Z","0.2.27":"2026-02-23T03:14:49.300Z","0.2.28":"2026-02-23T03:46:48.047Z","0.2.29":"2026-08-11T19:36:02.925Z","0.2.30":"2026-08-11T20:34:30.292Z","0.2.31":"2026-08-11T22:08:37.521Z"},"bugs":{"url":"https://github.com/cascadeflow/cascadeflow/issues"},"license":"MIT","homepage":"https://github.com/cascadeflow/cascadeflow#readme","keywords":["workflow","orchestrator","backend","postgres","postgresql","database"],"repository":{"type":"git","url":"git+https://github.com/cascadeflow/cascadeflow.git","directory":"packages/backend-postgres"},"description":"PostgreSQL backend implementation for CascadeFlow workflow orchestrator","maintainers":[{"name":"moshe-g","email":"mosheygrunwald+npm@gmail.com"}],"readme":"# Backend Postgres\n\nPostgreSQL-based implementation of the Backend interface for the workflow orchestrator.\n\n## Features\n\n- **Event Sourcing**: Immutable append-only event storage in PostgreSQL\n- **Automatic Schema Initialization**: Idempotent migrations run automatically on first connection\n- **Race-Safe Step Claiming**: Atomic step claiming using `SELECT FOR UPDATE SKIP LOCKED`\n- **Events-as-Queue Pattern**: Queue state derived from events (no separate queue table)\n- **JSONB Storage**: Flexible schema evolution with JSONB columns\n- **Full TypeScript Support**: Complete type safety across all operations\n- **Easy Database Migration**: All `pg` usage isolated in `db.ts` for easy library swapping\n\n## Installation\n\n```bash\nbun add backend-postgres pg\nbun add -d @types/pg\n```\n\n## Quick Start\n\n### Basic Usage\n\n```typescript\nimport { PostgresBackend } from \"backend-postgres\";\n\n// Create backend with connection string\nconst backend = new PostgresBackend(\"postgres://user:password@localhost:5432/workflow_db\");\n\n// The database schema is automatically initialized on first use\n// No manual migration commands needed!\n\n// Use with the runner\nimport { runAll } from \"runner\";\nconst result = await runAll(workflow, input, { backend });\n\n// Don't forget to close the connection pool when done\nawait backend.close();\n```\n\n### With CLI\n\nYou can use the Postgres backend with the CLI by setting the `POSTGRES_URL` environment variable:\n\n```bash\n# Set the Postgres connection string\nexport POSTGRES_URL=\"postgres://user:password@localhost:5432/workflow_db\"\n\n# If POSTGRES_URL uses transaction-pooled PgBouncer, use a direct connection\n# for schema migrations and concurrent index creation.\nexport POSTGRES_MIGRATIONS_URL=\"postgres://user:password@direct-host:5432/workflow_db\"\n\n# Run workflows\nwfo run my-workflow --input '{\"key\": \"value\"}'\n\n# Queue-based execution\nwfo worker start  # Uses Postgres backend\nwfo submit my-workflow --input '{...}'\n```\n\n### Programmatic Usage\n\n```typescript\nimport { PostgresBackend } from \"backend-postgres\";\nimport { Client } from \"client\";\n\nconst backend = new PostgresBackend(process.env.POSTGRES_URL!);\nconst client = new Client({ backend });\n\n// Submit a workflow run\nconst runId = await client.submit({\n  workflowSlug: \"my-workflow\",\n  input: { message: \"Hello\" },\n  tags: [\"production\"],\n  idempotencyKey: \"unique-key-123\", // Optional deduplication\n});\n\n// Wait for completion\nconst result = await client.waitForCompletion(runId);\nconsole.log(\"Output:\", result.output);\n\n// Cleanup\nawait backend.close();\n```\n\nWhen constructing the backend directly with a transaction-pooled runtime URL,\npass the direct migration URL as the fourth constructor argument:\n\n```typescript\nconst backend = new PostgresBackend(\n  process.env.POSTGRES_URL!,\n  \"cascadeflow\",\n  undefined,\n  process.env.POSTGRES_MIGRATIONS_URL\n);\n```\n\n## Connection String Format\n\nThe connection string follows the standard PostgreSQL format:\n\n```\npostgres://[user[:password]@][host][:port][/database][?option=value]\n```\n\nExamples:\n\n```bash\n# Local development\npostgres://postgres:postgres@localhost:5432/workflow_dev\n\n# With SSL\npostgres://user:pass@db.example.com:5432/workflows?sslmode=require\n\n# Unix socket\npostgres://user@/dbname?host=/var/run/postgresql\n\n# Cloud providers (example: Neon, Supabase, etc.)\npostgres://user:password@ep-xyz.region.provider.com/dbname?sslmode=require\n```\n\n## Database Schema\n\nThe backend creates and manages the following tables:\n\n### Event Tables\n\n**`workflow_events`** - Workflow-level events\n- `id` (serial) - Primary key\n- `event_id` (text) - Microsecond timestamp string\n- `workflow_slug` (text) - Workflow identifier\n- `run_id` (text) - Run identifier\n- `timestamp_us` (bigint) - Event timestamp in microseconds\n- `category` (text) - Always 'workflow'\n- `type` (text) - Event type (WorkflowStarted, WorkflowCompleted, etc.)\n- `data` (jsonb) - Full event payload\n\n**`step_events`** - Step-level events\n- `id` (serial) - Primary key\n- `event_id` (text) - Microsecond timestamp string\n- `workflow_slug` (text) - Workflow identifier\n- `run_id` (text) - Run identifier\n- `step_id` (text) - Step identifier\n- `timestamp_us` (bigint) - Event timestamp in microseconds\n- `category` (text) - Always 'step'\n- `type` (text) - Event type (StepScheduled, StepStarted, etc.)\n- `data` (jsonb) - Full event payload\n\n### Registry Tables\n\n**`workflow_metadata`** - Workflow registry\n- `slug` (text) - Primary key\n- `name` (text) - Display name\n- `description` (text) - Optional description\n- `input_schema_json` (jsonb) - JSON Schema for input validation\n- `tags` (text[]) - Tags array\n\n**`step_definitions`** - Step definitions\n- `workflow_slug` (text) - References workflow_metadata(slug)\n- `id` (text) - Step identifier\n- `dependencies` (jsonb) - Step dependencies\n- `export_output` (boolean) - Whether output is exported\n- `input_schema_json` (jsonb) - JSON Schema for step input\n- `timeout_ms` (integer) - Step timeout\n- `max_retries` (integer) - Maximum retry attempts\n- `retry_delay_ms` (integer) - Delay between retries\n\n### Supporting Tables\n\n**`step_outputs`** - Serialized step outputs\n- `workflow_slug`, `run_id`, `step_id`, `attempt_number` - Composite primary key\n- `output` (jsonb) - Step output data\n\n**`idempotency_keys`** - Deduplication\n- `hash` (text) - Primary key (SHA256 of idempotency key)\n- `run_id` (text) - Associated run ID\n\n## Migration Strategy\n\nThe backend uses **idempotent migrations** that are safe to rerun. Migrations are automatically executed on the first database connection.\n\n### Current Migrations\n\n1. **Migration 001**: Create tables - Uses `CREATE TABLE IF NOT EXISTS`\n2. **Migration 002**: Create indexes - Uses `CREATE INDEX IF NOT EXISTS`\n\n### Adding New Migrations\n\nTo add a new migration:\n\n1. Add a new migration function to `src/migrations.ts`:\n\n```typescript\nasync function migration003_addNewFeature(pool: Pool): Promise<void> {\n  const client = await pool.connect();\n  try {\n    // Your migration code here (must be idempotent!)\n    await client.query(`\n      ALTER TABLE workflow_metadata\n      ADD COLUMN IF NOT EXISTS new_field TEXT\n    `);\n\n    console.log(\"[Migration 003] Added new feature\");\n  } catch (error) {\n    console.error(\"[Migration 003] Error:\", error);\n    throw error;\n  } finally {\n    client.release();\n  }\n}\n```\n\n2. Add it to the `runMigrations()` function:\n\n```typescript\nexport async function runMigrations(pool: Pool): Promise<void> {\n  await migration001_createTables(pool);\n  await migration002_createIndexes(pool);\n  await migration003_addNewFeature(pool);  // Add here\n}\n```\n\n### Idempotency Best Practices\n\nAll migrations must be idempotent (safe to run multiple times):\n\n✅ **Good** (idempotent):\n```sql\nCREATE TABLE IF NOT EXISTS my_table (...);\nCREATE INDEX IF NOT EXISTS idx_name ON table (column);\nALTER TABLE table ADD COLUMN IF NOT EXISTS new_col TEXT;\n```\n\n❌ **Bad** (not idempotent):\n```sql\nCREATE TABLE my_table (...);  -- Fails if table exists\nALTER TABLE table ADD COLUMN new_col TEXT;  -- Fails if column exists\n```\n\n## Architecture Details\n\n### Event Sourcing\n\nAll state changes are stored as immutable events:\n\n```typescript\n// Events are never updated or deleted\nawait backend.appendEvent(workflowSlug, runId, {\n  category: \"step\",\n  type: \"StepStarted\",\n  eventId: \"1234567890123456\",\n  timestampUs: 1234567890123456,\n  stepId: \"my-step\",\n  workerId: \"worker-1\",\n  // ... other event-specific fields\n});\n\n// Current state is computed by projecting events\nconst events = await backend.loadEvents(workflowSlug, runId);\nconst currentState = projectRunStateFromEvents(events, workflowSlug);\n```\n\n### Events-as-Queue Pattern\n\nThere is no separate \"queue\" table. Queue state is derived by projecting the `RunSubmitted` event along with workflow events:\n\n```typescript\n// Submitting creates a RunSubmitted event\nconst runId = await backend.submitRun({\n  workflowSlug: \"my-workflow\",\n  input: { data: \"...\" },\n});\n\n// Listing runs projects events to compute status\nconst runs = await backend.listRuns({\n  statuses: [\"pending\", \"running\"],\n});\n```\n\n### Atomic Step Claiming\n\nStep claiming uses PostgreSQL's `SELECT FOR UPDATE SKIP LOCKED` for race-safe concurrency:\n\n```typescript\n// Multiple workers can safely claim different steps\nconst claimed = await backend.claimScheduledStep(\n  workflowSlug,\n  runId,\n  stepId,\n  \"worker-1\"\n);\n\n// Only one worker succeeds per step\nconsole.log(claimed); // true or false\n```\n\nImplementation (simplified):\n\n```sql\nBEGIN;\n\n-- Acquire lock (SKIP LOCKED prevents blocking)\nSELECT * FROM step_events\nWHERE workflow_slug = $1 AND run_id = $2 AND step_id = $3\nORDER BY timestamp_us DESC\nLIMIT 1\nFOR UPDATE SKIP LOCKED;\n\n-- Verify step is in scheduled state\n-- Write StepStarted event\n\nCOMMIT;\n```\n\n### Time Precision\n\nAll timestamps use **microsecond precision** (`timestampUs` fields) for correct event ordering in concurrent execution:\n\n```typescript\n// Example: 1762916097401523 (microseconds since epoch)\nconst timestamp = getMicrosecondTimestamp();\n```\n\n## Testing\n\n### Integration Tests\n\nIntegration tests require a running PostgreSQL database:\n\n```bash\n# Set test database URL\nexport POSTGRES_TEST_URL=\"postgres://postgres:postgres@localhost:5432/workflow_test\"\n\n# Run tests\nbun test\n\n# Run specific test file\nbun test tests/integration/postgres-backend.integration.test.ts\n```\n\n### Docker PostgreSQL for Testing\n\n```bash\n# Start PostgreSQL in Docker\ndocker run -d \\\n  --name postgres-test \\\n  -e POSTGRES_PASSWORD=postgres \\\n  -e POSTGRES_DB=workflow_test \\\n  -p 5432:5432 \\\n  postgres:16\n\n# Run tests\nexport POSTGRES_TEST_URL=\"postgres://postgres:postgres@localhost:5432/workflow_test\"\nbun test\n\n# Cleanup\ndocker stop postgres-test\ndocker rm postgres-test\n```\n\n## Performance Considerations\n\n### Indexes\n\nThe backend creates indexes optimized for common query patterns:\n\n- Event lookups: `(workflow_slug, run_id, timestamp_us)`\n- Step claiming: `(workflow_slug, run_id, step_id, type, timestamp_us)`\n- Registry queries: `(workflow_slug)`\n\n### Connection Pooling\n\nThe backend uses `pg.Pool` for efficient connection management. Configure pool size via connection string:\n\n```\npostgres://user:pass@host/db?max=20&min=5&idle_timeout=10000\n```\n\n### JSONB Storage\n\nJSONB columns allow flexible schema evolution but have storage/query trade-offs:\n\n- ✅ Flexible schema changes without migrations\n- ✅ Can index specific JSONB fields if needed\n- ⚠️ Slightly larger storage than normalized tables\n- ⚠️ Complex queries on nested JSONB can be slower\n\nFor high-volume production use, consider adding indexes on frequently-queried JSONB fields:\n\n```sql\nCREATE INDEX idx_event_type ON workflow_events ((data->>'type'));\n```\n\n## Switching Database Libraries\n\nAll `pg` usage is isolated in `src/db.ts`, making it easy to swap to another library:\n\n1. Install new library (e.g., `postgres`, `kysely`, `drizzle`)\n2. Update `src/db.ts` to use new library's API\n3. Keep function signatures the same\n4. Update `src/migrations.ts` if needed\n\nThe `PostgresBackend` class in `src/index.ts` doesn't need changes.\n\n## Comparison to FileSystemBackend\n\n| Feature | FileSystemBackend | PostgresBackend |\n|---------|------------------|-----------------|\n| Storage | Local filesystem | PostgreSQL database |\n| Concurrency | File locks | Database transactions |\n| Scalability | Single machine | Multi-machine clusters |\n| Persistence | Local `.runs/` directory | Remote database |\n| Setup | Zero config | Requires PostgreSQL server |\n| Best for | Development, single-machine | Production, distributed workers |\n\n## Troubleshooting\n\n### Connection Issues\n\n```typescript\n// Error: connection refused\n// Fix: Check PostgreSQL is running and connection string is correct\n\n// Error: authentication failed\n// Fix: Verify username/password in connection string\n\n// Error: database does not exist\n// Fix: Create database first: createdb workflow_db\n```\n\n### Migration Failures\n\n```typescript\n// Error: relation already exists\n// Fix: Ensure migrations use IF NOT EXISTS\n\n// Error: permission denied\n// Fix: Grant required permissions to database user\n```\n\n### Performance Issues\n\n```bash\n# Check for missing indexes\nEXPLAIN ANALYZE SELECT ...;\n\n# Monitor connection pool\nSELECT * FROM pg_stat_activity WHERE datname = 'workflow_db';\n\n# Check table sizes\nSELECT pg_size_pretty(pg_total_relation_size('step_events'));\n```\n\n## See Also\n\n- [Main CLAUDE.md](../../CLAUDE.md) - Backend architecture overview\n- [Backend Interface](../backend-interface/README.md) - Abstract backend contract\n- [Backend Filesystem](../backend-filesystem/README.md) - Filesystem implementation\n- [Worker README](../worker/README.md) - Distributed worker architecture\n- [Client README](../client/README.md) - Programmatic API usage\n","readmeFilename":"README.md"}