{"_id":"@heidi-dang/flowdeck","_rev":"52-545e284b60d7ada1d52d123b5a72d24d","name":"@heidi-dang/flowdeck","dist-tags":{"alpha":"0.8.0-alpha.11","next":"2.0.0-rc.1","latest":"2.5.0"},"versions":{"0.8.0-alpha.1":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.1","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.1","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"9bdefaed15c443b833d2669dea2807e39ef0d70f","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.1.tgz","fileCount":319,"integrity":"sha512-DHD5IXGiMwtoFaRL8ksYEkt61A0RlmFxupFAvWJD1x7O5pE02st7phCHbmwJoDD4GWLxUsgt0/TF/b8hulWwVw==","signatures":[{"sig":"MEUCIQDJWxhdlhe1kVCG9xi7ihqG0mbZpUqwCH9Jboe0rh1A8AIgZcpBvXSjgghJnLjDiEP3Dk2BiTvBYttO7Kf32mkYhP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1245534},"main":"./dist/index.js","type":"module","_from":"file:heidi-dang-flowdeck-0.8.0-alpha.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","validate:skills":"node scripts/validate-skills.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"_resolved":"/home/shacker/FlowDeck/heidi-dang-flowdeck-0.8.0-alpha.1.tgz","_integrity":"sha512-DHD5IXGiMwtoFaRL8ksYEkt61A0RlmFxupFAvWJD1x7O5pE02st7phCHbmwJoDD4GWLxUsgt0/TF/b8hulWwVw==","repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.1_1785147483526_0.8969275429717396","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.2":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.2","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.2","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"78c0c22d3925d1bc53091c93c93390f127ad9e8c","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.2.tgz","fileCount":142,"integrity":"sha512-Zjm6DXBLAhl2yR0ycVzUBl3sbFaWzzEzLTj932ci2ubrxM2D4/9HtTU14IrlzLvJ9EFZImrfaa0eubwhEjNc8Q==","signatures":[{"sig":"MEUCIQDOXC75Tabi0MCauWpzkJq+Lv0dQAMZ5W0UmQmk+AnQIQIgZc30wXEgLPneo2dgHsFN4RuMOp+YZaf2CWobAPIqaIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":673710},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"4d5432ef081d09163996c96f7d49af51e0576e01","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","validate:skills":"node scripts/validate-skills.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.2_1785151396307_0.7952226189911242","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.3":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.3","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.3","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"94b2a08cccc6cdb9f7a6e6e1f708c33debe26f7c","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.3.tgz","fileCount":142,"integrity":"sha512-xOh9YP03SC4NxRJ6mJJgCA7g5b3iACnNMugdcGKE1T9JixwsWE4aMZXaGaG1WKSODMOnuTAZU8ajFHJCffUtIQ==","signatures":[{"sig":"MEUCIQCgY2dPsMrcblBUBV296357q5UsF2UMImPtUOgtxa3ZhQIgTAJVua8LRWNESAsubOOlbU9AwUrP7D/O0TzbVCR5ORE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":673710},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"4d5432ef081d09163996c96f7d49af51e0576e01","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","validate:skills":"node scripts/validate-skills.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.3_1785152190140_0.36458945586741787","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.4":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.4","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.4","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"1e0f1b7273f61a91b3cfc2f2400b8fca6b150498","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.4.tgz","fileCount":325,"integrity":"sha512-p8yT69XMXJjOzDnsyTvjFS00uGe9JezmPQTxxQd7ThZ5KctVYn1MrCXqxBSTX8ah5qrEwXgIHHez8sP0KzOxHg==","signatures":[{"sig":"MEUCIQCp5EO6SrLc0L2VYK5YK2ivuqj8v15uBUHGrUtW60EJaAIgM+1C0qsd7K9OPNR6uDEesSa+KQentErbGiQjN9rTRVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1277513},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"64b9a2ab0b50ae7f69c2001e0a11242f8f4617cb","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","validate:skills":"node scripts/validate-skills.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.4_1785152596688_0.5665880698764147","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.5":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.5","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.5","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"74d46677051f7aadf1769d3494451371aaba531e","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.5.tgz","fileCount":340,"integrity":"sha512-uJipaXFqcaxJ2U43e32fo1YjUW+bouUpnJZSh1CeP0/RqzbqKcFq9bD+4m4zQvKo5v4smFdDOMyJQiYGTDxIfw==","signatures":[{"sig":"MEUCICVcEgf6Zr1MX1zoWVw1lG93Dxhs7ffg5hzNkEdqBJKFAiEA2y3gFFNnWg5wOIBeTNg39hEDCZo6NxX+/mRI8C4pcCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347398},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"98e4531a87a4c58558ce92d555ca4f7454113d64","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.5_1785157353370_0.3604239412996926","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.6":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.6","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.6","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"6ad041b53b350f70017032acdc3a7181e26803c8","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.6.tgz","fileCount":340,"integrity":"sha512-XtJEkko7GdbLyhEpSvTSAUb7R6GDurmfu6lACAXtjegq5QhzGrT/GIfC+5+h+gCUHAZoNFCVRYSUNsqZUK8/PQ==","signatures":[{"sig":"MEUCIQCEI6quCAmTjjKqNPX9AcRruAggFmWgga0Ob8jo3TiwMAIgDoOsrriGmZ45SrOkc5wptNqhGNIGpc2dfuFCQwUvRHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347441},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"094a4630ef7c2eafa7fe2592f74c0e09d2ec11ba","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.6_1785157505953_0.5479273923245576","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.7":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.7","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.7","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"456dedd5cecafe90e87b340119b34d9eb9f09c88","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.7.tgz","fileCount":340,"integrity":"sha512-C/VxN24DA0vm40C6mdlyMZK8wTu2rJy3YOacYhFPKcyIqAavTp9xRrRGIXOiW0jQBn9bunl2phTZ+4Sjo8gEIA==","signatures":[{"sig":"MEYCIQCzTC/nqdP95V+FuIC5EootVoWHfhflFQPnCzxq4HEMegIhAJxgFyaJkH/kEzSxHtdHfkaOU8qDVKQFgfv8ENEJFRhc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1344735},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"1aa5ded1cc28ef6964d22dc8be2c7eeb9f6c7670","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.7_1785160210432_0.4417343976306125","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.8":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.8","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.8","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"7231ae4981b6efe29c3615e6799701801dce49f7","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.8.tgz","fileCount":344,"integrity":"sha512-Tc8M7CkFllYnaLIRBHq/3eicI4BD9ZjqZ1ZsNbVAeYSXh8vuE7fEQfN7KMTsT3s1uhL/afOSUPKNiPioiP3GAw==","signatures":[{"sig":"MEUCIQDejA63YU12xs2SNcfmzSuox2MS/WWrCgh0zRogrsZ6VwIgfgWmfTshZ83ZJ7kEozWaHRViteblbWD+Upfl6X62I8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356763},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"385efca3951f2332ca8da8e35afe7c647c9f9090","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.8_1785162018928_0.6549840625296861","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.9":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.9","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.9","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"78306fee082164ae905cd2c21c4f1c8dc8b17de3","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.9.tgz","fileCount":345,"integrity":"sha512-1KocABBYj/u58jRoHtvIH3zeUXTP4XIIn7x8BRRao1l9WIZ7/tIg6bQK185EBosuZ3ui5pfk0nz/GWdeEsYWKA==","signatures":[{"sig":"MEQCIHa/GS4xVgeNXcXN2Arn9R3H5AKP0RLy6UpDSlQ3mmzRAiAQDrDKjsRnLDb+AztRd6LVFSbN9vG9CQKly+ARXrMcoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1359890},"main":"./dist/index.js","type":"module","_from":"file:heidi-dang-flowdeck-0.8.0-alpha.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/heidi-dang","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json && node scripts/generate-cjs-wrapper.mjs","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:packed-package":"node scripts/verify-packed-package.mjs","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:opencode-plugin-runtime":"node scripts/verify-opencode-runtime.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"_resolved":"/home/shacker/FlowDeck/heidi-dang-flowdeck-0.8.0-alpha.9.tgz","_integrity":"sha512-1KocABBYj/u58jRoHtvIH3zeUXTP4XIIn7x8BRRao1l9WIZ7/tIg6bQK185EBosuZ3ui5pfk0nz/GWdeEsYWKA==","repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.9_1785163603180_0.06562789065305852","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.10":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.10","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.10","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"7a02614d9a537656c3cf086c238a595615ccd846","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.10.tgz","fileCount":345,"integrity":"sha512-LlH2AcYkubgwA+it8dT0aWw62SOW+3GT441K/nicFlmq86rvjNYIpeLJFJAcll9NoY06SoCMMti4wX5g/xfWUw==","signatures":[{"sig":"MEQCIC88R2QxAJg8ji7FYzSPbM4xkFDR4ngSoOy+OsStrlTyAiBH1Qq+AdZxnaaNFyXpIRxYm9WCdvnsZnSUPhihM8rhLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1361230},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"d9093a74bb831c278efb991345593af8991449b0","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.10_1785168426544_0.970786719440339","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.11":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.11","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.11","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"08a76411dbe013381fc62a2bdb2a6a4d2a20682d","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.11.tgz","fileCount":453,"integrity":"sha512-YOcn8XD7ocCuYXkT/fPbW+J3PdmrZdBKk3XqFpRHVHZMlFc85BzSLgiUQhjcq846vuMeY8+qay149n669hK+FQ==","signatures":[{"sig":"MEUCIEK8sYe4BEBzOrly0+E53t0tSQSs4WcUID5mck47GkD1AiEAmvGVIEAMQ8IEpWTuHzCAOTMO4Ej8hmdscmAXLdBidPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2031465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"baeb04fc26a90099a2a6f92bb0e7caee01662fd6","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","validate:skills":"node scripts/validate-skills.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.11_1785169897930_0.5296027817445599","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.12":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.12","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.12","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"b1b11e7dc55f09645ffcbe11d598e0c72002ad05","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.12.tgz","fileCount":588,"integrity":"sha512-MTV+PbawctYGmMQ3AbpAPAhyjlFx1mgnlmw0/tNkOCcWhfOlwlV27PpAwpRxQloy0juE7ZGRAmtCifAzKmGUxQ==","signatures":[{"sig":"MEYCIQC8q4hFeXTVgYD1qv904dLIF9OyqGTvGvjXBoIvZNph6wIhAJPaKwzBzi/gDKZpNlAX92M0m517gwCPio9JsA727zo4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3176774},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"f32827e4cb13bced910e8260125e38743f4c2d97","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.12_1785227059761_0.7463710161803481","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"0.8.0-alpha.13":{"name":"@heidi-dang/flowdeck","version":"0.8.0-alpha.13","keywords":["opencode","plugin","ai","workflow","planning","heidi"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@0.8.0-alpha.13","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"1b0778a88843ab339c4e3352d65d5c816d38c290","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-0.8.0-alpha.13.tgz","fileCount":241,"integrity":"sha512-1ivH4QPDyOxTkCav4FAgc5h6yDhpwAYpYmYkYbe87QsN5gbpE03KR5LysvjqMMYguUB7qZUuA8LcbVG0P3NkcA==","signatures":[{"sig":"MEQCIDpEOfJi5kyzFTVCC6ieqQAZ2MCTXN5vOPvJxfiEmO5gAiAIWlParf2iDGp67Y+9ugd7to4VO6IvogOtO/eMnahU6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209491},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"cda20c3f3477639639a760df4ca038b487d50d83","scripts":{"lint":"oxlint --deny-warnings","test":"bun test","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — structured planning and execution workflows for OpenCode (Heidi fork)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_0.8.0-alpha.13_1785250147313_0.538642054145644","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"1.0.0":{"name":"@heidi-dang/flowdeck","version":"1.0.0","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@1.0.0","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"afcc00ae7a8cc3b3dd97c2eb49793b5ca9d95d93","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-1.0.0.tgz","fileCount":1011,"integrity":"sha512-t+MxuGnNzT7X5oMX5PYidJYEMU8yOBm1Rm+mo7PBLbfBU6WqjAxPAZ5FeT+EHeEIW3slpw4mJc01uk5sSEXZ2g==","signatures":[{"sig":"MEQCIFDmY6cNr7V8G5ux18830Oio4aWnvrG079WRc9wd8+5NAiAJjBgwb5ve+t/pdPr6ARxY8hLuVEcupa7qMi31AhSnIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3827959},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"7e7469ce7088ac4c958f1ac671850d1effbd46bf","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node -e \"const fs=require(\"fs\"),crypto=require(\"crypto\");const sql=fs.readFileSync(\"schema-v0.2.6.sql\",\"utf-8\");const c=crypto.createHash(\"sha256\").update(sql,\"utf-8\").digest(\"hex\");fs.writeFileSync(\"src/orchestration/persistence/migrations/schema-embed.ts\",\"// Auto-generated from schema-v0.2.6.sql - DO NOT EDIT\\n// Regenerate: npm run generate:schema\\n// Canonical checksum: \"+c+\"\\n\\nexport const SCHEMA_V_0_2_6 = \\`\"+sql.replace(/\\`/g,\"\\\\\\`\")+\"\\`;\\nexport const SCHEMA_CHECKSUM = \\\"\"+c+\"\\\";\\n\");console.log(\"Generated, checksum:\"+c);\"","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"node src/orchestration/persistence/__tests__/run-tests.mjs && node src/orchestration/persistence/__tests__/phase1-2-tests.mjs && node src/orchestration/persistence/__tests__/phase1-3-tests.mjs && node src/orchestration/persistence/__tests__/phase1-4-tests.mjs && node src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"deprecated":"Deprecated — streamed installer aborts with 'DOCTOR_PROFILE: unbound variable' on first run and packaged Doctor reports false failures on healthy installs. Upgrade to 1.0.1.","repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"9.2.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_1.0.0_1785504164363_0.6809583698195034","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"1.0.1":{"name":"@heidi-dang/flowdeck","version":"1.0.1","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@1.0.1","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"588274f5879ae200ad6d4fcb9e8314883cbbe112","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-1.0.1.tgz","fileCount":1015,"integrity":"sha512-VvmT0RPV6h0Yq0qHWNT9Cse8v/r/TxFRKJs3dJtp6CSY4+A3cZ5BVjup98Ph3apIW3SKn8es9Xs2P5bWO1kXzA==","signatures":[{"sig":"MEUCIH6UXOhJGrhlUzwuIYAjXQMQ5KMUAKoVOZcWVE2/HYCIAiEAhBCIFJRFPKqD1djNhGBgHPiq93gvLJfDAQ6J2dVcI08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3841649},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"dc1ad5db0cae945e1a03166836e9a24939afdf73","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node -e \"const fs=require(\"fs\"),crypto=require(\"crypto\");const sql=fs.readFileSync(\"schema-v0.2.6.sql\",\"utf-8\");const c=crypto.createHash(\"sha256\").update(sql,\"utf-8\").digest(\"hex\");fs.writeFileSync(\"src/orchestration/persistence/migrations/schema-embed.ts\",\"// Auto-generated from schema-v0.2.6.sql - DO NOT EDIT\\n// Regenerate: npm run generate:schema\\n// Canonical checksum: \"+c+\"\\n\\nexport const SCHEMA_V_0_2_6 = \\`\"+sql.replace(/\\`/g,\"\\\\\\`\")+\"\\`;\\nexport const SCHEMA_CHECKSUM = \\\"\"+c+\"\\\";\\n\");console.log(\"Generated, checksum:\"+c);\"","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"node src/orchestration/persistence/__tests__/run-tests.mjs && node src/orchestration/persistence/__tests__/phase1-2-tests.mjs && node src/orchestration/persistence/__tests__/phase1-3-tests.mjs && node src/orchestration/persistence/__tests__/phase1-4-tests.mjs && node src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.16.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"24.18.1","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_1.0.1_1785509473210_0.9547649718544873","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"1.0.3":{"name":"@heidi-dang/flowdeck","version":"1.0.3","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@1.0.3","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"650882a8d387c34ffbfe2c62671c2f97dc4f617a","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-1.0.3.tgz","fileCount":1017,"integrity":"sha512-oLYJMxdniAU9dtNdVZGaai2XLVa6EuHIF+j0w5KmWbvSSCT/WtTHGP5fYayXwO04KXIcaH60EQ3dEnkRX3L75Q==","signatures":[{"sig":"MEUCIQCKS0JCK0NWhn7wk8b+1pPJ+4Dn8Zdd1C/ADhqPApYclwIgKbuTefftJ3uogAq/h4lKeabl3ldoV2nmSCXwqbIBs1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3847782},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"5809fcf1230ff349ff0d7f5b53ed75403f44573b","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node -e \"const fs=require(\"fs\"),crypto=require(\"crypto\");const sql=fs.readFileSync(\"schema-v0.2.6.sql\",\"utf-8\");const c=crypto.createHash(\"sha256\").update(sql,\"utf-8\").digest(\"hex\");fs.writeFileSync(\"src/orchestration/persistence/migrations/schema-embed.ts\",\"// Auto-generated from schema-v0.2.6.sql - DO NOT EDIT\\n// Regenerate: npm run generate:schema\\n// Canonical checksum: \"+c+\"\\n\\nexport const SCHEMA_V_0_2_6 = \\`\"+sql.replace(/\\`/g,\"\\\\\\`\")+\"\\`;\\nexport const SCHEMA_CHECKSUM = \\\"\"+c+\"\\\";\\n\");console.log(\"Generated, checksum:\"+c);\"","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"node src/orchestration/persistence/__tests__/run-tests.mjs && node src/orchestration/persistence/__tests__/phase1-2-tests.mjs && node src/orchestration/persistence/__tests__/phase1-3-tests.mjs && node src/orchestration/persistence/__tests__/phase1-4-tests.mjs && node src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node bin/flowdeck.js clean-install --verify-only","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_1.0.3_1785551595100_0.7078241442816393","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.0-rc.1":{"name":"@heidi-dang/flowdeck","version":"2.0.0-rc.1","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.0-rc.1","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"5329a297e405d69df533ab4abddd6a465d33992d","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.0-rc.1.tgz","fileCount":1263,"integrity":"sha512-H63RssZccUGWWGWysdVSUkvbyT3X7I3N66W0/8uNvoY+3Bm2fVupBDwmDmFITr5XvK7arL9QulJAnNvev+9zJg==","signatures":[{"sig":"MEUCIQDFM5mjfOOjum5Siy+tiM9JDSiH7kKK2aCd4raiOffscgIgW7rcv5pj2siyNNloRlNDCO3C6ov+vkEDObNLjB562Zs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15904761},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"32513a722734999d814176f8d4aef66e606a9ce3","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.0-rc.1_1786718624877_0.6713497632532683","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.0":{"name":"@heidi-dang/flowdeck","version":"2.0.0","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.0","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"7fd02757647371d9226b7fbc0ceec5646606e624","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.0.tgz","fileCount":1264,"integrity":"sha512-QnJBqD0tjP5LNA7plRLtpXif4QofQxqRab10hUXUVvqqmhqKMfkOaFtVIZB7k+p/EzgMLjWBqyUiQbix7t+WPA==","signatures":[{"sig":"MEYCIQDEYcTlSMIinbLiB8SPqeCdLTLcZUbraJvWBHxw6Tg4QAIhAJOsRBpI4F/OnXORN3Cnh3pdNw2zglWmrmRXBKaWFtqz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15908438},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"40e40eaaac78ea9467fdaf032bb0e3cd086f5b23","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.0_1786742109076_0.7329170589977487","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.3":{"name":"@heidi-dang/flowdeck","version":"2.0.3","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.3","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"36e87a2aade2f7aa3271d60166514e97a23a99c7","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.3.tgz","fileCount":1776,"integrity":"sha512-h1F+ShnAJATyo5iSOf4tSinGVZ7ZLubhot4C/N8Pt7IB6WahDNKTX89s3++unebOe1Ao47CzFQJfHEZYP7z38w==","signatures":[{"sig":"MEUCIQDZVA513odzREBlTNa4juj8tG+UKvFo2L86pnwhbAbWpQIge47EGmBmH+5IpczeeXAqt8IbIhKA/jfKhXruGd3IPzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17861718},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"4c3fe2f097d08bf3c500dddbdf021d1cc68da2a8","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.3_1786859465014_0.30873629790970036","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.4":{"name":"@heidi-dang/flowdeck","version":"2.0.4","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.4","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"620cc813365910d5f0551d8b63a56a102f94eb44","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.4.tgz","fileCount":1777,"integrity":"sha512-Q2rw3K+UBLhBbx7bNj9sBic2Be6kfjn/CVBQBZeyUY3JxdRAKGWBd0/Hvvek+4KhiFBV7+fgEVyOiJICjnWO+g==","signatures":[{"sig":"MEUCIQC9ghaMkEbtGmhaJ2IHaTANFkzWJIiWSxhl4nHm+tzVSAIgLocoQLbqtggwLwNLRUsnkhhpG94+uf738+DVv2xNPTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17865423},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"a4e32fa4816a7402487c217c325dec1356f43323","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.17.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.4_1786868218872_0.5321328163061279","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.5":{"name":"@heidi-dang/flowdeck","version":"2.0.5","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.5","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"573805c7a54e4d4f5700322dcc0450b76e10b345","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.5.tgz","fileCount":1781,"integrity":"sha512-vjr4cMiJ7HcOSTSE7WnxDxa6Q0xW169ADRsnqBlxVPH2BcWiTXwSVcP/Flp+3R+aytRRfEyGFRbs5Xyo7TNY1w==","signatures":[{"sig":"MEQCIA2lNOpSymdaVwV7Hwb/9fAuh/gUizXC5Eo21/4hQA1lAiApnEgu9FThNGQURD5DenxvhwlpcJzB28UyOC4dGUsFiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17890830},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"aff3843d34335cb5979b4c8c39866f56fa98998f","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.5_1786880454925_0.24934305126449519","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.6":{"name":"@heidi-dang/flowdeck","version":"2.0.6","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.6","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"7bf9a0fc14de9b9d9c6887994845396aa6bd8368","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.6.tgz","fileCount":1788,"integrity":"sha512-y4Bwr1mAqpKbTk116Q+KD2JoGc4T75YjIvXAEggK91bW5nQvvnE3nZfaJcwf9nYj7PF0ekV2clw47CG/jRBkpw==","signatures":[{"sig":"MEYCIQDMsRaIfkDu3KtGqdJ/1jrGGyxbQQSAwHzvAxDt8x/69QIhAMeJQKyn4bCIcX990O9vhzxIpif59q3V/U+i2M4328Lx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17947231},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"71914ff9db34d3c151bcfa1f4d898576c36c2b75","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.6_1786966527674_0.7908489547073918","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.7":{"name":"@heidi-dang/flowdeck","version":"2.0.7","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.7","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"03bfa47cf6565fca5e27cf2d2e80b3fa895c877e","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.7.tgz","fileCount":1789,"integrity":"sha512-a64Gi0oBjSzJa4oesMmNMomRvPG+b01dreIsuh0HHIiRQ4dZNbfsOXoatgfYmyeaHV+EcA+GLhBYtTbdgzMCbg==","signatures":[{"sig":"MEUCIBamiLIoFcBmMX9HNW8f/X2+JWMt9zxFBM9xcczaEp4UAiEA5AWwQiEZb6WLATmyfGlJ5xxe1dVuWTN1MD+wXiz8Ty4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17954202},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"cb29c29cd36855b77597a128c45a160dd44ab716","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.7_1787005825280_0.7503338873548275","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.8":{"name":"@heidi-dang/flowdeck","version":"2.0.8","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.8","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"06c4e5ee7c9e9d360f57d793554a995ad726ebe0","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.8.tgz","fileCount":1793,"integrity":"sha512-GUlu266ptMBkh3eITPQ3EFCjnTvHwyAd5XtmFZon4AX5SaGUtPQEeKrAUHIOcwaUeAtAmuttL+ougEi3DMw7Xw==","signatures":[{"sig":"MEQCIG5RAy8WEfek/qo6G2aYwyCHNxu8h9xAddb4PJsHTpqnAiBdTskk7DegbzStvn/otylF4MDHkITKhQ61xlC875njJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17969525},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"68f287315f0b77d9ee4a6b9829786fef15543ed0","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.8_1787022225273_0.717693794215382","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.0.9":{"name":"@heidi-dang/flowdeck","version":"2.0.9","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.0.9","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"3bf6703f5c3693bf1a51ac8f4e199fc627543131","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.0.9.tgz","fileCount":1794,"integrity":"sha512-ca35+1bf5VvVVVMhvx9vX8e+MLtenqODCTFU8ADV3C2ZFb9N3qJvhXOS3n4GZwqnWVNRVD2nqX0OI+6IMxEByg==","signatures":[{"sig":"MEYCIQCjij3p6M/gWqDkNnDIwoIqhhwx9jUYaCwDi3LolGNofQIhAMmlGPBABxzYi7DhVkXWAciRMgBF9Bnq56l8NXSA4Beo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18029728},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"30bfede4125df6aa7ce347520110a0263e09f36b","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.0.9_1787031762494_0.5133554399208029","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.1.0":{"name":"@heidi-dang/flowdeck","version":"2.1.0","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.1.0","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"39d583fdbe37645888873a7217712c65fa155192","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.1.0.tgz","fileCount":1827,"integrity":"sha512-tgmpz/lhcwbQoF3KSQFMmmQtiXI8zTPJuJ8aqIdd+aMvhTaO1KTVX1ssHfwHTXCfnU41Fg3t6XoP8PyBP3qwrQ==","signatures":[{"sig":"MEYCIQCuZi15Q8blwBaDiATWwKRVfniFRQibZN2un/c4QmpIRgIhANM62nU1fIqliOs8Ctu5YqU7G1Ad0gpO1L9DKyf1GC2N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18238804},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"c409f231aa77ae6ab3c68731bb41ea396dc2cd16","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.1.0_1787053352224_0.9089396736668258","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.0":{"name":"@heidi-dang/flowdeck","version":"2.2.0","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.0","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"d239b69b021ec1e4a2d6046b3c7f2fc4b0731caa","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.0.tgz","fileCount":1901,"integrity":"sha512-mSS403iJZZb4/eaLOeskRfXCwTYUudBjawHTw0nr89JiGAGrVhL7cCyG0e/vGvwhU5CNa2F7eYUWrZsSwWh2Zg==","signatures":[{"sig":"MEQCIDrpG5u+nVgX++RMRiBe6NMv/LeETb9oqGAzmJo4vMdWAiBDyONkAC2sZy8xpizX3SgFc96WbmvjrF5VduXN967gUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18742904},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"351706a3ae8e807dcb8212e4617893ccfe52c17d","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.0_1787098018987_0.4688565086812113","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.1":{"name":"@heidi-dang/flowdeck","version":"2.2.1","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.1","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"0bb38cc07778d90a9ad03fa201689c3f605f4e44","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.1.tgz","fileCount":1908,"integrity":"sha512-OjgHldR2lk5PYRdThIE3dtrl7yKn10VGwZUvCPOrDmS4v98uBZRnkQ0a7zeGq6IUwgmRqQG3ukjIG6h5yhTcdA==","signatures":[{"sig":"MEMCIHvTSaFsEqq9ITj7u4VcPR6rNF3RneXLW91jKDnPhlHDAh9yf9fNXqKoxap189sPhnofwiUuDdyyNQOKuo4Ipu+A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18797820},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"a1b246cbd8ea98693a8ba08e7b458ed18f006db0","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.1_1787108930881_0.8944152209689287","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.2":{"name":"@heidi-dang/flowdeck","version":"2.2.2","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.2","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"fc827d15c533fb89cca08f3a62ccca4955c42e15","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.2.tgz","fileCount":1909,"integrity":"sha512-VZgC48qHbrSuj+O4R730PduRFMuja5XZeubsxFNy9NRx/MbRyA6RnU4PTZ0CbgLk3QU03i7XOM8BP0DS/Tp9DA==","signatures":[{"sig":"MEYCIQDcBfUugUsWX/6SvLyWUwGVz3LmnYHKcn/ZpsUShsrwTgIhALuOa2RKff2ihwJzmkJE6XdSXI++R/rYvM9qkvgbdpvx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18805813},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"27b76dcfc352770f0bae901e62ee11d70704939e","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.2_1787117851706_0.7937343601919369","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.3":{"name":"@heidi-dang/flowdeck","version":"2.2.3","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.3","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"abc563044ceb058a1b06e9bafba31289f7ec3ce6","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.3.tgz","fileCount":1910,"integrity":"sha512-blVOCBLeDkFCvfNaywZsWUdjt6AUVYUMd572EKbsrltYSupI2kQoal1C+aRnGVQrHE7ievBsqsH9oSZlZ8Uz4g==","signatures":[{"sig":"MEYCIQCdSZZbHhRYBo6F3Nr0UDtEEy4mEx/v+yWzaLNp4QMUtAIhALSqmDUcQZnTfnqZ80QF9SMv0b41FOToKWBXO2pU9D3i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18820108},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"f1690e2088049b59f7778ba7ea274a0fbd5f986c","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.3_1787125107348_0.09815385216240369","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.4":{"name":"@heidi-dang/flowdeck","version":"2.2.4","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.4","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"c521e50c672c1861f101b36747934ac13b91616c","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.4.tgz","fileCount":1914,"integrity":"sha512-dqR6LU0Xf83l/Cbxs49ORlirtM4+1rPX2/Pizpnsdk1oQo6DMEK1lRIAlrdE0YbqmcVC/bYshodZWHwAXHg8mA==","signatures":[{"sig":"MEQCIA5q8V1IdmV5n6fT6J2ZAlUIJy073Cqa3KRGFLFWmTeiAiBahVnl9TV8hh36RIrhdPy3/RqWeKTJG2JVlTQTgQjaYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18870516},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"3ef71d7c3a4e3e0b60c9f7ff326fd31e545213fc","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.17.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.4_1787177620574_0.4472324843462028","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.5":{"name":"@heidi-dang/flowdeck","version":"2.2.5","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.5","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"e0a9469f2215eb398b99f593aec569568a0fdbf3","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.5.tgz","fileCount":1932,"integrity":"sha512-wNKZ5D5gqD/zWN4kx/PdNCGqnZ9OQ59A3rp98wXEe4JxeEBQKf7WUq3Bu3bA7xCzC9xRcau/fzKBhuZtGHT3QA==","signatures":[{"sig":"MEUCIQDOwKmPt2+ddhg/mJHQ+2zGqUJm/UfwXcxkY9/FTbwfxwIgI0GXN9VPJ1SBe4xHsY12RSPMF+niFagcb22BY7bCC48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18962767},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"ac32e1dd13c7845bda67fc63d24cda4b8dc66922","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.5_1787216273283_0.9201184658086683","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.2.6":{"name":"@heidi-dang/flowdeck","version":"2.2.6","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.2.6","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js","flowdeck-better-harness":"bin/better-harness.js"},"dist":{"shasum":"bdf7f55f90cfe844952ea613f02541b3ab34e9f0","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.2.6.tgz","fileCount":1934,"integrity":"sha512-ImMbNou9MD7pbkRQ1LtBrNxuUbFp//gLdTDtDv4vgR+BCzjog1oI6R+zzeGprFEcME9Nv+JYQzc0PsBHot4cBQ==","signatures":[{"sig":"MEUCIQCtfx4n96J7xVdObrIPHy2HlLcTU5R4dLGQqI7zLPyYNAIgVaGOhSyfmaReXLHt2wMl500h1IIaIbCgjzVQevZJPXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18980230},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.4.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"0b537f353b6742d6a5c2ecf02427052494f0fb52","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json && bun build src/better-harness/index.ts --outdir dist/better-harness --target node --format esm","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","standalone:start":"bun run src/better-harness/testing/standalone-server-cli.ts","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","better-harness:serve":"node bin/better-harness.js","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.17.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.17.3"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.2.6_1787226843524_0.5997052829210743","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.3.0":{"name":"@heidi-dang/flowdeck","version":"2.3.0","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.3.0","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"e08fd8642e53964bbf8c190ec8e6dbe47a0cbb8b","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.3.0.tgz","fileCount":1629,"integrity":"sha512-SCrSBA9s1tBg7ejboesk3h7vTcuWeqAtJBJu3t/Ucv2e5OHI+6OjI06BXA9Rwr4VEg/3cdMZfoU4DpBIYn+ILw==","signatures":[{"sig":"MEYCIQCv4gHw6NiwwnaMoswDqD9cO30Lsr5027h/0RPB1rZo3gIhAK16u5xxp+9J45FMZNwUBSCTYXOx/DlNOwqzOkd0fgDS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15942243},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.18.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"a4afa7357f9f3440c4674f9f82ad67383165f011","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.18.18"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","ts-morph":"^28.0.0","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.18.18"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.3.0_1787303861878_0.9474788986179856","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.3.1":{"name":"@heidi-dang/flowdeck","version":"2.3.1","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.3.1","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"191dae328cebddff0f1a1ed3645cb6f5d3c848aa","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.3.1.tgz","fileCount":1629,"integrity":"sha512-s38QhEjuMmz/jEpbtwVOGf9uxl6/k5X3TqfAEWN+DPDkxH+ZMxbXWo1bl8jImGlFRlstIVjXZMFvnIPg/4Xldw==","signatures":[{"sig":"MEUCIFOwJ1SZgpSnffy9Z8LCNEZ84vuzPMmHR6sPs+F29muTAiEAo5mepKqjYfjzIK+0aX6doUBuZgeUPNgUritLtqVTTTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heidi-dang%2fflowdeck@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15942778},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.18.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"b898551554e7d9b8fba02c6b9f9b8bf66fe592d6","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"10.9.8","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.18.18"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","ts-morph":"^28.0.0","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.18.18"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.3.1_1787304327713_0.20578845793034595","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.4.0":{"name":"@heidi-dang/flowdeck","version":"2.4.0","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.4.0","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"2fe658a978ffed4a4c08abb0a418f0e72dd1ed60","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.4.0.tgz","fileCount":1635,"integrity":"sha512-mcHMn1bH5QWfGpo2JOCJf/8n0FxmpLpX/B4LW2OQduNbswpxCXBFAs3sFR8ipbB6wdQ8ADIbXIr7uEGoBruaSw==","signatures":[{"sig":"MEUCIEScc51Y40izxgZ4A9YPnu7qXNKFLQtxQ53KV/ZKB7GVAiEA5PrC9RtxSlFowDlWSvlmb8I80yqdtAKE0yH/Cfr4IYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15968291},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.18.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","gitHead":"05895b2dfd30906e72b2aff0f555a31759bc3288","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live/**\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"bun test --coverage --path-ignore-patterns=\"tests/live/**\"","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.17.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.18.18"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","ts-morph":"^28.0.0","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.18.18"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.4.0_1787365517430_0.3529024303455017","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.4.1":{"name":"@heidi-dang/flowdeck","version":"2.4.1","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","_id":"@heidi-dang/flowdeck@2.4.1","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"homepage":"https://github.com/heidi-dang/FlowDeck#readme","bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"bin":{"flowdeck":"bin/flowdeck.js"},"dist":{"shasum":"1f160447bfae9116431e42e7691faeabf1459781","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.4.1.tgz","fileCount":1635,"integrity":"sha512-8J+SsiNZrgltjA8+sQl6coHXloopOk72XkIfH3WP55eV6Ab93GCYIvKlawesBbmnL/OQiZDJmju9H9Tg/4j3Bw==","signatures":[{"sig":"MEUCIQCeYlqzX0YXDtAgPMlNXq2vThPIgzKevAFlvgB+2nG2sQIgJfuZtEfAY6sKAuTKvGUmGxA4Zsv6+C35P/doAT8T3AY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15945166},"main":"./dist/index.js","type":"module","_from":"file:heidi-dang-flowdeck-2.4.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","opencode":">=1.18.18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"funding":"https://github.com/sponsors/heidi-dang","scripts":{"lint":"oxlint --deny-warnings","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live*\"","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json","clean":"rm -rf dist","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","typecheck":"tsc --noEmit","postinstall":"node postinstall.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","benchmark:v2":"bun scripts/benchmark-v2.ts","install:clean":"node bin/flowdeck.js clean-install","test:coverage":"node scripts/check-coverage.mjs","validate:docs":"node scripts/validate-docs.mjs","prepublishOnly":"bun run clean && bun run build","verify:release":"node scripts/release-alignment.mjs","generate:schema":"node scripts/generate-schema.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","validate:skills":"node scripts/validate-skills.mjs","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","verify:installation":"node scripts/verify-opencode-integration.mjs","test:live-acceptance":"node scripts/run-live-acceptance.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","check:schema-generated":"node scripts/check-schema-generated.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:negative":"bun test tests/orchestration/negative","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs"},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"_resolved":"/home/shacker/Desktop/flowdeck-antigravity/heidi-dang-flowdeck-2.4.1.tgz","_integrity":"sha512-8J+SsiNZrgltjA8+sQl6coHXloopOk72XkIfH3WP55eV6Ab93GCYIvKlawesBbmnL/OQiZDJmju9H9Tg/4j3Bw==","repository":{"url":"git+https://github.com/heidi-dang/FlowDeck.git","type":"git"},"_npmVersion":"11.17.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","jsonc-parser":"^3.3.1","@opencode-ai/plugin":"^1.18.18"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ejs":"^6.0.1","oxlint":"^1.75.0","vitest":"^4.1.8","ts-morph":"^28.0.0","bun-types":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.3"},"peerDependencies":{"@opencode-ai/sdk":"^1.18.18"},"_npmOperationalInternal":{"tmp":"tmp/flowdeck_2.4.1_1787449177597_0.1828246781757319","host":"s3://npm-registry-packages-npm-production"},"flowdeckFdxCompatibility":{"required":"^0.1.0"}},"2.5.0":{"name":"@heidi-dang/flowdeck","version":"2.5.0","description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"bin":{"flowdeck":"bin/flowdeck.js"},"scripts":{"clean":"rm -rf dist","build":"bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external jsonc-parser && tsc --emitDeclarationOnly --project tsconfig.build.json","build:fdx":"cargo install --path crates/fdx --quiet","check:fdx":"fdx --version","postinstall":"node postinstall.mjs","prepublishOnly":"bun run clean && bun run build","test":"bun test --path-ignore-patterns=\"**/orchestration/persistence/**\" --path-ignore-patterns=\"tests/live*\"","test:live-acceptance":"node scripts/run-live-acceptance.mjs","test:fdx-parity":"node scripts/verify-fdx-parity.mjs","test:coverage":"node scripts/check-coverage.mjs","typecheck":"tsc --noEmit","lint":"oxlint --deny-warnings","validate:skills":"node scripts/validate-skills.mjs","verify:v2-milestones":"node scripts/verify-v2-milestones.mjs","verify:v2:gatekeeper":"node scripts/v2-final-gatekeeper.mjs","benchmark:v2":"bun scripts/benchmark-v2.ts","benchmark:adaptive-specialists":"bun scripts/orchestration/benchmark-adaptive-specialists.ts","verify:benchmark:v2":"node scripts/verify-v2-benchmark.mjs","validate:docs":"node scripts/validate-docs.mjs","verify:fast":"node scripts/pre-push.mjs --fast","verify:full":"node scripts/pre-push.mjs --full","verify:installation:offline":"node scripts/verify-opencode-integration.mjs --offline","verify:installation":"node scripts/verify-opencode-integration.mjs","verify:release":"node scripts/release-alignment.mjs","verify:clean-install":"node scripts/verify-clean-install-isolated.mjs","verify:completion-matrix":"node scripts/verify-completion-matrix.mjs","install:clean":"node bin/flowdeck.js clean-install","doctor":"node -e \"import('./dist/index.js').catch(() => { console.log('Build required first: bun run build'); process.exit(1); })\"","test:persistence":"bun src/orchestration/persistence/__tests__/run-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-2-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-3-tests.mjs && bun src/orchestration/persistence/__tests__/phase1-5-retry.mjs","test:persistence:node":"node src/orchestration/persistence/__tests__/run-tests.mjs","check:schema-generated":"node scripts/check-schema-generated.mjs","generate:schema":"node scripts/generate-schema.mjs","typecheck:dev2-compat":"echo \"Dev 2 compatibility check requires types from dev2/orchestration-contract-domain (SHA ffff758). Run with: tsc -p tsconfig.dev2-compat.json\" && tsc -p tsconfig.dev2-compat.json --noEmit 2>&1 | head -5","test:orchestration:framework":"bun test tests/orchestration/compliance tests/orchestration/harness tests/orchestration/fake tests/orchestration/runtime.test.ts","test:orchestration:matrix":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:compliance":"node scripts/generate-orchestration-compliance.mjs","test:orchestration:port-discovery":"bun test tests/orchestration/compliance/port-discovery.test.ts","test:orchestration:negative":"bun test tests/orchestration/negative","test:orchestration:replay":"bun test tests/orchestration/replay","test:orchestration:delivery":"bun test tests/orchestration/delivery","test:orchestration:metrics":"bun test tests/orchestration/metrics.test.ts","test:orchestration:concurrency":"bun test tests/orchestration/concurrency","test:orchestration:faults":"bun test tests/orchestration/fault","test:orchestration:fault-injection":"bun test tests/orchestration/fault","test:orchestration:integration":"node scripts/orchestration/run-integration-matrix.mjs","test:orchestration:integration:all":"node scripts/orchestration/run-integration-matrix.mjs --profile all","verify:orchestration:schema":"bun run scripts/orchestration/verify-schema.mjs","validate:orchestration:artifacts":"node scripts/orchestration/validate-artifacts.mjs","report:orchestration:compatibility":"node scripts/generate-orchestration-compliance.mjs","report:orchestration:provenance":"node scripts/generate-orchestration-provenance.mjs","report:orchestration:repair-handoff":"node scripts/orchestration/generate-repair-handoff.mjs","test:orchestration:all":"npm run test:orchestration:framework && npm run test:orchestration:matrix && npm run test:orchestration:port-discovery && npm run test:orchestration:negative && npm run test:orchestration:replay && npm run test:orchestration:concurrency && npm run test:orchestration:faults && npm run test:orchestration:integration && npm run verify:orchestration:schema"},"keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"author":{"name":"Heidi Dang"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/heidi-dang/FlowDeck.git"},"bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"homepage":"https://github.com/heidi-dang/FlowDeck#readme","funding":"https://github.com/sponsors/heidi-dang","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"flowdeckFdxCompatibility":{"required":"^0.1.0"},"engines":{"node":">=20.0.0","opencode":">=1.18.18"},"dependencies":{"@opencode-ai/plugin":"^1.18.18","jsonc-parser":"^3.3.1","zod":"^4.4.3"},"devDependencies":{"@types/node":"^25.9.3","bun-types":"^1.3.14","ejs":"^6.0.1","oxlint":"^1.75.0","ts-morph":"^28.0.0","typescript":"^6.0.3","vitest":"^4.1.8"},"peerDependencies":{"@opencode-ai/sdk":"^1.18.18"},"gitHead":"6bdcf246199ab34f9d46259c27838e3ece358dad","_id":"@heidi-dang/flowdeck@2.5.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-nXaSmbvwI8yVnKfKovMiQPfI6+JcfRHoFSkt+Ez37m/8KdzA85o781XXJXVFhCObNsSt2rhEWRu7L++E0wdmnw==","shasum":"77882a86fb49e50c51632d4f747e8e6a52a3c156","tarball":"https://registry.npmjs.org/@heidi-dang/flowdeck/-/flowdeck-2.5.0.tgz","fileCount":1689,"unpackedSize":17602861,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCrdVioANyZAw8CxikEPrMtfH6TaIdlUROfENCLrGTSOAIgFeIhSSQTbLbmdfcrDzjHhm4Vkr88AW8UMshuEe0v7i8="}]},"_npmUser":{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"},"directories":{},"maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/flowdeck_2.5.0_1787652155139_0.594982498718525"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T10:18:03.396Z","modified":"2026-08-25T10:02:35.525Z","0.8.0-alpha.1":"2026-07-27T10:18:03.688Z","0.8.0-alpha.2":"2026-07-27T11:23:16.495Z","0.8.0-alpha.3":"2026-07-27T11:36:30.305Z","0.8.0-alpha.4":"2026-07-27T11:43:16.852Z","0.8.0-alpha.5":"2026-07-27T13:02:33.519Z","0.8.0-alpha.6":"2026-07-27T13:05:06.119Z","0.8.0-alpha.7":"2026-07-27T13:50:10.613Z","0.8.0-alpha.8":"2026-07-27T14:20:19.095Z","0.8.0-alpha.9":"2026-07-27T14:46:43.301Z","0.8.0-alpha.10":"2026-07-27T16:07:06.773Z","0.8.0-alpha.11":"2026-07-27T16:31:38.162Z","0.8.0-alpha.12":"2026-07-28T08:24:19.928Z","0.8.0-alpha.13":"2026-07-28T14:49:07.499Z","1.0.0":"2026-07-31T13:22:44.574Z","1.0.1":"2026-07-31T14:51:13.422Z","1.0.3":"2026-08-01T02:33:15.381Z","2.0.0-rc.1":"2026-08-14T14:43:45.111Z","2.0.0":"2026-08-14T21:15:09.345Z","2.0.3":"2026-08-16T05:51:05.250Z","2.0.4":"2026-08-16T08:16:59.090Z","2.0.5":"2026-08-16T11:40:55.188Z","2.0.6":"2026-08-17T11:35:27.902Z","2.0.7":"2026-08-17T22:30:25.532Z","2.0.8":"2026-08-18T03:03:45.533Z","2.0.9":"2026-08-18T05:42:42.765Z","2.1.0":"2026-08-18T11:42:32.449Z","2.2.0":"2026-08-19T00:06:59.273Z","2.2.1":"2026-08-19T03:08:51.108Z","2.2.2":"2026-08-19T05:37:31.944Z","2.2.3":"2026-08-19T07:38:27.600Z","2.2.4":"2026-08-19T22:13:40.844Z","2.2.5":"2026-08-20T08:57:53.552Z","2.2.6":"2026-08-20T11:54:03.791Z","2.3.0":"2026-08-21T09:17:42.151Z","2.3.1":"2026-08-21T09:25:28.007Z","2.4.0":"2026-08-22T02:25:17.699Z","2.4.1":"2026-08-23T01:39:37.855Z","2.5.0":"2026-08-25T10:02:35.372Z"},"bugs":{"url":"https://github.com/heidi-dang/FlowDeck/issues"},"author":{"name":"Heidi Dang"},"license":"MIT","homepage":"https://github.com/heidi-dang/FlowDeck#readme","keywords":["opencode","multi-agent","orchestration","workflow","governance","code-intelligence","ci-repair","automation","fdx","plugin"],"repository":{"type":"git","url":"git+https://github.com/heidi-dang/FlowDeck.git"},"description":"FlowDeck — production-grade multi-agent orchestration, governance, CI repair, and code intelligence for OpenCode","maintainers":[{"name":"heidi-dang","email":"heidi.dang.dev@gmail.com"}],"readme":"# FlowDeck\n\n[![npm version](https://img.shields.io/npm/v/@heidi-dang/flowdeck.svg)](https://www.npmjs.com/package/@heidi-dang/flowdeck)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n**FlowDeck v2.5.0** is a production-grade orchestration engine and OpenCode plugin that delivers deterministic task routing, bounded repository intelligence, dynamic specialist coordination, rigorous verification, and high-performance code intelligence for complex software development.\n\n**14 registered agents** | **11 specialized subagents** | **89 validated skills** | **15 registered commands**\n\n---\n\n## What FlowDeck Is\n\nFlowDeck extends OpenCode with deterministic orchestration and repository intelligence. Rather than attempting to replace OpenCode's execution environment or inventing a competing model sandbox, FlowDeck acts as an intelligent governor and coordinator. It classifies developer requests, consults bounded repository evidence, creates dependency-ordered specialist plans, dispatches work through OpenCode's native subagent Task lifecycle, and strictly validates evidence before allowing any run to terminate.\n\nFlowDeck ensures that AI development workflows are reproducible, auditable, safe, and convergent.\n\n---\n\n## Core Design\n\nFlowDeck maintains strict, unambiguous authority boundaries across all participating subsystems:\n\n- **OpenCode**: The sole execution authority. OpenCode owns interactive sessions, native tools, permissions, filesystem sandboxing, and the underlying native Task and subagent lifecycle. FlowDeck never bypasses or duplicates OpenCode's execution substrate.\n- **Heidi**: The central orchestration authority. Heidi analyzes incoming developer intent, selects the deterministic execution strategy, manages orchestration state transitions, and guides task dispatch.\n- **Repo Master**: The advisory repository intelligence authority. Repo Master provides bounded, read-only repository context (file architecture, hot-context caches, Git change fingerprints) to inform planning. Repo Master is strictly advisory and has no execution or completion authority.\n- **SpecialistPlan**: The specialist selection and validation authority. It translates routing decisions and advisory repository context into an immutable, dependency-ordered, deduplicated specialist execution graph, enforcing strict fan-out limits (default cap: 3) and preserving inherited model and tool policies.\n- **VerificationService**: The verification authority. It evaluates objective verification evidence (test outputs, typecheck results, linter runs, schema conformance) against defined criteria. A passing check from `VerificationService` certifies evidence validity but does not directly modify terminal state.\n- **CompletionPolicy**: The sole terminal-completion authority. Only `CompletionPolicy` can evaluate the full aggregation of run requirements, active assignments, verification results, and termination preconditions to transition a run to terminal completion.\n- **FDX**: The high-performance Rust-native repository, code, and change intelligence subsystem. FDX performs AST parsing, dependency mapping, structural search, and safe Git diff analysis.\n\n| Component | Authority Role | Boundary / Guarantee |\n|---|---|---|\n| **OpenCode** | Execution & Tool Authority | Native sessions, tool permissions, sandboxing, and Task dispatch. |\n| **Heidi** | Orchestration Authority | Workflow classification, state transition management, and strategy coordination. |\n| **Repo Master** | Advisory Intelligence | Bounded, read-only repository context; never executes tools or completes runs. |\n| **SpecialistPlan** | Specialist Planning Authority | Dependency ordering, deduplication, fan-out caps, and policy inheritance. |\n| **VerificationService** | Verification Evaluation | Objective evaluation of test and verification evidence against pass/fail criteria. |\n| **CompletionPolicy** | Sole Terminal Completion Authority | Terminal completion evaluator; prose or unverified advice cannot complete runs. |\n| **FDX** | Code & Change Intelligence | High-speed AST parsing, dependency graphs, and robust Git diff analysis. |\n\n---\n\n## Adaptive Execution\n\nFlowDeck routes developer tasks adaptively using three deterministic execution modes based on task complexity, structural scope, and repository risk:\n\n### 1. DIRECT (`FAST_DIRECT`)\nUsed for self-contained, low-risk, or single-file operations (e.g. localized edits, typo fixes, simple queries, or quick doc updates).\n- **Behavior**: Bypasses specialist subagent fan-out and advisory overhead. Heidi coordinates the action directly within the primary session.\n- **Example**: `\"Fix the typo in src/config/defaults.ts and update the inline comment.\"`\n\n### 2. SINGLE_SPECIALIST (`SINGLE_SPECIALIST`)\nUsed for focused tasks that require domain expertise in a single functional area (e.g. backend implementation, frontend refactor, security audit, or dedicated test authoring).\n- **Behavior**: Heidi consults advisory repository context if needed, constructs a single-assignment `SpecialistPlan`, and delegates execution to the appropriate native OpenCode specialist subagent.\n- **Example**: `\"Implement the SQLite transactional run writer in src/orchestration/persistence/.\"`\n\n### 3. MULTI_SPECIALIST (`MULTI_SPECIALIST`)\nUsed for cross-cutting, repository-significant architectural features, multi-stage migrations, or complex full-stack changes.\n- **Behavior**: Heidi invokes Repo Master for bounded architectural and dependency intelligence, generates a multi-stage `SpecialistPlan` with explicit dependency ordering (DAG), deduplicates overlapping scopes, enforces the fan-out cap, and dispatches subagents sequentially or concurrently as dependencies allow.\n- **Example**: `\"Refactor the authentication middleware across API routes, add integration test coverage, and update client session management.\"`\n\n---\n\n## Repo Master\n\nRepo Master delivers bounded, fast, advisory repository intelligence to inform planning without unbounded exploration loops:\n\n- **Advisory Only**: Repo Master produces structured advice (architectural boundaries, file hotspots, dependency relationships) to guide `SpecialistPlan`. It cannot execute tools, write files, or mark tasks complete.\n- **Bounded Exploration**: Operates within strict token and time budgets. It never performs recursive file scans or unbounded search loops.\n- **Repository Fingerprint**: Computes deterministic fingerprints based on repository state (HEAD commit SHA, working tree dirty status, and file modification markers) to bind intelligence to the exact codebase state.\n- **Cache & Freshness**: Reuses warm in-memory context and FDX AST indexes; automatically invalidates cached intelligence when file modification times or Git SHAs change.\n- **Restart Behavior**: Ephemeral advisory state is safely discarded upon session restart. Durable runs re-evaluate repository context against the current working tree.\n- **Repository Isolation**: Scoped strictly to the target repository workspace; cannot inspect or leak data across project boundaries.\n- **Stale-State Invalidation**: Any file modification or branch shift immediately invalidates advisory caches, preventing stale planning.\n- **What It Cannot Do**: Repo Master cannot execute shell commands, cannot write code, cannot bypass security policies, and cannot authorize task completion.\n\n---\n\n## Dynamic Specialists\n\nFlowDeck orchestrates specialized capabilities dynamically while maintaining rigorous operational control:\n\n- **Capability-Driven Roles**: Specialists represent distinct functional capabilities (e.g., `@planner`, `@backend-coder`, `@frontend-coder`, `@tester`, `@reviewer`, `@security-auditor`, `@devops`, `@debug-specialist`).\n- **Bounded Fan-Out**: The `SpecialistPlan` enforces a strict concurrency and count cap (default maximum: 3 active specialists per stage) to prevent resource exhaustion and token explosion.\n- **Explicit Dependency Graph**: Specialist assignments form an acyclic dependency graph (`dependsOn`). Downstream specialists do not start until prerequisite specialist assignments successfully complete.\n- **Native OpenCode Task Execution**: Each specialist assignment executes as a native OpenCode subagent Task with clean execution isolation and standard OpenCode tool permissions.\n- **No Recursive Uncontrolled Delegation**: Specialists are strictly prohibited from spawning their own independent subagent trees. Only Heidi coordinates planning and delegation.\n- **Global Model Inheritance**: All specialists strictly inherit the user's globally configured OpenCode model. FlowDeck never silently substitutes models behind the user's back.\n\n---\n\n## Reliability\n\nFlowDeck is engineered with a fail-closed, transactionally consistent reliability architecture:\n\n- **Durable Run and Assignment State**: All orchestration lifecycle events, plans, assignments, and verification outputs are persisted in a local SQLite database.\n- **Restart Recovery**: If an OpenCode process or machine restarts mid-run, FlowDeck reconstructs the active run state, assesses completed assignments, and resumes execution without data loss or duplicate work.\n- **Idempotency**: All state transitions and assignment dispatches are idempotent. Re-evaluating an existing state produces identical outcomes.\n- **Convergence**: Orchestration loops must strictly converge toward completion. If progress stalls or cyclical failures occur, FlowDeck terminates the loop with explicit diagnostics.\n- **Strategy Exhaustion**: When a planned execution strategy fails repeatedly or exceeds retry budgets, FlowDeck fails closed and requires human intervention rather than entering infinite repair loops.\n- **Cancellation**: Active runs and pending specialist subagents can be cancelled cleanly, terminating child tasks and releasing resources.\n- **Replacement & Modification (MODIFY)**: Assignments can be dynamically replaced or modified in response to runtime discoveries, with all modifications logged transactionally.\n- **Fail-Closed Continuation Ambiguity**: If continuation conditions or session state become ambiguous, FlowDeck halts and requests clarification rather than making unverified assumptions.\n- **Persistence Corruption Behavior**: If the persistence store becomes corrupted or unreadable, FlowDeck safely fails closed, preserves the corrupted file for diagnostics, and initialises a safe recovery state.\n\n---\n\n## Verification and Completion\n\nFlowDeck enforces a non-negotiable separation between task output and completion verification:\n\n$$\\text{Specialist Output} \\neq \\text{Verification}$$\n$$\\text{Repo Master Advice} \\neq \\text{Verification}$$\n$$\\text{VerificationService PASS} \\neq \\text{Direct Terminal Mutation}$$\n\n- **No Completion Through Prose**: A specialist claiming \"all tests pass\" or \"task is complete\" in markdown text has zero authority. Text claims are ignored by the completion engine.\n- **Objective Evidence Required**: `VerificationService` evaluates real execution evidence—command exit codes, test runner JSON/TAP outputs, linter summaries, and compiler diagnostics.\n- **Separation of Evaluation and Mutation**: A passing result from `VerificationService` records verification evidence but does not directly mutate run status.\n- **CompletionPolicy Authority**: `CompletionPolicy` is the sole gatekeeper. It verifies that all mandatory specialist assignments are complete, all required verification checks have passed, no unresolved errors exist, and all goal criteria are met before transitioning a run to `COMPLETED`.\n\n---\n\n## FDX (FlowDeck Native Extension)\n\nFDX is FlowDeck's Rust-native code intelligence and repository analysis engine, located in `crates/fdx/`:\n\n- **File and Project Intelligence**: High-speed indexing of codebase structure, symbols, imports, and cross-file relationships using tree-sitter AST parsers.\n- **Dependency and Code Analysis**: Real-time dependency graph resolution across TypeScript, JavaScript, Rust, Python, and Java.\n- **Parsed Git Diff Safety**: Robust, hardened Git diff parsing that correctly handles multi-file diffs, binary files, rename detection, and edge cases.\n- **Forced-Colour Hardening**: Safe diff and command execution even in terminal environments where ANSI forced-colour styling (`color.ui = always`) is active.\n- **TypeScript Fallbacks**: Seamless TypeScript fallback implementations ensure full operational continuity on platforms or environments where native binaries are not yet compiled.\n\n---\n\n## Installation\n\n### Recommended: Install via npm\n\nInstall FlowDeck globally or locally in your project using npm:\n\n```bash\n# Global installation (recommended for CLI and OpenCode plugin registration)\nnpm install -g @heidi-dang/flowdeck\n\n# Register with OpenCode\nflowdeck install\n```\n\n### Local Repository / Development Installation\n\nTo install and link FlowDeck directly from a local repository checkout:\n\n```bash\n# From the root of the cloned FlowDeck repository\n./install.sh --local-repo .\n```\n\n### Bootstrap Installer Script\n\nYou can also use the atomic bootstrap installer script:\n\n```bash\n# Run doctor diagnostics without installing\ncurl -fsSL https://raw.githubusercontent.com/heidi-dang/flowdeck/main/install.sh | bash -s -- --doctor\n\n# Standard installation\ncurl -fsSL https://raw.githubusercontent.com/heidi-dang/flowdeck/main/install.sh | bash\n```\n\n---\n\n## Quick Start\n\n### 1. Register FlowDeck with OpenCode\n```bash\nflowdeck install\n```\n\n### 2. Verify Your Installation\n```bash\nflowdeck verify\nflowdeck doctor\n```\n\n### 3. Start OpenCode\nLaunch OpenCode in your project workspace. FlowDeck automatically activates as an OpenCode plugin:\n```bash\nopencode\n```\n\n### 4. Direct Task Execution\nIn your OpenCode prompt, interact naturally with Heidi:\n```text\n@heidi Run the test suite and fix any failing unit tests in the auth service.\n```\n\n---\n\n## Configuration\n\nFlowDeck respects standard OpenCode configuration and provides environment variables for granular control:\n\n| Variable | Description | Default |\n|---|---|---|\n| `FLOWDECK_PROFILE` | Default doctor profile (`minimal`, `recommended-dev`, `full-dev`, `ci`, `release`) | `recommended-dev` |\n| `FLOWDECK_STATE_DIR` | Directory path for SQLite persistence databases and orchestration state | `~/.flowdeck/state` or `.opencode/state` |\n| `FLOWDECK_PLAN_DIR` | Directory path for persisted specialist plans | `~/.flowdeck/plans` |\n| `FLOWDECK_GUARD_RAILS_ENABLED` | Enable runtime safety guardrails and command boundaries | `true` |\n| `FLOWDECK_DISABLE_MCP` | Disable Model Context Protocol (MCP) server integration | `false` |\n| `FDX_BINARY_PATH` | Path to custom compiled `fdx` native binary | Auto-detected |\n| `FDX_DISABLE_FALLBACK` | Disable TypeScript fallback when native FDX binary is unavailable | `false` |\n\n---\n\n## Models\n\nFlowDeck adheres to strict model transparency and predictability:\n\n- **Single Globally Selected Model**: Heidi and all specialist subagents inherit the model configured in your OpenCode session or settings.\n- **No Silent Model Swapping**: FlowDeck never swaps models behind the scenes (e.g. replacing a frontier model with a smaller model) without explicit user configuration.\n- **Inherited Policy**: Specialist subagents execute under the exact same model parameters and provider settings as the primary session.\n\n---\n\n## Doctor / Diagnostics\n\nFlowDeck includes comprehensive self-diagnostics to audit configuration, runtime dependencies, plugin health, and system requirements:\n\n```bash\n# Run comprehensive health check\nflowdeck doctor\n\n# Run doctor via npx\nnpx @heidi-dang/flowdeck doctor\n\n# Run doctor with automated safe repair of detected issues\n./install.sh --doctor --apply-recommended\n\n# Run doctor with strict failure exit codes for CI/CD\nflowdeck doctor --profile ci --strict\n```\n\n---\n\n## Development\n\nFlowDeck development uses Bun, Node.js, and Cargo:\n\n```bash\n# 1. Install dependencies\nnpm ci\n\n# 2. Linting and static analysis\nnpm run lint\n\n# 3. TypeScript type checking\nnpm run typecheck\n\n# 4. Run test suite\nnpm test\n\n# 5. Run test suite with coverage enforcement\nnpm run test:coverage\n\n# 6. Build and test Rust FDX native crate\ncargo fmt --all --check\ncargo clippy -p fdx --all-targets --all-features -- -D warnings\ncargo test -p fdx\n\n# 7. Verify FDX TypeScript/Rust parity\nnpm run test:fdx-parity\n\n# 8. Validate documentation and skills\nnpm run validate:docs\nnpm run validate:skills\n\n# 9. Execute full pre-push release gate\nnode scripts/pre-push.mjs --full\n```\n\n---\n\n## Testing Philosophy\n\nFlowDeck maintains high test confidence through rigorous multi-layered qualification:\n\n- **Production-Path Tests**: All tests execute against real production code paths rather than artificial test mocks.\n- **Adversarial & Fault Tests**: Tests explicitly inject database corruption, filesystem errors, invalid ASTs, malformed Git diffs, and timeout conditions to verify fail-closed behavior.\n- **Source-Bound Qualification**: All verification artifacts, schemas, and reports are directly derived and validated against repository source code.\n- **Fresh-Clone Gates**: Every release candidate is verified from a clean, isolated repository clone (`npm ci`, clean build, and end-to-end qualification).\n- **Cross-Platform CI**: Continuous integration matrices validate functionality across Ubuntu Linux, macOS, and Windows.\n\n---\n\n## Project Structure\n\n```\nflowdeck/\n├── bin/                      # CLI entry point (flowdeck)\n├── crates/\n│   └── fdx/                  # Rust native AST & code intelligence engine\n├── docs/                     # Documentation, release notes, and wiki\n├── install.sh                # Bootstrap installer and clean reinstall script\n├── package.json              # Package manifest and npm configuration\n├── scripts/                  # Pre-push gates, doctor engine, and validation tools\n├── src/\n│   ├── agents/               # Registered agent and specialist definitions\n│   ├── commands/             # OpenCode slash commands\n│   ├── config/               # Configuration management and transaction engine\n│   ├── doctor/               # Comprehensive diagnostic and repair checks\n│   ├── hooks/                # OpenCode plugin lifecycle hooks\n│   ├── mcp/                  # MCP server client integration\n│   ├── orchestration/        # Heidi, Repo Master, SpecialistPlan, and Persistence\n│   ├── services/             # VerificationService, CompletionPolicy, and Fast Router\n│   ├── skills/               # 89 validated agent skills\n│   └── tools/                # Native tool implementations and FDX bridges\n└── tests/                    # Unit, integration, E2E, and adversarial test suites\n```\n\n---\n\n## Security / Safety\n\n- **Permission Enforcement**: All specialist actions execute within OpenCode's native permission and sandbox model. FlowDeck never bypasses configured permissions.\n- **Fail-Closed Architecture**: Any unhandled exception, persistence failure, or verification ambiguity immediately halts execution in a safe state.\n- **Secret Handling**: Credentials, tokens, and secret environment variables are stripped from persisted plans, run logs, and diagnostic reports.\n- **No Completion Through Prose**: Task completion requires programmatic verification evidence; text-based conversational assertions cannot complete a run.\n- **No Hidden Model Substitution**: Operates strictly with user-configured models without hidden routing to third-party endpoints.\n\n---\n\n## Contributing\n\n1. Fork the repository and create a feature branch (`feat/your-feature-name`).\n2. Implement your changes following existing architectural boundaries and test-driven conventions.\n3. Ensure all tests, linting, typechecking, and docs validations pass:\n   ```bash\n   node scripts/pre-push.mjs --full\n   ```\n4. Submit a Pull Request against `main`. Ensure PR CI passes on Linux, macOS, and Windows.\n\n---\n\n## License\n\nMIT License\n\nCopyright (c) 2026 Dang Van Nghiem\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeFilename":"README.md"}