@petepetrash/circuit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +246 -0
- package/bin/circuit +44 -0
- package/bin/node-version-guard.d.ts +12 -0
- package/bin/node-version-guard.js +65 -0
- package/dist/app/checkpoints/discover.d.ts +63 -0
- package/dist/app/checkpoints/discover.d.ts.map +1 -0
- package/dist/app/checkpoints/discover.js +121 -0
- package/dist/app/checkpoints/discover.js.map +1 -0
- package/dist/app/checkpoints/render.d.ts +4 -0
- package/dist/app/checkpoints/render.d.ts.map +1 -0
- package/dist/app/checkpoints/render.js +68 -0
- package/dist/app/checkpoints/render.js.map +1 -0
- package/dist/app/continuity/brief.d.ts +140 -0
- package/dist/app/continuity/brief.d.ts.map +1 -0
- package/dist/app/continuity/brief.js +557 -0
- package/dist/app/continuity/brief.js.map +1 -0
- package/dist/app/continuity/harvest.d.ts +65 -0
- package/dist/app/continuity/harvest.d.ts.map +1 -0
- package/dist/app/continuity/harvest.js +658 -0
- package/dist/app/continuity/harvest.js.map +1 -0
- package/dist/app/continuity/records.d.ts +39 -0
- package/dist/app/continuity/records.d.ts.map +1 -0
- package/dist/app/continuity/records.js +210 -0
- package/dist/app/continuity/records.js.map +1 -0
- package/dist/app/history/extract.d.ts +8 -0
- package/dist/app/history/extract.d.ts.map +1 -0
- package/dist/app/history/extract.js +716 -0
- package/dist/app/history/extract.js.map +1 -0
- package/dist/app/history/indexer.d.ts +107 -0
- package/dist/app/history/indexer.d.ts.map +1 -0
- package/dist/app/history/indexer.js +234 -0
- package/dist/app/history/indexer.js.map +1 -0
- package/dist/app/history/memory-effect-read.d.ts +8 -0
- package/dist/app/history/memory-effect-read.d.ts.map +1 -0
- package/dist/app/history/memory-effect-read.js +40 -0
- package/dist/app/history/memory-effect-read.js.map +1 -0
- package/dist/app/history/memory-effect.d.ts +34 -0
- package/dist/app/history/memory-effect.d.ts.map +1 -0
- package/dist/app/history/memory-effect.js +234 -0
- package/dist/app/history/memory-effect.js.map +1 -0
- package/dist/app/history/memory-identity.d.ts +7 -0
- package/dist/app/history/memory-identity.d.ts.map +1 -0
- package/dist/app/history/memory-identity.js +39 -0
- package/dist/app/history/memory-identity.js.map +1 -0
- package/dist/app/history/memory-merge.d.ts +16 -0
- package/dist/app/history/memory-merge.d.ts.map +1 -0
- package/dist/app/history/memory-merge.js +224 -0
- package/dist/app/history/memory-merge.js.map +1 -0
- package/dist/app/history/memory-preview.d.ts +10 -0
- package/dist/app/history/memory-preview.d.ts.map +1 -0
- package/dist/app/history/memory-preview.js +103 -0
- package/dist/app/history/memory-preview.js.map +1 -0
- package/dist/app/history/pull-log.d.ts +13 -0
- package/dist/app/history/pull-log.d.ts.map +1 -0
- package/dist/app/history/pull-log.js +91 -0
- package/dist/app/history/pull-log.js.map +1 -0
- package/dist/app/history/pull-suppression.d.ts +12 -0
- package/dist/app/history/pull-suppression.d.ts.map +1 -0
- package/dist/app/history/pull-suppression.js +40 -0
- package/dist/app/history/pull-suppression.js.map +1 -0
- package/dist/app/history/query.d.ts +19 -0
- package/dist/app/history/query.d.ts.map +1 -0
- package/dist/app/history/query.js +342 -0
- package/dist/app/history/query.js.map +1 -0
- package/dist/app/history/recall-precision.d.ts +15 -0
- package/dist/app/history/recall-precision.d.ts.map +1 -0
- package/dist/app/history/recall-precision.js +116 -0
- package/dist/app/history/recall-precision.js.map +1 -0
- package/dist/app/history/run-source-files.d.ts +23 -0
- package/dist/app/history/run-source-files.d.ts.map +1 -0
- package/dist/app/history/run-source-files.js +82 -0
- package/dist/app/history/run-source-files.js.map +1 -0
- package/dist/app/history/run-start-recall.d.ts +18 -0
- package/dist/app/history/run-start-recall.d.ts.map +1 -0
- package/dist/app/history/run-start-recall.js +156 -0
- package/dist/app/history/run-start-recall.js.map +1 -0
- package/dist/app/inbox/discover.d.ts +63 -0
- package/dist/app/inbox/discover.d.ts.map +1 -0
- package/dist/app/inbox/discover.js +120 -0
- package/dist/app/inbox/discover.js.map +1 -0
- package/dist/app/inbox/render.d.ts +4 -0
- package/dist/app/inbox/render.d.ts.map +1 -0
- package/dist/app/inbox/render.js +66 -0
- package/dist/app/inbox/render.js.map +1 -0
- package/dist/app/operator-summary/writer.d.ts +41 -0
- package/dist/app/operator-summary/writer.d.ts.map +1 -0
- package/dist/app/operator-summary/writer.js +1667 -0
- package/dist/app/operator-summary/writer.js.map +1 -0
- package/dist/app/process-evidence/projection.d.ts +36 -0
- package/dist/app/process-evidence/projection.d.ts.map +1 -0
- package/dist/app/process-evidence/projection.js +137 -0
- package/dist/app/process-evidence/projection.js.map +1 -0
- package/dist/app/run-envelope/autonomous-run.d.ts +17 -0
- package/dist/app/run-envelope/autonomous-run.d.ts.map +1 -0
- package/dist/app/run-envelope/autonomous-run.js +59 -0
- package/dist/app/run-envelope/autonomous-run.js.map +1 -0
- package/dist/app/run-envelope/continuation-loop.d.ts +24 -0
- package/dist/app/run-envelope/continuation-loop.d.ts.map +1 -0
- package/dist/app/run-envelope/continuation-loop.js +72 -0
- package/dist/app/run-envelope/continuation-loop.js.map +1 -0
- package/dist/app/run-envelope/contract-lock.d.ts +15 -0
- package/dist/app/run-envelope/contract-lock.d.ts.map +1 -0
- package/dist/app/run-envelope/contract-lock.js +44 -0
- package/dist/app/run-envelope/contract-lock.js.map +1 -0
- package/dist/app/run-envelope/contract-quality.d.ts +15 -0
- package/dist/app/run-envelope/contract-quality.d.ts.map +1 -0
- package/dist/app/run-envelope/contract-quality.js +48 -0
- package/dist/app/run-envelope/contract-quality.js.map +1 -0
- package/dist/app/run-envelope/no-progress.d.ts +11 -0
- package/dist/app/run-envelope/no-progress.d.ts.map +1 -0
- package/dist/app/run-envelope/no-progress.js +40 -0
- package/dist/app/run-envelope/no-progress.js.map +1 -0
- package/dist/app/run-envelope/shadow-record.d.ts +40 -0
- package/dist/app/run-envelope/shadow-record.d.ts.map +1 -0
- package/dist/app/run-envelope/shadow-record.js +108 -0
- package/dist/app/run-envelope/shadow-record.js.map +1 -0
- package/dist/app/run-envelope/source-record.d.ts +62 -0
- package/dist/app/run-envelope/source-record.d.ts.map +1 -0
- package/dist/app/run-envelope/source-record.js +648 -0
- package/dist/app/run-envelope/source-record.js.map +1 -0
- package/dist/app/run-status/projection-common.d.ts +57 -0
- package/dist/app/run-status/projection-common.d.ts.map +1 -0
- package/dist/app/run-status/projection-common.js +90 -0
- package/dist/app/run-status/projection-common.js.map +1 -0
- package/dist/app/run-status/run-folder-projector.d.ts +9 -0
- package/dist/app/run-status/run-folder-projector.d.ts.map +1 -0
- package/dist/app/run-status/run-folder-projector.js +68 -0
- package/dist/app/run-status/run-folder-projector.js.map +1 -0
- package/dist/app/run-status/runtime-run-folder.d.ts +4 -0
- package/dist/app/run-status/runtime-run-folder.d.ts.map +1 -0
- package/dist/app/run-status/runtime-run-folder.js +461 -0
- package/dist/app/run-status/runtime-run-folder.js.map +1 -0
- package/dist/cli/checkpoints.d.ts +7 -0
- package/dist/cli/checkpoints.d.ts.map +1 -0
- package/dist/cli/checkpoints.js +60 -0
- package/dist/cli/checkpoints.js.map +1 -0
- package/dist/cli/chosen-connectors.d.ts +14 -0
- package/dist/cli/chosen-connectors.d.ts.map +1 -0
- package/dist/cli/chosen-connectors.js +85 -0
- package/dist/cli/chosen-connectors.js.map +1 -0
- package/dist/cli/circuit.d.ts +9 -0
- package/dist/cli/circuit.d.ts.map +1 -0
- package/dist/cli/circuit.js +218 -0
- package/dist/cli/circuit.js.map +1 -0
- package/dist/cli/command-vocabulary.d.ts +3 -0
- package/dist/cli/command-vocabulary.d.ts.map +1 -0
- package/dist/cli/command-vocabulary.js +26 -0
- package/dist/cli/command-vocabulary.js.map +1 -0
- package/dist/cli/commander-support.d.ts +6 -0
- package/dist/cli/commander-support.d.ts.map +1 -0
- package/dist/cli/commander-support.js +61 -0
- package/dist/cli/commander-support.js.map +1 -0
- package/dist/cli/compiled-flow-loading.d.ts +21 -0
- package/dist/cli/compiled-flow-loading.d.ts.map +1 -0
- package/dist/cli/compiled-flow-loading.js +84 -0
- package/dist/cli/compiled-flow-loading.js.map +1 -0
- package/dist/cli/config-command.d.ts +33 -0
- package/dist/cli/config-command.d.ts.map +1 -0
- package/dist/cli/config-command.js +367 -0
- package/dist/cli/config-command.js.map +1 -0
- package/dist/cli/create.d.ts +12 -0
- package/dist/cli/create.d.ts.map +1 -0
- package/dist/cli/create.js +229 -0
- package/dist/cli/create.js.map +1 -0
- package/dist/cli/custom-flow-package.d.ts +62 -0
- package/dist/cli/custom-flow-package.d.ts.map +1 -0
- package/dist/cli/custom-flow-package.js +294 -0
- package/dist/cli/custom-flow-package.js.map +1 -0
- package/dist/cli/doctor.d.ts +9 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +147 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/flow-selection-preview.d.ts +784 -0
- package/dist/cli/flow-selection-preview.d.ts.map +1 -0
- package/dist/cli/flow-selection-preview.js +248 -0
- package/dist/cli/flow-selection-preview.js.map +1 -0
- package/dist/cli/front-door.d.ts +3 -0
- package/dist/cli/front-door.d.ts.map +1 -0
- package/dist/cli/front-door.js +41 -0
- package/dist/cli/front-door.js.map +1 -0
- package/dist/cli/generate.d.ts +8 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +346 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/cli/handoff-codex-hooks.d.ts +25 -0
- package/dist/cli/handoff-codex-hooks.d.ts.map +1 -0
- package/dist/cli/handoff-codex-hooks.js +555 -0
- package/dist/cli/handoff-codex-hooks.js.map +1 -0
- package/dist/cli/handoff.d.ts +8 -0
- package/dist/cli/handoff.d.ts.map +1 -0
- package/dist/cli/handoff.js +634 -0
- package/dist/cli/handoff.js.map +1 -0
- package/dist/cli/help.d.ts +15 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +312 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/history.d.ts +2 -0
- package/dist/cli/history.d.ts.map +1 -0
- package/dist/cli/history.js +384 -0
- package/dist/cli/history.js.map +1 -0
- package/dist/cli/inbox.d.ts +7 -0
- package/dist/cli/inbox.d.ts.map +1 -0
- package/dist/cli/inbox.js +58 -0
- package/dist/cli/inbox.js.map +1 -0
- package/dist/cli/interactive/app.d.ts +11 -0
- package/dist/cli/interactive/app.d.ts.map +1 -0
- package/dist/cli/interactive/app.js +220 -0
- package/dist/cli/interactive/app.js.map +1 -0
- package/dist/cli/interactive/index.d.ts +2 -0
- package/dist/cli/interactive/index.d.ts.map +1 -0
- package/dist/cli/interactive/index.js +51 -0
- package/dist/cli/interactive/index.js.map +1 -0
- package/dist/cli/interactive/state.d.ts +122 -0
- package/dist/cli/interactive/state.d.ts.map +1 -0
- package/dist/cli/interactive/state.js +413 -0
- package/dist/cli/interactive/state.js.map +1 -0
- package/dist/cli/memory.d.ts +5 -0
- package/dist/cli/memory.d.ts.map +1 -0
- package/dist/cli/memory.js +327 -0
- package/dist/cli/memory.js.map +1 -0
- package/dist/cli/post-run-artifacts.d.ts +45 -0
- package/dist/cli/post-run-artifacts.d.ts.map +1 -0
- package/dist/cli/post-run-artifacts.js +100 -0
- package/dist/cli/post-run-artifacts.js.map +1 -0
- package/dist/cli/preview.d.ts +9 -0
- package/dist/cli/preview.d.ts.map +1 -0
- package/dist/cli/preview.js +326 -0
- package/dist/cli/preview.js.map +1 -0
- package/dist/cli/reclaim.d.ts +2 -0
- package/dist/cli/reclaim.d.ts.map +1 -0
- package/dist/cli/reclaim.js +67 -0
- package/dist/cli/reclaim.js.map +1 -0
- package/dist/cli/recovery-attempt-runner.d.ts +25 -0
- package/dist/cli/recovery-attempt-runner.d.ts.map +1 -0
- package/dist/cli/recovery-attempt-runner.js +98 -0
- package/dist/cli/recovery-attempt-runner.js.map +1 -0
- package/dist/cli/resume-input.d.ts +27 -0
- package/dist/cli/resume-input.d.ts.map +1 -0
- package/dist/cli/resume-input.js +58 -0
- package/dist/cli/resume-input.js.map +1 -0
- package/dist/cli/routed-connectors.d.ts +14 -0
- package/dist/cli/routed-connectors.d.ts.map +1 -0
- package/dist/cli/routed-connectors.js +85 -0
- package/dist/cli/routed-connectors.js.map +1 -0
- package/dist/cli/run-flag-vocabulary.d.ts +14 -0
- package/dist/cli/run-flag-vocabulary.d.ts.map +1 -0
- package/dist/cli/run-flag-vocabulary.js +38 -0
- package/dist/cli/run-flag-vocabulary.js.map +1 -0
- package/dist/cli/run-output.d.ts +32 -0
- package/dist/cli/run-output.d.ts.map +1 -0
- package/dist/cli/run-output.js +47 -0
- package/dist/cli/run-output.js.map +1 -0
- package/dist/cli/run-stdout-envelope.d.ts +47 -0
- package/dist/cli/run-stdout-envelope.d.ts.map +1 -0
- package/dist/cli/run-stdout-envelope.js +98 -0
- package/dist/cli/run-stdout-envelope.js.map +1 -0
- package/dist/cli/run.d.ts +59 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +1182 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/runs.d.ts +2 -0
- package/dist/cli/runs.d.ts.map +1 -0
- package/dist/cli/runs.js +88 -0
- package/dist/cli/runs.js.map +1 -0
- package/dist/cli/runtime-routing-policy.d.ts +51 -0
- package/dist/cli/runtime-routing-policy.d.ts.map +1 -0
- package/dist/cli/runtime-routing-policy.js +143 -0
- package/dist/cli/runtime-routing-policy.js.map +1 -0
- package/dist/cli/styled-table.d.ts +11 -0
- package/dist/cli/styled-table.d.ts.map +1 -0
- package/dist/cli/styled-table.js +40 -0
- package/dist/cli/styled-table.js.map +1 -0
- package/dist/cli/terminal-style.d.ts +26 -0
- package/dist/cli/terminal-style.d.ts.map +1 -0
- package/dist/cli/terminal-style.js +75 -0
- package/dist/cli/terminal-style.js.map +1 -0
- package/dist/cli/tty-notice.d.ts +21 -0
- package/dist/cli/tty-notice.d.ts.map +1 -0
- package/dist/cli/tty-notice.js +35 -0
- package/dist/cli/tty-notice.js.map +1 -0
- package/dist/cli/uninstall.d.ts +22 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +277 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/utility-progress.d.ts +14 -0
- package/dist/cli/utility-progress.d.ts.map +1 -0
- package/dist/cli/utility-progress.js +23 -0
- package/dist/cli/utility-progress.js.map +1 -0
- package/dist/cli/version-info.d.ts +2 -0
- package/dist/cli/version-info.d.ts.map +1 -0
- package/dist/cli/version-info.js +32 -0
- package/dist/cli/version-info.js.map +1 -0
- package/dist/connectors/claude-code.d.ts +16 -0
- package/dist/connectors/claude-code.d.ts.map +1 -0
- package/dist/connectors/claude-code.js +492 -0
- package/dist/connectors/claude-code.js.map +1 -0
- package/dist/connectors/codex-default-model.d.ts +10 -0
- package/dist/connectors/codex-default-model.d.ts.map +1 -0
- package/dist/connectors/codex-default-model.js +142 -0
- package/dist/connectors/codex-default-model.js.map +1 -0
- package/dist/connectors/codex.d.ts +21 -0
- package/dist/connectors/codex.d.ts.map +1 -0
- package/dist/connectors/codex.js +709 -0
- package/dist/connectors/codex.js.map +1 -0
- package/dist/connectors/connector.d.ts +7 -0
- package/dist/connectors/connector.d.ts.map +1 -0
- package/dist/connectors/connector.js +2 -0
- package/dist/connectors/connector.js.map +1 -0
- package/dist/connectors/cursor-agent.d.ts +10 -0
- package/dist/connectors/cursor-agent.d.ts.map +1 -0
- package/dist/connectors/cursor-agent.js +156 -0
- package/dist/connectors/cursor-agent.js.map +1 -0
- package/dist/connectors/custom.d.ts +7 -0
- package/dist/connectors/custom.d.ts.map +1 -0
- package/dist/connectors/custom.js +135 -0
- package/dist/connectors/custom.js.map +1 -0
- package/dist/connectors/health.d.ts +35 -0
- package/dist/connectors/health.d.ts.map +1 -0
- package/dist/connectors/health.js +169 -0
- package/dist/connectors/health.js.map +1 -0
- package/dist/connectors/remediation.d.ts +3 -0
- package/dist/connectors/remediation.d.ts.map +1 -0
- package/dist/connectors/remediation.js +16 -0
- package/dist/connectors/remediation.js.map +1 -0
- package/dist/connectors/resolver.d.ts +44 -0
- package/dist/connectors/resolver.d.ts.map +1 -0
- package/dist/connectors/resolver.js +204 -0
- package/dist/connectors/resolver.js.map +1 -0
- package/dist/connectors/subprocess.d.ts +59 -0
- package/dist/connectors/subprocess.d.ts.map +1 -0
- package/dist/connectors/subprocess.js +375 -0
- package/dist/connectors/subprocess.js.map +1 -0
- package/dist/flows/accommodation-ledger.d.ts +49 -0
- package/dist/flows/accommodation-ledger.d.ts.map +1 -0
- package/dist/flows/accommodation-ledger.js +277 -0
- package/dist/flows/accommodation-ledger.js.map +1 -0
- package/dist/flows/assemble-flow-schematic.d.ts +30 -0
- package/dist/flows/assemble-flow-schematic.d.ts.map +1 -0
- package/dist/flows/assemble-flow-schematic.js +58 -0
- package/dist/flows/assemble-flow-schematic.js.map +1 -0
- package/dist/flows/axis-selections.d.ts +4 -0
- package/dist/flows/axis-selections.d.ts.map +1 -0
- package/dist/flows/axis-selections.js +34 -0
- package/dist/flows/axis-selections.js.map +1 -0
- package/dist/flows/block-step-expansion.d.ts +69 -0
- package/dist/flows/block-step-expansion.d.ts.map +1 -0
- package/dist/flows/block-step-expansion.js +219 -0
- package/dist/flows/block-step-expansion.js.map +1 -0
- package/dist/flows/build/assembly-spec.d.ts +5 -0
- package/dist/flows/build/assembly-spec.d.ts.map +1 -0
- package/dist/flows/build/assembly-spec.js +287 -0
- package/dist/flows/build/assembly-spec.js.map +1 -0
- package/dist/flows/build/data.d.ts +848 -0
- package/dist/flows/build/data.d.ts.map +1 -0
- package/dist/flows/build/data.js +163 -0
- package/dist/flows/build/data.js.map +1 -0
- package/dist/flows/build/flow.d.ts +2 -0
- package/dist/flows/build/flow.d.ts.map +1 -0
- package/dist/flows/build/flow.js +4 -0
- package/dist/flows/build/flow.js.map +1 -0
- package/dist/flows/build/index.d.ts +4 -0
- package/dist/flows/build/index.d.ts.map +1 -0
- package/dist/flows/build/index.js +8 -0
- package/dist/flows/build/index.js.map +1 -0
- package/dist/flows/build/relay-hints.d.ts +5 -0
- package/dist/flows/build/relay-hints.d.ts.map +1 -0
- package/dist/flows/build/relay-hints.js +51 -0
- package/dist/flows/build/relay-hints.js.map +1 -0
- package/dist/flows/build/reports.d.ts +577 -0
- package/dist/flows/build/reports.d.ts.map +1 -0
- package/dist/flows/build/reports.js +698 -0
- package/dist/flows/build/reports.js.map +1 -0
- package/dist/flows/build/writers/baseline-snapshot.d.ts +4 -0
- package/dist/flows/build/writers/baseline-snapshot.d.ts.map +1 -0
- package/dist/flows/build/writers/baseline-snapshot.js +76 -0
- package/dist/flows/build/writers/baseline-snapshot.js.map +1 -0
- package/dist/flows/build/writers/checkpoint-brief-projection.d.ts +29 -0
- package/dist/flows/build/writers/checkpoint-brief-projection.d.ts.map +1 -0
- package/dist/flows/build/writers/checkpoint-brief-projection.js +145 -0
- package/dist/flows/build/writers/checkpoint-brief-projection.js.map +1 -0
- package/dist/flows/build/writers/checkpoint-brief.d.ts +3 -0
- package/dist/flows/build/writers/checkpoint-brief.d.ts.map +1 -0
- package/dist/flows/build/writers/checkpoint-brief.js +55 -0
- package/dist/flows/build/writers/checkpoint-brief.js.map +1 -0
- package/dist/flows/build/writers/checkpoint-html.d.ts +3 -0
- package/dist/flows/build/writers/checkpoint-html.d.ts.map +1 -0
- package/dist/flows/build/writers/checkpoint-html.js +106 -0
- package/dist/flows/build/writers/checkpoint-html.js.map +1 -0
- package/dist/flows/build/writers/close.d.ts +3 -0
- package/dist/flows/build/writers/close.d.ts.map +1 -0
- package/dist/flows/build/writers/close.js +72 -0
- package/dist/flows/build/writers/close.js.map +1 -0
- package/dist/flows/build/writers/plan.d.ts +3 -0
- package/dist/flows/build/writers/plan.d.ts.map +1 -0
- package/dist/flows/build/writers/plan.js +74 -0
- package/dist/flows/build/writers/plan.js.map +1 -0
- package/dist/flows/build/writers/result-projection.d.ts +13 -0
- package/dist/flows/build/writers/result-projection.d.ts.map +1 -0
- package/dist/flows/build/writers/result-projection.js +105 -0
- package/dist/flows/build/writers/result-projection.js.map +1 -0
- package/dist/flows/build/writers/touch-area-projection.d.ts +9 -0
- package/dist/flows/build/writers/touch-area-projection.d.ts.map +1 -0
- package/dist/flows/build/writers/touch-area-projection.js +120 -0
- package/dist/flows/build/writers/touch-area-projection.js.map +1 -0
- package/dist/flows/build/writers/touch-area.d.ts +3 -0
- package/dist/flows/build/writers/touch-area.d.ts.map +1 -0
- package/dist/flows/build/writers/touch-area.js +130 -0
- package/dist/flows/build/writers/touch-area.js.map +1 -0
- package/dist/flows/build/writers/verification-projection.d.ts +4 -0
- package/dist/flows/build/writers/verification-projection.d.ts.map +1 -0
- package/dist/flows/build/writers/verification-projection.js +21 -0
- package/dist/flows/build/writers/verification-projection.js.map +1 -0
- package/dist/flows/build/writers/verification.d.ts +3 -0
- package/dist/flows/build/writers/verification.d.ts.map +1 -0
- package/dist/flows/build/writers/verification.js +31 -0
- package/dist/flows/build/writers/verification.js.map +1 -0
- package/dist/flows/canonical-stage-policy.d.ts +14 -0
- package/dist/flows/canonical-stage-policy.d.ts.map +1 -0
- package/dist/flows/canonical-stage-policy.js +31 -0
- package/dist/flows/canonical-stage-policy.js.map +1 -0
- package/dist/flows/catalog-derivations.d.ts +34 -0
- package/dist/flows/catalog-derivations.d.ts.map +1 -0
- package/dist/flows/catalog-derivations.js +144 -0
- package/dist/flows/catalog-derivations.js.map +1 -0
- package/dist/flows/catalog.d.ts +16 -0
- package/dist/flows/catalog.d.ts.map +1 -0
- package/dist/flows/catalog.js +87 -0
- package/dist/flows/catalog.js.map +1 -0
- package/dist/flows/compile-schematic-to-flow.d.ts +16 -0
- package/dist/flows/compile-schematic-to-flow.d.ts.map +1 -0
- package/dist/flows/compile-schematic-to-flow.js +651 -0
- package/dist/flows/compile-schematic-to-flow.js.map +1 -0
- package/dist/flows/compiled-flow-file-plan.d.ts +8 -0
- package/dist/flows/compiled-flow-file-plan.d.ts.map +1 -0
- package/dist/flows/compiled-flow-file-plan.js +50 -0
- package/dist/flows/compiled-flow-file-plan.js.map +1 -0
- package/dist/flows/composition/actual-menu.d.ts +30 -0
- package/dist/flows/composition/actual-menu.d.ts.map +1 -0
- package/dist/flows/composition/actual-menu.js +131 -0
- package/dist/flows/composition/actual-menu.js.map +1 -0
- package/dist/flows/composition/composer.d.ts +73 -0
- package/dist/flows/composition/composer.d.ts.map +1 -0
- package/dist/flows/composition/composer.js +1339 -0
- package/dist/flows/composition/composer.js.map +1 -0
- package/dist/flows/composition/equipment-profiles.d.ts +21 -0
- package/dist/flows/composition/equipment-profiles.d.ts.map +1 -0
- package/dist/flows/composition/equipment-profiles.js +82 -0
- package/dist/flows/composition/equipment-profiles.js.map +1 -0
- package/dist/flows/composition/evaluate.d.ts +76 -0
- package/dist/flows/composition/evaluate.d.ts.map +1 -0
- package/dist/flows/composition/evaluate.js +373 -0
- package/dist/flows/composition/evaluate.js.map +1 -0
- package/dist/flows/composition/index.d.ts +8 -0
- package/dist/flows/composition/index.d.ts.map +1 -0
- package/dist/flows/composition/index.js +16 -0
- package/dist/flows/composition/index.js.map +1 -0
- package/dist/flows/composition/intent.d.ts +10 -0
- package/dist/flows/composition/intent.d.ts.map +1 -0
- package/dist/flows/composition/intent.js +125 -0
- package/dist/flows/composition/intent.js.map +1 -0
- package/dist/flows/composition/propose-prompts.d.ts +3 -0
- package/dist/flows/composition/propose-prompts.d.ts.map +1 -0
- package/dist/flows/composition/propose-prompts.js +196 -0
- package/dist/flows/composition/propose-prompts.js.map +1 -0
- package/dist/flows/composition/propose.d.ts +36 -0
- package/dist/flows/composition/propose.d.ts.map +1 -0
- package/dist/flows/composition/propose.js +275 -0
- package/dist/flows/composition/propose.js.map +1 -0
- package/dist/flows/contract-body-signature.d.ts +4 -0
- package/dist/flows/contract-body-signature.d.ts.map +1 -0
- package/dist/flows/contract-body-signature.js +166 -0
- package/dist/flows/contract-body-signature.js.map +1 -0
- package/dist/flows/converge-proof/assembly-spec.d.ts +5 -0
- package/dist/flows/converge-proof/assembly-spec.d.ts.map +1 -0
- package/dist/flows/converge-proof/assembly-spec.js +115 -0
- package/dist/flows/converge-proof/assembly-spec.js.map +1 -0
- package/dist/flows/converge-proof/data.d.ts +412 -0
- package/dist/flows/converge-proof/data.d.ts.map +1 -0
- package/dist/flows/converge-proof/data.js +23 -0
- package/dist/flows/converge-proof/data.js.map +1 -0
- package/dist/flows/converge-proof/flow.d.ts +2 -0
- package/dist/flows/converge-proof/flow.d.ts.map +1 -0
- package/dist/flows/converge-proof/flow.js +4 -0
- package/dist/flows/converge-proof/flow.js.map +1 -0
- package/dist/flows/cross-tool-build/assembly-spec.d.ts +5 -0
- package/dist/flows/cross-tool-build/assembly-spec.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/assembly-spec.js +183 -0
- package/dist/flows/cross-tool-build/assembly-spec.js.map +1 -0
- package/dist/flows/cross-tool-build/data.d.ts +570 -0
- package/dist/flows/cross-tool-build/data.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/data.js +94 -0
- package/dist/flows/cross-tool-build/data.js.map +1 -0
- package/dist/flows/cross-tool-build/flow.d.ts +2 -0
- package/dist/flows/cross-tool-build/flow.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/flow.js +4 -0
- package/dist/flows/cross-tool-build/flow.js.map +1 -0
- package/dist/flows/cross-tool-build/relay-hints.d.ts +7 -0
- package/dist/flows/cross-tool-build/relay-hints.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/relay-hints.js +76 -0
- package/dist/flows/cross-tool-build/relay-hints.js.map +1 -0
- package/dist/flows/cross-tool-build/reports.d.ts +161 -0
- package/dist/flows/cross-tool-build/reports.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/reports.js +196 -0
- package/dist/flows/cross-tool-build/reports.js.map +1 -0
- package/dist/flows/cross-tool-build/writers/close.d.ts +3 -0
- package/dist/flows/cross-tool-build/writers/close.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/writers/close.js +49 -0
- package/dist/flows/cross-tool-build/writers/close.js.map +1 -0
- package/dist/flows/cross-tool-build/writers/plan.d.ts +3 -0
- package/dist/flows/cross-tool-build/writers/plan.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/writers/plan.js +27 -0
- package/dist/flows/cross-tool-build/writers/plan.js.map +1 -0
- package/dist/flows/cross-tool-build/writers/verification.d.ts +3 -0
- package/dist/flows/cross-tool-build/writers/verification.d.ts.map +1 -0
- package/dist/flows/cross-tool-build/writers/verification.js +46 -0
- package/dist/flows/cross-tool-build/writers/verification.js.map +1 -0
- package/dist/flows/equipment-reshape.d.ts +18 -0
- package/dist/flows/equipment-reshape.d.ts.map +1 -0
- package/dist/flows/equipment-reshape.js +119 -0
- package/dist/flows/equipment-reshape.js.map +1 -0
- package/dist/flows/explainer/data.d.ts +1032 -0
- package/dist/flows/explainer/data.d.ts.map +1 -0
- package/dist/flows/explainer/data.js +712 -0
- package/dist/flows/explainer/data.js.map +1 -0
- package/dist/flows/explainer/flow.d.ts +2 -0
- package/dist/flows/explainer/flow.d.ts.map +1 -0
- package/dist/flows/explainer/flow.js +4 -0
- package/dist/flows/explainer/flow.js.map +1 -0
- package/dist/flows/explainer/relay-hints.d.ts +4 -0
- package/dist/flows/explainer/relay-hints.d.ts.map +1 -0
- package/dist/flows/explainer/relay-hints.js +28 -0
- package/dist/flows/explainer/relay-hints.js.map +1 -0
- package/dist/flows/explainer/reports.d.ts +394 -0
- package/dist/flows/explainer/reports.d.ts.map +1 -0
- package/dist/flows/explainer/reports.js +296 -0
- package/dist/flows/explainer/reports.js.map +1 -0
- package/dist/flows/explainer/writers/close.d.ts +3 -0
- package/dist/flows/explainer/writers/close.d.ts.map +1 -0
- package/dist/flows/explainer/writers/close.js +67 -0
- package/dist/flows/explainer/writers/close.js.map +1 -0
- package/dist/flows/explainer/writers/digest.d.ts +3 -0
- package/dist/flows/explainer/writers/digest.d.ts.map +1 -0
- package/dist/flows/explainer/writers/digest.js +47 -0
- package/dist/flows/explainer/writers/digest.js.map +1 -0
- package/dist/flows/explainer/writers/ideas.d.ts +3 -0
- package/dist/flows/explainer/writers/ideas.d.ts.map +1 -0
- package/dist/flows/explainer/writers/ideas.js +65 -0
- package/dist/flows/explainer/writers/ideas.js.map +1 -0
- package/dist/flows/explainer/writers/intake.d.ts +3 -0
- package/dist/flows/explainer/writers/intake.d.ts.map +1 -0
- package/dist/flows/explainer/writers/intake.js +33 -0
- package/dist/flows/explainer/writers/intake.js.map +1 -0
- package/dist/flows/explainer/writers/spec.d.ts +3 -0
- package/dist/flows/explainer/writers/spec.d.ts.map +1 -0
- package/dist/flows/explainer/writers/spec.js +77 -0
- package/dist/flows/explainer/writers/spec.js.map +1 -0
- package/dist/flows/explainer/writers/verification.d.ts +3 -0
- package/dist/flows/explainer/writers/verification.d.ts.map +1 -0
- package/dist/flows/explainer/writers/verification.js +43 -0
- package/dist/flows/explainer/writers/verification.js.map +1 -0
- package/dist/flows/explore/assembly-spec.d.ts +5 -0
- package/dist/flows/explore/assembly-spec.d.ts.map +1 -0
- package/dist/flows/explore/assembly-spec.js +344 -0
- package/dist/flows/explore/assembly-spec.js.map +1 -0
- package/dist/flows/explore/data.d.ts +734 -0
- package/dist/flows/explore/data.d.ts.map +1 -0
- package/dist/flows/explore/data.js +174 -0
- package/dist/flows/explore/data.js.map +1 -0
- package/dist/flows/explore/flow.d.ts +2 -0
- package/dist/flows/explore/flow.d.ts.map +1 -0
- package/dist/flows/explore/flow.js +4 -0
- package/dist/flows/explore/flow.js.map +1 -0
- package/dist/flows/explore/index.d.ts +4 -0
- package/dist/flows/explore/index.d.ts.map +1 -0
- package/dist/flows/explore/index.js +8 -0
- package/dist/flows/explore/index.js.map +1 -0
- package/dist/flows/explore/relay-hints.d.ts +6 -0
- package/dist/flows/explore/relay-hints.d.ts.map +1 -0
- package/dist/flows/explore/relay-hints.js +53 -0
- package/dist/flows/explore/relay-hints.js.map +1 -0
- package/dist/flows/explore/reports.d.ts +483 -0
- package/dist/flows/explore/reports.d.ts.map +1 -0
- package/dist/flows/explore/reports.js +359 -0
- package/dist/flows/explore/reports.js.map +1 -0
- package/dist/flows/explore/writers/analysis.d.ts +3 -0
- package/dist/flows/explore/writers/analysis.d.ts.map +1 -0
- package/dist/flows/explore/writers/analysis.js +55 -0
- package/dist/flows/explore/writers/analysis.js.map +1 -0
- package/dist/flows/explore/writers/brief.d.ts +3 -0
- package/dist/flows/explore/writers/brief.d.ts.map +1 -0
- package/dist/flows/explore/writers/brief.js +24 -0
- package/dist/flows/explore/writers/brief.js.map +1 -0
- package/dist/flows/explore/writers/close.d.ts +3 -0
- package/dist/flows/explore/writers/close.d.ts.map +1 -0
- package/dist/flows/explore/writers/close.js +86 -0
- package/dist/flows/explore/writers/close.js.map +1 -0
- package/dist/flows/explore/writers/decision-options-projection.d.ts +10 -0
- package/dist/flows/explore/writers/decision-options-projection.d.ts.map +1 -0
- package/dist/flows/explore/writers/decision-options-projection.js +108 -0
- package/dist/flows/explore/writers/decision-options-projection.js.map +1 -0
- package/dist/flows/explore/writers/decision-options.d.ts +3 -0
- package/dist/flows/explore/writers/decision-options.d.ts.map +1 -0
- package/dist/flows/explore/writers/decision-options.js +25 -0
- package/dist/flows/explore/writers/decision-options.js.map +1 -0
- package/dist/flows/explore/writers/decision.d.ts +3 -0
- package/dist/flows/explore/writers/decision.d.ts.map +1 -0
- package/dist/flows/explore/writers/decision.js +80 -0
- package/dist/flows/explore/writers/decision.js.map +1 -0
- package/dist/flows/explore/writers/result-projection.d.ts +17 -0
- package/dist/flows/explore/writers/result-projection.d.ts.map +1 -0
- package/dist/flows/explore/writers/result-projection.js +41 -0
- package/dist/flows/explore/writers/result-projection.js.map +1 -0
- package/dist/flows/explore/writers/tournament-html.d.ts +3 -0
- package/dist/flows/explore/writers/tournament-html.d.ts.map +1 -0
- package/dist/flows/explore/writers/tournament-html.js +119 -0
- package/dist/flows/explore/writers/tournament-html.js.map +1 -0
- package/dist/flows/fix/assembly-spec.d.ts +5 -0
- package/dist/flows/fix/assembly-spec.d.ts.map +1 -0
- package/dist/flows/fix/assembly-spec.js +405 -0
- package/dist/flows/fix/assembly-spec.js.map +1 -0
- package/dist/flows/fix/data.d.ts +921 -0
- package/dist/flows/fix/data.d.ts.map +1 -0
- package/dist/flows/fix/data.js +207 -0
- package/dist/flows/fix/data.js.map +1 -0
- package/dist/flows/fix/flow.d.ts +2 -0
- package/dist/flows/fix/flow.d.ts.map +1 -0
- package/dist/flows/fix/flow.js +4 -0
- package/dist/flows/fix/flow.js.map +1 -0
- package/dist/flows/fix/index.d.ts +3 -0
- package/dist/flows/fix/index.d.ts.map +1 -0
- package/dist/flows/fix/index.js +5 -0
- package/dist/flows/fix/index.js.map +1 -0
- package/dist/flows/fix/relay-hints.d.ts +6 -0
- package/dist/flows/fix/relay-hints.d.ts.map +1 -0
- package/dist/flows/fix/relay-hints.js +52 -0
- package/dist/flows/fix/relay-hints.js.map +1 -0
- package/dist/flows/fix/reports.d.ts +562 -0
- package/dist/flows/fix/reports.d.ts.map +1 -0
- package/dist/flows/fix/reports.js +822 -0
- package/dist/flows/fix/reports.js.map +1 -0
- package/dist/flows/fix/writers/baseline-snapshot.d.ts +3 -0
- package/dist/flows/fix/writers/baseline-snapshot.d.ts.map +1 -0
- package/dist/flows/fix/writers/baseline-snapshot.js +45 -0
- package/dist/flows/fix/writers/baseline-snapshot.js.map +1 -0
- package/dist/flows/fix/writers/brief-projection.d.ts +8 -0
- package/dist/flows/fix/writers/brief-projection.d.ts.map +1 -0
- package/dist/flows/fix/writers/brief-projection.js +149 -0
- package/dist/flows/fix/writers/brief-projection.js.map +1 -0
- package/dist/flows/fix/writers/brief.d.ts +3 -0
- package/dist/flows/fix/writers/brief.d.ts.map +1 -0
- package/dist/flows/fix/writers/brief.js +29 -0
- package/dist/flows/fix/writers/brief.js.map +1 -0
- package/dist/flows/fix/writers/change-set-projection.d.ts +10 -0
- package/dist/flows/fix/writers/change-set-projection.d.ts.map +1 -0
- package/dist/flows/fix/writers/change-set-projection.js +62 -0
- package/dist/flows/fix/writers/change-set-projection.js.map +1 -0
- package/dist/flows/fix/writers/change-set.d.ts +3 -0
- package/dist/flows/fix/writers/change-set.d.ts.map +1 -0
- package/dist/flows/fix/writers/change-set.js +93 -0
- package/dist/flows/fix/writers/change-set.js.map +1 -0
- package/dist/flows/fix/writers/close.d.ts +3 -0
- package/dist/flows/fix/writers/close.d.ts.map +1 -0
- package/dist/flows/fix/writers/close.js +86 -0
- package/dist/flows/fix/writers/close.js.map +1 -0
- package/dist/flows/fix/writers/regression-baseline.d.ts +3 -0
- package/dist/flows/fix/writers/regression-baseline.d.ts.map +1 -0
- package/dist/flows/fix/writers/regression-baseline.js +39 -0
- package/dist/flows/fix/writers/regression-baseline.js.map +1 -0
- package/dist/flows/fix/writers/regression-projection.d.ts +5 -0
- package/dist/flows/fix/writers/regression-projection.d.ts.map +1 -0
- package/dist/flows/fix/writers/regression-projection.js +71 -0
- package/dist/flows/fix/writers/regression-projection.js.map +1 -0
- package/dist/flows/fix/writers/regression-rerun.d.ts +3 -0
- package/dist/flows/fix/writers/regression-rerun.d.ts.map +1 -0
- package/dist/flows/fix/writers/regression-rerun.js +51 -0
- package/dist/flows/fix/writers/regression-rerun.js.map +1 -0
- package/dist/flows/fix/writers/result-projection.d.ts +15 -0
- package/dist/flows/fix/writers/result-projection.d.ts.map +1 -0
- package/dist/flows/fix/writers/result-projection.js +58 -0
- package/dist/flows/fix/writers/result-projection.js.map +1 -0
- package/dist/flows/fix/writers/verification-projection.d.ts +4 -0
- package/dist/flows/fix/writers/verification-projection.d.ts.map +1 -0
- package/dist/flows/fix/writers/verification-projection.js +24 -0
- package/dist/flows/fix/writers/verification-projection.js.map +1 -0
- package/dist/flows/fix/writers/verification.d.ts +3 -0
- package/dist/flows/fix/writers/verification.d.ts.map +1 -0
- package/dist/flows/fix/writers/verification.js +32 -0
- package/dist/flows/fix/writers/verification.js.map +1 -0
- package/dist/flows/fix-until-green/assembly-spec.d.ts +5 -0
- package/dist/flows/fix-until-green/assembly-spec.d.ts.map +1 -0
- package/dist/flows/fix-until-green/assembly-spec.js +141 -0
- package/dist/flows/fix-until-green/assembly-spec.js.map +1 -0
- package/dist/flows/fix-until-green/data.d.ts +462 -0
- package/dist/flows/fix-until-green/data.d.ts.map +1 -0
- package/dist/flows/fix-until-green/data.js +49 -0
- package/dist/flows/fix-until-green/data.js.map +1 -0
- package/dist/flows/fix-until-green/flow.d.ts +2 -0
- package/dist/flows/fix-until-green/flow.d.ts.map +1 -0
- package/dist/flows/fix-until-green/flow.js +4 -0
- package/dist/flows/fix-until-green/flow.js.map +1 -0
- package/dist/flows/fix-until-green/relay-hints.d.ts +3 -0
- package/dist/flows/fix-until-green/relay-hints.d.ts.map +1 -0
- package/dist/flows/fix-until-green/relay-hints.js +37 -0
- package/dist/flows/fix-until-green/relay-hints.js.map +1 -0
- package/dist/flows/fix-until-green/reports.d.ts +38 -0
- package/dist/flows/fix-until-green/reports.d.ts.map +1 -0
- package/dist/flows/fix-until-green/reports.js +28 -0
- package/dist/flows/fix-until-green/reports.js.map +1 -0
- package/dist/flows/fix-until-green/writers/plan.d.ts +3 -0
- package/dist/flows/fix-until-green/writers/plan.d.ts.map +1 -0
- package/dist/flows/fix-until-green/writers/plan.js +27 -0
- package/dist/flows/fix-until-green/writers/plan.js.map +1 -0
- package/dist/flows/fix-until-green/writers/verification.d.ts +3 -0
- package/dist/flows/fix-until-green/writers/verification.d.ts.map +1 -0
- package/dist/flows/fix-until-green/writers/verification.js +46 -0
- package/dist/flows/fix-until-green/writers/verification.js.map +1 -0
- package/dist/flows/flow-definition.d.ts +81 -0
- package/dist/flows/flow-definition.d.ts.map +1 -0
- package/dist/flows/flow-definition.js +258 -0
- package/dist/flows/flow-definition.js.map +1 -0
- package/dist/flows/goal/assembly-spec.d.ts +5 -0
- package/dist/flows/goal/assembly-spec.d.ts.map +1 -0
- package/dist/flows/goal/assembly-spec.js +352 -0
- package/dist/flows/goal/assembly-spec.js.map +1 -0
- package/dist/flows/goal/data.d.ts +795 -0
- package/dist/flows/goal/data.d.ts.map +1 -0
- package/dist/flows/goal/data.js +181 -0
- package/dist/flows/goal/data.js.map +1 -0
- package/dist/flows/goal/flow.d.ts +2 -0
- package/dist/flows/goal/flow.d.ts.map +1 -0
- package/dist/flows/goal/flow.js +4 -0
- package/dist/flows/goal/flow.js.map +1 -0
- package/dist/flows/goal/relay-hints.d.ts +5 -0
- package/dist/flows/goal/relay-hints.d.ts.map +1 -0
- package/dist/flows/goal/relay-hints.js +48 -0
- package/dist/flows/goal/relay-hints.js.map +1 -0
- package/dist/flows/goal/reports.d.ts +442 -0
- package/dist/flows/goal/reports.d.ts.map +1 -0
- package/dist/flows/goal/reports.js +510 -0
- package/dist/flows/goal/reports.js.map +1 -0
- package/dist/flows/goal/writers/attempt.d.ts +3 -0
- package/dist/flows/goal/writers/attempt.d.ts.map +1 -0
- package/dist/flows/goal/writers/attempt.js +52 -0
- package/dist/flows/goal/writers/attempt.js.map +1 -0
- package/dist/flows/goal/writers/close.d.ts +3 -0
- package/dist/flows/goal/writers/close.d.ts.map +1 -0
- package/dist/flows/goal/writers/close.js +80 -0
- package/dist/flows/goal/writers/close.js.map +1 -0
- package/dist/flows/goal/writers/contract.d.ts +3 -0
- package/dist/flows/goal/writers/contract.d.ts.map +1 -0
- package/dist/flows/goal/writers/contract.js +137 -0
- package/dist/flows/goal/writers/contract.js.map +1 -0
- package/dist/flows/goal/writers/evidence-evaluation.d.ts +3 -0
- package/dist/flows/goal/writers/evidence-evaluation.d.ts.map +1 -0
- package/dist/flows/goal/writers/evidence-evaluation.js +91 -0
- package/dist/flows/goal/writers/evidence-evaluation.js.map +1 -0
- package/dist/flows/goal/writers/recovery.d.ts +3 -0
- package/dist/flows/goal/writers/recovery.d.ts.map +1 -0
- package/dist/flows/goal/writers/recovery.js +67 -0
- package/dist/flows/goal/writers/recovery.js.map +1 -0
- package/dist/flows/prototype/assembly-spec.d.ts +5 -0
- package/dist/flows/prototype/assembly-spec.d.ts.map +1 -0
- package/dist/flows/prototype/assembly-spec.js +408 -0
- package/dist/flows/prototype/assembly-spec.js.map +1 -0
- package/dist/flows/prototype/data.d.ts +947 -0
- package/dist/flows/prototype/data.d.ts.map +1 -0
- package/dist/flows/prototype/data.js +212 -0
- package/dist/flows/prototype/data.js.map +1 -0
- package/dist/flows/prototype/flow.d.ts +2 -0
- package/dist/flows/prototype/flow.d.ts.map +1 -0
- package/dist/flows/prototype/flow.js +4 -0
- package/dist/flows/prototype/flow.js.map +1 -0
- package/dist/flows/prototype/index.d.ts +4 -0
- package/dist/flows/prototype/index.d.ts.map +1 -0
- package/dist/flows/prototype/index.js +8 -0
- package/dist/flows/prototype/index.js.map +1 -0
- package/dist/flows/prototype/relay-hints.d.ts +5 -0
- package/dist/flows/prototype/relay-hints.d.ts.map +1 -0
- package/dist/flows/prototype/relay-hints.js +46 -0
- package/dist/flows/prototype/relay-hints.js.map +1 -0
- package/dist/flows/prototype/reports.d.ts +909 -0
- package/dist/flows/prototype/reports.d.ts.map +1 -0
- package/dist/flows/prototype/reports.js +721 -0
- package/dist/flows/prototype/reports.js.map +1 -0
- package/dist/flows/prototype/writers/brief.d.ts +3 -0
- package/dist/flows/prototype/writers/brief.d.ts.map +1 -0
- package/dist/flows/prototype/writers/brief.js +51 -0
- package/dist/flows/prototype/writers/brief.js.map +1 -0
- package/dist/flows/prototype/writers/checkpoint-html.d.ts +3 -0
- package/dist/flows/prototype/writers/checkpoint-html.d.ts.map +1 -0
- package/dist/flows/prototype/writers/checkpoint-html.js +247 -0
- package/dist/flows/prototype/writers/checkpoint-html.js.map +1 -0
- package/dist/flows/prototype/writers/close.d.ts +3 -0
- package/dist/flows/prototype/writers/close.d.ts.map +1 -0
- package/dist/flows/prototype/writers/close.js +358 -0
- package/dist/flows/prototype/writers/close.js.map +1 -0
- package/dist/flows/prototype/writers/plan.d.ts +3 -0
- package/dist/flows/prototype/writers/plan.d.ts.map +1 -0
- package/dist/flows/prototype/writers/plan.js +31 -0
- package/dist/flows/prototype/writers/plan.js.map +1 -0
- package/dist/flows/prototype/writers/variant-choice-options.d.ts +3 -0
- package/dist/flows/prototype/writers/variant-choice-options.d.ts.map +1 -0
- package/dist/flows/prototype/writers/variant-choice-options.js +58 -0
- package/dist/flows/prototype/writers/variant-choice-options.js.map +1 -0
- package/dist/flows/prototype/writers/variant-options.d.ts +3 -0
- package/dist/flows/prototype/writers/variant-options.d.ts.map +1 -0
- package/dist/flows/prototype/writers/variant-options.js +74 -0
- package/dist/flows/prototype/writers/variant-options.js.map +1 -0
- package/dist/flows/prototype/writers/variant-provider-evidence.d.ts +3 -0
- package/dist/flows/prototype/writers/variant-provider-evidence.d.ts.map +1 -0
- package/dist/flows/prototype/writers/variant-provider-evidence.js +79 -0
- package/dist/flows/prototype/writers/variant-provider-evidence.js.map +1 -0
- package/dist/flows/prototype/writers/variant-verification.d.ts +3 -0
- package/dist/flows/prototype/writers/variant-verification.d.ts.map +1 -0
- package/dist/flows/prototype/writers/variant-verification.js +149 -0
- package/dist/flows/prototype/writers/variant-verification.js.map +1 -0
- package/dist/flows/prototype/writers/verification.d.ts +3 -0
- package/dist/flows/prototype/writers/verification.d.ts.map +1 -0
- package/dist/flows/prototype/writers/verification.js +105 -0
- package/dist/flows/prototype/writers/verification.js.map +1 -0
- package/dist/flows/pursue/assembly-spec.d.ts +6 -0
- package/dist/flows/pursue/assembly-spec.d.ts.map +1 -0
- package/dist/flows/pursue/assembly-spec.js +181 -0
- package/dist/flows/pursue/assembly-spec.js.map +1 -0
- package/dist/flows/pursue/data.d.ts +740 -0
- package/dist/flows/pursue/data.d.ts.map +1 -0
- package/dist/flows/pursue/data.js +125 -0
- package/dist/flows/pursue/data.js.map +1 -0
- package/dist/flows/pursue/flow.d.ts +2 -0
- package/dist/flows/pursue/flow.d.ts.map +1 -0
- package/dist/flows/pursue/flow.js +4 -0
- package/dist/flows/pursue/flow.js.map +1 -0
- package/dist/flows/pursue/relay-hints.d.ts +4 -0
- package/dist/flows/pursue/relay-hints.d.ts.map +1 -0
- package/dist/flows/pursue/relay-hints.js +34 -0
- package/dist/flows/pursue/relay-hints.js.map +1 -0
- package/dist/flows/pursue/reports.d.ts +383 -0
- package/dist/flows/pursue/reports.d.ts.map +1 -0
- package/dist/flows/pursue/reports.js +404 -0
- package/dist/flows/pursue/reports.js.map +1 -0
- package/dist/flows/pursue/writers/close.d.ts +3 -0
- package/dist/flows/pursue/writers/close.d.ts.map +1 -0
- package/dist/flows/pursue/writers/close.js +41 -0
- package/dist/flows/pursue/writers/close.js.map +1 -0
- package/dist/flows/pursue/writers/contract-projection.d.ts +7 -0
- package/dist/flows/pursue/writers/contract-projection.d.ts.map +1 -0
- package/dist/flows/pursue/writers/contract-projection.js +125 -0
- package/dist/flows/pursue/writers/contract-projection.js.map +1 -0
- package/dist/flows/pursue/writers/contract.d.ts +3 -0
- package/dist/flows/pursue/writers/contract.d.ts.map +1 -0
- package/dist/flows/pursue/writers/contract.js +17 -0
- package/dist/flows/pursue/writers/contract.js.map +1 -0
- package/dist/flows/pursue/writers/graph.d.ts +3 -0
- package/dist/flows/pursue/writers/graph.d.ts.map +1 -0
- package/dist/flows/pursue/writers/graph.js +76 -0
- package/dist/flows/pursue/writers/graph.js.map +1 -0
- package/dist/flows/pursue/writers/result-projection.d.ts +11 -0
- package/dist/flows/pursue/writers/result-projection.d.ts.map +1 -0
- package/dist/flows/pursue/writers/result-projection.js +85 -0
- package/dist/flows/pursue/writers/result-projection.js.map +1 -0
- package/dist/flows/pursue/writers/verification-projection.d.ts +4 -0
- package/dist/flows/pursue/writers/verification-projection.d.ts.map +1 -0
- package/dist/flows/pursue/writers/verification-projection.js +20 -0
- package/dist/flows/pursue/writers/verification-projection.js.map +1 -0
- package/dist/flows/pursue/writers/verification.d.ts +3 -0
- package/dist/flows/pursue/writers/verification.d.ts.map +1 -0
- package/dist/flows/pursue/writers/verification.js +24 -0
- package/dist/flows/pursue/writers/verification.js.map +1 -0
- package/dist/flows/pursue/writers/wave-plan.d.ts +3 -0
- package/dist/flows/pursue/writers/wave-plan.d.ts.map +1 -0
- package/dist/flows/pursue/writers/wave-plan.js +36 -0
- package/dist/flows/pursue/writers/wave-plan.js.map +1 -0
- package/dist/flows/registries/checkpoint-writers/registry.d.ts +3 -0
- package/dist/flows/registries/checkpoint-writers/registry.d.ts.map +1 -0
- package/dist/flows/registries/checkpoint-writers/registry.js +12 -0
- package/dist/flows/registries/checkpoint-writers/registry.js.map +1 -0
- package/dist/flows/registries/checkpoint-writers/types.d.ts +22 -0
- package/dist/flows/registries/checkpoint-writers/types.d.ts.map +1 -0
- package/dist/flows/registries/checkpoint-writers/types.js +24 -0
- package/dist/flows/registries/checkpoint-writers/types.js.map +1 -0
- package/dist/flows/registries/close-writers/generic-close-builder.d.ts +3 -0
- package/dist/flows/registries/close-writers/generic-close-builder.d.ts.map +1 -0
- package/dist/flows/registries/close-writers/generic-close-builder.js +45 -0
- package/dist/flows/registries/close-writers/generic-close-builder.js.map +1 -0
- package/dist/flows/registries/close-writers/registry.d.ts +5 -0
- package/dist/flows/registries/close-writers/registry.d.ts.map +1 -0
- package/dist/flows/registries/close-writers/registry.js +48 -0
- package/dist/flows/registries/close-writers/registry.js.map +1 -0
- package/dist/flows/registries/close-writers/types.d.ts +19 -0
- package/dist/flows/registries/close-writers/types.d.ts.map +1 -0
- package/dist/flows/registries/close-writers/types.js +19 -0
- package/dist/flows/registries/close-writers/types.js.map +1 -0
- package/dist/flows/registries/compose-writers/registry.d.ts +6 -0
- package/dist/flows/registries/compose-writers/registry.d.ts.map +1 -0
- package/dist/flows/registries/compose-writers/registry.js +46 -0
- package/dist/flows/registries/compose-writers/registry.js.map +1 -0
- package/dist/flows/registries/compose-writers/types.d.ts +30 -0
- package/dist/flows/registries/compose-writers/types.d.ts.map +1 -0
- package/dist/flows/registries/compose-writers/types.js +22 -0
- package/dist/flows/registries/compose-writers/types.js.map +1 -0
- package/dist/flows/registries/cross-report-validators.d.ts +10 -0
- package/dist/flows/registries/cross-report-validators.d.ts.map +1 -0
- package/dist/flows/registries/cross-report-validators.js +31 -0
- package/dist/flows/registries/cross-report-validators.js.map +1 -0
- package/dist/flows/registries/report-schemas.d.ts +10 -0
- package/dist/flows/registries/report-schemas.d.ts.map +1 -0
- package/dist/flows/registries/report-schemas.js +77 -0
- package/dist/flows/registries/report-schemas.js.map +1 -0
- package/dist/flows/registries/runtime-index.d.ts +100 -0
- package/dist/flows/registries/runtime-index.d.ts.map +1 -0
- package/dist/flows/registries/runtime-index.js +27 -0
- package/dist/flows/registries/runtime-index.js.map +1 -0
- package/dist/flows/registries/shape-hints/from-zod.d.ts +6 -0
- package/dist/flows/registries/shape-hints/from-zod.d.ts.map +1 -0
- package/dist/flows/registries/shape-hints/from-zod.js +354 -0
- package/dist/flows/registries/shape-hints/from-zod.js.map +1 -0
- package/dist/flows/registries/shape-hints/instruction-helpers.d.ts +3 -0
- package/dist/flows/registries/shape-hints/instruction-helpers.d.ts.map +1 -0
- package/dist/flows/registries/shape-hints/instruction-helpers.js +28 -0
- package/dist/flows/registries/shape-hints/instruction-helpers.js.map +1 -0
- package/dist/flows/registries/shape-hints/registry.d.ts +5 -0
- package/dist/flows/registries/shape-hints/registry.d.ts.map +1 -0
- package/dist/flows/registries/shape-hints/registry.js +33 -0
- package/dist/flows/registries/shape-hints/registry.js.map +1 -0
- package/dist/flows/registries/shape-hints/types.d.ts +14 -0
- package/dist/flows/registries/shape-hints/types.d.ts.map +1 -0
- package/dist/flows/registries/shape-hints/types.js +25 -0
- package/dist/flows/registries/shape-hints/types.js.map +1 -0
- package/dist/flows/registries/verification-writers/registry.d.ts +6 -0
- package/dist/flows/registries/verification-writers/registry.d.ts.map +1 -0
- package/dist/flows/registries/verification-writers/registry.js +37 -0
- package/dist/flows/registries/verification-writers/registry.js.map +1 -0
- package/dist/flows/registries/verification-writers/types.d.ts +37 -0
- package/dist/flows/registries/verification-writers/types.d.ts.map +1 -0
- package/dist/flows/registries/verification-writers/types.js +22 -0
- package/dist/flows/registries/verification-writers/types.js.map +1 -0
- package/dist/flows/report-declarations.d.ts +23 -0
- package/dist/flows/report-declarations.d.ts.map +1 -0
- package/dist/flows/report-declarations.js +46 -0
- package/dist/flows/report-declarations.js.map +1 -0
- package/dist/flows/report-schema-kit.d.ts +22 -0
- package/dist/flows/report-schema-kit.d.ts.map +1 -0
- package/dist/flows/report-schema-kit.js +59 -0
- package/dist/flows/report-schema-kit.js.map +1 -0
- package/dist/flows/resolvers/archetype.d.ts +14 -0
- package/dist/flows/resolvers/archetype.d.ts.map +1 -0
- package/dist/flows/resolvers/archetype.js +125 -0
- package/dist/flows/resolvers/archetype.js.map +1 -0
- package/dist/flows/resolvers/equipment.d.ts +32 -0
- package/dist/flows/resolvers/equipment.d.ts.map +1 -0
- package/dist/flows/resolvers/equipment.js +101 -0
- package/dist/flows/resolvers/equipment.js.map +1 -0
- package/dist/flows/resolvers/signals.d.ts +27 -0
- package/dist/flows/resolvers/signals.d.ts.map +1 -0
- package/dist/flows/resolvers/signals.js +273 -0
- package/dist/flows/resolvers/signals.js.map +1 -0
- package/dist/flows/resolvers/structure.d.ts +23 -0
- package/dist/flows/resolvers/structure.d.ts.map +1 -0
- package/dist/flows/resolvers/structure.js +112 -0
- package/dist/flows/resolvers/structure.js.map +1 -0
- package/dist/flows/review/assembly-spec.d.ts +5 -0
- package/dist/flows/review/assembly-spec.d.ts.map +1 -0
- package/dist/flows/review/assembly-spec.js +90 -0
- package/dist/flows/review/assembly-spec.js.map +1 -0
- package/dist/flows/review/data.d.ts +555 -0
- package/dist/flows/review/data.d.ts.map +1 -0
- package/dist/flows/review/data.js +75 -0
- package/dist/flows/review/data.js.map +1 -0
- package/dist/flows/review/flow.d.ts +2 -0
- package/dist/flows/review/flow.d.ts.map +1 -0
- package/dist/flows/review/flow.js +4 -0
- package/dist/flows/review/flow.js.map +1 -0
- package/dist/flows/review/index.d.ts +4 -0
- package/dist/flows/review/index.d.ts.map +1 -0
- package/dist/flows/review/index.js +8 -0
- package/dist/flows/review/index.js.map +1 -0
- package/dist/flows/review/relay-hints.d.ts +3 -0
- package/dist/flows/review/relay-hints.d.ts.map +1 -0
- package/dist/flows/review/relay-hints.js +31 -0
- package/dist/flows/review/relay-hints.js.map +1 -0
- package/dist/flows/review/reports.d.ts +247 -0
- package/dist/flows/review/reports.d.ts.map +1 -0
- package/dist/flows/review/reports.js +176 -0
- package/dist/flows/review/reports.js.map +1 -0
- package/dist/flows/review/writers/intake-projection.d.ts +13 -0
- package/dist/flows/review/writers/intake-projection.d.ts.map +1 -0
- package/dist/flows/review/writers/intake-projection.js +90 -0
- package/dist/flows/review/writers/intake-projection.js.map +1 -0
- package/dist/flows/review/writers/intake.d.ts +3 -0
- package/dist/flows/review/writers/intake.d.ts.map +1 -0
- package/dist/flows/review/writers/intake.js +186 -0
- package/dist/flows/review/writers/intake.js.map +1 -0
- package/dist/flows/review/writers/result-html.d.ts +3 -0
- package/dist/flows/review/writers/result-html.d.ts.map +1 -0
- package/dist/flows/review/writers/result-html.js +78 -0
- package/dist/flows/review/writers/result-html.js.map +1 -0
- package/dist/flows/review/writers/result-projection.d.ts +6 -0
- package/dist/flows/review/writers/result-projection.d.ts.map +1 -0
- package/dist/flows/review/writers/result-projection.js +29 -0
- package/dist/flows/review/writers/result-projection.js.map +1 -0
- package/dist/flows/review/writers/result.d.ts +3 -0
- package/dist/flows/review/writers/result.d.ts.map +1 -0
- package/dist/flows/review/writers/result.js +50 -0
- package/dist/flows/review/writers/result.js.map +1 -0
- package/dist/flows/runtime-proof/assembly-spec.d.ts +5 -0
- package/dist/flows/runtime-proof/assembly-spec.d.ts.map +1 -0
- package/dist/flows/runtime-proof/assembly-spec.js +54 -0
- package/dist/flows/runtime-proof/assembly-spec.js.map +1 -0
- package/dist/flows/runtime-proof/data.d.ts +423 -0
- package/dist/flows/runtime-proof/data.d.ts.map +1 -0
- package/dist/flows/runtime-proof/data.js +36 -0
- package/dist/flows/runtime-proof/data.js.map +1 -0
- package/dist/flows/runtime-proof/flow.d.ts +2 -0
- package/dist/flows/runtime-proof/flow.d.ts.map +1 -0
- package/dist/flows/runtime-proof/flow.js +4 -0
- package/dist/flows/runtime-proof/flow.js.map +1 -0
- package/dist/flows/runtime-proof/reports.d.ts +6 -0
- package/dist/flows/runtime-proof/reports.d.ts.map +1 -0
- package/dist/flows/runtime-proof/reports.js +7 -0
- package/dist/flows/runtime-proof/reports.js.map +1 -0
- package/dist/flows/runtime-proof/writers/compose.d.ts +3 -0
- package/dist/flows/runtime-proof/writers/compose.d.ts.map +1 -0
- package/dist/flows/runtime-proof/writers/compose.js +10 -0
- package/dist/flows/runtime-proof/writers/compose.js.map +1 -0
- package/dist/flows/schematic-catalog-check.d.ts +3 -0
- package/dist/flows/schematic-catalog-check.d.ts.map +1 -0
- package/dist/flows/schematic-catalog-check.js +73 -0
- package/dist/flows/schematic-catalog-check.js.map +1 -0
- package/dist/flows/stage-policy.d.ts +22 -0
- package/dist/flows/stage-policy.d.ts.map +1 -0
- package/dist/flows/stage-policy.js +27 -0
- package/dist/flows/stage-policy.js.map +1 -0
- package/dist/flows/sweep/assembly-spec.d.ts +5 -0
- package/dist/flows/sweep/assembly-spec.d.ts.map +1 -0
- package/dist/flows/sweep/assembly-spec.js +170 -0
- package/dist/flows/sweep/assembly-spec.js.map +1 -0
- package/dist/flows/sweep/data.d.ts +552 -0
- package/dist/flows/sweep/data.d.ts.map +1 -0
- package/dist/flows/sweep/data.js +70 -0
- package/dist/flows/sweep/data.js.map +1 -0
- package/dist/flows/sweep/flow.d.ts +2 -0
- package/dist/flows/sweep/flow.d.ts.map +1 -0
- package/dist/flows/sweep/flow.js +4 -0
- package/dist/flows/sweep/flow.js.map +1 -0
- package/dist/flows/sweep/paths.d.ts +11 -0
- package/dist/flows/sweep/paths.d.ts.map +1 -0
- package/dist/flows/sweep/paths.js +18 -0
- package/dist/flows/sweep/paths.js.map +1 -0
- package/dist/flows/sweep/relay-hints.d.ts +3 -0
- package/dist/flows/sweep/relay-hints.d.ts.map +1 -0
- package/dist/flows/sweep/relay-hints.js +27 -0
- package/dist/flows/sweep/relay-hints.js.map +1 -0
- package/dist/flows/sweep/reports.d.ts +172 -0
- package/dist/flows/sweep/reports.d.ts.map +1 -0
- package/dist/flows/sweep/reports.js +179 -0
- package/dist/flows/sweep/reports.js.map +1 -0
- package/dist/flows/sweep/writers/census.d.ts +3 -0
- package/dist/flows/sweep/writers/census.d.ts.map +1 -0
- package/dist/flows/sweep/writers/census.js +67 -0
- package/dist/flows/sweep/writers/census.js.map +1 -0
- package/dist/flows/sweep/writers/partition.d.ts +3 -0
- package/dist/flows/sweep/writers/partition.d.ts.map +1 -0
- package/dist/flows/sweep/writers/partition.js +130 -0
- package/dist/flows/sweep/writers/partition.js.map +1 -0
- package/dist/flows/sweep/writers/scan.d.ts +5 -0
- package/dist/flows/sweep/writers/scan.d.ts.map +1 -0
- package/dist/flows/sweep/writers/scan.js +89 -0
- package/dist/flows/sweep/writers/scan.js.map +1 -0
- package/dist/flows/sweep/writers/verification.d.ts +3 -0
- package/dist/flows/sweep/writers/verification.d.ts.map +1 -0
- package/dist/flows/sweep/writers/verification.js +55 -0
- package/dist/flows/sweep/writers/verification.js.map +1 -0
- package/dist/flows/types.d.ts +111 -0
- package/dist/flows/types.d.ts.map +1 -0
- package/dist/flows/types.js +14 -0
- package/dist/flows/types.js.map +1 -0
- package/dist/history/run-corpus.d.ts +16 -0
- package/dist/history/run-corpus.d.ts.map +1 -0
- package/dist/history/run-corpus.js +55 -0
- package/dist/history/run-corpus.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/project-distill.d.ts +18 -0
- package/dist/memory/project-distill.d.ts.map +1 -0
- package/dist/memory/project-distill.js +244 -0
- package/dist/memory/project-distill.js.map +1 -0
- package/dist/memory/project-identity.d.ts +25 -0
- package/dist/memory/project-identity.d.ts.map +1 -0
- package/dist/memory/project-identity.js +125 -0
- package/dist/memory/project-identity.js.map +1 -0
- package/dist/memory/project-injection.d.ts +12 -0
- package/dist/memory/project-injection.d.ts.map +1 -0
- package/dist/memory/project-injection.js +56 -0
- package/dist/memory/project-injection.js.map +1 -0
- package/dist/memory/project-store.d.ts +35 -0
- package/dist/memory/project-store.d.ts.map +1 -0
- package/dist/memory/project-store.js +150 -0
- package/dist/memory/project-store.js.map +1 -0
- package/dist/policy/fanout-join-policy.d.ts +26 -0
- package/dist/policy/fanout-join-policy.d.ts.map +1 -0
- package/dist/policy/fanout-join-policy.js +87 -0
- package/dist/policy/fanout-join-policy.js.map +1 -0
- package/dist/policy/flow-kind-policy-core.d.ts +50 -0
- package/dist/policy/flow-kind-policy-core.d.ts.map +1 -0
- package/dist/policy/flow-kind-policy-core.js +250 -0
- package/dist/policy/flow-kind-policy-core.js.map +1 -0
- package/dist/policy/flow-kind-policy.d.ts +19 -0
- package/dist/policy/flow-kind-policy.d.ts.map +1 -0
- package/dist/policy/flow-kind-policy.js +41 -0
- package/dist/policy/flow-kind-policy.js.map +1 -0
- package/dist/policy/policy-envelope.d.ts +28 -0
- package/dist/policy/policy-envelope.d.ts.map +1 -0
- package/dist/policy/policy-envelope.js +317 -0
- package/dist/policy/policy-envelope.js.map +1 -0
- package/dist/policy/recovery-route-policy.d.ts +165 -0
- package/dist/policy/recovery-route-policy.d.ts.map +1 -0
- package/dist/policy/recovery-route-policy.js +112 -0
- package/dist/policy/recovery-route-policy.js.map +1 -0
- package/dist/policy/rubric.d.ts +28 -0
- package/dist/policy/rubric.d.ts.map +1 -0
- package/dist/policy/rubric.js +139 -0
- package/dist/policy/rubric.js.map +1 -0
- package/dist/release/checks.d.ts +45 -0
- package/dist/release/checks.d.ts.map +1 -0
- package/dist/release/checks.js +382 -0
- package/dist/release/checks.js.map +1 -0
- package/dist/release/schemas.d.ts +590 -0
- package/dist/release/schemas.d.ts.map +1 -0
- package/dist/release/schemas.js +369 -0
- package/dist/release/schemas.js.map +1 -0
- package/dist/runtime/acceptance-criteria.d.ts +41 -0
- package/dist/runtime/acceptance-criteria.d.ts.map +1 -0
- package/dist/runtime/acceptance-criteria.js +282 -0
- package/dist/runtime/acceptance-criteria.js.map +1 -0
- package/dist/runtime/domain/flow.d.ts +11 -0
- package/dist/runtime/domain/flow.d.ts.map +1 -0
- package/dist/runtime/domain/flow.js +2 -0
- package/dist/runtime/domain/flow.js.map +1 -0
- package/dist/runtime/domain/route.d.ts +13 -0
- package/dist/runtime/domain/route.d.ts.map +1 -0
- package/dist/runtime/domain/route.js +7 -0
- package/dist/runtime/domain/route.js.map +1 -0
- package/dist/runtime/domain/run-file.d.ts +5 -0
- package/dist/runtime/domain/run-file.d.ts.map +1 -0
- package/dist/runtime/domain/run-file.js +2 -0
- package/dist/runtime/domain/run-file.js.map +1 -0
- package/dist/runtime/domain/run.d.ts +4 -0
- package/dist/runtime/domain/run.d.ts.map +1 -0
- package/dist/runtime/domain/run.js +2 -0
- package/dist/runtime/domain/run.js.map +1 -0
- package/dist/runtime/domain/selection.d.ts +11 -0
- package/dist/runtime/domain/selection.d.ts.map +1 -0
- package/dist/runtime/domain/selection.js +2 -0
- package/dist/runtime/domain/selection.js.map +1 -0
- package/dist/runtime/domain/step.d.ts +19 -0
- package/dist/runtime/domain/step.d.ts.map +1 -0
- package/dist/runtime/domain/step.js +4 -0
- package/dist/runtime/domain/step.js.map +1 -0
- package/dist/runtime/domain/trace.d.ts +21 -0
- package/dist/runtime/domain/trace.d.ts.map +1 -0
- package/dist/runtime/domain/trace.js +2 -0
- package/dist/runtime/domain/trace.js.map +1 -0
- package/dist/runtime/executors/checkpoint.d.ts +18 -0
- package/dist/runtime/executors/checkpoint.d.ts.map +1 -0
- package/dist/runtime/executors/checkpoint.js +463 -0
- package/dist/runtime/executors/checkpoint.js.map +1 -0
- package/dist/runtime/executors/compose.d.ts +11 -0
- package/dist/runtime/executors/compose.d.ts.map +1 -0
- package/dist/runtime/executors/compose.js +124 -0
- package/dist/runtime/executors/compose.js.map +1 -0
- package/dist/runtime/executors/fanout.d.ts +8 -0
- package/dist/runtime/executors/fanout.d.ts.map +1 -0
- package/dist/runtime/executors/fanout.js +312 -0
- package/dist/runtime/executors/fanout.js.map +1 -0
- package/dist/runtime/executors/index.d.ts +11 -0
- package/dist/runtime/executors/index.d.ts.map +1 -0
- package/dist/runtime/executors/index.js +32 -0
- package/dist/runtime/executors/index.js.map +1 -0
- package/dist/runtime/executors/relay.d.ts +73 -0
- package/dist/runtime/executors/relay.d.ts.map +1 -0
- package/dist/runtime/executors/relay.js +788 -0
- package/dist/runtime/executors/relay.js.map +1 -0
- package/dist/runtime/executors/result.d.ts +14 -0
- package/dist/runtime/executors/result.d.ts.map +1 -0
- package/dist/runtime/executors/result.js +19 -0
- package/dist/runtime/executors/result.js.map +1 -0
- package/dist/runtime/executors/shared.d.ts +17 -0
- package/dist/runtime/executors/shared.d.ts.map +1 -0
- package/dist/runtime/executors/shared.js +49 -0
- package/dist/runtime/executors/shared.js.map +1 -0
- package/dist/runtime/executors/sub-run.d.ts +8 -0
- package/dist/runtime/executors/sub-run.d.ts.map +1 -0
- package/dist/runtime/executors/sub-run.js +275 -0
- package/dist/runtime/executors/sub-run.js.map +1 -0
- package/dist/runtime/executors/verification.d.ts +7 -0
- package/dist/runtime/executors/verification.d.ts.map +1 -0
- package/dist/runtime/executors/verification.js +374 -0
- package/dist/runtime/executors/verification.js.map +1 -0
- package/dist/runtime/fanout/branch-execution.d.ts +17 -0
- package/dist/runtime/fanout/branch-execution.d.ts.map +1 -0
- package/dist/runtime/fanout/branch-execution.js +576 -0
- package/dist/runtime/fanout/branch-execution.js.map +1 -0
- package/dist/runtime/fanout/branch-expansion.d.ts +6 -0
- package/dist/runtime/fanout/branch-expansion.d.ts.map +1 -0
- package/dist/runtime/fanout/branch-expansion.js +64 -0
- package/dist/runtime/fanout/branch-expansion.js.map +1 -0
- package/dist/runtime/fanout/run-owner-lock.d.ts +28 -0
- package/dist/runtime/fanout/run-owner-lock.d.ts.map +1 -0
- package/dist/runtime/fanout/run-owner-lock.js +98 -0
- package/dist/runtime/fanout/run-owner-lock.js.map +1 -0
- package/dist/runtime/fanout/types.d.ts +38 -0
- package/dist/runtime/fanout/types.d.ts.map +1 -0
- package/dist/runtime/fanout/types.js +2 -0
- package/dist/runtime/fanout/types.js.map +1 -0
- package/dist/runtime/fanout/worktree-reaper.d.ts +108 -0
- package/dist/runtime/fanout/worktree-reaper.d.ts.map +1 -0
- package/dist/runtime/fanout/worktree-reaper.js +195 -0
- package/dist/runtime/fanout/worktree-reaper.js.map +1 -0
- package/dist/runtime/fanout/worktree.d.ts +3 -0
- package/dist/runtime/fanout/worktree.d.ts.map +1 -0
- package/dist/runtime/fanout/worktree.js +35 -0
- package/dist/runtime/fanout/worktree.js.map +1 -0
- package/dist/runtime/manifest/executable-flow.d.ts +100 -0
- package/dist/runtime/manifest/executable-flow.d.ts.map +1 -0
- package/dist/runtime/manifest/executable-flow.js +2 -0
- package/dist/runtime/manifest/executable-flow.js.map +1 -0
- package/dist/runtime/manifest/from-compiled-flow.d.ts +4 -0
- package/dist/runtime/manifest/from-compiled-flow.d.ts.map +1 -0
- package/dist/runtime/manifest/from-compiled-flow.js +169 -0
- package/dist/runtime/manifest/from-compiled-flow.js.map +1 -0
- package/dist/runtime/manifest/runtime-package-index.d.ts +4 -0
- package/dist/runtime/manifest/runtime-package-index.d.ts.map +1 -0
- package/dist/runtime/manifest/runtime-package-index.js +98 -0
- package/dist/runtime/manifest/runtime-package-index.js.map +1 -0
- package/dist/runtime/manifest/validate-executable-flow.d.ts +8 -0
- package/dist/runtime/manifest/validate-executable-flow.d.ts.map +1 -0
- package/dist/runtime/manifest/validate-executable-flow.js +143 -0
- package/dist/runtime/manifest/validate-executable-flow.js.map +1 -0
- package/dist/runtime/projections/progress.d.ts +16 -0
- package/dist/runtime/projections/progress.d.ts.map +1 -0
- package/dist/runtime/projections/progress.js +679 -0
- package/dist/runtime/projections/progress.js.map +1 -0
- package/dist/runtime/projections/status.d.ts +4 -0
- package/dist/runtime/projections/status.d.ts.map +1 -0
- package/dist/runtime/projections/status.js +14 -0
- package/dist/runtime/projections/status.js.map +1 -0
- package/dist/runtime/projections/tournament-checkpoint-context.d.ts +18 -0
- package/dist/runtime/projections/tournament-checkpoint-context.d.ts.map +1 -0
- package/dist/runtime/projections/tournament-checkpoint-context.js +106 -0
- package/dist/runtime/projections/tournament-checkpoint-context.js.map +1 -0
- package/dist/runtime/run/binding-legibility.d.ts +71 -0
- package/dist/runtime/run/binding-legibility.d.ts.map +1 -0
- package/dist/runtime/run/binding-legibility.js +61 -0
- package/dist/runtime/run/binding-legibility.js.map +1 -0
- package/dist/runtime/run/capabilities.d.ts +34 -0
- package/dist/runtime/run/capabilities.d.ts.map +1 -0
- package/dist/runtime/run/capabilities.js +22 -0
- package/dist/runtime/run/capabilities.js.map +1 -0
- package/dist/runtime/run/carried-notes.d.ts +13 -0
- package/dist/runtime/run/carried-notes.d.ts.map +1 -0
- package/dist/runtime/run/carried-notes.js +53 -0
- package/dist/runtime/run/carried-notes.js.map +1 -0
- package/dist/runtime/run/checkpoint-resume.d.ts +44 -0
- package/dist/runtime/run/checkpoint-resume.d.ts.map +1 -0
- package/dist/runtime/run/checkpoint-resume.js +549 -0
- package/dist/runtime/run/checkpoint-resume.js.map +1 -0
- package/dist/runtime/run/child-runner.d.ts +57 -0
- package/dist/runtime/run/child-runner.d.ts.map +1 -0
- package/dist/runtime/run/child-runner.js +2 -0
- package/dist/runtime/run/child-runner.js.map +1 -0
- package/dist/runtime/run/commit-containment.d.ts +11 -0
- package/dist/runtime/run/commit-containment.d.ts.map +1 -0
- package/dist/runtime/run/commit-containment.js +46 -0
- package/dist/runtime/run/commit-containment.js.map +1 -0
- package/dist/runtime/run/compiled-flow-runner.d.ts +26 -0
- package/dist/runtime/run/compiled-flow-runner.d.ts.map +1 -0
- package/dist/runtime/run/compiled-flow-runner.js +137 -0
- package/dist/runtime/run/compiled-flow-runner.js.map +1 -0
- package/dist/runtime/run/connector-planning.d.ts +3 -0
- package/dist/runtime/run/connector-planning.d.ts.map +1 -0
- package/dist/runtime/run/connector-planning.js +29 -0
- package/dist/runtime/run/connector-planning.js.map +1 -0
- package/dist/runtime/run/context-delivery.d.ts +24 -0
- package/dist/runtime/run/context-delivery.d.ts.map +1 -0
- package/dist/runtime/run/context-delivery.js +92 -0
- package/dist/runtime/run/context-delivery.js.map +1 -0
- package/dist/runtime/run/context-pull.d.ts +22 -0
- package/dist/runtime/run/context-pull.d.ts.map +1 -0
- package/dist/runtime/run/context-pull.js +112 -0
- package/dist/runtime/run/context-pull.js.map +1 -0
- package/dist/runtime/run/engine-flags.d.ts +7 -0
- package/dist/runtime/run/engine-flags.d.ts.map +1 -0
- package/dist/runtime/run/engine-flags.js +89 -0
- package/dist/runtime/run/engine-flags.js.map +1 -0
- package/dist/runtime/run/equipment-reshape.d.ts +24 -0
- package/dist/runtime/run/equipment-reshape.d.ts.map +1 -0
- package/dist/runtime/run/equipment-reshape.js +156 -0
- package/dist/runtime/run/equipment-reshape.js.map +1 -0
- package/dist/runtime/run/external-files.d.ts +5 -0
- package/dist/runtime/run/external-files.d.ts.map +1 -0
- package/dist/runtime/run/external-files.js +7 -0
- package/dist/runtime/run/external-files.js.map +1 -0
- package/dist/runtime/run/frozen-eval.d.ts +8 -0
- package/dist/runtime/run/frozen-eval.d.ts.map +1 -0
- package/dist/runtime/run/frozen-eval.js +60 -0
- package/dist/runtime/run/frozen-eval.js.map +1 -0
- package/dist/runtime/run/graph-runner.d.ts +67 -0
- package/dist/runtime/run/graph-runner.d.ts.map +1 -0
- package/dist/runtime/run/graph-runner.js +1755 -0
- package/dist/runtime/run/graph-runner.js.map +1 -0
- package/dist/runtime/run/guidance.d.ts +49 -0
- package/dist/runtime/run/guidance.d.ts.map +1 -0
- package/dist/runtime/run/guidance.js +227 -0
- package/dist/runtime/run/guidance.js.map +1 -0
- package/dist/runtime/run/honesty-ledger.d.ts +21 -0
- package/dist/runtime/run/honesty-ledger.d.ts.map +1 -0
- package/dist/runtime/run/honesty-ledger.js +75 -0
- package/dist/runtime/run/honesty-ledger.js.map +1 -0
- package/dist/runtime/run/iteration-ledger.d.ts +15 -0
- package/dist/runtime/run/iteration-ledger.d.ts.map +1 -0
- package/dist/runtime/run/iteration-ledger.js +91 -0
- package/dist/runtime/run/iteration-ledger.js.map +1 -0
- package/dist/runtime/run/manifest-snapshot.d.ts +27 -0
- package/dist/runtime/run/manifest-snapshot.d.ts.map +1 -0
- package/dist/runtime/run/manifest-snapshot.js +58 -0
- package/dist/runtime/run/manifest-snapshot.js.map +1 -0
- package/dist/runtime/run/oracle-command-pin.d.ts +20 -0
- package/dist/runtime/run/oracle-command-pin.d.ts.map +1 -0
- package/dist/runtime/run/oracle-command-pin.js +94 -0
- package/dist/runtime/run/oracle-command-pin.js.map +1 -0
- package/dist/runtime/run/recovery-binding-verdict.d.ts +40 -0
- package/dist/runtime/run/recovery-binding-verdict.d.ts.map +1 -0
- package/dist/runtime/run/recovery-binding-verdict.js +70 -0
- package/dist/runtime/run/recovery-binding-verdict.js.map +1 -0
- package/dist/runtime/run/recovery-corridor.d.ts +103 -0
- package/dist/runtime/run/recovery-corridor.d.ts.map +1 -0
- package/dist/runtime/run/recovery-corridor.js +178 -0
- package/dist/runtime/run/recovery-corridor.js.map +1 -0
- package/dist/runtime/run/recovery-selection.d.ts +18 -0
- package/dist/runtime/run/recovery-selection.d.ts.map +1 -0
- package/dist/runtime/run/recovery-selection.js +43 -0
- package/dist/runtime/run/recovery-selection.js.map +1 -0
- package/dist/runtime/run/relay-guidance.d.ts +40 -0
- package/dist/runtime/run/relay-guidance.d.ts.map +1 -0
- package/dist/runtime/run/relay-guidance.js +306 -0
- package/dist/runtime/run/relay-guidance.js.map +1 -0
- package/dist/runtime/run/relay-support.d.ts +29 -0
- package/dist/runtime/run/relay-support.d.ts.map +1 -0
- package/dist/runtime/run/relay-support.js +436 -0
- package/dist/runtime/run/relay-support.js.map +1 -0
- package/dist/runtime/run/result-recovery.d.ts +16 -0
- package/dist/runtime/run/result-recovery.d.ts.map +1 -0
- package/dist/runtime/run/result-recovery.js +73 -0
- package/dist/runtime/run/result-recovery.js.map +1 -0
- package/dist/runtime/run/result-writer.d.ts +17 -0
- package/dist/runtime/run/result-writer.d.ts.map +1 -0
- package/dist/runtime/run/result-writer.js +5 -0
- package/dist/runtime/run/result-writer.js.map +1 -0
- package/dist/runtime/run/resume-lock.d.ts +29 -0
- package/dist/runtime/run/resume-lock.d.ts.map +1 -0
- package/dist/runtime/run/resume-lock.js +166 -0
- package/dist/runtime/run/resume-lock.js.map +1 -0
- package/dist/runtime/run/reuse-children.d.ts +24 -0
- package/dist/runtime/run/reuse-children.d.ts.map +1 -0
- package/dist/runtime/run/reuse-children.js +107 -0
- package/dist/runtime/run/reuse-children.js.map +1 -0
- package/dist/runtime/run/run-boundary.d.ts +30 -0
- package/dist/runtime/run/run-boundary.d.ts.map +1 -0
- package/dist/runtime/run/run-boundary.js +110 -0
- package/dist/runtime/run/run-boundary.js.map +1 -0
- package/dist/runtime/run/run-close.d.ts +22 -0
- package/dist/runtime/run/run-close.d.ts.map +1 -0
- package/dist/runtime/run/run-close.js +228 -0
- package/dist/runtime/run/run-close.js.map +1 -0
- package/dist/runtime/run/run-context.d.ts +59 -0
- package/dist/runtime/run/run-context.d.ts.map +1 -0
- package/dist/runtime/run/run-context.js +2 -0
- package/dist/runtime/run/run-context.js.map +1 -0
- package/dist/runtime/run/run-transition.d.ts +43 -0
- package/dist/runtime/run/run-transition.d.ts.map +1 -0
- package/dist/runtime/run/run-transition.js +52 -0
- package/dist/runtime/run/run-transition.js.map +1 -0
- package/dist/runtime/run/run-values.d.ts +80 -0
- package/dist/runtime/run/run-values.d.ts.map +1 -0
- package/dist/runtime/run/run-values.js +85 -0
- package/dist/runtime/run/run-values.js.map +1 -0
- package/dist/runtime/run/slice-corridor.d.ts +27 -0
- package/dist/runtime/run/slice-corridor.d.ts.map +1 -0
- package/dist/runtime/run/slice-corridor.js +99 -0
- package/dist/runtime/run/slice-corridor.js.map +1 -0
- package/dist/runtime/run/trace-evidence.d.ts +34 -0
- package/dist/runtime/run/trace-evidence.d.ts.map +1 -0
- package/dist/runtime/run/trace-evidence.js +148 -0
- package/dist/runtime/run/trace-evidence.js.map +1 -0
- package/dist/runtime/run/until-budget.d.ts +12 -0
- package/dist/runtime/run/until-budget.d.ts.map +1 -0
- package/dist/runtime/run/until-budget.js +102 -0
- package/dist/runtime/run/until-budget.js.map +1 -0
- package/dist/runtime/run/until-corridor.d.ts +32 -0
- package/dist/runtime/run/until-corridor.d.ts.map +1 -0
- package/dist/runtime/run/until-corridor.js +161 -0
- package/dist/runtime/run/until-corridor.js.map +1 -0
- package/dist/runtime/run-files/report-validator.d.ts +3 -0
- package/dist/runtime/run-files/report-validator.d.ts.map +1 -0
- package/dist/runtime/run-files/report-validator.js +29 -0
- package/dist/runtime/run-files/report-validator.js.map +1 -0
- package/dist/runtime/run-files/run-file-store.d.ts +13 -0
- package/dist/runtime/run-files/run-file-store.d.ts.map +1 -0
- package/dist/runtime/run-files/run-file-store.js +42 -0
- package/dist/runtime/run-files/run-file-store.js.map +1 -0
- package/dist/runtime/trace/trace-fields.d.ts +97 -0
- package/dist/runtime/trace/trace-fields.d.ts.map +1 -0
- package/dist/runtime/trace/trace-fields.js +181 -0
- package/dist/runtime/trace/trace-fields.js.map +1 -0
- package/dist/runtime/trace/trace-store.d.ts +20 -0
- package/dist/runtime/trace/trace-store.d.ts.map +1 -0
- package/dist/runtime/trace/trace-store.js +157 -0
- package/dist/runtime/trace/trace-store.js.map +1 -0
- package/dist/schemas/acceptance-criteria.d.ts +94 -0
- package/dist/schemas/acceptance-criteria.d.ts.map +1 -0
- package/dist/schemas/acceptance-criteria.js +42 -0
- package/dist/schemas/acceptance-criteria.js.map +1 -0
- package/dist/schemas/axes.d.ts +45 -0
- package/dist/schemas/axes.d.ts.map +1 -0
- package/dist/schemas/axes.js +79 -0
- package/dist/schemas/axes.js.map +1 -0
- package/dist/schemas/axis-config-requirement.d.ts +20 -0
- package/dist/schemas/axis-config-requirement.d.ts.map +1 -0
- package/dist/schemas/axis-config-requirement.js +24 -0
- package/dist/schemas/axis-config-requirement.js.map +1 -0
- package/dist/schemas/builtin-report-schemas.d.ts +6 -0
- package/dist/schemas/builtin-report-schemas.d.ts.map +1 -0
- package/dist/schemas/builtin-report-schemas.js +155 -0
- package/dist/schemas/builtin-report-schemas.js.map +1 -0
- package/dist/schemas/change-kind.d.ts +75 -0
- package/dist/schemas/change-kind.d.ts.map +1 -0
- package/dist/schemas/change-kind.js +35 -0
- package/dist/schemas/change-kind.js.map +1 -0
- package/dist/schemas/change-packet.d.ts +42 -0
- package/dist/schemas/change-packet.d.ts.map +1 -0
- package/dist/schemas/change-packet.js +26 -0
- package/dist/schemas/change-packet.js.map +1 -0
- package/dist/schemas/check.d.ts +174 -0
- package/dist/schemas/check.d.ts.map +1 -0
- package/dist/schemas/check.js +162 -0
- package/dist/schemas/check.js.map +1 -0
- package/dist/schemas/checkpoint-boundary.d.ts +605 -0
- package/dist/schemas/checkpoint-boundary.d.ts.map +1 -0
- package/dist/schemas/checkpoint-boundary.js +243 -0
- package/dist/schemas/checkpoint-boundary.js.map +1 -0
- package/dist/schemas/compiled-flow.d.ts +1065 -0
- package/dist/schemas/compiled-flow.d.ts.map +1 -0
- package/dist/schemas/compiled-flow.js +331 -0
- package/dist/schemas/compiled-flow.js.map +1 -0
- package/dist/schemas/config.d.ts +905 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +240 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/schemas/connector.d.ts +216 -0
- package/dist/schemas/connector.d.ts.map +1 -0
- package/dist/schemas/connector.js +150 -0
- package/dist/schemas/connector.js.map +1 -0
- package/dist/schemas/context-request.d.ts +14 -0
- package/dist/schemas/context-request.d.ts.map +1 -0
- package/dist/schemas/context-request.js +33 -0
- package/dist/schemas/context-request.js.map +1 -0
- package/dist/schemas/continuity.d.ts +362 -0
- package/dist/schemas/continuity.d.ts.map +1 -0
- package/dist/schemas/continuity.js +232 -0
- package/dist/schemas/continuity.js.map +1 -0
- package/dist/schemas/custom-flow-descriptor.d.ts +10 -0
- package/dist/schemas/custom-flow-descriptor.d.ts.map +1 -0
- package/dist/schemas/custom-flow-descriptor.js +12 -0
- package/dist/schemas/custom-flow-descriptor.js.map +1 -0
- package/dist/schemas/depth.d.ts +16 -0
- package/dist/schemas/depth.d.ts.map +1 -0
- package/dist/schemas/depth.js +7 -0
- package/dist/schemas/depth.js.map +1 -0
- package/dist/schemas/engine-flags.d.ts +44 -0
- package/dist/schemas/engine-flags.d.ts.map +1 -0
- package/dist/schemas/engine-flags.js +104 -0
- package/dist/schemas/engine-flags.js.map +1 -0
- package/dist/schemas/equipment-discovery.d.ts +8 -0
- package/dist/schemas/equipment-discovery.d.ts.map +1 -0
- package/dist/schemas/equipment-discovery.js +36 -0
- package/dist/schemas/equipment-discovery.js.map +1 -0
- package/dist/schemas/equipment-scope.d.ts +42 -0
- package/dist/schemas/equipment-scope.d.ts.map +1 -0
- package/dist/schemas/equipment-scope.js +84 -0
- package/dist/schemas/equipment-scope.js.map +1 -0
- package/dist/schemas/flow-block-definitions.d.ts +59 -0
- package/dist/schemas/flow-block-definitions.d.ts.map +1 -0
- package/dist/schemas/flow-block-definitions.js +867 -0
- package/dist/schemas/flow-block-definitions.js.map +1 -0
- package/dist/schemas/flow-blocks.d.ts +301 -0
- package/dist/schemas/flow-blocks.d.ts.map +1 -0
- package/dist/schemas/flow-blocks.js +223 -0
- package/dist/schemas/flow-blocks.js.map +1 -0
- package/dist/schemas/flow-schematic-policy.d.ts +6 -0
- package/dist/schemas/flow-schematic-policy.d.ts.map +1 -0
- package/dist/schemas/flow-schematic-policy.js +8 -0
- package/dist/schemas/flow-schematic-policy.js.map +1 -0
- package/dist/schemas/flow-schematic.d.ts +1407 -0
- package/dist/schemas/flow-schematic.d.ts.map +1 -0
- package/dist/schemas/flow-schematic.js +944 -0
- package/dist/schemas/flow-schematic.js.map +1 -0
- package/dist/schemas/guidance-decision.d.ts +728 -0
- package/dist/schemas/guidance-decision.d.ts.map +1 -0
- package/dist/schemas/guidance-decision.js +527 -0
- package/dist/schemas/guidance-decision.js.map +1 -0
- package/dist/schemas/hashing.d.ts +6 -0
- package/dist/schemas/hashing.d.ts.map +1 -0
- package/dist/schemas/hashing.js +27 -0
- package/dist/schemas/hashing.js.map +1 -0
- package/dist/schemas/history.d.ts +1735 -0
- package/dist/schemas/history.d.ts.map +1 -0
- package/dist/schemas/history.js +662 -0
- package/dist/schemas/history.js.map +1 -0
- package/dist/schemas/host.d.ts +16 -0
- package/dist/schemas/host.d.ts.map +1 -0
- package/dist/schemas/host.js +8 -0
- package/dist/schemas/host.js.map +1 -0
- package/dist/schemas/ids.d.ts +18 -0
- package/dist/schemas/ids.d.ts.map +1 -0
- package/dist/schemas/ids.js +17 -0
- package/dist/schemas/ids.js.map +1 -0
- package/dist/schemas/index.d.ts +60 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +60 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/json.d.ts +10 -0
- package/dist/schemas/json.d.ts.map +1 -0
- package/dist/schemas/json.js +12 -0
- package/dist/schemas/json.js.map +1 -0
- package/dist/schemas/manifest.d.ts +15 -0
- package/dist/schemas/manifest.d.ts.map +1 -0
- package/dist/schemas/manifest.js +61 -0
- package/dist/schemas/manifest.js.map +1 -0
- package/dist/schemas/memory-input.d.ts +94 -0
- package/dist/schemas/memory-input.d.ts.map +1 -0
- package/dist/schemas/memory-input.js +119 -0
- package/dist/schemas/memory-input.js.map +1 -0
- package/dist/schemas/operator-summary.d.ts +369 -0
- package/dist/schemas/operator-summary.d.ts.map +1 -0
- package/dist/schemas/operator-summary.js +207 -0
- package/dist/schemas/operator-summary.js.map +1 -0
- package/dist/schemas/policy-envelope.d.ts +1655 -0
- package/dist/schemas/policy-envelope.d.ts.map +1 -0
- package/dist/schemas/policy-envelope.js +330 -0
- package/dist/schemas/policy-envelope.js.map +1 -0
- package/dist/schemas/power.d.ts +26 -0
- package/dist/schemas/power.d.ts.map +1 -0
- package/dist/schemas/power.js +38 -0
- package/dist/schemas/power.js.map +1 -0
- package/dist/schemas/process-evidence.d.ts +156 -0
- package/dist/schemas/process-evidence.d.ts.map +1 -0
- package/dist/schemas/process-evidence.js +142 -0
- package/dist/schemas/process-evidence.js.map +1 -0
- package/dist/schemas/process.d.ts +16 -0
- package/dist/schemas/process.d.ts.map +1 -0
- package/dist/schemas/process.js +7 -0
- package/dist/schemas/process.js.map +1 -0
- package/dist/schemas/progress-event.d.ts +1505 -0
- package/dist/schemas/progress-event.d.ts.map +1 -0
- package/dist/schemas/progress-event.js +246 -0
- package/dist/schemas/progress-event.js.map +1 -0
- package/dist/schemas/proof-assessment.d.ts +542 -0
- package/dist/schemas/proof-assessment.d.ts.map +1 -0
- package/dist/schemas/proof-assessment.js +336 -0
- package/dist/schemas/proof-assessment.js.map +1 -0
- package/dist/schemas/recovery-route-kind.d.ts +229 -0
- package/dist/schemas/recovery-route-kind.d.ts.map +1 -0
- package/dist/schemas/recovery-route-kind.js +242 -0
- package/dist/schemas/recovery-route-kind.js.map +1 -0
- package/dist/schemas/ref.d.ts +51 -0
- package/dist/schemas/ref.d.ts.map +1 -0
- package/dist/schemas/ref.js +96 -0
- package/dist/schemas/ref.js.map +1 -0
- package/dist/schemas/report-file-surface.d.ts +44 -0
- package/dist/schemas/report-file-surface.d.ts.map +1 -0
- package/dist/schemas/report-file-surface.js +22 -0
- package/dist/schemas/report-file-surface.js.map +1 -0
- package/dist/schemas/result.d.ts +23 -0
- package/dist/schemas/result.d.ts.map +1 -0
- package/dist/schemas/result.js +55 -0
- package/dist/schemas/result.js.map +1 -0
- package/dist/schemas/role.d.ts +8 -0
- package/dist/schemas/role.d.ts.map +1 -0
- package/dist/schemas/role.js +5 -0
- package/dist/schemas/role.js.map +1 -0
- package/dist/schemas/route-policy.d.ts +5 -0
- package/dist/schemas/route-policy.d.ts.map +1 -0
- package/dist/schemas/route-policy.js +9 -0
- package/dist/schemas/route-policy.js.map +1 -0
- package/dist/schemas/routing-contract-schemas.d.ts +11 -0
- package/dist/schemas/routing-contract-schemas.d.ts.map +1 -0
- package/dist/schemas/routing-contract-schemas.js +72 -0
- package/dist/schemas/routing-contract-schemas.js.map +1 -0
- package/dist/schemas/rubric.d.ts +74 -0
- package/dist/schemas/rubric.d.ts.map +1 -0
- package/dist/schemas/rubric.js +125 -0
- package/dist/schemas/rubric.js.map +1 -0
- package/dist/schemas/run-envelope.d.ts +1333 -0
- package/dist/schemas/run-envelope.d.ts.map +1 -0
- package/dist/schemas/run-envelope.js +578 -0
- package/dist/schemas/run-envelope.js.map +1 -0
- package/dist/schemas/run-status.d.ts +216 -0
- package/dist/schemas/run-status.d.ts.map +1 -0
- package/dist/schemas/run-status.js +146 -0
- package/dist/schemas/run-status.js.map +1 -0
- package/dist/schemas/run.d.ts +2866 -0
- package/dist/schemas/run.d.ts.map +1 -0
- package/dist/schemas/run.js +647 -0
- package/dist/schemas/run.js.map +1 -0
- package/dist/schemas/runtime-evidence.d.ts +152 -0
- package/dist/schemas/runtime-evidence.d.ts.map +1 -0
- package/dist/schemas/runtime-evidence.js +127 -0
- package/dist/schemas/runtime-evidence.js.map +1 -0
- package/dist/schemas/runtime-source.d.ts +55 -0
- package/dist/schemas/runtime-source.d.ts.map +1 -0
- package/dist/schemas/runtime-source.js +40 -0
- package/dist/schemas/runtime-source.js.map +1 -0
- package/dist/schemas/scalars.d.ts +21 -0
- package/dist/schemas/scalars.d.ts.map +1 -0
- package/dist/schemas/scalars.js +51 -0
- package/dist/schemas/scalars.js.map +1 -0
- package/dist/schemas/selection-policy.d.ts +764 -0
- package/dist/schemas/selection-policy.d.ts.map +1 -0
- package/dist/schemas/selection-policy.js +209 -0
- package/dist/schemas/selection-policy.js.map +1 -0
- package/dist/schemas/skill-hook.d.ts +214 -0
- package/dist/schemas/skill-hook.d.ts.map +1 -0
- package/dist/schemas/skill-hook.js +279 -0
- package/dist/schemas/skill-hook.js.map +1 -0
- package/dist/schemas/skill.d.ts +59 -0
- package/dist/schemas/skill.d.ts.map +1 -0
- package/dist/schemas/skill.js +82 -0
- package/dist/schemas/skill.js.map +1 -0
- package/dist/schemas/snapshot.d.ts +108 -0
- package/dist/schemas/snapshot.d.ts.map +1 -0
- package/dist/schemas/snapshot.js +40 -0
- package/dist/schemas/snapshot.js.map +1 -0
- package/dist/schemas/stage.d.ts +85 -0
- package/dist/schemas/stage.d.ts.map +1 -0
- package/dist/schemas/stage.js +58 -0
- package/dist/schemas/stage.js.map +1 -0
- package/dist/schemas/step.d.ts +2455 -0
- package/dist/schemas/step.d.ts.map +1 -0
- package/dist/schemas/step.js +567 -0
- package/dist/schemas/step.js.map +1 -0
- package/dist/schemas/trace-entry.d.ts +2573 -0
- package/dist/schemas/trace-entry.d.ts.map +1 -0
- package/dist/schemas/trace-entry.js +973 -0
- package/dist/schemas/trace-entry.js.map +1 -0
- package/dist/schemas/verification.d.ts +47 -0
- package/dist/schemas/verification.d.ts.map +1 -0
- package/dist/schemas/verification.js +122 -0
- package/dist/schemas/verification.js.map +1 -0
- package/dist/schemas/work-contract-projection.d.ts +473 -0
- package/dist/schemas/work-contract-projection.d.ts.map +1 -0
- package/dist/schemas/work-contract-projection.js +232 -0
- package/dist/schemas/work-contract-projection.js.map +1 -0
- package/dist/selection/connector-planning.d.ts +23 -0
- package/dist/selection/connector-planning.d.ts.map +1 -0
- package/dist/selection/connector-planning.js +31 -0
- package/dist/selection/connector-planning.js.map +1 -0
- package/dist/selection/power-inference.d.ts +20 -0
- package/dist/selection/power-inference.d.ts.map +1 -0
- package/dist/selection/power-inference.js +74 -0
- package/dist/selection/power-inference.js.map +1 -0
- package/dist/selection/power-tiers.d.ts +24 -0
- package/dist/selection/power-tiers.d.ts.map +1 -0
- package/dist/selection/power-tiers.js +115 -0
- package/dist/selection/power-tiers.js.map +1 -0
- package/dist/selection/relay-selection.d.ts +11 -0
- package/dist/selection/relay-selection.d.ts.map +1 -0
- package/dist/selection/relay-selection.js +57 -0
- package/dist/selection/relay-selection.js.map +1 -0
- package/dist/selection/selection-resolver.d.ts +23 -0
- package/dist/selection/selection-resolver.d.ts.map +1 -0
- package/dist/selection/selection-resolver.js +153 -0
- package/dist/selection/selection-resolver.js.map +1 -0
- package/dist/shared/atomic-io.d.ts +11 -0
- package/dist/shared/atomic-io.d.ts.map +1 -0
- package/dist/shared/atomic-io.js +29 -0
- package/dist/shared/atomic-io.js.map +1 -0
- package/dist/shared/checkpoint-auto-resolution.d.ts +17 -0
- package/dist/shared/checkpoint-auto-resolution.d.ts.map +1 -0
- package/dist/shared/checkpoint-auto-resolution.js +72 -0
- package/dist/shared/checkpoint-auto-resolution.js.map +1 -0
- package/dist/shared/checkpoint-boundary.d.ts +15 -0
- package/dist/shared/checkpoint-boundary.d.ts.map +1 -0
- package/dist/shared/checkpoint-boundary.js +125 -0
- package/dist/shared/checkpoint-boundary.js.map +1 -0
- package/dist/shared/config-loader.d.ts +20 -0
- package/dist/shared/config-loader.d.ts.map +1 -0
- package/dist/shared/config-loader.js +140 -0
- package/dist/shared/config-loader.js.map +1 -0
- package/dist/shared/connector-relay.d.ts +39 -0
- package/dist/shared/connector-relay.d.ts.map +1 -0
- package/dist/shared/connector-relay.js +2 -0
- package/dist/shared/connector-relay.js.map +1 -0
- package/dist/shared/control-plane-gitignore.d.ts +10 -0
- package/dist/shared/control-plane-gitignore.d.ts.map +1 -0
- package/dist/shared/control-plane-gitignore.js +46 -0
- package/dist/shared/control-plane-gitignore.js.map +1 -0
- package/dist/shared/control-plane-paths.d.ts +36 -0
- package/dist/shared/control-plane-paths.d.ts.map +1 -0
- package/dist/shared/control-plane-paths.js +71 -0
- package/dist/shared/control-plane-paths.js.map +1 -0
- package/dist/shared/equipment-enforcement.d.ts +11 -0
- package/dist/shared/equipment-enforcement.d.ts.map +1 -0
- package/dist/shared/equipment-enforcement.js +37 -0
- package/dist/shared/equipment-enforcement.js.map +1 -0
- package/dist/shared/fanout-aggregate-report.d.ts +32 -0
- package/dist/shared/fanout-aggregate-report.d.ts.map +1 -0
- package/dist/shared/fanout-aggregate-report.js +73 -0
- package/dist/shared/fanout-aggregate-report.js.map +1 -0
- package/dist/shared/fanout-branch-template.d.ts +4 -0
- package/dist/shared/fanout-branch-template.d.ts.map +1 -0
- package/dist/shared/fanout-branch-template.js +55 -0
- package/dist/shared/fanout-branch-template.js.map +1 -0
- package/dist/shared/git-state-command.d.ts +19 -0
- package/dist/shared/git-state-command.d.ts.map +1 -0
- package/dist/shared/git-state-command.js +52 -0
- package/dist/shared/git-state-command.js.map +1 -0
- package/dist/shared/git-state.d.ts +3 -0
- package/dist/shared/git-state.d.ts.map +1 -0
- package/dist/shared/git-state.js +163 -0
- package/dist/shared/git-state.js.map +1 -0
- package/dist/shared/git-state.ts +175 -0
- package/dist/shared/html/checkpoint-page.d.ts +41 -0
- package/dist/shared/html/checkpoint-page.d.ts.map +1 -0
- package/dist/shared/html/checkpoint-page.js +108 -0
- package/dist/shared/html/checkpoint-page.js.map +1 -0
- package/dist/shared/html/index.d.ts +6 -0
- package/dist/shared/html/index.d.ts.map +1 -0
- package/dist/shared/html/index.js +16 -0
- package/dist/shared/html/index.js.map +1 -0
- package/dist/shared/html/multi-variant.d.ts +56 -0
- package/dist/shared/html/multi-variant.d.ts.map +1 -0
- package/dist/shared/html/multi-variant.js +183 -0
- package/dist/shared/html/multi-variant.js.map +1 -0
- package/dist/shared/html/page.d.ts +5 -0
- package/dist/shared/html/page.d.ts.map +1 -0
- package/dist/shared/html/page.js +42 -0
- package/dist/shared/html/page.js.map +1 -0
- package/dist/shared/html/projector.d.ts +38 -0
- package/dist/shared/html/projector.d.ts.map +1 -0
- package/dist/shared/html/projector.js +7 -0
- package/dist/shared/html/projector.js.map +1 -0
- package/dist/shared/html/react-page.d.ts +10 -0
- package/dist/shared/html/react-page.d.ts.map +1 -0
- package/dist/shared/html/react-page.js +31 -0
- package/dist/shared/html/react-page.js.map +1 -0
- package/dist/shared/html/report-components.d.ts +57 -0
- package/dist/shared/html/report-components.d.ts.map +1 -0
- package/dist/shared/html/report-components.js +69 -0
- package/dist/shared/html/report-components.js.map +1 -0
- package/dist/shared/html/ui/alert.d.ts +10 -0
- package/dist/shared/html/ui/alert.d.ts.map +1 -0
- package/dist/shared/html/ui/alert.js +28 -0
- package/dist/shared/html/ui/alert.js.map +1 -0
- package/dist/shared/html/ui/badge.d.ts +11 -0
- package/dist/shared/html/ui/badge.d.ts.map +1 -0
- package/dist/shared/html/ui/badge.js +32 -0
- package/dist/shared/html/ui/badge.js.map +1 -0
- package/dist/shared/html/ui/button.d.ts +13 -0
- package/dist/shared/html/ui/button.d.ts.map +1 -0
- package/dist/shared/html/ui/button.js +36 -0
- package/dist/shared/html/ui/button.js.map +1 -0
- package/dist/shared/html/ui/card.d.ts +10 -0
- package/dist/shared/html/ui/card.d.ts.map +1 -0
- package/dist/shared/html/ui/card.js +25 -0
- package/dist/shared/html/ui/card.js.map +1 -0
- package/dist/shared/html/ui/checkbox.d.ts +4 -0
- package/dist/shared/html/ui/checkbox.d.ts.map +1 -0
- package/dist/shared/html/ui/checkbox.js +7 -0
- package/dist/shared/html/ui/checkbox.js.map +1 -0
- package/dist/shared/html/ui/collapsible.d.ts +6 -0
- package/dist/shared/html/ui/collapsible.d.ts.map +1 -0
- package/dist/shared/html/ui/collapsible.js +13 -0
- package/dist/shared/html/ui/collapsible.js.map +1 -0
- package/dist/shared/html/ui/css.generated.d.ts +2 -0
- package/dist/shared/html/ui/css.generated.d.ts.map +1 -0
- package/dist/shared/html/ui/css.generated.js +5 -0
- package/dist/shared/html/ui/css.generated.js.map +1 -0
- package/dist/shared/html/ui/field.d.ts +26 -0
- package/dist/shared/html/ui/field.d.ts.map +1 -0
- package/dist/shared/html/ui/field.js +79 -0
- package/dist/shared/html/ui/field.js.map +1 -0
- package/dist/shared/html/ui/index.d.ts +16 -0
- package/dist/shared/html/ui/index.d.ts.map +1 -0
- package/dist/shared/html/ui/index.js +20 -0
- package/dist/shared/html/ui/index.js.map +1 -0
- package/dist/shared/html/ui/input.d.ts +5 -0
- package/dist/shared/html/ui/input.d.ts.map +1 -0
- package/dist/shared/html/ui/input.js +11 -0
- package/dist/shared/html/ui/input.js.map +1 -0
- package/dist/shared/html/ui/kbd.d.ts +5 -0
- package/dist/shared/html/ui/kbd.d.ts.map +1 -0
- package/dist/shared/html/ui/kbd.js +10 -0
- package/dist/shared/html/ui/kbd.js.map +1 -0
- package/dist/shared/html/ui/label.d.ts +4 -0
- package/dist/shared/html/ui/label.d.ts.map +1 -0
- package/dist/shared/html/ui/label.js +9 -0
- package/dist/shared/html/ui/label.js.map +1 -0
- package/dist/shared/html/ui/radio-group.d.ts +5 -0
- package/dist/shared/html/ui/radio-group.d.ts.map +1 -0
- package/dist/shared/html/ui/radio-group.js +10 -0
- package/dist/shared/html/ui/radio-group.js.map +1 -0
- package/dist/shared/html/ui/separator.d.ts +4 -0
- package/dist/shared/html/ui/separator.d.ts.map +1 -0
- package/dist/shared/html/ui/separator.js +11 -0
- package/dist/shared/html/ui/separator.js.map +1 -0
- package/dist/shared/html/ui/table.d.ts +11 -0
- package/dist/shared/html/ui/table.d.ts.map +1 -0
- package/dist/shared/html/ui/table.js +28 -0
- package/dist/shared/html/ui/table.js.map +1 -0
- package/dist/shared/html/ui/textarea.d.ts +4 -0
- package/dist/shared/html/ui/textarea.d.ts.map +1 -0
- package/dist/shared/html/ui/textarea.js +7 -0
- package/dist/shared/html/ui/textarea.js.map +1 -0
- package/dist/shared/html/ui/utils.d.ts +3 -0
- package/dist/shared/html/ui/utils.d.ts.map +1 -0
- package/dist/shared/html/ui/utils.js +11 -0
- package/dist/shared/html/ui/utils.js.map +1 -0
- package/dist/shared/json-extraction.d.ts +2 -0
- package/dist/shared/json-extraction.d.ts.map +1 -0
- package/dist/shared/json-extraction.js +68 -0
- package/dist/shared/json-extraction.js.map +1 -0
- package/dist/shared/manifest-snapshot.d.ts +13 -0
- package/dist/shared/manifest-snapshot.d.ts.map +1 -0
- package/dist/shared/manifest-snapshot.js +48 -0
- package/dist/shared/manifest-snapshot.js.map +1 -0
- package/dist/shared/operator-summary/explore.d.ts +3 -0
- package/dist/shared/operator-summary/explore.d.ts.map +1 -0
- package/dist/shared/operator-summary/explore.js +208 -0
- package/dist/shared/operator-summary/explore.js.map +1 -0
- package/dist/shared/operator-summary/index.d.ts +6 -0
- package/dist/shared/operator-summary/index.d.ts.map +1 -0
- package/dist/shared/operator-summary/index.js +10 -0
- package/dist/shared/operator-summary/index.js.map +1 -0
- package/dist/shared/operator-summary/json.d.ts +10 -0
- package/dist/shared/operator-summary/json.d.ts.map +1 -0
- package/dist/shared/operator-summary/json.js +63 -0
- package/dist/shared/operator-summary/json.js.map +1 -0
- package/dist/shared/operator-summary/projections.d.ts +4 -0
- package/dist/shared/operator-summary/projections.d.ts.map +1 -0
- package/dist/shared/operator-summary/projections.js +452 -0
- package/dist/shared/operator-summary/projections.js.map +1 -0
- package/dist/shared/operator-summary/projector.d.ts +14 -0
- package/dist/shared/operator-summary/projector.d.ts.map +1 -0
- package/dist/shared/operator-summary/projector.js +12 -0
- package/dist/shared/operator-summary/projector.js.map +1 -0
- package/dist/shared/operator-summary/text.d.ts +11 -0
- package/dist/shared/operator-summary/text.d.ts.map +1 -0
- package/dist/shared/operator-summary/text.js +92 -0
- package/dist/shared/operator-summary/text.js.map +1 -0
- package/dist/shared/outcome.d.ts +13 -0
- package/dist/shared/outcome.d.ts.map +1 -0
- package/dist/shared/outcome.js +76 -0
- package/dist/shared/outcome.js.map +1 -0
- package/dist/shared/progress-output.d.ts +12 -0
- package/dist/shared/progress-output.d.ts.map +1 -0
- package/dist/shared/progress-output.js +50 -0
- package/dist/shared/progress-output.js.map +1 -0
- package/dist/shared/proof-assessment.d.ts +7 -0
- package/dist/shared/proof-assessment.d.ts.map +1 -0
- package/dist/shared/proof-assessment.js +67 -0
- package/dist/shared/proof-assessment.js.map +1 -0
- package/dist/shared/proof-plan.d.ts +26 -0
- package/dist/shared/proof-plan.d.ts.map +1 -0
- package/dist/shared/proof-plan.js +164 -0
- package/dist/shared/proof-plan.js.map +1 -0
- package/dist/shared/relay-runtime-types.d.ts +30 -0
- package/dist/shared/relay-runtime-types.d.ts.map +1 -0
- package/dist/shared/relay-runtime-types.js +2 -0
- package/dist/shared/relay-runtime-types.js.map +1 -0
- package/dist/shared/result-path.d.ts +3 -0
- package/dist/shared/result-path.d.ts.map +1 -0
- package/dist/shared/result-path.js +6 -0
- package/dist/shared/result-path.js.map +1 -0
- package/dist/shared/run-artifact-io.d.ts +3 -0
- package/dist/shared/run-artifact-io.d.ts.map +1 -0
- package/dist/shared/run-artifact-io.js +17 -0
- package/dist/shared/run-artifact-io.js.map +1 -0
- package/dist/shared/run-file-paths.d.ts +3 -0
- package/dist/shared/run-file-paths.d.ts.map +1 -0
- package/dist/shared/run-file-paths.js +72 -0
- package/dist/shared/run-file-paths.js.map +1 -0
- package/dist/shared/run-relative-path.d.ts +2 -0
- package/dist/shared/run-relative-path.d.ts.map +1 -0
- package/dist/shared/run-relative-path.js +43 -0
- package/dist/shared/run-relative-path.js.map +1 -0
- package/dist/shared/runtime-source.d.ts +24 -0
- package/dist/shared/runtime-source.d.ts.map +1 -0
- package/dist/shared/runtime-source.js +75 -0
- package/dist/shared/runtime-source.js.map +1 -0
- package/dist/shared/runtime-touched-files.d.ts +12 -0
- package/dist/shared/runtime-touched-files.d.ts.map +1 -0
- package/dist/shared/runtime-touched-files.js +106 -0
- package/dist/shared/runtime-touched-files.js.map +1 -0
- package/dist/shared/skill-loading.d.ts +22 -0
- package/dist/shared/skill-loading.d.ts.map +1 -0
- package/dist/shared/skill-loading.js +75 -0
- package/dist/shared/skill-loading.js.map +1 -0
- package/dist/shared/status-block-renderer.d.ts +16 -0
- package/dist/shared/status-block-renderer.d.ts.map +1 -0
- package/dist/shared/status-block-renderer.js +67 -0
- package/dist/shared/status-block-renderer.js.map +1 -0
- package/dist/shared/user-skill-registry.d.ts +18 -0
- package/dist/shared/user-skill-registry.d.ts.map +1 -0
- package/dist/shared/user-skill-registry.js +130 -0
- package/dist/shared/user-skill-registry.js.map +1 -0
- package/dist/shared/verification-resolver.d.ts +23 -0
- package/dist/shared/verification-resolver.d.ts.map +1 -0
- package/dist/shared/verification-resolver.js +162 -0
- package/dist/shared/verification-resolver.js.map +1 -0
- package/dist/shared/work-contract-projection.d.ts +15 -0
- package/dist/shared/work-contract-projection.d.ts.map +1 -0
- package/dist/shared/work-contract-projection.js +498 -0
- package/dist/shared/work-contract-projection.js.map +1 -0
- package/dist/shared/working-tree-changes.d.ts +18 -0
- package/dist/shared/working-tree-changes.d.ts.map +1 -0
- package/dist/shared/working-tree-changes.js +94 -0
- package/dist/shared/working-tree-changes.js.map +1 -0
- package/dist/shared/write-capable-worker-disclosure.d.ts +3 -0
- package/dist/shared/write-capable-worker-disclosure.d.ts.map +1 -0
- package/dist/shared/write-capable-worker-disclosure.js +6 -0
- package/dist/shared/write-capable-worker-disclosure.js.map +1 -0
- package/dist/shared/zod-to-response-schema.d.ts +4 -0
- package/dist/shared/zod-to-response-schema.d.ts.map +1 -0
- package/dist/shared/zod-to-response-schema.js +88 -0
- package/dist/shared/zod-to-response-schema.js.map +1 -0
- package/dist/skill-hooks/decision-packet.d.ts +10 -0
- package/dist/skill-hooks/decision-packet.d.ts.map +1 -0
- package/dist/skill-hooks/decision-packet.js +42 -0
- package/dist/skill-hooks/decision-packet.js.map +1 -0
- package/dist/skill-hooks/dispatch.d.ts +27 -0
- package/dist/skill-hooks/dispatch.d.ts.map +1 -0
- package/dist/skill-hooks/dispatch.js +167 -0
- package/dist/skill-hooks/dispatch.js.map +1 -0
- package/dist/skill-hooks/injection.d.ts +7 -0
- package/dist/skill-hooks/injection.d.ts.map +1 -0
- package/dist/skill-hooks/injection.js +50 -0
- package/dist/skill-hooks/injection.js.map +1 -0
- package/dist/skill-hooks/policy.d.ts +32 -0
- package/dist/skill-hooks/policy.d.ts.map +1 -0
- package/dist/skill-hooks/policy.js +104 -0
- package/dist/skill-hooks/policy.js.map +1 -0
- package/dist/skill-hooks/surface-sources.d.ts +8 -0
- package/dist/skill-hooks/surface-sources.d.ts.map +1 -0
- package/dist/skill-hooks/surface-sources.js +55 -0
- package/dist/skill-hooks/surface-sources.js.map +1 -0
- package/generated/flows/build/circuit.json +439 -0
- package/generated/flows/build/circuit.work-contract.v0.json +1283 -0
- package/generated/flows/catalog.json +29 -0
- package/generated/flows/converge-proof/circuit.json +145 -0
- package/generated/flows/converge-proof/circuit.work-contract.v0.json +275 -0
- package/generated/flows/cross-tool-build/circuit.json +321 -0
- package/generated/flows/cross-tool-build/circuit.work-contract.v0.json +1157 -0
- package/generated/flows/explainer/circuit.json +610 -0
- package/generated/flows/explainer/circuit.work-contract.v0.json +1552 -0
- package/generated/flows/explore/circuit.json +217 -0
- package/generated/flows/explore/circuit.work-contract.v0.json +717 -0
- package/generated/flows/explore/tournament.json +412 -0
- package/generated/flows/explore/tournament.work-contract.v0.json +983 -0
- package/generated/flows/fix/circuit.json +563 -0
- package/generated/flows/fix/circuit.work-contract.v0.json +2175 -0
- package/generated/flows/fix/low.json +511 -0
- package/generated/flows/fix/low.work-contract.v0.json +1921 -0
- package/generated/flows/fix-until-green/circuit.json +183 -0
- package/generated/flows/fix-until-green/circuit.work-contract.v0.json +438 -0
- package/generated/flows/goal/circuit.json +638 -0
- package/generated/flows/goal/circuit.work-contract.v0.json +2133 -0
- package/generated/flows/prototype/circuit.json +278 -0
- package/generated/flows/prototype/circuit.work-contract.v0.json +690 -0
- package/generated/flows/prototype/tournament.json +505 -0
- package/generated/flows/prototype/tournament.work-contract.v0.json +1122 -0
- package/generated/flows/pursue/circuit.json +298 -0
- package/generated/flows/pursue/circuit.work-contract.v0.json +944 -0
- package/generated/flows/review/circuit.json +142 -0
- package/generated/flows/review/circuit.work-contract.v0.json +392 -0
- package/generated/flows/runtime-proof/circuit.json +91 -0
- package/generated/flows/runtime-proof/circuit.work-contract.v0.json +183 -0
- package/generated/flows/sweep/circuit.json +239 -0
- package/generated/flows/sweep/circuit.work-contract.v0.json +590 -0
- package/package.json +102 -0
- package/plugins/version.json +3 -0
|
@@ -0,0 +1,1339 @@
|
|
|
1
|
+
// Flow-shape composition (experimental, default-OFF): the composer.
|
|
2
|
+
//
|
|
3
|
+
// Given a ROLE SET — the ordered set of (stage, block, executionKind) a task
|
|
4
|
+
// needs — the composer INVENTS a flow: it selects a registered actual for each
|
|
5
|
+
// block's output, synthesizes the contract wiring between steps, and emits a
|
|
6
|
+
// FlowSchematicAssemblySpec. It never authors a contract body; every actual it
|
|
7
|
+
// binds is one an existing flow already registered (see actual-menu.ts), bound
|
|
8
|
+
// through `contract_aliases` exactly as a hand-authored family would. The emitted
|
|
9
|
+
// spec is then handed to the SAME fail-closed path the engine runs
|
|
10
|
+
// (assembleFlowSchematic → compile → catalog gate); the composer adds no gate of
|
|
11
|
+
// its own.
|
|
12
|
+
//
|
|
13
|
+
// This is the "research problem" the Phase 2 spike named, rebuilt as the
|
|
14
|
+
// FEATURE path: the spike read the stripped block-catalog.json and wired block
|
|
15
|
+
// generics raw, so it tripped the typing gate on six unregistered generics. The
|
|
16
|
+
// composer reads the real catalog + registries and binds typed actuals, so the
|
|
17
|
+
// same gate passes. Whether that is enough to produce novel, valid, SENSIBLE
|
|
18
|
+
// flows across a task set is what the eval measures.
|
|
19
|
+
import { CONVERGE_JUDGMENT_CONTRACT, FANOUT_AGGREGATE_CONTRACT, FLOW_RESULT_CONTRACT, } from '../../schemas/builtin-report-schemas.js';
|
|
20
|
+
import { FLOW_BLOCK_DEFINITIONS, } from '../../schemas/flow-block-definitions.js';
|
|
21
|
+
import { CANONICAL_STAGES } from '../../schemas/stage.js';
|
|
22
|
+
import { findCloseBuilder } from '../registries/close-writers/registry.js';
|
|
23
|
+
import { findComposeBuilder } from '../registries/compose-writers/registry.js';
|
|
24
|
+
import { findVerificationWriter } from '../registries/verification-writers/registry.js';
|
|
25
|
+
import { deriveActualMenu, entryIsRegisteredFor, } from './actual-menu.js';
|
|
26
|
+
import { EQUIPMENT_PROFILE_IDS, isEquipmentProfileId, profileToScope, toEnforcedScope, } from './equipment-profiles.js';
|
|
27
|
+
import { evaluateRunnability, outputIsReadableContract } from './evaluate.js';
|
|
28
|
+
// Engine-supplied contracts: a block may consume one without an upstream
|
|
29
|
+
// producer because the runtime injects it. The set is DERIVED from the catalog —
|
|
30
|
+
// the union of every flow definition's declared initial_contracts — never
|
|
31
|
+
// hand-kept. This keeps the composer riding catalog data: a contract no flow
|
|
32
|
+
// declares initial cannot be routed through a composed flow's initial_contracts
|
|
33
|
+
// to dodge the unregistered-body gate. (flow.evidence@v1, for one, is never an
|
|
34
|
+
// initial — every flow that needs it aliases a registered body to it — so a
|
|
35
|
+
// topology that reads it with no producer walls, exactly as a hand-authored flow
|
|
36
|
+
// would be forced to alias it.)
|
|
37
|
+
function deriveAmbientGenerics(definitions) {
|
|
38
|
+
const ambient = new Set();
|
|
39
|
+
for (const definition of definitions) {
|
|
40
|
+
for (const contract of definition.schematic.initial_contracts) {
|
|
41
|
+
ambient.add(asString(contract));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ambient;
|
|
45
|
+
}
|
|
46
|
+
// Canonical, operator-readable input key per contract. The key names how a step
|
|
47
|
+
// reads a contract; the gates ignore key names (they match on contracts), but a
|
|
48
|
+
// stable, conventional key keeps composed steps legible and aligns with the keys
|
|
49
|
+
// the runtime writers already read.
|
|
50
|
+
const KEY_BY_CONTRACT = {
|
|
51
|
+
'task.intake@v1': 'task',
|
|
52
|
+
'route.decision@v1': 'route',
|
|
53
|
+
'context.request@v1': 'request',
|
|
54
|
+
'context.packet@v1': 'context',
|
|
55
|
+
'flow.brief@v1': 'brief',
|
|
56
|
+
'plan.strategy@v1': 'plan',
|
|
57
|
+
'diagnosis.result@v1': 'diagnosis',
|
|
58
|
+
'change.evidence@v1': 'change',
|
|
59
|
+
'verification.plan@v1': 'proof',
|
|
60
|
+
'verification.result@v1': 'verification',
|
|
61
|
+
'review.verdict@v1': 'review',
|
|
62
|
+
'flow.question@v1': 'question',
|
|
63
|
+
'flow.evidence@v1': 'evidence',
|
|
64
|
+
'flow.state@v1': 'state',
|
|
65
|
+
'decision.answer@v1': 'decision',
|
|
66
|
+
'flow.result@v1': 'result',
|
|
67
|
+
};
|
|
68
|
+
// The changed-files honesty gate. The built-in fix/build flows hand-author this
|
|
69
|
+
// criterion onto their implementer `act` step so an overclaiming worker — one that
|
|
70
|
+
// lists a file in `changed_files` that it never actually touched — is caught and
|
|
71
|
+
// retried with feedback. A genuinely composed flow had no such hand-wiring, so its
|
|
72
|
+
// act step ran unguarded. These constants let the composer attach the SAME gate,
|
|
73
|
+
// closing the reach gap so the honesty guarantee covers generated flows too.
|
|
74
|
+
//
|
|
75
|
+
// The gate is only meaningful when the act binds a contract that asks the worker to
|
|
76
|
+
// self-report changed files. Both fix.change@v1 and build.implementation@v1 declare
|
|
77
|
+
// `changed_files` and `evidence`, so the full three-check criterion applies to each.
|
|
78
|
+
const CHANGED_FILES_CONTRACTS = new Set([
|
|
79
|
+
'fix.change@v1',
|
|
80
|
+
'build.implementation@v1',
|
|
81
|
+
]);
|
|
82
|
+
const CHANGED_FILES_ACCEPTANCE_CRITERIA = {
|
|
83
|
+
checks: [
|
|
84
|
+
{
|
|
85
|
+
kind: 'report_field',
|
|
86
|
+
id: 'changed-files-present',
|
|
87
|
+
path: ['changed_files'],
|
|
88
|
+
predicate: 'present',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
kind: 'report_field',
|
|
92
|
+
id: 'changed-files-on-disk',
|
|
93
|
+
path: ['changed_files'],
|
|
94
|
+
predicate: 'changed_on_disk',
|
|
95
|
+
},
|
|
96
|
+
{ kind: 'report_field', id: 'evidence-non-empty', path: ['evidence'], predicate: 'non_empty' },
|
|
97
|
+
],
|
|
98
|
+
on_failure: { mode: 'retry-with-feedback' },
|
|
99
|
+
};
|
|
100
|
+
function asString(value) {
|
|
101
|
+
return value;
|
|
102
|
+
}
|
|
103
|
+
// Exported for the compose-reads collision guard: the intermediate compose-reads
|
|
104
|
+
// wiring pass keys a wired read by its `read.name`, and the step's declared inputs
|
|
105
|
+
// are keyed by `keyFor(contract)`. The guard uses this exact function to prove no
|
|
106
|
+
// compose-writer read name collides with a different-schema declared input key.
|
|
107
|
+
export function keyFor(contract) {
|
|
108
|
+
const known = KEY_BY_CONTRACT[contract];
|
|
109
|
+
if (known !== undefined)
|
|
110
|
+
return known;
|
|
111
|
+
// Fall back to the contract's local name, sanitized to a valid input key.
|
|
112
|
+
const local = contract.split('@')[0]?.split('.').pop() ?? contract;
|
|
113
|
+
return local.replace(/[^a-z0-9_]/g, '_');
|
|
114
|
+
}
|
|
115
|
+
function titleCase(stage) {
|
|
116
|
+
return stage.charAt(0).toUpperCase() + stage.slice(1);
|
|
117
|
+
}
|
|
118
|
+
const BLOCK_BY_ID = new Map(FLOW_BLOCK_DEFINITIONS.map((block) => [block.id, block]));
|
|
119
|
+
// Rank families by how many of the role set's roles each family can serve
|
|
120
|
+
// (registered actual for that block+kind+generic). Selecting from the
|
|
121
|
+
// highest-coverage family first keeps a composed flow as coherent as the catalog
|
|
122
|
+
// allows (e.g. a research-then-build flow lands fix.* for six roles and reaches
|
|
123
|
+
// into build.* only for the plan step fix lacks), which both reads better and
|
|
124
|
+
// gives the live writers the family inputs they expect.
|
|
125
|
+
function rankFamilies(roles, menu, nonRawCells) {
|
|
126
|
+
const coverage = new Map();
|
|
127
|
+
roles.forEach((role, index) => {
|
|
128
|
+
const block = BLOCK_BY_ID.get(role.block);
|
|
129
|
+
if (block === undefined)
|
|
130
|
+
return;
|
|
131
|
+
const outputGeneric = asString(block.output_contract);
|
|
132
|
+
for (const entry of menu) {
|
|
133
|
+
if (!candidateMatchesRole(entry, role, outputGeneric, nonRawCells))
|
|
134
|
+
continue;
|
|
135
|
+
const set = coverage.get(entry.family) ?? new Set();
|
|
136
|
+
set.add(index);
|
|
137
|
+
coverage.set(entry.family, set);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
const ranked = new Map();
|
|
141
|
+
for (const [family, indices] of coverage)
|
|
142
|
+
ranked.set(family, indices.size);
|
|
143
|
+
return ranked;
|
|
144
|
+
}
|
|
145
|
+
// A "cell" is one (block, executionKind, generic) the composer may fill. Two
|
|
146
|
+
// actuals in the same cell type-check for the same role; the selector picks
|
|
147
|
+
// between them. The key ignores relay role: the raw-generic question is about
|
|
148
|
+
// the output contract, not the worker seat.
|
|
149
|
+
function cellKey(block, executionKind, generic) {
|
|
150
|
+
return `${block}|${executionKind}|${generic}`;
|
|
151
|
+
}
|
|
152
|
+
// The cells that have at least one SPECIALIZED actual (actual !== its block's
|
|
153
|
+
// generic). For these the raw generic is excluded (a specialized override is
|
|
154
|
+
// available). A handful of blocks — the goal family, the pursuit family —
|
|
155
|
+
// register ONLY their raw generic: their output IS the specialized contract,
|
|
156
|
+
// with no generic-vs-specialized split, so the raw generic is the one way to use
|
|
157
|
+
// the block. Those cells are absent here, so the filter admits the raw generic.
|
|
158
|
+
function computeNonRawCells(menu) {
|
|
159
|
+
const cells = new Set();
|
|
160
|
+
for (const entry of menu) {
|
|
161
|
+
if (entry.actual !== entry.generic) {
|
|
162
|
+
cells.add(cellKey(entry.block, entry.executionKind, entry.generic));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return cells;
|
|
166
|
+
}
|
|
167
|
+
function candidateMatchesRole(entry, role, outputGeneric, nonRawCells) {
|
|
168
|
+
if (entry.block !== role.block)
|
|
169
|
+
return false;
|
|
170
|
+
if (entry.executionKind !== role.executionKind)
|
|
171
|
+
return false;
|
|
172
|
+
if (role.executionKind === 'relay' && entry.relayRole !== role.relayRole)
|
|
173
|
+
return false;
|
|
174
|
+
if (entry.generic !== outputGeneric)
|
|
175
|
+
return false;
|
|
176
|
+
// A raw generic output (actual === generic) restates the block default and
|
|
177
|
+
// carries no specialized body, so it is excluded WHEN the cell also has a
|
|
178
|
+
// specialized actual. When the raw generic is the cell's ONLY actual (the goal
|
|
179
|
+
// and pursuit families), excluding it would make the block uncomposable, so it
|
|
180
|
+
// is admitted as the sole way to use the block.
|
|
181
|
+
if (entry.actual === outputGeneric &&
|
|
182
|
+
nonRawCells.has(cellKey(role.block, role.executionKind, outputGeneric))) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
// A sub-run role names the child flow it runs; only the donor actual that ran
|
|
186
|
+
// that child is eligible, so the synthesized flow_ref matches the bound actual.
|
|
187
|
+
if (role.executionKind === 'sub-run' &&
|
|
188
|
+
role.flowId !== undefined &&
|
|
189
|
+
entry.subRunFlowRef !== role.flowId) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
if (!entryIsRegisteredFor(entry, role.executionKind))
|
|
193
|
+
return false;
|
|
194
|
+
if (role.terminal && !entry.hasCloseWriter)
|
|
195
|
+
return false;
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
// The family's OWN representative actual for a role: its donorPrimary-then-name
|
|
199
|
+
// pick, the same deterministic order selectActual uses minus the family-rank key
|
|
200
|
+
// (we are already inside one family). Undefined where the family cannot serve
|
|
201
|
+
// the role. Reused by the whole-line coherence score below.
|
|
202
|
+
function representativeActualForFamily(family, role, menu, nonRawCells) {
|
|
203
|
+
const block = BLOCK_BY_ID.get(role.block);
|
|
204
|
+
if (block === undefined)
|
|
205
|
+
return undefined;
|
|
206
|
+
const outputGeneric = asString(block.output_contract);
|
|
207
|
+
return menu
|
|
208
|
+
.filter((entry) => entry.family === family && candidateMatchesRole(entry, role, outputGeneric, nonRawCells))
|
|
209
|
+
.sort((a, b) => {
|
|
210
|
+
if (a.donorPrimaryForBlock !== b.donorPrimaryForBlock) {
|
|
211
|
+
return a.donorPrimaryForBlock ? -1 : 1;
|
|
212
|
+
}
|
|
213
|
+
return a.actual < b.actual ? -1 : a.actual > b.actual ? 1 : 0;
|
|
214
|
+
})[0];
|
|
215
|
+
}
|
|
216
|
+
// Whole-line family coherence (opt-in look-ahead, used only under
|
|
217
|
+
// enforceRunnability). selectActual picks each role's actual INDEPENDENTLY,
|
|
218
|
+
// breaking a family-rank TIE on actual name. That can land a tie-top family
|
|
219
|
+
// whose writer needs an upstream read the topology never produces — explainer's
|
|
220
|
+
// `plan` writer reads a diagnose-stage digest no compose-only line emits — even
|
|
221
|
+
// though a SIBLING tie-top family binds the identical role set runnably
|
|
222
|
+
// (prototype: brief -> plan reads brief -> result). The per-role greedy pick
|
|
223
|
+
// cannot see this: at the FRAME step every family's opener is read-free, so the
|
|
224
|
+
// incoherence only surfaces two steps later. The fix is a whole-line score: if
|
|
225
|
+
// the ENTIRE role set committed to family F, how many of F's writers' REQUIRED
|
|
226
|
+
// reads would be STARVED (no upstream producer within F)? Lower is more
|
|
227
|
+
// coherent. selectActual uses it as a tie-break AFTER familyRank, so it only
|
|
228
|
+
// reorders equally-top-ranked families and pulls the whole line onto the
|
|
229
|
+
// runnable one — turning the opt-in runnability gate from detect-only into
|
|
230
|
+
// repair-then-wall.
|
|
231
|
+
function computeFamilyCoherence(roles, menu, nonRawCells) {
|
|
232
|
+
const starvedByFamily = new Map();
|
|
233
|
+
for (const family of new Set(menu.map((entry) => entry.family))) {
|
|
234
|
+
// Hypothetically bind family F across the whole line.
|
|
235
|
+
const bound = roles.map((role) => representativeActualForFamily(family, role, menu, nonRawCells));
|
|
236
|
+
let starved = 0;
|
|
237
|
+
bound.forEach((entry, index) => {
|
|
238
|
+
if (entry === undefined)
|
|
239
|
+
return;
|
|
240
|
+
// A terminal close never ABORTS on an unproduced required read: the
|
|
241
|
+
// bind-time terminal-close rebind below falls it back to the reads-agnostic
|
|
242
|
+
// generic flow.result@v1. Counting its reads here would wrongly penalize a
|
|
243
|
+
// family whose ONLY deficit is at the close and pass over a genuinely
|
|
244
|
+
// runnable binding (a missed repair). Skip it so the score matches what the
|
|
245
|
+
// binder actually does. (A fanout act step is never terminal; the close is.)
|
|
246
|
+
const role = roles[index];
|
|
247
|
+
const isTerminalRole = role?.terminal === true || index === roles.length - 1;
|
|
248
|
+
if (isTerminalRole && role?.executionKind !== 'fanout')
|
|
249
|
+
return;
|
|
250
|
+
const writer = findComposeBuilder(entry.actual) ??
|
|
251
|
+
findCloseBuilder(entry.actual) ??
|
|
252
|
+
findVerificationWriter(entry.actual);
|
|
253
|
+
for (const read of writer?.reads ?? []) {
|
|
254
|
+
if (!read.required)
|
|
255
|
+
continue;
|
|
256
|
+
// Producible iff some UPSTREAM role's F-representative produces it. The
|
|
257
|
+
// read schema names a specific upstream ACTUAL (e.g. prototype.brief@v1),
|
|
258
|
+
// matched directly against the bound actuals — the same actual-keyed
|
|
259
|
+
// matching the verification-reads wall uses. INVARIANT: every required
|
|
260
|
+
// read declared across compose/close/verification writers names a
|
|
261
|
+
// family-namespaced actual, never an ambient/initial contract
|
|
262
|
+
// (task.intake@v1, route.decision@v1), so an actual-only match is
|
|
263
|
+
// complete; a future writer with an ambient required read would need an
|
|
264
|
+
// ambient check added here and in the verification-reads wall both.
|
|
265
|
+
const producedUpstream = bound
|
|
266
|
+
.slice(0, index)
|
|
267
|
+
.some((up) => up !== undefined && up.actual === read.schema);
|
|
268
|
+
if (!producedUpstream)
|
|
269
|
+
starved += 1;
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
starvedByFamily.set(family, starved);
|
|
273
|
+
}
|
|
274
|
+
return starvedByFamily;
|
|
275
|
+
}
|
|
276
|
+
// Deterministic pick: highest family coverage first (coherence), then — under
|
|
277
|
+
// the opt-in runnability gate — the family whose whole-line writer reads are
|
|
278
|
+
// least starved, then the donor flow's primary use of the block (so a reused
|
|
279
|
+
// block lands its canonical post-change output, not an auxiliary pre-change
|
|
280
|
+
// variant), then actual name ascending. Family rank stays the top key so this
|
|
281
|
+
// never grafts a foreign family's actual into a role the chosen family already
|
|
282
|
+
// serves; the coherence key only reorders families ALREADY tied on rank.
|
|
283
|
+
function selectActual(role, outputGeneric, menu, familyRank, nonRawCells, familyCoherence) {
|
|
284
|
+
const candidates = menu
|
|
285
|
+
.filter((entry) => candidateMatchesRole(entry, role, outputGeneric, nonRawCells))
|
|
286
|
+
.sort((a, b) => {
|
|
287
|
+
const rankA = familyRank.get(a.family) ?? 0;
|
|
288
|
+
const rankB = familyRank.get(b.family) ?? 0;
|
|
289
|
+
if (rankA !== rankB)
|
|
290
|
+
return rankB - rankA;
|
|
291
|
+
if (familyCoherence !== undefined) {
|
|
292
|
+
const starvedA = familyCoherence.get(a.family) ?? Number.POSITIVE_INFINITY;
|
|
293
|
+
const starvedB = familyCoherence.get(b.family) ?? Number.POSITIVE_INFINITY;
|
|
294
|
+
if (starvedA !== starvedB)
|
|
295
|
+
return starvedA - starvedB;
|
|
296
|
+
}
|
|
297
|
+
if (a.donorPrimaryForBlock !== b.donorPrimaryForBlock) {
|
|
298
|
+
return a.donorPrimaryForBlock ? -1 : 1;
|
|
299
|
+
}
|
|
300
|
+
return a.actual < b.actual ? -1 : a.actual > b.actual ? 1 : 0;
|
|
301
|
+
});
|
|
302
|
+
return candidates[0];
|
|
303
|
+
}
|
|
304
|
+
// Choose the block input set (its required input_contracts or an alternative)
|
|
305
|
+
// that is fully satisfiable from the contracts available so far AND consumes the
|
|
306
|
+
// most upstream-produced evidence. Maximizing produced-contract consumption is
|
|
307
|
+
// what keeps a composed flow free of orphans: a step that takes the leanest
|
|
308
|
+
// satisfiable set would leave an upstream producer's output unread. Tie-break:
|
|
309
|
+
// larger total set, then declaration order (the primary set is richest by
|
|
310
|
+
// design).
|
|
311
|
+
function chooseInputSet(block, available, ambient) {
|
|
312
|
+
const sets = [
|
|
313
|
+
block.input_contracts.map(asString),
|
|
314
|
+
...(block.alternative_input_contracts ?? []).map((set) => set.map(asString)),
|
|
315
|
+
];
|
|
316
|
+
const satisfiable = sets
|
|
317
|
+
.map((set, order) => ({ set, order }))
|
|
318
|
+
.filter(({ set }) => set.every((contract) => available.has(contract) || ambient.has(contract)));
|
|
319
|
+
if (satisfiable.length === 0)
|
|
320
|
+
return undefined;
|
|
321
|
+
const producedCount = (set) => set.filter((contract) => available.has(contract)).length;
|
|
322
|
+
satisfiable.sort((a, b) => {
|
|
323
|
+
const consumedDelta = producedCount(b.set) - producedCount(a.set);
|
|
324
|
+
if (consumedDelta !== 0)
|
|
325
|
+
return consumedDelta;
|
|
326
|
+
if (b.set.length !== a.set.length)
|
|
327
|
+
return b.set.length - a.set.length;
|
|
328
|
+
return a.order - b.order;
|
|
329
|
+
});
|
|
330
|
+
return satisfiable[0]?.set;
|
|
331
|
+
}
|
|
332
|
+
function stepWrites(flowId, stepId, executionKind, checkpointWritesReport) {
|
|
333
|
+
const reportPath = `reports/${flowId}/${stepId}.json`;
|
|
334
|
+
if (executionKind === 'relay') {
|
|
335
|
+
return {
|
|
336
|
+
report_path: reportPath,
|
|
337
|
+
request_path: `reports/relay/${stepId}.request.json`,
|
|
338
|
+
receipt_path: `reports/relay/${stepId}.receipt.txt`,
|
|
339
|
+
result_path: `reports/relay/${stepId}.result.json`,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
if (executionKind === 'checkpoint') {
|
|
343
|
+
// A checkpoint always carries its request/response routing paths. A CONTENT
|
|
344
|
+
// checkpoint — one whose donor wrote a typed report (the build family's frame
|
|
345
|
+
// produces build.brief@v1, which `plan` reads) — ALSO writes a report_path so
|
|
346
|
+
// the brief it produces has a read path; without it the compile walls
|
|
347
|
+
// ("produces build.brief@v1 but has no writes.report_path"). The schema allows
|
|
348
|
+
// report_path on a checkpoint (required only for compose/verification/fanout),
|
|
349
|
+
// and the real build frame-step writes reports/build/brief.json the same way.
|
|
350
|
+
// A ROUTING-only checkpoint (no donor report) writes no report_path, exactly as
|
|
351
|
+
// before. The report_path rides with policy.report_template (see the call site):
|
|
352
|
+
// a checkpoint that writes a report requires the template, so the two are kept
|
|
353
|
+
// in lockstep — a checkpoint never half-writes a report it cannot populate.
|
|
354
|
+
return {
|
|
355
|
+
...(checkpointWritesReport ? { report_path: reportPath } : {}),
|
|
356
|
+
checkpoint_request_path: `reports/checkpoints/${stepId}-request.json`,
|
|
357
|
+
checkpoint_response_path: `reports/checkpoints/${stepId}-response.json`,
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
if (executionKind === 'sub-run') {
|
|
361
|
+
// The child's RunResult is copied into this slot; the schema forbids a
|
|
362
|
+
// report_path for sub-run (the result IS the readable output).
|
|
363
|
+
return { result_path: `reports/${flowId}/${stepId}.result.json` };
|
|
364
|
+
}
|
|
365
|
+
if (executionKind === 'fanout') {
|
|
366
|
+
// A fanout writes the joined aggregate report AND a per-branch directory the
|
|
367
|
+
// runtime fills with each child's result; the schema requires both.
|
|
368
|
+
return {
|
|
369
|
+
report_path: reportPath,
|
|
370
|
+
branches_dir_path: `reports/${stepId}-branches`,
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
// compose + verification
|
|
374
|
+
return { report_path: reportPath };
|
|
375
|
+
}
|
|
376
|
+
// Construct the typed execution descriptor for a block. The composer supports
|
|
377
|
+
// compose, relay, verification, checkpoint, sub-run, and fanout. The sub-run
|
|
378
|
+
// descriptor's flow_ref/entry_mode come from the bound donor actual (`pick`) so
|
|
379
|
+
// the child it runs matches the actual it produces; goal/depth come from the role
|
|
380
|
+
// (the per-task params). The goalText invariant is enforced upstream by the
|
|
381
|
+
// sub-run wall, so `role.goalText` is present here. A fanout's execution is the
|
|
382
|
+
// bare `{ kind: 'fanout' }` marker; its branch/join metadata rides in the sibling
|
|
383
|
+
// `fanout` field the caller attaches from `buildFanoutMetadata`.
|
|
384
|
+
function buildExecution(role, pick) {
|
|
385
|
+
switch (role.executionKind) {
|
|
386
|
+
case 'relay':
|
|
387
|
+
return { kind: 'relay', role: role.relayRole };
|
|
388
|
+
case 'compose':
|
|
389
|
+
return { kind: 'compose' };
|
|
390
|
+
case 'verification':
|
|
391
|
+
return { kind: 'verification' };
|
|
392
|
+
case 'checkpoint':
|
|
393
|
+
return { kind: 'checkpoint' };
|
|
394
|
+
case 'sub-run':
|
|
395
|
+
return {
|
|
396
|
+
kind: 'sub-run',
|
|
397
|
+
flow_ref: {
|
|
398
|
+
flow_id: (pick.subRunFlowRef ?? role.flowId),
|
|
399
|
+
entry_mode: pick.subRunEntryMode ?? 'default',
|
|
400
|
+
},
|
|
401
|
+
goal: role.goalText,
|
|
402
|
+
depth: role.subRunDepth ?? 'medium',
|
|
403
|
+
};
|
|
404
|
+
case 'fanout':
|
|
405
|
+
return { kind: 'fanout' };
|
|
406
|
+
default:
|
|
407
|
+
throw new Error(`composer does not synthesize execution kind '${role.executionKind}'`);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
// Build the SchematicFanout metadata for a fanout role: a STATIC set of sub-run
|
|
411
|
+
// branches run in parallel and joined as aggregate-survivors. The composer emits
|
|
412
|
+
// no rubric (the join does not consult one) and uses continue-others so one
|
|
413
|
+
// branch failing does not abort the others — the join then keeps the survivors.
|
|
414
|
+
// The branch invariants (at least two branches, each with a goalText) are enforced
|
|
415
|
+
// upstream by the fanout wall, so `role.fanoutBranches` is present and valid here.
|
|
416
|
+
function buildFanoutMetadata(role) {
|
|
417
|
+
const branches = (role.fanoutBranches ?? []).map((branch) => ({
|
|
418
|
+
branch_id: branch.branchId,
|
|
419
|
+
flow_ref: { flow_id: branch.flowId, entry_mode: 'default' },
|
|
420
|
+
goal: branch.goalText,
|
|
421
|
+
depth: branch.depth ?? 'medium',
|
|
422
|
+
}));
|
|
423
|
+
return {
|
|
424
|
+
branches: { kind: 'static', branches },
|
|
425
|
+
concurrency: { kind: 'bounded', max: 2 },
|
|
426
|
+
on_child_failure: 'continue-others',
|
|
427
|
+
join: { policy: 'aggregate-survivors' },
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
// Whether a block's execution kind is unambiguous (one allowed kind). The block
|
|
431
|
+
// step expander rejects a restated default execution, so single-kind blocks must
|
|
432
|
+
// OMIT execution and multi-kind blocks must declare it.
|
|
433
|
+
function blockHasSingleKind(block) {
|
|
434
|
+
return block.schematicPolicy.executionKinds.length === 1;
|
|
435
|
+
}
|
|
436
|
+
export function composeFlow(roleSet, options) {
|
|
437
|
+
const menu = deriveActualMenu(options.definitions);
|
|
438
|
+
const ambient = deriveAmbientGenerics(options.definitions);
|
|
439
|
+
const nonRawCells = computeNonRawCells(menu);
|
|
440
|
+
const familyRank = rankFamilies(roleSet.roles, menu, nonRawCells);
|
|
441
|
+
// Producibility-aware selection look-ahead: only computed (and only consulted
|
|
442
|
+
// by selectActual) under the opt-in runnability gate, so the default path is
|
|
443
|
+
// byte-identical. See computeFamilyCoherence.
|
|
444
|
+
const familyCoherence = options.enforceRunnability === true
|
|
445
|
+
? computeFamilyCoherence(roleSet.roles, menu, nonRawCells)
|
|
446
|
+
: undefined;
|
|
447
|
+
const walls = [];
|
|
448
|
+
const aliasByGeneric = new Map();
|
|
449
|
+
const producedGenerics = new Set();
|
|
450
|
+
const usedAmbient = new Set();
|
|
451
|
+
const items = [];
|
|
452
|
+
const selections = [];
|
|
453
|
+
// Pre-assign step ids so a step can route to its successor by id.
|
|
454
|
+
const stepIds = assignStepIds(roleSet.roles);
|
|
455
|
+
// Converge gate (the fail-closed, thesis-bearing check). When the role set asks
|
|
456
|
+
// for a Converge, it must contain three roles in canonical order: an act-stage
|
|
457
|
+
// implementer relay (the loop head), a run-verification step (the evidence floor
|
|
458
|
+
// — the thing that makes the generated loop inherit a real check instead of
|
|
459
|
+
// spinning forever on a claim the judge cannot verify), and a review-stage
|
|
460
|
+
// reviewer relay (the loop tail / stop-judge). Resolve them up front; if any is
|
|
461
|
+
// missing, wall with a plain-English reason and emit no loop, because a Converge
|
|
462
|
+
// with no floor is exactly the unbounded loop the whole shape exists to prevent.
|
|
463
|
+
const convergePlan = roleSet.convergeUntil === undefined ? undefined : resolveConvergePlan(roleSet, stepIds, walls);
|
|
464
|
+
// A walled Converge resolution short-circuits the whole compose: emitting a
|
|
465
|
+
// partial flow with no loop would silently demote the operator's Converge
|
|
466
|
+
// request to a plain line. Return the wall now.
|
|
467
|
+
if (roleSet.convergeUntil !== undefined && convergePlan === undefined) {
|
|
468
|
+
return { ok: false, walls };
|
|
469
|
+
}
|
|
470
|
+
roleSet.roles.forEach((role, index) => {
|
|
471
|
+
const block = BLOCK_BY_ID.get(role.block);
|
|
472
|
+
if (block === undefined) {
|
|
473
|
+
walls.push({ roleIndex: index, block: role.block, reason: 'unknown block id' });
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
// Equipment is a closed menu: a profile name outside it is a vocabulary
|
|
477
|
+
// error (the proposer's JSON.parse would accept any string). Wall with a
|
|
478
|
+
// stable reason that names the bad value and the allowed set, so the repair
|
|
479
|
+
// pass can self-correct — the same shape as the (block, kind) menu wall.
|
|
480
|
+
if (role.equipment !== undefined && !isEquipmentProfileId(role.equipment)) {
|
|
481
|
+
walls.push({
|
|
482
|
+
roleIndex: index,
|
|
483
|
+
block: role.block,
|
|
484
|
+
reason: `equipment profile '${role.equipment}' is not in the allowed set [${EQUIPMENT_PROFILE_IDS.join(', ')}]`,
|
|
485
|
+
});
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
// 'full' is the default surface, so it collapses to omission: attaching
|
|
489
|
+
// nothing keeps the schematic — not just the compiled step — byte-identical
|
|
490
|
+
// to a flow that never declared equipment. Only a tightening profile
|
|
491
|
+
// (read-only | editor | tester) attaches a scope.
|
|
492
|
+
const baseScope = role.equipment === undefined || role.equipment === 'full'
|
|
493
|
+
? undefined
|
|
494
|
+
: profileToScope(role.equipment);
|
|
495
|
+
// Opt-in hard enforcement (default off). Enforcement is a write-tier
|
|
496
|
+
// boundary, so the schematic parse gate accepts enforcement:'enforced' ONLY
|
|
497
|
+
// on an implementer relay step; we upgrade only that step, and only when it
|
|
498
|
+
// already carries a tightening allow-list. Every other step keeps its trusted
|
|
499
|
+
// scope, so the gate never trips and the un-opted path stays byte-identical.
|
|
500
|
+
const isImplementerRelay = role.executionKind === 'relay' && role.relayRole === 'implementer';
|
|
501
|
+
const equipmentScope = options.enforceImplementerTools === true && isImplementerRelay && baseScope !== undefined
|
|
502
|
+
? toEnforcedScope(baseScope)
|
|
503
|
+
: baseScope;
|
|
504
|
+
const outputGeneric = asString(block.output_contract);
|
|
505
|
+
// A sub-run leaf runs a whole child flow; a child with no objective is
|
|
506
|
+
// meaningless, so a sub-run role without goalText walls honestly rather than
|
|
507
|
+
// emit an execution whose `goal` would be empty (and fail the schema's
|
|
508
|
+
// min(1)). This is the sub-run analog of the loop's dangling-back-edge wall.
|
|
509
|
+
if (role.executionKind === 'sub-run' &&
|
|
510
|
+
(role.goalText === undefined || role.goalText.trim().length === 0)) {
|
|
511
|
+
walls.push({
|
|
512
|
+
roleIndex: index,
|
|
513
|
+
block: role.block,
|
|
514
|
+
reason: `sub-run role for '${role.block}' requires goalText (the child run's objective)`,
|
|
515
|
+
});
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
// A fanout joins its survivors with `aggregate-survivors`, which needs at
|
|
519
|
+
// least TWO branches to survive, so a fanout role with fewer than two branches
|
|
520
|
+
// walls honestly rather than emit a join that can never succeed. Each branch
|
|
521
|
+
// is a sub-run leaf, so each carries the same goalText invariant.
|
|
522
|
+
if (role.executionKind === 'fanout') {
|
|
523
|
+
const fanoutBranches = role.fanoutBranches ?? [];
|
|
524
|
+
if (fanoutBranches.length < 2) {
|
|
525
|
+
walls.push({
|
|
526
|
+
roleIndex: index,
|
|
527
|
+
block: role.block,
|
|
528
|
+
reason: `fanout role for '${role.block}' requires at least two branches (aggregate-survivors needs two survivors)`,
|
|
529
|
+
});
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
const branchMissingGoal = fanoutBranches.find((branch) => branch.goalText === undefined || branch.goalText.trim().length === 0);
|
|
533
|
+
if (branchMissingGoal !== undefined) {
|
|
534
|
+
walls.push({
|
|
535
|
+
roleIndex: index,
|
|
536
|
+
block: role.block,
|
|
537
|
+
reason: `fanout branch '${branchMissingGoal.branchId}' requires goalText (the child run's objective)`,
|
|
538
|
+
});
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
const pick = selectActual(role, outputGeneric, menu, familyRank, nonRawCells, familyCoherence);
|
|
543
|
+
if (pick === undefined) {
|
|
544
|
+
walls.push({
|
|
545
|
+
roleIndex: index,
|
|
546
|
+
block: role.block,
|
|
547
|
+
reason: `no registered actual for ${role.block}/${role.executionKind} producing ${outputGeneric}${role.executionKind === 'sub-run' && role.flowId !== undefined
|
|
548
|
+
? ` running child flow '${role.flowId}'`
|
|
549
|
+
: ''}${role.terminal ? ' with a close writer' : ''}`,
|
|
550
|
+
});
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
const available = new Set(producedGenerics);
|
|
554
|
+
const inputSet = chooseInputSet(block, available, ambient);
|
|
555
|
+
if (inputSet === undefined) {
|
|
556
|
+
walls.push({
|
|
557
|
+
roleIndex: index,
|
|
558
|
+
block: role.block,
|
|
559
|
+
reason: `no input set satisfiable; needs one of ${describeInputSets(block)}, have produced [${[
|
|
560
|
+
...producedGenerics,
|
|
561
|
+
].join(', ')}] + ambient`,
|
|
562
|
+
});
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
const input = {};
|
|
566
|
+
for (const contract of inputSet) {
|
|
567
|
+
const key = keyFor(contract);
|
|
568
|
+
if (producedGenerics.has(contract)) {
|
|
569
|
+
const actual = aliasByGeneric.get(contract);
|
|
570
|
+
// Invariant: a produced generic always has an alias entry.
|
|
571
|
+
input[key] = actual ?? contract;
|
|
572
|
+
}
|
|
573
|
+
else {
|
|
574
|
+
// Ambient: engine-supplied. Route through initial_contracts.
|
|
575
|
+
usedAmbient.add(contract);
|
|
576
|
+
input[key] = contract;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
// Evidence-soak at the terminal: a composed flow must not silently drop an
|
|
580
|
+
// upstream step's output. Short-tail topologies (triage that closes after
|
|
581
|
+
// diagnose, gather-then-verify) leave the terminal close reading only its
|
|
582
|
+
// smallest satisfiable input set, orphaning the very evidence the flow
|
|
583
|
+
// exists to produce. Fold every otherwise-unconsumed upstream actual into
|
|
584
|
+
// the terminal step's input — exactly what the hand-authored families do
|
|
585
|
+
// (fix's close reads brief, context, diagnosis, change, verification). The
|
|
586
|
+
// added reads are all of produced contracts, so the catalog gate accepts
|
|
587
|
+
// them; the terminal already satisfies a full declared input set, so the
|
|
588
|
+
// extra reads only carry evidence forward.
|
|
589
|
+
const isTerminal = role.terminal === true || index === roleSet.roles.length - 1;
|
|
590
|
+
if (isTerminal) {
|
|
591
|
+
const consumed = new Set();
|
|
592
|
+
for (const prior of items)
|
|
593
|
+
for (const value of Object.values(prior.input ?? {}))
|
|
594
|
+
consumed.add(value);
|
|
595
|
+
for (const value of Object.values(input))
|
|
596
|
+
consumed.add(value);
|
|
597
|
+
const genericOfActual = new Map(selections.map((sel) => [sel.actual, sel.generic]));
|
|
598
|
+
for (const prior of selections) {
|
|
599
|
+
// Only a readable output can be soaked: a step that wrote a report_path
|
|
600
|
+
// or result_path produces a contract a downstream step can read. A
|
|
601
|
+
// routing-only checkpoint (request/response paths, no report) produces no
|
|
602
|
+
// readable contract, so there is nothing to soak — a step that read it
|
|
603
|
+
// would fail the compiler's read-path resolution. (A checkpoint CAN write
|
|
604
|
+
// a report_path; build's frame-step does, and such an output IS soakable.
|
|
605
|
+
// We key on the readable write, not the execution kind.) The
|
|
606
|
+
// hand-authored fix family confirms the routing case: its close reads
|
|
607
|
+
// brief/context/diagnosis/change/verification but never the
|
|
608
|
+
// human-decision's decision record.
|
|
609
|
+
if (!prior.producesReadableContract)
|
|
610
|
+
continue;
|
|
611
|
+
const orphan = prior.actual;
|
|
612
|
+
if (consumed.has(orphan))
|
|
613
|
+
continue;
|
|
614
|
+
const key = keyFor(genericOfActual.get(orphan) ?? orphan);
|
|
615
|
+
if (input[key] === undefined) {
|
|
616
|
+
input[key] = orphan;
|
|
617
|
+
consumed.add(orphan);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
const stepId = stepIds[index];
|
|
622
|
+
const nextId = stepIds[index + 1];
|
|
623
|
+
let routes = role.terminal
|
|
624
|
+
? { complete: '@complete', stop: '@stop' }
|
|
625
|
+
: nextId === undefined
|
|
626
|
+
? { complete: '@complete', stop: '@stop' }
|
|
627
|
+
: { continue: nextId, stop: '@stop' };
|
|
628
|
+
// Bounded back-edge — the one non-linear shape the composer proposes. The
|
|
629
|
+
// role asks to loop back to an upstream block on a `retry` outcome; resolve
|
|
630
|
+
// the nearest earlier step using that block and wire `retry -> <stepId>`.
|
|
631
|
+
// A verify step's required-style check does not constrain route keys, so the
|
|
632
|
+
// added route compiles exactly as the hand-authored fix-verify retry does.
|
|
633
|
+
// No upstream match means a dangling edge: wall rather than emit it.
|
|
634
|
+
if (role.loopBackTo !== undefined) {
|
|
635
|
+
let targetIndex = -1;
|
|
636
|
+
for (let j = index - 1; j >= 0; j--) {
|
|
637
|
+
if (roleSet.roles[j]?.block === role.loopBackTo) {
|
|
638
|
+
targetIndex = j;
|
|
639
|
+
break;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
if (targetIndex === -1) {
|
|
643
|
+
walls.push({
|
|
644
|
+
roleIndex: index,
|
|
645
|
+
block: role.block,
|
|
646
|
+
reason: `loopBackTo '${role.loopBackTo}' has no upstream step to loop back to`,
|
|
647
|
+
});
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
routes.retry = stepIds[targetIndex];
|
|
651
|
+
}
|
|
652
|
+
// Converge tail wiring. When this step is the resolved loop tail (the reviewer
|
|
653
|
+
// / stop-judge), add the two loop edges the until-loop needs alongside the
|
|
654
|
+
// forward route the linear pass already wired:
|
|
655
|
+
// - continue: the clean-stop forward route, kept as-is (it carries on to the
|
|
656
|
+
// close step, which soaks the evidence and binds the primary result). This
|
|
657
|
+
// is the ONE route that maps to the runtime success edge.
|
|
658
|
+
// - advance: the re-enter edge back to the loop head. The engine swaps the
|
|
659
|
+
// forward route for this one each iteration until the judge clean-stops or
|
|
660
|
+
// the cap is hit. It is NOT a success route, so it does not collide with
|
|
661
|
+
// continue.
|
|
662
|
+
// - close: the exhausted exit to the non-complete @stop terminal — a NORMAL
|
|
663
|
+
// route (not a recovery route), so an exhausted clean pass does not trip the
|
|
664
|
+
// no-failure-evidence guard. This is the until flag's needs_attention_route.
|
|
665
|
+
// This mirrors fix-until-green's hand-authored judge-step routes exactly. The
|
|
666
|
+
// verify step gets its own loop edge (the red-verify `revise` route) in the block
|
|
667
|
+
// right below — without it the tail judge is never reached on a red verify, so
|
|
668
|
+
// these tail edges would never fire.
|
|
669
|
+
if (convergePlan !== undefined && index === convergePlan.tailIndex) {
|
|
670
|
+
routes.advance = convergePlan.headStepId;
|
|
671
|
+
routes.close = '@stop';
|
|
672
|
+
}
|
|
673
|
+
// Converge verify-step red-verify route. A run-verification step on a FAILED
|
|
674
|
+
// command does NOT take its forward `continue` route: the executor calls
|
|
675
|
+
// recoveryRouteForFailure(cause: failed_check) and routes to a bound RECOVERY
|
|
676
|
+
// route. The linear pass gave this step only { continue, stop }, so the one
|
|
677
|
+
// recovery-eligible route a red verify could take was `stop` -> @stop — the run
|
|
678
|
+
// STOPPED at the verify step on the first red command and never reached the tail
|
|
679
|
+
// judge, so the until corridor (which re-enters only at the tail seam) never
|
|
680
|
+
// re-entered. Add `revise` -> the tail judge: `revise` binds as narrow_scope
|
|
681
|
+
// recovery (allowed for cause failed_check), so a red verify routes FORWARD to
|
|
682
|
+
// the judge WITH failure evidence present. The judge reflects, the evidence floor
|
|
683
|
+
// blocks its goal_met claim on the open proof gap, and the loop re-enters with
|
|
684
|
+
// the lesson carried. A green verify still takes the forward `continue` route.
|
|
685
|
+
//
|
|
686
|
+
// Order matters. BOTH `revise` (narrow_scope) and `stop` (stop_unsafe) accept
|
|
687
|
+
// cause failed_check, so the work-contract projection derives a recovery binding
|
|
688
|
+
// for each. recoveryBindingForFailure returns the FIRST matching binding in
|
|
689
|
+
// route-iteration order, so `revise` must precede `stop` for a red verify to take
|
|
690
|
+
// it — otherwise `stop` wins and the loop never re-enters. The linear pass left
|
|
691
|
+
// `stop` last in the routes object; rebuild the step's routes with `revise`
|
|
692
|
+
// inserted before `stop`, mirroring fix-until-green's hand-authored verify-step
|
|
693
|
+
// route order (continue, revise, stop — see fix-until-green/assembly-spec.ts).
|
|
694
|
+
if (convergePlan !== undefined && index === convergePlan.verifyIndex) {
|
|
695
|
+
const reordered = {};
|
|
696
|
+
for (const [routeId, target] of Object.entries(routes)) {
|
|
697
|
+
// Insert `revise` immediately before `stop` so its narrow_scope binding is
|
|
698
|
+
// the first failed_check match the work-contract projection derives.
|
|
699
|
+
if (routeId === 'stop')
|
|
700
|
+
reordered.revise = convergePlan.tailStepId;
|
|
701
|
+
reordered[routeId] = target;
|
|
702
|
+
}
|
|
703
|
+
// No `stop` route to anchor against (defensive): append `revise` at the end.
|
|
704
|
+
if (reordered.revise === undefined)
|
|
705
|
+
reordered.revise = convergePlan.tailStepId;
|
|
706
|
+
routes = reordered;
|
|
707
|
+
}
|
|
708
|
+
// A CONTENT checkpoint writes a typed report (the build frame produces
|
|
709
|
+
// build.brief@v1); its donor carries the policy.report_template the checkpoint
|
|
710
|
+
// writer reads to populate that report. report_path and report_template are
|
|
711
|
+
// emitted together — a checkpoint that writes a report it cannot populate would
|
|
712
|
+
// fail the compiler ("checkpoint report writing requires policy.report_template")
|
|
713
|
+
// — so this one flag gates BOTH the writes.report_path below and the policy's
|
|
714
|
+
// report_template. A routing-only checkpoint (no donor template) keeps the old
|
|
715
|
+
// request/response-only shape. The non-terminal guard mirrors the policy guard:
|
|
716
|
+
// a checkpoint only writes a report when it also gets a synthesized go/no-go
|
|
717
|
+
// policy to hang the template on.
|
|
718
|
+
const checkpointWritesReport = role.executionKind === 'checkpoint' &&
|
|
719
|
+
routes.continue !== undefined &&
|
|
720
|
+
pick.checkpointReportTemplate !== undefined;
|
|
721
|
+
// A checkpoint step must carry a checkpoint_policy and a check whose allowed
|
|
722
|
+
// route matches a real route. The composer synthesizes a minimal go/no-go:
|
|
723
|
+
// one 'continue' choice (the route a non-terminal checkpoint advances on),
|
|
724
|
+
// safe-defaulting to continue so an unattended run proceeds. This replaces
|
|
725
|
+
// the donor's flow-specific policy/check, which would reference routes this
|
|
726
|
+
// composed step does not have. A content checkpoint additionally carries the
|
|
727
|
+
// donor's report_template (reused verbatim, drift-free), the only donor-policy
|
|
728
|
+
// field that is route-independent and that the report writer needs.
|
|
729
|
+
const checkpointPolicy = role.executionKind === 'checkpoint' && routes.continue !== undefined
|
|
730
|
+
? {
|
|
731
|
+
prompt: `${block.title}: operator go/no-go before continuing.`,
|
|
732
|
+
choices: [{ id: 'continue', label: 'Continue' }],
|
|
733
|
+
safe_default_choice: 'continue',
|
|
734
|
+
...(checkpointWritesReport ? { report_template: pick.checkpointReportTemplate } : {}),
|
|
735
|
+
}
|
|
736
|
+
: undefined;
|
|
737
|
+
let check = role.executionKind === 'checkpoint' ? { allow: ['continue'] } : pick.check;
|
|
738
|
+
// A composed fanout always launches a STATIC sub-run set joined as
|
|
739
|
+
// aggregate-survivors. selectActual hands back a flow-specific STRICT aggregate
|
|
740
|
+
// (e.g. prototype.variant-aggregate@v1) — proof a real donor shape exists — but
|
|
741
|
+
// that donor types each branch's result_body as the donor flow's report. A
|
|
742
|
+
// sub-run survivor is a RunResult, not that shape, so binding the donor would
|
|
743
|
+
// wall the aggregate write at runtime (the write validates the aggregate body
|
|
744
|
+
// before the join verdict). Bind the generic fanout aggregate contract instead:
|
|
745
|
+
// a typed envelope that leaves each branch's result_body open, so the aggregate
|
|
746
|
+
// validates AND the aggregate-survivors join admits any complete child. The
|
|
747
|
+
// generic carries a registered body, so the anti-widening gate still passes.
|
|
748
|
+
// Non-fanout roles bind the selected actual unchanged.
|
|
749
|
+
let boundOutput = role.executionKind === 'fanout' ? FANOUT_AGGREGATE_CONTRACT : pick.actual;
|
|
750
|
+
// Converge stop-judge rebind. The Converge tail is a reviewer relay; selectActual
|
|
751
|
+
// binds it to the family's typed `build.review@v1`, which is `.strict()` and
|
|
752
|
+
// REJECTS the goal_met/lesson fields the until-loop's stop-judge writes — so the
|
|
753
|
+
// tail downgrades to failed_check the instant it carries the judgment and the loop
|
|
754
|
+
// can never read goal_met (the run aborts on the unbound advance recovery route).
|
|
755
|
+
// Rebind ONLY the tail step to the dedicated `converge.judgment@v1` contract: a
|
|
756
|
+
// strict schema that INCLUDES verdict/goal_met/lesson/summary, so the body
|
|
757
|
+
// validates and the loop reads the judgment from the validated body. A registered
|
|
758
|
+
// shape-hint for the same contract also tells a real worker exactly what to emit.
|
|
759
|
+
// The tail's check.pass is rebound with it, to the contract's FULL verdict enum:
|
|
760
|
+
// the family reviewer's ['accept', 'accept-with-fixes'] treats 'reject' as a
|
|
761
|
+
// failed check, but on a stop-judge an honest "reject, not done" is a VALID
|
|
762
|
+
// judgment the loop must dispose (re-enter and carry the lesson) — under the
|
|
763
|
+
// family vocabulary it threw at the relay seam and crashed the run instead of
|
|
764
|
+
// looping (the F13 finding from the live surface test). The verdict says "the
|
|
765
|
+
// judge did its job"; goal_met, disposed against the evidence floor, decides
|
|
766
|
+
// stop-clean / reenter / needs-attention. Tail-only and Converge-only: a
|
|
767
|
+
// non-Converge path never sets convergePlan, so boundOutput and check are
|
|
768
|
+
// untouched and the spec stays byte-identical.
|
|
769
|
+
if (convergePlan !== undefined && index === convergePlan.tailIndex) {
|
|
770
|
+
boundOutput = CONVERGE_JUDGMENT_CONTRACT;
|
|
771
|
+
check = { pass: ['accept', 'accept-with-fixes', 'reject'] };
|
|
772
|
+
}
|
|
773
|
+
// Terminal close rebind (genuine-linear-LIVE). selectActual binds the close
|
|
774
|
+
// to a FAMILY result (e.g. fix.result@v1) — the close block's generic
|
|
775
|
+
// flow.result@v1 default aliased to a registered family actual. But every
|
|
776
|
+
// family close builder declares REQUIRED upstream reads: fix.result@v1 needs
|
|
777
|
+
// change/verification/regression evidence, build.result@v1 needs
|
|
778
|
+
// plan/implementation/verification. A novel short-tail topology (a triage
|
|
779
|
+
// that closes after diagnose) cannot produce those, so binding the family
|
|
780
|
+
// result emits a flow that ABORTS at close time — the runtime close-read
|
|
781
|
+
// resolver throws on the first unproduced required read. When the bound
|
|
782
|
+
// family's required reads are not all produced by an upstream selection,
|
|
783
|
+
// leave the terminal at the close block's own generic flow.result@v1 (a
|
|
784
|
+
// registered schema with a reads-agnostic engine close builder) instead. The
|
|
785
|
+
// flow then runs to @complete and reports the evidence it DID produce. A full
|
|
786
|
+
// fix/build-shaped composition still binds its family result unchanged,
|
|
787
|
+
// because its required reads ARE produced upstream. This rebinds the OUTPUT
|
|
788
|
+
// only; the evidence-soak above still folds every upstream actual into the
|
|
789
|
+
// close's INPUT, so the generic close reports them all.
|
|
790
|
+
if (isTerminal && role.executionKind !== 'fanout' && boundOutput !== outputGeneric) {
|
|
791
|
+
const familyClose = findCloseBuilder(boundOutput);
|
|
792
|
+
if (familyClose !== undefined) {
|
|
793
|
+
// Check the close's RESOLVED INPUT, not global upstream production. The
|
|
794
|
+
// runtime close-read resolver throws on a required read whose path is not
|
|
795
|
+
// in the close step's reads, and the step's reads are derived from this
|
|
796
|
+
// `input` map (the close block's declared reads plus the evidence-soak
|
|
797
|
+
// above). A read can be PRODUCED upstream yet absent from `input` because an
|
|
798
|
+
// intermediate step CONSUMED it — the soak folds only unconsumed orphans, so
|
|
799
|
+
// a consumed actual never reaches the terminal's input. The earlier
|
|
800
|
+
// production-based check (`producedActuals.has`) missed exactly that case:
|
|
801
|
+
// the composed fanout's plan output is consumed by the fanout step, so the
|
|
802
|
+
// family close (which requires reading it) aborts at runtime even though the
|
|
803
|
+
// plan WAS produced. Keying on the close's input values matches the runtime
|
|
804
|
+
// success condition precisely: preserve the family bind iff every required
|
|
805
|
+
// read is one the terminal will actually read; otherwise fall back to the
|
|
806
|
+
// reads-agnostic generic flow.result@v1.
|
|
807
|
+
const closeReadSchemas = new Set(Object.values(input));
|
|
808
|
+
const missingRequiredRead = familyClose.reads.some((read) => read.required && !closeReadSchemas.has(read.schema));
|
|
809
|
+
if (missingRequiredRead)
|
|
810
|
+
boundOutput = FLOW_RESULT_CONTRACT;
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
// Verification source reads (genuine-composition verification wiring). A
|
|
814
|
+
// verification writer sources its command list from an upstream typed report
|
|
815
|
+
// (fix.verification reads fix.brief@v1; build.verification reads build.plan@v1),
|
|
816
|
+
// a coupling the runtime enforces imperatively inside loadCommands. The block's
|
|
817
|
+
// declared input_contracts do NOT capture it — run-verification declares the
|
|
818
|
+
// ambient verification.plan@v1, never the brief — so a composed verification
|
|
819
|
+
// step would omit the read and ABORT the instant the writer runs (the failure
|
|
820
|
+
// the live composed-arm run hit). Wire each required read here: it is a produced
|
|
821
|
+
// upstream ACTUAL, so add it to the step input under its conventional key.
|
|
822
|
+
// Unlike the terminal close, a verification writer has NO reads-agnostic generic
|
|
823
|
+
// to rebind to — its commands ARE that source — so an unproduced required read
|
|
824
|
+
// walls honestly rather than emitting a flow that aborts at verify time.
|
|
825
|
+
if (role.executionKind === 'verification') {
|
|
826
|
+
const verifier = findVerificationWriter(boundOutput);
|
|
827
|
+
if (verifier?.reads !== undefined) {
|
|
828
|
+
const genericOfActual = new Map(selections.map((sel) => [sel.actual, sel.generic]));
|
|
829
|
+
let walled = false;
|
|
830
|
+
for (const read of verifier.reads) {
|
|
831
|
+
if (!read.required)
|
|
832
|
+
continue;
|
|
833
|
+
const generic = genericOfActual.get(read.schema);
|
|
834
|
+
if (generic === undefined) {
|
|
835
|
+
walls.push({
|
|
836
|
+
roleIndex: index,
|
|
837
|
+
block: role.block,
|
|
838
|
+
reason: `${role.block} verification writer '${boundOutput}' requires reading '${read.schema}', produced by no upstream step`,
|
|
839
|
+
});
|
|
840
|
+
walled = true;
|
|
841
|
+
break;
|
|
842
|
+
}
|
|
843
|
+
const key = keyFor(generic);
|
|
844
|
+
if (input[key] === undefined)
|
|
845
|
+
input[key] = read.schema;
|
|
846
|
+
}
|
|
847
|
+
if (walled)
|
|
848
|
+
return;
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
// Intermediate compose-writer source reads (genuine-composition compose
|
|
852
|
+
// wiring). A compose writer can source REQUIRED evidence from an upstream typed
|
|
853
|
+
// report the same way a verification writer sources its command list: the goal
|
|
854
|
+
// contract writer (goal.contract@v1) requires reading goal.clarified-task@v1 —
|
|
855
|
+
// the precise task an upstream `clarify` relay produces — yet the `goal` block's
|
|
856
|
+
// declared input_contracts capture only task.intake@v1 / route.decision@v1. A
|
|
857
|
+
// composed goal step therefore omits the read and ABORTS the instant the
|
|
858
|
+
// contract writer runs (resolveComposeReadPaths throws "requires step 'goal' to
|
|
859
|
+
// read .../clarify.json"). Wire each required read that an upstream selection
|
|
860
|
+
// PRODUCES into the step input.
|
|
861
|
+
//
|
|
862
|
+
// Two choices make this safe. First, KEY by the writer's own read name, not
|
|
863
|
+
// keyFor(generic) the way the verification pass does: the clarified task's
|
|
864
|
+
// generic is clarified.task@v1, which keyFor reduces to 'task' — clashing with
|
|
865
|
+
// the declared intake key 'task'. The alreadyRead guard would then treat the
|
|
866
|
+
// read as already wired and drop it, and the goal step would still abort. The
|
|
867
|
+
// read name 'clarified' has no such clash; composition-compose-reads.test.ts
|
|
868
|
+
// locks that no compose-writer read name shadows a different-schema declared
|
|
869
|
+
// input key. Second, SKIP an unproduced required read silently rather than
|
|
870
|
+
// walling: a non-terminal compose opener whose read no upstream step produces
|
|
871
|
+
// (research-then-build's build.brief plan opener) stays composable, and the
|
|
872
|
+
// runnability gate — not a compose-time wall — reports its abort, preserving
|
|
873
|
+
// that flow's default-ok behavior. The terminal close is handled by its own
|
|
874
|
+
// rebind above, so this skips it; a verification role is handled by the pass
|
|
875
|
+
// above.
|
|
876
|
+
if (role.executionKind === 'compose' && !isTerminal) {
|
|
877
|
+
const composeWriter = findComposeBuilder(boundOutput);
|
|
878
|
+
if (composeWriter?.reads !== undefined) {
|
|
879
|
+
const producedActuals = new Set(selections.map((sel) => sel.actual));
|
|
880
|
+
const alreadyRead = new Set(Object.values(input));
|
|
881
|
+
for (const read of composeWriter.reads) {
|
|
882
|
+
if (!read.required)
|
|
883
|
+
continue;
|
|
884
|
+
if (!producedActuals.has(read.schema))
|
|
885
|
+
continue; // unproduced: skip, do not wall
|
|
886
|
+
if (alreadyRead.has(read.schema))
|
|
887
|
+
continue; // already wired via the declared input set
|
|
888
|
+
input[read.name] = read.schema;
|
|
889
|
+
alreadyRead.add(read.schema);
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
const writes = stepWrites(roleSet.id, stepId, role.executionKind, checkpointWritesReport);
|
|
894
|
+
const use = {
|
|
895
|
+
id: stepId,
|
|
896
|
+
title: `${titleCase(role.stage)} — ${block.title}`,
|
|
897
|
+
stage: role.stage,
|
|
898
|
+
block: role.block,
|
|
899
|
+
input,
|
|
900
|
+
// A raw-generic pick (actual === the block's default output) must OMIT
|
|
901
|
+
// output: restating the default is rejected by the expander. The step
|
|
902
|
+
// defaults to the same generic, so the binding is unchanged. A specialized
|
|
903
|
+
// actual (or the fanout aggregate override above) is kept as an override.
|
|
904
|
+
...(boundOutput === outputGeneric ? {} : { output: boundOutput }),
|
|
905
|
+
protocol: `${roleSet.id}-${stepId}@v1`,
|
|
906
|
+
writes,
|
|
907
|
+
// Per-block equipment: a non-default profile attaches its tool scope here;
|
|
908
|
+
// an omitted/'full' choice attaches nothing, so the compiled step is
|
|
909
|
+
// byte-identical to a flow that never declared equipment.
|
|
910
|
+
...(equipmentScope === undefined ? {} : { equipmentScope }),
|
|
911
|
+
...(check === undefined ? {} : { check }),
|
|
912
|
+
...(checkpointPolicy === undefined ? {} : { checkpointPolicy }),
|
|
913
|
+
// Single-kind blocks must omit execution (restating the bare default is
|
|
914
|
+
// rejected); multi-kind blocks must declare it. Two execution kinds are
|
|
915
|
+
// exceptions even when they are a block's ONLY kind, because their
|
|
916
|
+
// descriptor carries a required field that is NOT the bare default, so the
|
|
917
|
+
// expander accepts it (it only rejects a single-key `{kind}`):
|
|
918
|
+
// - sub-run carries flow_ref/goal/depth (goal-child-run);
|
|
919
|
+
// - relay carries a required `role` (researcher | implementer | reviewer).
|
|
920
|
+
// A single-kind relay block (clarify, goal-gate-review) whose execution was
|
|
921
|
+
// omitted lost its role, and assemble then threw on the missing role enum.
|
|
922
|
+
// Multi-kind relay blocks (gather-context, diagnose, review) were already
|
|
923
|
+
// covered by the multi-kind branch below.
|
|
924
|
+
...(role.executionKind === 'sub-run' ||
|
|
925
|
+
role.executionKind === 'relay' ||
|
|
926
|
+
!blockHasSingleKind(block)
|
|
927
|
+
? { execution: buildExecution(role, pick) }
|
|
928
|
+
: {}),
|
|
929
|
+
// A fanout step carries a sibling `fanout` descriptor (the bare `{kind:'fanout'}`
|
|
930
|
+
// execution above only marks the step; the branch set, concurrency, failure
|
|
931
|
+
// policy, and join live here). The fanout wall upstream guaranteed at least
|
|
932
|
+
// two goal-bearing branches, so the descriptor is well-formed.
|
|
933
|
+
...(role.executionKind === 'fanout' ? { fanout: buildFanoutMetadata(role) } : {}),
|
|
934
|
+
// Changed-files honesty gate. Attach the same acceptance criterion the
|
|
935
|
+
// built-in fix/build act steps carry, but ONLY to an implementer `act` relay
|
|
936
|
+
// whose bound output asks the worker to self-report changed files. Gating on
|
|
937
|
+
// implementer + a changed-files-bearing contract keeps the gate off researcher
|
|
938
|
+
// relays (which report findings, not edits) and off any step the criterion
|
|
939
|
+
// would vacuously or wrongly fire on. The runtime relay executor fires it for
|
|
940
|
+
// any relay step carrying the field, so emitting it here is the whole bridge.
|
|
941
|
+
...(role.executionKind === 'relay' &&
|
|
942
|
+
role.relayRole === 'implementer' &&
|
|
943
|
+
CHANGED_FILES_CONTRACTS.has(boundOutput)
|
|
944
|
+
? { acceptanceCriteria: CHANGED_FILES_ACCEPTANCE_CRITERIA }
|
|
945
|
+
: {}),
|
|
946
|
+
routes,
|
|
947
|
+
};
|
|
948
|
+
items.push(use);
|
|
949
|
+
selections.push({
|
|
950
|
+
stepId,
|
|
951
|
+
block: role.block,
|
|
952
|
+
executionKind: role.executionKind,
|
|
953
|
+
actual: boundOutput,
|
|
954
|
+
generic: outputGeneric,
|
|
955
|
+
inputs: input,
|
|
956
|
+
producesReadableContract: outputIsReadableContract(writes),
|
|
957
|
+
});
|
|
958
|
+
aliasByGeneric.set(outputGeneric, boundOutput);
|
|
959
|
+
producedGenerics.add(outputGeneric);
|
|
960
|
+
});
|
|
961
|
+
if (walls.length > 0)
|
|
962
|
+
return { ok: false, walls };
|
|
963
|
+
const contractAliases = [...aliasByGeneric.entries()]
|
|
964
|
+
// A raw-generic pick binds a contract to itself (actual === generic); that
|
|
965
|
+
// is an identity alias the assembler would reject as a restated default.
|
|
966
|
+
// Skip it — the contract already flows under its own name.
|
|
967
|
+
.filter(([generic, actual]) => generic !== actual)
|
|
968
|
+
.map(([generic, actual]) => ({ generic, actual }))
|
|
969
|
+
.sort((a, b) => (a.generic < b.generic ? -1 : a.generic > b.generic ? 1 : 0));
|
|
970
|
+
const stageLabels = {};
|
|
971
|
+
for (const role of roleSet.roles) {
|
|
972
|
+
stageLabels[role.stage] = { id: `${role.stage}-stage`, title: titleCase(role.stage) };
|
|
973
|
+
}
|
|
974
|
+
// A composed topology that does not touch every canonical stage must explain
|
|
975
|
+
// the gap: the engine's partial-spine policy refuses an empty canonical stage
|
|
976
|
+
// without a rationale. The omission is intentional and legible from the role
|
|
977
|
+
// set, so the composer states it rather than forcing the author to.
|
|
978
|
+
const presentStages = new Set(roleSet.roles.map((role) => role.stage));
|
|
979
|
+
const omittedStages = CANONICAL_STAGES.filter((stage) => !presentStages.has(stage));
|
|
980
|
+
const stagePathRationale = omittedStages.length === 0
|
|
981
|
+
? undefined
|
|
982
|
+
: `Composed topology '${roleSet.id}' intentionally omits the ${omittedStages
|
|
983
|
+
.map((stage) => `'${stage}'`)
|
|
984
|
+
.join(', ')} stage(s): this task's shape does no work there. ${roleSet.purpose}`;
|
|
985
|
+
// Converge flag emission. When the role set asked for a Converge and the gate
|
|
986
|
+
// passed, map the resolved plan onto the fix-until-green engine-flag shape. The
|
|
987
|
+
// tail (reviewer) relay's result report is where the engine reads the stop-judge's
|
|
988
|
+
// goal_met proposal and the lesson it carries forward; that path is the relay
|
|
989
|
+
// result path stepWrites assigns (reports/relay/<tail>.result.json). Default off:
|
|
990
|
+
// an un-opted role set leaves engineFlags undefined, so engine_flags is omitted
|
|
991
|
+
// and the spec is byte-identical to today.
|
|
992
|
+
const engineFlags = convergePlan === undefined
|
|
993
|
+
? undefined
|
|
994
|
+
: {
|
|
995
|
+
iterates_until_condition: {
|
|
996
|
+
head_step: convergePlan.headStepId,
|
|
997
|
+
tail_step: convergePlan.tailStepId,
|
|
998
|
+
body_steps: [...convergePlan.bodyStepIds],
|
|
999
|
+
reenter_route: 'advance',
|
|
1000
|
+
max_iterations: convergePlan.maxIterations,
|
|
1001
|
+
stop_judge: {
|
|
1002
|
+
report: `reports/relay/${convergePlan.tailStepId}.result.json`,
|
|
1003
|
+
goal_met_path: 'goal_met',
|
|
1004
|
+
lesson_path: 'lesson',
|
|
1005
|
+
},
|
|
1006
|
+
needs_attention_route: 'close',
|
|
1007
|
+
activate_when_depth_at_least: 'autonomous',
|
|
1008
|
+
// The frozen eval surface, when the directive declared one. Emitted only
|
|
1009
|
+
// for a non-empty list so a Converge that froze nothing stays byte-identical
|
|
1010
|
+
// (no frozen_paths key, no guard). The runtime maps frozen_paths -> the
|
|
1011
|
+
// FrozenEvalGuard's baseline (engine-flags.ts, graph-runner.ts).
|
|
1012
|
+
...(roleSet.convergeUntil?.frozenPaths !== undefined &&
|
|
1013
|
+
roleSet.convergeUntil.frozenPaths.length > 0
|
|
1014
|
+
? { frozen_paths: [...roleSet.convergeUntil.frozenPaths] }
|
|
1015
|
+
: {}),
|
|
1016
|
+
},
|
|
1017
|
+
};
|
|
1018
|
+
const spec = {
|
|
1019
|
+
id: roleSet.id,
|
|
1020
|
+
title: roleSet.title,
|
|
1021
|
+
purpose: roleSet.purpose,
|
|
1022
|
+
status: 'active',
|
|
1023
|
+
version: '0.1.0',
|
|
1024
|
+
initial_contracts: [...usedAmbient].sort(),
|
|
1025
|
+
contract_aliases: contractAliases,
|
|
1026
|
+
axes: {
|
|
1027
|
+
allowed_depths: ['medium'],
|
|
1028
|
+
supports_tournament: false,
|
|
1029
|
+
supports_autonomous: true,
|
|
1030
|
+
default: { depth: 'medium', tournament: false, tournament_n: 3, autonomous: false },
|
|
1031
|
+
},
|
|
1032
|
+
items,
|
|
1033
|
+
stageLabels,
|
|
1034
|
+
...(stagePathRationale === undefined ? {} : { stagePathRationale }),
|
|
1035
|
+
...(engineFlags === undefined ? {} : { engine_flags: engineFlags }),
|
|
1036
|
+
};
|
|
1037
|
+
// Producibility wall (opt-in). The spec is structurally sound, but a compose or
|
|
1038
|
+
// close writer can still declare a REQUIRED upstream read with no producer — a
|
|
1039
|
+
// family mismatch the offline floor does not model (e.g. a build-family `plan`
|
|
1040
|
+
// writer that needs build.brief@v1 welded onto a frame that can only produce
|
|
1041
|
+
// fix.brief@v1, because build.brief@v1 is checkpoint-only). Such a flow aborts
|
|
1042
|
+
// the instant that writer runs. Unlike the terminal close, an intermediate
|
|
1043
|
+
// writer has no generic fallback to rebind to, so the honest move is to reject.
|
|
1044
|
+
if (options.enforceRunnability === true) {
|
|
1045
|
+
const runnability = evaluateRunnability(spec);
|
|
1046
|
+
if (!runnability.runnable) {
|
|
1047
|
+
// Self-heal: if the abort is about build.brief@v1 missing and there's a
|
|
1048
|
+
// compose frame that could be promoted to checkpoint, try that before
|
|
1049
|
+
// walling. This closes a producibility gap: a composed build arc that opens
|
|
1050
|
+
// with a compose frame needs the checkpoint-blessed brief to be runnable.
|
|
1051
|
+
const buildBriefAbort = runnability.aborts.find((abort) => abort.reason.includes("expected exactly one report writer for schema 'build.brief@v1'"));
|
|
1052
|
+
const frameRole = roleSet.roles.find((role) => role.block === 'frame' && role.executionKind === 'compose');
|
|
1053
|
+
if (buildBriefAbort !== undefined && frameRole !== undefined) {
|
|
1054
|
+
// Promote the frame to checkpoint and re-compose. The checkpoint frame
|
|
1055
|
+
// produces build.brief@v1, which downstream build readers need.
|
|
1056
|
+
const promotedRoles = roleSet.roles.map((role) => role === frameRole ? { ...role, executionKind: 'checkpoint' } : role);
|
|
1057
|
+
const promotedOutcome = composeFlow({ ...roleSet, roles: promotedRoles }, options);
|
|
1058
|
+
if (promotedOutcome.ok) {
|
|
1059
|
+
return promotedOutcome;
|
|
1060
|
+
}
|
|
1061
|
+
// If the promoted arc still fails, fall through to wall the original abort.
|
|
1062
|
+
}
|
|
1063
|
+
// A wall names a block, not a free step id; map the aborting step back to
|
|
1064
|
+
// its block so the wall stays typed and legible. The step id rides in the
|
|
1065
|
+
// reason so the operator sees exactly where the run would have stopped.
|
|
1066
|
+
const blockByStepId = new Map(items.map((item) => [item.id, item.block]));
|
|
1067
|
+
const fallbackBlock = items[0]?.block ?? roleSet.roles[0]?.block;
|
|
1068
|
+
const runnabilityWalls = runnability.aborts.map((abort) => ({
|
|
1069
|
+
roleIndex: -1,
|
|
1070
|
+
block: blockByStepId.get(abort.stepId) ?? fallbackBlock,
|
|
1071
|
+
reason: `step '${abort.stepId}' (${abort.schema}) is not runnable: ${abort.reason}`,
|
|
1072
|
+
}));
|
|
1073
|
+
if (runnabilityWalls.length === 0) {
|
|
1074
|
+
runnabilityWalls.push({
|
|
1075
|
+
roleIndex: -1,
|
|
1076
|
+
block: fallbackBlock,
|
|
1077
|
+
reason: runnability.error ?? 'composed flow is not runnable',
|
|
1078
|
+
});
|
|
1079
|
+
}
|
|
1080
|
+
return { ok: false, walls: runnabilityWalls };
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
return { ok: true, spec, selections };
|
|
1084
|
+
}
|
|
1085
|
+
function describeInputSets(block) {
|
|
1086
|
+
const sets = [
|
|
1087
|
+
block.input_contracts.map(asString),
|
|
1088
|
+
...(block.alternative_input_contracts ?? []).map((set) => set.map(asString)),
|
|
1089
|
+
];
|
|
1090
|
+
return sets.map((set) => `[${set.join(', ')}]`).join(' OR ');
|
|
1091
|
+
}
|
|
1092
|
+
// Deterministic, unique, route-target-legal step ids: the block id, with an
|
|
1093
|
+
// occurrence suffix when a block appears more than once.
|
|
1094
|
+
function assignStepIds(roles) {
|
|
1095
|
+
const counts = new Map();
|
|
1096
|
+
const total = new Map();
|
|
1097
|
+
for (const role of roles)
|
|
1098
|
+
total.set(role.block, (total.get(role.block) ?? 0) + 1);
|
|
1099
|
+
return roles.map((role) => {
|
|
1100
|
+
const seen = (counts.get(role.block) ?? 0) + 1;
|
|
1101
|
+
counts.set(role.block, seen);
|
|
1102
|
+
return (total.get(role.block) ?? 1) > 1 ? `${role.block}-${seen}` : role.block;
|
|
1103
|
+
});
|
|
1104
|
+
}
|
|
1105
|
+
// The default Converge iteration cap, matching fix-until-green's max_iterations.
|
|
1106
|
+
const DEFAULT_CONVERGE_MAX_ITERATIONS = 3;
|
|
1107
|
+
// Resolve (and gate) a Converge request. Returns the wiring plan when the role set
|
|
1108
|
+
// has the three roles a Converge needs, in canonical order: an act-stage
|
|
1109
|
+
// implementer relay (head), a run-verification step (the evidence floor), and a
|
|
1110
|
+
// review-stage reviewer relay (tail), with the floor sitting between head and
|
|
1111
|
+
// tail. A missing role pushes a plain-English wall and returns undefined, so the
|
|
1112
|
+
// composer fails closed rather than emitting a loop with no floor to check the
|
|
1113
|
+
// judge against. The wall reason names what to add, so a repair pass can act.
|
|
1114
|
+
function resolveConvergePlan(roleSet, stepIds, walls) {
|
|
1115
|
+
const roles = roleSet.roles;
|
|
1116
|
+
const headIndex = roles.findIndex((role) => role.stage === 'act' && role.executionKind === 'relay' && role.relayRole === 'implementer');
|
|
1117
|
+
const verifyIndex = roles.findIndex((role) => role.block === 'run-verification');
|
|
1118
|
+
const tailIndex = roles.findIndex((role) => role.stage === 'review' && role.executionKind === 'relay' && role.relayRole === 'reviewer');
|
|
1119
|
+
// The load-bearing wall: no run-verification step means the judge's goal-met
|
|
1120
|
+
// claim is checked against nothing. Refuse to build a loop with no evidence floor.
|
|
1121
|
+
if (verifyIndex === -1) {
|
|
1122
|
+
walls.push({
|
|
1123
|
+
roleIndex: -1,
|
|
1124
|
+
block: 'run-verification',
|
|
1125
|
+
reason: 'a Converge loop needs a run-verification step in its body so the stop-judge’s goal-met claim is checked against a real evidence floor; this role set has none. Add a run-verification step between the act and review steps.',
|
|
1126
|
+
});
|
|
1127
|
+
return undefined;
|
|
1128
|
+
}
|
|
1129
|
+
if (headIndex === -1) {
|
|
1130
|
+
walls.push({
|
|
1131
|
+
roleIndex: -1,
|
|
1132
|
+
block: 'act',
|
|
1133
|
+
reason: 'a Converge loop needs an act-stage implementer step as its loop head (the work the loop re-attempts each pass); this role set has none. Add an act step with an implementer relay.',
|
|
1134
|
+
});
|
|
1135
|
+
return undefined;
|
|
1136
|
+
}
|
|
1137
|
+
if (tailIndex === -1) {
|
|
1138
|
+
walls.push({
|
|
1139
|
+
roleIndex: -1,
|
|
1140
|
+
block: 'review',
|
|
1141
|
+
reason: 'a Converge loop needs a review-stage reviewer step as its loop tail (the stop-judge that proposes whether the goal is met); this role set has none. Add a review step with a reviewer relay.',
|
|
1142
|
+
});
|
|
1143
|
+
return undefined;
|
|
1144
|
+
}
|
|
1145
|
+
// Canonical order: head, then the floor, then the tail. A floor outside the
|
|
1146
|
+
// [head..tail] span would not run inside the loop, so its verdict could never
|
|
1147
|
+
// gate the judge — wall rather than emit a loop whose floor sits outside it.
|
|
1148
|
+
if (!(headIndex < verifyIndex && verifyIndex < tailIndex)) {
|
|
1149
|
+
walls.push({
|
|
1150
|
+
roleIndex: -1,
|
|
1151
|
+
block: 'run-verification',
|
|
1152
|
+
reason: 'a Converge loop must run its act, run-verification, and review steps in that order so each pass re-attempts, re-checks, then re-judges; this role set orders them differently. Put the run-verification step between the act and review steps.',
|
|
1153
|
+
});
|
|
1154
|
+
return undefined;
|
|
1155
|
+
}
|
|
1156
|
+
const headStepId = stepIds[headIndex];
|
|
1157
|
+
const tailStepId = stepIds[tailIndex];
|
|
1158
|
+
const bodyStepIds = stepIds.slice(headIndex, tailIndex + 1);
|
|
1159
|
+
const maxIterations = roleSet.convergeUntil?.maxIterations ?? DEFAULT_CONVERGE_MAX_ITERATIONS;
|
|
1160
|
+
return { headIndex, headStepId, verifyIndex, tailIndex, tailStepId, bodyStepIds, maxIterations };
|
|
1161
|
+
}
|
|
1162
|
+
// ----------------------------------------------------------------------------
|
|
1163
|
+
// Phase 0 milestone target: research-then-build.
|
|
1164
|
+
//
|
|
1165
|
+
// "Research X, then build the chosen option and verify it." A research front
|
|
1166
|
+
// (frame → gather context → plan) welded to a build back (act → verify → review
|
|
1167
|
+
// → close). This sequence is none of the eight built-in families, and it is the
|
|
1168
|
+
// spike's attempt #3 that scored 0/3. It is the make-or-break Phase 0 target.
|
|
1169
|
+
export const RESEARCH_THEN_BUILD = {
|
|
1170
|
+
id: 'research-then-build',
|
|
1171
|
+
title: 'Research then Build',
|
|
1172
|
+
purpose: 'Research the options for a task, form a plan, build the chosen option, verify it, review it, and close with evidence. A composed research-front welded to a build-back; no single built-in family covers this shape.',
|
|
1173
|
+
roles: [
|
|
1174
|
+
{ stage: 'frame', block: 'frame', executionKind: 'compose' },
|
|
1175
|
+
{ stage: 'analyze', block: 'gather-context', executionKind: 'relay', relayRole: 'researcher' },
|
|
1176
|
+
{ stage: 'plan', block: 'plan', executionKind: 'compose' },
|
|
1177
|
+
{ stage: 'act', block: 'act', executionKind: 'relay', relayRole: 'implementer' },
|
|
1178
|
+
{ stage: 'verify', block: 'run-verification', executionKind: 'verification' },
|
|
1179
|
+
{ stage: 'review', block: 'review', executionKind: 'relay', relayRole: 'reviewer' },
|
|
1180
|
+
{
|
|
1181
|
+
stage: 'close',
|
|
1182
|
+
block: 'close-with-evidence',
|
|
1183
|
+
executionKind: 'compose',
|
|
1184
|
+
terminal: true,
|
|
1185
|
+
},
|
|
1186
|
+
],
|
|
1187
|
+
};
|
|
1188
|
+
// ----------------------------------------------------------------------------
|
|
1189
|
+
// Rung 1 milestone target: frame-a-contract, then DELEGATE to a child flow.
|
|
1190
|
+
//
|
|
1191
|
+
// "Frame the task into a goal contract, then run the Fix flow to satisfy it, and
|
|
1192
|
+
// close with the child's evidence." The middle step is a SUB-RUN: a whole child
|
|
1193
|
+
// flow executed as one step, admitted back only through its RunResult verdict —
|
|
1194
|
+
// the first non-linear shape that crosses a flow boundary (the loop stayed inline).
|
|
1195
|
+
// The leaf binds the donor goal-child-run actual for `fix`; the close soaks the
|
|
1196
|
+
// child result forward. None of the eight built-ins is this two-line shape: goal
|
|
1197
|
+
// wraps the same delegation in a five-step attempt/evaluate/recover loop.
|
|
1198
|
+
export const GOAL_THEN_FIX = {
|
|
1199
|
+
id: 'goal-then-fix',
|
|
1200
|
+
title: 'Frame a contract then delegate to Fix',
|
|
1201
|
+
purpose: 'Frame the task into a goal contract, delegate the work to the Fix child flow as a sub-run, and close with the child run’s evidence. A composed frame-then-delegate shape; the sub-run runs a whole flow as one step, gated on its result verdict.',
|
|
1202
|
+
roles: [
|
|
1203
|
+
{ stage: 'frame', block: 'goal', executionKind: 'compose' },
|
|
1204
|
+
{
|
|
1205
|
+
stage: 'act',
|
|
1206
|
+
block: 'goal-child-run',
|
|
1207
|
+
executionKind: 'sub-run',
|
|
1208
|
+
flowId: 'fix',
|
|
1209
|
+
goalText: 'Satisfy the framed goal contract: diagnose the failure, make the change, and prove it with a report-backed verification packet.',
|
|
1210
|
+
subRunDepth: 'medium',
|
|
1211
|
+
},
|
|
1212
|
+
{
|
|
1213
|
+
stage: 'close',
|
|
1214
|
+
block: 'close-with-evidence',
|
|
1215
|
+
executionKind: 'compose',
|
|
1216
|
+
terminal: true,
|
|
1217
|
+
},
|
|
1218
|
+
],
|
|
1219
|
+
};
|
|
1220
|
+
// ----------------------------------------------------------------------------
|
|
1221
|
+
// Goal-family REACHABILITY target: the runnable goal arc, end to end.
|
|
1222
|
+
//
|
|
1223
|
+
// GOAL_THEN_FIX above opens on the `goal` block, which composes a goal CONTRACT —
|
|
1224
|
+
// and the goal-contract writer REQUIRES reading the clarified task (the precise
|
|
1225
|
+
// task statement an upstream `clarify` relay produces in the real goal flow).
|
|
1226
|
+
// Open on `goal` with nothing upstream and that read has no producer, so the flow
|
|
1227
|
+
// is VALID offline but ABORTS the instant the contract writer runs. The real goal
|
|
1228
|
+
// family solves this by clarifying first; this role set does the same. `clarify`
|
|
1229
|
+
// turns the raw operator intake into a precise task (binding the goal family's own
|
|
1230
|
+
// goal.clarified-task@v1 actual), then `goal` frames the contract FROM it, then the
|
|
1231
|
+
// Fix child runs as a sub-run, and the close soaks the child evidence. This is the
|
|
1232
|
+
// goal analog of CLARIFY_OPENS (a clarify-opened fix arc): a composed flow the
|
|
1233
|
+
// composer can run end to end, not merely validate.
|
|
1234
|
+
export const GOAL_CLARIFY_THEN_FIX = {
|
|
1235
|
+
id: 'goal-clarify-then-fix',
|
|
1236
|
+
title: 'Clarify the task, frame a contract, then delegate to Fix',
|
|
1237
|
+
purpose: 'Clarify the raw request into a precise task, frame that task into a goal contract, delegate the work to the Fix child flow as a sub-run, and close with the child run’s evidence. A composed clarify-frame-then-delegate shape that runs end to end.',
|
|
1238
|
+
roles: [
|
|
1239
|
+
{ stage: 'frame', block: 'clarify', executionKind: 'relay', relayRole: 'researcher' },
|
|
1240
|
+
{ stage: 'frame', block: 'goal', executionKind: 'compose' },
|
|
1241
|
+
{
|
|
1242
|
+
stage: 'act',
|
|
1243
|
+
block: 'goal-child-run',
|
|
1244
|
+
executionKind: 'sub-run',
|
|
1245
|
+
flowId: 'fix',
|
|
1246
|
+
goalText: 'Satisfy the framed goal contract: diagnose the failure, make the change, and prove it with a report-backed verification packet.',
|
|
1247
|
+
subRunDepth: 'medium',
|
|
1248
|
+
},
|
|
1249
|
+
{
|
|
1250
|
+
stage: 'close',
|
|
1251
|
+
block: 'close-with-evidence',
|
|
1252
|
+
executionKind: 'compose',
|
|
1253
|
+
terminal: true,
|
|
1254
|
+
},
|
|
1255
|
+
],
|
|
1256
|
+
};
|
|
1257
|
+
// ----------------------------------------------------------------------------
|
|
1258
|
+
// Rung 2 milestone target: frame, plan, then FAN OUT parallel child runs.
|
|
1259
|
+
//
|
|
1260
|
+
// "Frame the task, form a plan, then run two child flows IN PARALLEL and close
|
|
1261
|
+
// with whichever survives." The act step is a STATIC FANOUT: a fixed set of
|
|
1262
|
+
// sub-run branches launched concurrently, joined as `aggregate-survivors` — the
|
|
1263
|
+
// first composed shape that is BOTH non-linear AND multi-child. Each branch is a
|
|
1264
|
+
// sub-run leaf, so the recursion cap bounds every branch exactly as it bounds a
|
|
1265
|
+
// lone sub-run; with the cap reached, all branches refuse, the join collapses,
|
|
1266
|
+
// and the step aborts (no child runner ever spawns). Static branches list their
|
|
1267
|
+
// children upfront, so there is no upstream `source_report` to place and the
|
|
1268
|
+
// shape is provable offline with stub children. None of the eight built-ins is
|
|
1269
|
+
// this shape: the dynamic fanouts (prototype, explore, explainer) read their
|
|
1270
|
+
// branch set from an upstream report and run relay children, not parallel sub-runs.
|
|
1271
|
+
export const FANOUT_PARALLEL_BUILD = {
|
|
1272
|
+
id: 'fanout-parallel-build',
|
|
1273
|
+
title: 'Frame, plan, then fan out parallel child runs',
|
|
1274
|
+
purpose: 'Frame the task into a brief, form a plan, then fan out two child flows as parallel sub-runs and close with the surviving evidence. A composed frame-plan-fanout shape; the fanout runs whole flows in parallel and admits the survivors through an aggregate-survivors join.',
|
|
1275
|
+
roles: [
|
|
1276
|
+
{ stage: 'frame', block: 'frame', executionKind: 'compose' },
|
|
1277
|
+
{ stage: 'plan', block: 'plan', executionKind: 'compose' },
|
|
1278
|
+
{
|
|
1279
|
+
stage: 'act',
|
|
1280
|
+
block: 'act',
|
|
1281
|
+
executionKind: 'fanout',
|
|
1282
|
+
fanoutBranches: [
|
|
1283
|
+
{
|
|
1284
|
+
branchId: 'fix-path',
|
|
1285
|
+
flowId: 'fix',
|
|
1286
|
+
goalText: 'Satisfy the plan by repairing the existing implementation: diagnose, change, and prove it with a verification packet.',
|
|
1287
|
+
depth: 'medium',
|
|
1288
|
+
},
|
|
1289
|
+
{
|
|
1290
|
+
branchId: 'build-path',
|
|
1291
|
+
flowId: 'build',
|
|
1292
|
+
goalText: 'Satisfy the plan by building the change from the plan: implement, verify, and prove it with a report-backed packet.',
|
|
1293
|
+
depth: 'medium',
|
|
1294
|
+
},
|
|
1295
|
+
],
|
|
1296
|
+
},
|
|
1297
|
+
{
|
|
1298
|
+
stage: 'close',
|
|
1299
|
+
block: 'close-with-evidence',
|
|
1300
|
+
executionKind: 'compose',
|
|
1301
|
+
terminal: true,
|
|
1302
|
+
},
|
|
1303
|
+
],
|
|
1304
|
+
};
|
|
1305
|
+
// ----------------------------------------------------------------------------
|
|
1306
|
+
// Build-family REACHABILITY target: the full build arc, composed end to end.
|
|
1307
|
+
//
|
|
1308
|
+
// The build family opens on a CHECKPOINT frame — the `frame` block run as a
|
|
1309
|
+
// checkpoint produces build.brief@v1, the brief the operator blesses before any
|
|
1310
|
+
// work begins. Every downstream step needs that brief: `plan` reads it directly
|
|
1311
|
+
// (its compose writer requires build.brief@v1), and the close soaks it forward as
|
|
1312
|
+
// evidence. A composed checkpoint, though, historically wrote only its
|
|
1313
|
+
// request/response routing paths — never a report_path — so the brief it produced
|
|
1314
|
+
// had no read path and the compile WALLED ("frame produces build.brief@v1 but has
|
|
1315
|
+
// no writes.report_path"). The real build flow's frame-step writes
|
|
1316
|
+
// reports/build/brief.json alongside its checkpoint paths; this role set is the
|
|
1317
|
+
// composed analog, and it runs only once stepWrites gives a checkpoint the same
|
|
1318
|
+
// readable report_path. None of the other composed shapes opens on a content
|
|
1319
|
+
// checkpoint (RESEARCH_THEN_BUILD frames with a plain compose), so this is the
|
|
1320
|
+
// shape that exercises the readable-checkpoint path.
|
|
1321
|
+
export const BUILD_LINEAR_FULL = {
|
|
1322
|
+
id: 'build-linear-full',
|
|
1323
|
+
title: 'Frame a build brief, plan, build, verify, review, close',
|
|
1324
|
+
purpose: 'Checkpoint-frame the task into a build brief the operator blesses, form a plan from it, implement the change, verify it, review it, and close with evidence. A composed full build arc; the frame is a content checkpoint whose brief every later step reads.',
|
|
1325
|
+
roles: [
|
|
1326
|
+
{ stage: 'frame', block: 'frame', executionKind: 'checkpoint' },
|
|
1327
|
+
{ stage: 'plan', block: 'plan', executionKind: 'compose' },
|
|
1328
|
+
{ stage: 'act', block: 'act', executionKind: 'relay', relayRole: 'implementer' },
|
|
1329
|
+
{ stage: 'verify', block: 'run-verification', executionKind: 'verification' },
|
|
1330
|
+
{ stage: 'review', block: 'review', executionKind: 'relay', relayRole: 'reviewer' },
|
|
1331
|
+
{
|
|
1332
|
+
stage: 'close',
|
|
1333
|
+
block: 'close-with-evidence',
|
|
1334
|
+
executionKind: 'compose',
|
|
1335
|
+
terminal: true,
|
|
1336
|
+
},
|
|
1337
|
+
],
|
|
1338
|
+
};
|
|
1339
|
+
//# sourceMappingURL=composer.js.map
|