@svenroth-ai/shipwright 0.27.0 → 0.29.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/client/dist/apple-touch-icon.png +0 -0
- package/client/dist/assets/{EmbeddedTerminal-CqCQUDtp.js → EmbeddedTerminal-IkAS1bic.js} +30 -30
- package/client/dist/assets/{abnfDiagram-VRR7QNED-DX2objTP.js → abnfDiagram-VCTEODGH-CclAL-Ri.js} +1 -1
- package/client/dist/assets/arc-C8vUxwav.js +1 -0
- package/client/dist/assets/architectureDiagram-5GKGNRK7-DdrrZJx7.js +36 -0
- package/client/dist/assets/blockDiagram-I7D4REHJ-CMhbhsVq.js +129 -0
- package/client/dist/assets/c4Diagram-7LVT6UL2-OvlH6BiV.js +38 -0
- package/client/dist/assets/channel-BtkABUIE.js +1 -0
- package/client/dist/assets/{chunk-2Q5K7J3B-C111EHL6.js → chunk-2Q5K7J3B-BxUk85j7.js} +1 -1
- package/client/dist/assets/{chunk-5VM5RSS4-DIejoaXS.js → chunk-5VM5RSS4-DoTSs3Kn.js} +1 -1
- package/client/dist/assets/{chunk-32BRIVSS-DrCYs2XG.js → chunk-F27PBJKO-DquVu1wX.js} +1 -1
- package/client/dist/assets/{chunk-EX3LRPZG-CGWNeH2g.js → chunk-IMKFNOWR-8l4wPLQK.js} +5 -5
- package/client/dist/assets/{chunk-JWPE2WC7-CCH0SRFY.js → chunk-JWPE2WC7-CTAa0a4O.js} +1 -1
- package/client/dist/assets/chunk-POPQ4Y6H-BZ6zpqEF.js +1 -0
- package/client/dist/assets/{chunk-MOJQB5TN-B3OpZGRv.js → chunk-SVP7TREG-Dx7pMiq4.js} +1 -1
- package/client/dist/assets/{chunk-V7JOEXUC-B6Bu8x1y.js → chunk-TICWLB2K-BtDKT858.js} +1 -1
- package/client/dist/assets/{chunk-XXDRQBXY-xyjuuhxl.js → chunk-XXDRQBXY-BbrrrzuM.js} +1 -1
- package/client/dist/assets/classDiagram-ZZMXUADV-2gEcH3cX.js +1 -0
- package/client/dist/assets/classDiagram-v2-VYDZK3BY-2gEcH3cX.js +1 -0
- package/client/dist/assets/{cose-bilkent-JH36ORCC-BQIH3SCK.js → cose-bilkent-JH36ORCC-Bhem6unn.js} +1 -1
- package/client/dist/assets/{cynefin-VYW2F7L2-oyLAz8te.js → cynefin-OW5HDTMX-hukx0bAt.js} +3 -3
- package/client/dist/assets/{cynefinDiagram-TSTJHNR4-DoLCsH0l.js → cynefinDiagram-5FMLGOSQ-CGogKYMK.js} +1 -1
- package/client/dist/assets/dagre-GXQ25YYZ-BiLo3XBj.js +4 -0
- package/client/dist/assets/diagram-S7CK7UJ4-DBfdjdN6.js +30 -0
- package/client/dist/assets/diagram-UQ7AKVKN-3CvmyZYO.js +41 -0
- package/client/dist/assets/{diagram-FQU43EPY-DFuYE0Vf.js → diagram-VSXAHHWV-COG9399I.js} +2 -2
- package/client/dist/assets/{diagram-G47NLZAW-CffCZVXk.js → diagram-VX7I27RA-Dftpj84a.js} +1 -1
- package/client/dist/assets/{diagram-NH7WQ7WH-BhrHtUlt.js → diagram-Z3DM3KII-Dw9_CGLA.js} +1 -1
- package/client/dist/assets/{ebnfDiagram-CCIWWBDH-DfV7gT4m.js → ebnfDiagram-PWID7BFC-CJirhPah.js} +1 -1
- package/client/dist/assets/erDiagram-RLTQ6QDP-B11aYoo6.js +99 -0
- package/client/dist/assets/flowDiagram-HODETNUW-CPC6X9E5.js +168 -0
- package/client/dist/assets/{ganttDiagram-NO4QXBWP-BclyOgMb.js → ganttDiagram-EL5Y4UJY-DDSk2AAg.js} +4 -4
- package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-BXT4rIKj.js → gitGraphDiagram-WWUBYQGX-D_2UGciq.js} +1 -1
- package/client/dist/assets/index-DDSwQXcp.js +924 -0
- package/client/dist/assets/index-DWrPE3aq.css +1 -0
- package/client/dist/assets/infoDiagram-27XIBGKW-BuUv5Wms.js +2 -0
- package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-BBUFWq5C.js → ishikawaDiagram-5VMMS53U-DpnAnJ0q.js} +4 -4
- package/client/dist/assets/{journeyDiagram-5HDEW3XC-CmclipcQ.js → journeyDiagram-3NMN7TZE-CFUsXz2q.js} +2 -2
- package/client/dist/assets/{kanban-definition-HUTT4EX6-eIzUeZ03.js → kanban-definition-UXKFOSKX-BAq4Kujj.js} +8 -8
- package/client/dist/assets/katex-C5jXJg4s.js +257 -0
- package/client/dist/assets/layout-CccpfEe3.js +1 -0
- package/client/dist/assets/{linear-DGiT7uKK.js → linear-BIeIr2tp.js} +1 -1
- package/client/dist/assets/mermaid.core-B-Ezy6Me.js +312 -0
- package/client/dist/assets/{mindmap-definition-LN4V7U3C-C4ANnNiP.js → mindmap-definition-YA3MSWOX-CMPZ0Ggp.js} +2 -2
- package/client/dist/assets/{pegDiagram-2B236MQR-DnMeh3Yh.js → pegDiagram-XKGWAZYB-B0_2KQ6f.js} +1 -1
- package/client/dist/assets/{pieDiagram-ENE6RG2P-CKV_rkhF.js → pieDiagram-E7YTZNPT-1-nOk5pZ.js} +3 -3
- package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-BuUsGwHh.js → quadrantDiagram-AXDQQJYC-C_RdmOuq.js} +1 -1
- package/client/dist/assets/{railroadDiagram-RFXS5EU6-BwwdKnFL.js → railroadDiagram-O6MQD6OU-o73KM0oq.js} +1 -1
- package/client/dist/assets/{requirementDiagram-TGXJPOKE-CpQZouJV.js → requirementDiagram-BXWQKSXE-DnhCWJHv.js} +5 -5
- package/client/dist/assets/{sankeyDiagram-HTMAVEWB-4fnDUNVa.js → sankeyDiagram-P5KCCOFB-CVkYgfTV.js} +4 -4
- package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-BOcaWlM0.js → sequenceDiagram-WJ2MYXX4-BYLed29R.js} +1 -1
- package/client/dist/assets/{sizeCapture-X5ZJPWSS-_pv-9R0c.js → sizeCapture-INFHLROL-CYb4HDaH.js} +1 -1
- package/client/dist/assets/stateDiagram-D77RDMKH-CNKFRye_.js +1 -0
- package/client/dist/assets/stateDiagram-v2-MP3YSRHH-NpMhMQ36.js +1 -0
- package/client/dist/assets/swimlanes-42K2YHIH-BhsYrplp.js +1 -0
- package/client/dist/assets/swimlanesDiagram-VR7AAH4N-B4frkWBG.js +8 -0
- package/client/dist/assets/{timeline-definition-FHXFAJF6-rhGYElgn.js → timeline-definition-24CTP7MA-DiUXzB2p.js} +3 -3
- package/client/dist/assets/{vennDiagram-L72KCM5P-BoGjRxyA.js → vennDiagram-4TSXK5OY-aE4j6W86.js} +5 -5
- package/client/dist/assets/{wardleyDiagram-EHGQE667-D-IGv5bH.js → wardleyDiagram-VM6X3IG4-BxJXq0mU.js} +1 -1
- package/client/dist/assets/xychartDiagram-S5SC5T6Z-4vHeL9zc.js +7 -0
- package/client/dist/favicon-16.png +0 -0
- package/client/dist/favicon-32.png +0 -0
- package/client/dist/icon-192.png +0 -0
- package/client/dist/icon-512.png +0 -0
- package/client/dist/icon-maskable-512.png +0 -0
- package/client/dist/index.html +11 -2
- package/client/dist/manifest.json +13 -0
- package/lib/preflight.mjs +24 -5
- package/lib/util.mjs +5 -1
- package/package.json +2 -2
- package/scripts/deploy-procs.mjs +105 -20
- package/scripts/deploy-swap.mjs +23 -2
- package/server/dist/config.d.ts +9 -0
- package/server/dist/config.d.ts.map +1 -1
- package/server/dist/config.js +8 -2
- package/server/dist/config.js.map +1 -1
- package/server/dist/core/adopt-scan-findings.d.ts +12 -0
- package/server/dist/core/adopt-scan-findings.d.ts.map +1 -0
- package/server/dist/core/adopt-scan-findings.js +96 -0
- package/server/dist/core/adopt-scan-findings.js.map +1 -0
- package/server/dist/core/adopt-scan.d.ts +49 -0
- package/server/dist/core/adopt-scan.d.ts.map +1 -0
- package/server/dist/core/adopt-scan.js +201 -0
- package/server/dist/core/adopt-scan.js.map +1 -0
- package/server/dist/core/campaign-events.d.ts.map +1 -1
- package/server/dist/core/campaign-events.js +1 -0
- package/server/dist/core/campaign-events.js.map +1 -1
- package/server/dist/core/campaign-loop-state.d.ts.map +1 -1
- package/server/dist/core/campaign-loop-state.js +54 -21
- package/server/dist/core/campaign-loop-state.js.map +1 -1
- package/server/dist/core/campaign-parse.d.ts +4 -0
- package/server/dist/core/campaign-parse.d.ts.map +1 -1
- package/server/dist/core/campaign-parse.js +9 -0
- package/server/dist/core/campaign-parse.js.map +1 -1
- package/server/dist/core/campaign-readiness-schema.d.ts +33 -0
- package/server/dist/core/campaign-readiness-schema.d.ts.map +1 -0
- package/server/dist/core/campaign-readiness-schema.js +70 -0
- package/server/dist/core/campaign-readiness-schema.js.map +1 -0
- package/server/dist/core/campaign-readiness.d.ts +59 -0
- package/server/dist/core/campaign-readiness.d.ts.map +1 -0
- package/server/dist/core/campaign-readiness.js +163 -0
- package/server/dist/core/campaign-readiness.js.map +1 -0
- package/server/dist/core/campaign-status-json.d.ts +3 -0
- package/server/dist/core/campaign-status-json.d.ts.map +1 -1
- package/server/dist/core/campaign-status-json.js +7 -0
- package/server/dist/core/campaign-status-json.js.map +1 -1
- package/server/dist/core/campaign-store.d.ts.map +1 -1
- package/server/dist/core/campaign-store.js +4 -1
- package/server/dist/core/campaign-store.js.map +1 -1
- package/server/dist/core/campaign-types.d.ts +8 -0
- package/server/dist/core/campaign-types.d.ts.map +1 -1
- package/server/dist/core/campaign-worktree-root.d.ts +19 -0
- package/server/dist/core/campaign-worktree-root.d.ts.map +1 -0
- package/server/dist/core/campaign-worktree-root.js +76 -0
- package/server/dist/core/campaign-worktree-root.js.map +1 -0
- package/server/dist/core/claim-record-lock.d.ts +30 -0
- package/server/dist/core/claim-record-lock.d.ts.map +1 -0
- package/server/dist/core/claim-record-lock.js +90 -0
- package/server/dist/core/claim-record-lock.js.map +1 -0
- package/server/dist/core/cli-child-spawn.d.ts +28 -0
- package/server/dist/core/cli-child-spawn.d.ts.map +1 -0
- package/server/dist/core/cli-child-spawn.js +146 -0
- package/server/dist/core/cli-child-spawn.js.map +1 -0
- package/server/dist/core/codex-models-probe.d.ts +46 -0
- package/server/dist/core/codex-models-probe.d.ts.map +1 -0
- package/server/dist/core/codex-models-probe.js +103 -0
- package/server/dist/core/codex-models-probe.js.map +1 -0
- package/server/dist/core/codex-oracle-runner.d.ts +68 -0
- package/server/dist/core/codex-oracle-runner.d.ts.map +1 -0
- package/server/dist/core/codex-oracle-runner.js +124 -0
- package/server/dist/core/codex-oracle-runner.js.map +1 -0
- package/server/dist/core/codex-status-report.d.ts +6 -0
- package/server/dist/core/codex-status-report.d.ts.map +1 -0
- package/server/dist/core/codex-status-report.js +40 -0
- package/server/dist/core/codex-status-report.js.map +1 -0
- package/server/dist/core/codex-task-watcher-types.d.ts +69 -0
- package/server/dist/core/codex-task-watcher-types.d.ts.map +1 -0
- package/server/dist/core/codex-task-watcher-types.js +12 -0
- package/server/dist/core/codex-task-watcher-types.js.map +1 -0
- package/server/dist/core/codex-task-watcher.d.ts +30 -0
- package/server/dist/core/codex-task-watcher.d.ts.map +1 -0
- package/server/dist/core/codex-task-watcher.js +252 -0
- package/server/dist/core/codex-task-watcher.js.map +1 -0
- package/server/dist/core/codex-terminal-signal-detect.d.ts +7 -0
- package/server/dist/core/codex-terminal-signal-detect.d.ts.map +1 -0
- package/server/dist/core/codex-terminal-signal-detect.js +113 -0
- package/server/dist/core/codex-terminal-signal-detect.js.map +1 -0
- package/server/dist/core/codex-thread-discovery.d.ts +21 -0
- package/server/dist/core/codex-thread-discovery.d.ts.map +1 -0
- package/server/dist/core/codex-thread-discovery.js +169 -0
- package/server/dist/core/codex-thread-discovery.js.map +1 -0
- package/server/dist/core/codextender-auth-file-sweep.d.ts +41 -0
- package/server/dist/core/codextender-auth-file-sweep.d.ts.map +1 -0
- package/server/dist/core/codextender-auth-file-sweep.js +97 -0
- package/server/dist/core/codextender-auth-file-sweep.js.map +1 -0
- package/server/dist/core/codextender-proxy-probe.d.ts +80 -0
- package/server/dist/core/codextender-proxy-probe.d.ts.map +1 -0
- package/server/dist/core/codextender-proxy-probe.js +179 -0
- package/server/dist/core/codextender-proxy-probe.js.map +1 -0
- package/server/dist/core/contract-version.d.ts +16 -1
- package/server/dist/core/contract-version.d.ts.map +1 -1
- package/server/dist/core/contract-version.js +16 -1
- package/server/dist/core/contract-version.js.map +1 -1
- package/server/dist/core/custom-profile-command-policy.d.ts +6 -0
- package/server/dist/core/custom-profile-command-policy.d.ts.map +1 -0
- package/server/dist/core/custom-profile-command-policy.js +110 -0
- package/server/dist/core/custom-profile-command-policy.js.map +1 -0
- package/server/dist/core/custom-profile-loader.d.ts +34 -0
- package/server/dist/core/custom-profile-loader.d.ts.map +1 -0
- package/server/dist/core/custom-profile-loader.js +225 -0
- package/server/dist/core/custom-profile-loader.js.map +1 -0
- package/server/dist/core/launcher-codex.d.ts +61 -0
- package/server/dist/core/launcher-codex.d.ts.map +1 -0
- package/server/dist/core/launcher-codex.js +187 -0
- package/server/dist/core/launcher-codex.js.map +1 -0
- package/server/dist/core/launcher-codextender-env.d.ts +44 -0
- package/server/dist/core/launcher-codextender-env.d.ts.map +1 -0
- package/server/dist/core/launcher-codextender-env.js +212 -0
- package/server/dist/core/launcher-codextender-env.js.map +1 -0
- package/server/dist/core/launcher-codextender.d.ts +72 -0
- package/server/dist/core/launcher-codextender.d.ts.map +1 -0
- package/server/dist/core/launcher-codextender.js +98 -0
- package/server/dist/core/launcher-codextender.js.map +1 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.d.ts +25 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.d.ts.map +1 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.js +211 -0
- package/server/dist/core/launcher-codextender.smoke-helpers.js.map +1 -0
- package/server/dist/core/launcher-permission-flags.d.ts +17 -0
- package/server/dist/core/launcher-permission-flags.d.ts.map +1 -0
- package/server/dist/core/launcher-permission-flags.js +27 -0
- package/server/dist/core/launcher-permission-flags.js.map +1 -0
- package/server/dist/core/launcher.d.ts +18 -0
- package/server/dist/core/launcher.d.ts.map +1 -1
- package/server/dist/core/launcher.js +6 -0
- package/server/dist/core/launcher.js.map +1 -1
- package/server/dist/core/leadwright-preflight-transport.d.ts +27 -0
- package/server/dist/core/leadwright-preflight-transport.d.ts.map +1 -0
- package/server/dist/core/leadwright-preflight-transport.js +124 -0
- package/server/dist/core/leadwright-preflight-transport.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.d.ts +6 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.d.ts.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.js +31 -0
- package/server/dist/core/mission-context/artifacts-tests-ac.js.map +1 -0
- package/server/dist/core/mission-context/artifacts-tests.d.ts.map +1 -1
- package/server/dist/core/mission-context/artifacts-tests.js +20 -0
- package/server/dist/core/mission-context/artifacts-tests.js.map +1 -1
- package/server/dist/core/mission-context/resolver-io.d.ts +10 -0
- package/server/dist/core/mission-context/resolver-io.d.ts.map +1 -1
- package/server/dist/core/mission-context/resolver-parts.d.ts +8 -7
- package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -1
- package/server/dist/core/mission-context/resolver-parts.js +22 -14
- package/server/dist/core/mission-context/resolver-parts.js.map +1 -1
- package/server/dist/core/mission-context/resolver.d.ts.map +1 -1
- package/server/dist/core/mission-context/resolver.js +1 -1
- package/server/dist/core/mission-context/resolver.js.map +1 -1
- package/server/dist/core/mission-context/run-id-recovery.d.ts +18 -2
- package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -1
- package/server/dist/core/mission-context/run-id-recovery.js +38 -18
- package/server/dist/core/mission-context/run-id-recovery.js.map +1 -1
- package/server/dist/core/mission-context/traceability.d.ts.map +1 -1
- package/server/dist/core/mission-context/traceability.js +15 -1
- package/server/dist/core/mission-context/traceability.js.map +1 -1
- package/server/dist/core/mission-context/types-slice2.d.ts +44 -0
- package/server/dist/core/mission-context/types-slice2.d.ts.map +1 -1
- package/server/dist/core/model-tier-config-reader.d.ts +14 -1
- package/server/dist/core/model-tier-config-reader.d.ts.map +1 -1
- package/server/dist/core/model-tier-config-reader.js +34 -2
- package/server/dist/core/model-tier-config-reader.js.map +1 -1
- package/server/dist/core/powershell-probe.smoke-helpers.d.ts +12 -0
- package/server/dist/core/powershell-probe.smoke-helpers.d.ts.map +1 -0
- package/server/dist/core/powershell-probe.smoke-helpers.js +80 -0
- package/server/dist/core/powershell-probe.smoke-helpers.js.map +1 -0
- package/server/dist/core/preview-child-lifecycle.d.ts +7 -2
- package/server/dist/core/preview-child-lifecycle.d.ts.map +1 -1
- package/server/dist/core/preview-child-lifecycle.js +17 -5
- package/server/dist/core/preview-child-lifecycle.js.map +1 -1
- package/server/dist/core/preview-session-manager.d.ts +1 -0
- package/server/dist/core/preview-session-manager.d.ts.map +1 -1
- package/server/dist/core/preview-session-manager.js +2 -2
- package/server/dist/core/preview-session-manager.js.map +1 -1
- package/server/dist/core/project-actions-loader.d.ts +13 -0
- package/server/dist/core/project-actions-loader.d.ts.map +1 -1
- package/server/dist/core/project-actions-loader.js +28 -6
- package/server/dist/core/project-actions-loader.js.map +1 -1
- package/server/dist/core/project-data-dir.d.ts +41 -0
- package/server/dist/core/project-data-dir.d.ts.map +1 -0
- package/server/dist/core/project-data-dir.js +64 -0
- package/server/dist/core/project-data-dir.js.map +1 -0
- package/server/dist/core/project-data-migrate.d.ts +14 -0
- package/server/dist/core/project-data-migrate.d.ts.map +1 -0
- package/server/dist/core/project-data-migrate.js +94 -0
- package/server/dist/core/project-data-migrate.js.map +1 -0
- package/server/dist/core/project-manager.d.ts.map +1 -1
- package/server/dist/core/project-manager.js +9 -10
- package/server/dist/core/project-manager.js.map +1 -1
- package/server/dist/core/readiness-install-hints.d.ts +1 -1
- package/server/dist/core/readiness-install-hints.d.ts.map +1 -1
- package/server/dist/core/readiness-install-hints.js +5 -0
- package/server/dist/core/readiness-install-hints.js.map +1 -1
- package/server/dist/core/readiness-probe-run.d.ts +61 -0
- package/server/dist/core/readiness-probe-run.d.ts.map +1 -1
- package/server/dist/core/readiness-probe-run.js +93 -15
- package/server/dist/core/readiness-probe-run.js.map +1 -1
- package/server/dist/core/readiness-probe.d.ts +1 -1
- package/server/dist/core/readiness-probe.d.ts.map +1 -1
- package/server/dist/core/readiness-probe.js +36 -8
- package/server/dist/core/readiness-probe.js.map +1 -1
- package/server/dist/core/sdk-sessions-store.d.ts +46 -0
- package/server/dist/core/sdk-sessions-store.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-store.js +1 -0
- package/server/dist/core/sdk-sessions-store.js.map +1 -1
- package/server/dist/core/sdk-sessions-validate.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-validate.js +11 -0
- package/server/dist/core/sdk-sessions-validate.js.map +1 -1
- package/server/dist/core/session-file/access.d.ts +26 -0
- package/server/dist/core/session-file/access.d.ts.map +1 -0
- package/server/dist/core/session-file/access.js +143 -0
- package/server/dist/core/session-file/access.js.map +1 -0
- package/server/dist/core/session-file/asset-access.d.ts +15 -0
- package/server/dist/core/session-file/asset-access.d.ts.map +1 -0
- package/server/dist/core/session-file/asset-access.js +141 -0
- package/server/dist/core/session-file/asset-access.js.map +1 -0
- package/server/dist/core/session-file/evidence.d.ts +25 -0
- package/server/dist/core/session-file/evidence.d.ts.map +1 -0
- package/server/dist/core/session-file/evidence.js +201 -0
- package/server/dist/core/session-file/evidence.js.map +1 -0
- package/server/dist/core/session-file/probe.d.ts +16 -0
- package/server/dist/core/session-file/probe.d.ts.map +1 -0
- package/server/dist/core/session-file/probe.js +63 -0
- package/server/dist/core/session-file/probe.js.map +1 -0
- package/server/dist/core/session-file/safe-read.d.ts +33 -0
- package/server/dist/core/session-file/safe-read.d.ts.map +1 -0
- package/server/dist/core/session-file/safe-read.js +103 -0
- package/server/dist/core/session-file/safe-read.js.map +1 -0
- package/server/dist/core/session-file/sensitive.d.ts +5 -0
- package/server/dist/core/session-file/sensitive.d.ts.map +1 -0
- package/server/dist/core/session-file/sensitive.js +52 -0
- package/server/dist/core/session-file/sensitive.js.map +1 -0
- package/server/dist/core/session-info/collect.d.ts +70 -0
- package/server/dist/core/session-info/collect.d.ts.map +1 -0
- package/server/dist/core/session-info/collect.js +248 -0
- package/server/dist/core/session-info/collect.js.map +1 -0
- package/server/dist/core/session-info/line-scan.d.ts +20 -0
- package/server/dist/core/session-info/line-scan.d.ts.map +1 -0
- package/server/dist/core/session-info/line-scan.js +109 -0
- package/server/dist/core/session-info/line-scan.js.map +1 -0
- package/server/dist/core/session-info/remote-control.d.ts +9 -0
- package/server/dist/core/session-info/remote-control.d.ts.map +1 -0
- package/server/dist/core/session-info/remote-control.js +64 -0
- package/server/dist/core/session-info/remote-control.js.map +1 -0
- package/server/dist/core/session-info/session-info.d.ts +18 -0
- package/server/dist/core/session-info/session-info.d.ts.map +1 -0
- package/server/dist/core/session-info/session-info.js +170 -0
- package/server/dist/core/session-info/session-info.js.map +1 -0
- package/server/dist/core/session-info/small-file.d.ts +2 -0
- package/server/dist/core/session-info/small-file.d.ts.map +1 -0
- package/server/dist/core/session-info/small-file.js +42 -0
- package/server/dist/core/session-info/small-file.js.map +1 -0
- package/server/dist/core/session-info/subagent-transcript.d.ts +12 -0
- package/server/dist/core/session-info/subagent-transcript.d.ts.map +1 -0
- package/server/dist/core/session-info/subagent-transcript.js +78 -0
- package/server/dist/core/session-info/subagent-transcript.js.map +1 -0
- package/server/dist/core/session-info/subagents.d.ts +14 -0
- package/server/dist/core/session-info/subagents.d.ts.map +1 -0
- package/server/dist/core/session-info/subagents.js +92 -0
- package/server/dist/core/session-info/subagents.js.map +1 -0
- package/server/dist/core/session-info/test-fixtures.d.ts +50 -0
- package/server/dist/core/session-info/test-fixtures.d.ts.map +1 -0
- package/server/dist/core/session-info/test-fixtures.js +43 -0
- package/server/dist/core/session-info/test-fixtures.js.map +1 -0
- package/server/dist/core/session-info/types.d.ts +77 -0
- package/server/dist/core/session-info/types.d.ts.map +1 -0
- package/server/dist/core/session-info/types.js +14 -0
- package/server/dist/core/session-info/types.js.map +1 -0
- package/server/dist/core/settings-reader.d.ts +18 -0
- package/server/dist/core/settings-reader.d.ts.map +1 -0
- package/server/dist/core/settings-reader.js +40 -0
- package/server/dist/core/settings-reader.js.map +1 -0
- package/server/dist/core/shell-quote.d.ts +29 -0
- package/server/dist/core/shell-quote.d.ts.map +1 -1
- package/server/dist/core/shell-quote.js +34 -0
- package/server/dist/core/shell-quote.js.map +1 -1
- package/server/dist/core/stack-profiles-create.d.ts +31 -0
- package/server/dist/core/stack-profiles-create.d.ts.map +1 -0
- package/server/dist/core/stack-profiles-create.js +128 -0
- package/server/dist/core/stack-profiles-create.js.map +1 -0
- package/server/dist/core/stack-profiles.d.ts +49 -0
- package/server/dist/core/stack-profiles.d.ts.map +1 -0
- package/server/dist/core/stack-profiles.js +142 -0
- package/server/dist/core/stack-profiles.js.map +1 -0
- package/server/dist/core/task-editability.d.ts +1 -1
- package/server/dist/core/task-editability.d.ts.map +1 -1
- package/server/dist/core/task-editability.js +1 -0
- package/server/dist/core/task-editability.js.map +1 -1
- package/server/dist/core/triage-cli-runner.d.ts.map +1 -1
- package/server/dist/core/triage-cli-runner.js +6 -21
- package/server/dist/core/triage-cli-runner.js.map +1 -1
- package/server/dist/core/triage-compose.d.ts.map +1 -1
- package/server/dist/core/triage-compose.js +34 -3
- package/server/dist/core/triage-compose.js.map +1 -1
- package/server/dist/core/triage-store.d.ts +2 -1
- package/server/dist/core/triage-store.d.ts.map +1 -1
- package/server/dist/core/triage-store.js +1 -1
- package/server/dist/core/triage-store.js.map +1 -1
- package/server/dist/external/_shared/helpers.d.ts +2 -0
- package/server/dist/external/_shared/helpers.d.ts.map +1 -1
- package/server/dist/external/_shared/helpers.js.map +1 -1
- package/server/dist/external/actions/get.d.ts +3 -1
- package/server/dist/external/actions/get.d.ts.map +1 -1
- package/server/dist/external/actions/get.js +15 -4
- package/server/dist/external/actions/get.js.map +1 -1
- package/server/dist/external/actions/routes.d.ts +3 -1
- package/server/dist/external/actions/routes.d.ts.map +1 -1
- package/server/dist/external/actions/routes.js.map +1 -1
- package/server/dist/external/actions/stub.d.ts.map +1 -1
- package/server/dist/external/actions/stub.js +15 -4
- package/server/dist/external/actions/stub.js.map +1 -1
- package/server/dist/external/actions/upload-delete.d.ts.map +1 -1
- package/server/dist/external/actions/upload-delete.js +30 -20
- package/server/dist/external/actions/upload-delete.js.map +1 -1
- package/server/dist/external/actions/upload.d.ts.map +1 -1
- package/server/dist/external/actions/upload.js +5 -4
- package/server/dist/external/actions/upload.js.map +1 -1
- package/server/dist/external/create-external-routes-args.d.ts +124 -0
- package/server/dist/external/create-external-routes-args.d.ts.map +1 -0
- package/server/dist/external/create-external-routes-args.js +2 -0
- package/server/dist/external/create-external-routes-args.js.map +1 -0
- package/server/dist/external/inbox/_codex.d.ts +14 -0
- package/server/dist/external/inbox/_codex.d.ts.map +1 -0
- package/server/dist/external/inbox/_codex.js +88 -0
- package/server/dist/external/inbox/_codex.js.map +1 -0
- package/server/dist/external/inbox/_derive.d.ts.map +1 -1
- package/server/dist/external/inbox/_derive.js +11 -0
- package/server/dist/external/inbox/_derive.js.map +1 -1
- package/server/dist/external/inbox/_phase-gate.d.ts +9 -0
- package/server/dist/external/inbox/_phase-gate.d.ts.map +1 -0
- package/server/dist/external/inbox/_phase-gate.js +87 -0
- package/server/dist/external/inbox/_phase-gate.js.map +1 -0
- package/server/dist/external/inbox/_types.d.ts +30 -0
- package/server/dist/external/inbox/_types.d.ts.map +1 -1
- package/server/dist/external/inbox/_types.js +8 -5
- package/server/dist/external/inbox/_types.js.map +1 -1
- package/server/dist/external/inbox/routes.d.ts +7 -0
- package/server/dist/external/inbox/routes.d.ts.map +1 -1
- package/server/dist/external/inbox/routes.js +17 -2
- package/server/dist/external/inbox/routes.js.map +1 -1
- package/server/dist/external/launch/_helpers.d.ts +4 -0
- package/server/dist/external/launch/_helpers.d.ts.map +1 -1
- package/server/dist/external/launch/_helpers.js.map +1 -1
- package/server/dist/external/launch/action-substitution-branch.d.ts +12 -0
- package/server/dist/external/launch/action-substitution-branch.d.ts.map +1 -1
- package/server/dist/external/launch/action-substitution-branch.js +37 -3
- package/server/dist/external/launch/action-substitution-branch.js.map +1 -1
- package/server/dist/external/launch/branch-dispatch.d.ts +15 -0
- package/server/dist/external/launch/branch-dispatch.d.ts.map +1 -0
- package/server/dist/external/launch/branch-dispatch.js +73 -0
- package/server/dist/external/launch/branch-dispatch.js.map +1 -0
- package/server/dist/external/launch/campaign-step-branch.d.ts +7 -1
- package/server/dist/external/launch/campaign-step-branch.d.ts.map +1 -1
- package/server/dist/external/launch/campaign-step-branch.js +70 -2
- package/server/dist/external/launch/campaign-step-branch.js.map +1 -1
- package/server/dist/external/launch/claim-executor-permissions.d.ts +31 -0
- package/server/dist/external/launch/claim-executor-permissions.d.ts.map +1 -0
- package/server/dist/external/launch/claim-executor-permissions.js +107 -0
- package/server/dist/external/launch/claim-executor-permissions.js.map +1 -0
- package/server/dist/external/launch/claim-executor-template-arming.d.ts +42 -0
- package/server/dist/external/launch/claim-executor-template-arming.d.ts.map +1 -0
- package/server/dist/external/launch/claim-executor-template-arming.js +121 -0
- package/server/dist/external/launch/claim-executor-template-arming.js.map +1 -0
- package/server/dist/external/launch/claim-holder-gate.d.ts +9 -0
- package/server/dist/external/launch/claim-holder-gate.d.ts.map +1 -1
- package/server/dist/external/launch/claim-holder-gate.js +10 -2
- package/server/dist/external/launch/claim-holder-gate.js.map +1 -1
- package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts +3 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts.map +1 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.js +24 -0
- package/server/dist/external/launch/claim-permission-perimeter-assert.js.map +1 -0
- package/server/dist/external/launch/legacy-fallback-branch.d.ts +14 -0
- package/server/dist/external/launch/legacy-fallback-branch.d.ts.map +1 -1
- package/server/dist/external/launch/legacy-fallback-branch.js +3 -1
- package/server/dist/external/launch/legacy-fallback-branch.js.map +1 -1
- package/server/dist/external/launch/master-run-branch.js +2 -2
- package/server/dist/external/launch/master-run-branch.js.map +1 -1
- package/server/dist/external/launch/mixed-intents-guard.d.ts +10 -0
- package/server/dist/external/launch/mixed-intents-guard.d.ts.map +1 -0
- package/server/dist/external/launch/mixed-intents-guard.js +49 -0
- package/server/dist/external/launch/mixed-intents-guard.js.map +1 -0
- package/server/dist/external/launch/parse-body.d.ts +29 -0
- package/server/dist/external/launch/parse-body.d.ts.map +1 -1
- package/server/dist/external/launch/parse-body.js +66 -0
- package/server/dist/external/launch/parse-body.js.map +1 -1
- package/server/dist/external/launch/routes.d.ts +3 -0
- package/server/dist/external/launch/routes.d.ts.map +1 -1
- package/server/dist/external/launch/routes.js +76 -109
- package/server/dist/external/launch/routes.js.map +1 -1
- package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts +20 -0
- package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint-codextender.js +51 -0
- package/server/dist/external/launch/runtime-chokepoint-codextender.js.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.d.ts +33 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.d.ts.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.js +63 -0
- package/server/dist/external/launch/runtime-chokepoint-errors.js.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint.d.ts +120 -0
- package/server/dist/external/launch/runtime-chokepoint.d.ts.map +1 -0
- package/server/dist/external/launch/runtime-chokepoint.js +201 -0
- package/server/dist/external/launch/runtime-chokepoint.js.map +1 -0
- package/server/dist/external/mission-context/facts.js +2 -2
- package/server/dist/external/mission-context/facts.js.map +1 -1
- package/server/dist/external/mission-context/routes.d.ts +33 -27
- package/server/dist/external/mission-context/routes.d.ts.map +1 -1
- package/server/dist/external/mission-context/routes.js +30 -27
- package/server/dist/external/mission-context/routes.js.map +1 -1
- package/server/dist/external/mission-context/test-harness.d.ts +6 -0
- package/server/dist/external/mission-context/test-harness.d.ts.map +1 -1
- package/server/dist/external/mission-context/test-harness.js +6 -1
- package/server/dist/external/mission-context/test-harness.js.map +1 -1
- package/server/dist/external/mission-context/wire.d.ts.map +1 -1
- package/server/dist/external/mission-context/wire.js +24 -2
- package/server/dist/external/mission-context/wire.js.map +1 -1
- package/server/dist/external/org/audit-log.d.ts +19 -0
- package/server/dist/external/org/audit-log.d.ts.map +1 -1
- package/server/dist/external/org/audit-log.js +33 -18
- package/server/dist/external/org/audit-log.js.map +1 -1
- package/server/dist/external/org/beat-effect-audit-read.d.ts +15 -0
- package/server/dist/external/org/beat-effect-audit-read.d.ts.map +1 -0
- package/server/dist/external/org/beat-effect-audit-read.js +73 -0
- package/server/dist/external/org/beat-effect-audit-read.js.map +1 -0
- package/server/dist/external/org/beat-register-health.d.ts +57 -0
- package/server/dist/external/org/beat-register-health.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-health.js +125 -0
- package/server/dist/external/org/beat-register-health.js.map +1 -0
- package/server/dist/external/org/beat-register-release-core.d.ts.map +1 -1
- package/server/dist/external/org/beat-register-release-core.js +4 -1
- package/server/dist/external/org/beat-register-release-core.js.map +1 -1
- package/server/dist/external/org/beat-register-release-request.d.ts +20 -0
- package/server/dist/external/org/beat-register-release-request.d.ts.map +1 -0
- package/server/dist/external/org/beat-register-release-request.js +92 -0
- package/server/dist/external/org/beat-register-release-request.js.map +1 -0
- package/server/dist/external/org/beat-register-release.d.ts +3 -1
- package/server/dist/external/org/beat-register-release.d.ts.map +1 -1
- package/server/dist/external/org/beat-register-release.js +15 -57
- package/server/dist/external/org/beat-register-release.js.map +1 -1
- package/server/dist/external/org/beat-register.d.ts +18 -20
- package/server/dist/external/org/beat-register.d.ts.map +1 -1
- package/server/dist/external/org/beat-register.js +30 -56
- package/server/dist/external/org/beat-register.js.map +1 -1
- package/server/dist/external/org/beat-steps-read.d.ts +17 -0
- package/server/dist/external/org/beat-steps-read.d.ts.map +1 -0
- package/server/dist/external/org/beat-steps-read.js +89 -0
- package/server/dist/external/org/beat-steps-read.js.map +1 -0
- package/server/dist/external/org/charter-authority-read.d.ts +39 -0
- package/server/dist/external/org/charter-authority-read.d.ts.map +1 -0
- package/server/dist/external/org/charter-authority-read.js +142 -0
- package/server/dist/external/org/charter-authority-read.js.map +1 -0
- package/server/dist/external/org/commit-validate.d.ts +18 -0
- package/server/dist/external/org/commit-validate.d.ts.map +1 -0
- package/server/dist/external/org/commit-validate.js +59 -0
- package/server/dist/external/org/commit-validate.js.map +1 -0
- package/server/dist/external/org/commit-writes.d.ts +68 -0
- package/server/dist/external/org/commit-writes.d.ts.map +1 -0
- package/server/dist/external/org/commit-writes.js +110 -0
- package/server/dist/external/org/commit-writes.js.map +1 -0
- package/server/dist/external/org/commit.d.ts +73 -0
- package/server/dist/external/org/commit.d.ts.map +1 -0
- package/server/dist/external/org/commit.js +181 -0
- package/server/dist/external/org/commit.js.map +1 -0
- package/server/dist/external/org/commit.test-fixtures.d.ts +38 -0
- package/server/dist/external/org/commit.test-fixtures.d.ts.map +1 -0
- package/server/dist/external/org/commit.test-fixtures.js +67 -0
- package/server/dist/external/org/commit.test-fixtures.js.map +1 -0
- package/server/dist/external/org/countersign-core.d.ts +19 -0
- package/server/dist/external/org/countersign-core.d.ts.map +1 -0
- package/server/dist/external/org/countersign-core.js +122 -0
- package/server/dist/external/org/countersign-core.js.map +1 -0
- package/server/dist/external/org/countersign-request.d.ts +14 -0
- package/server/dist/external/org/countersign-request.d.ts.map +1 -0
- package/server/dist/external/org/countersign-request.js +78 -0
- package/server/dist/external/org/countersign-request.js.map +1 -0
- package/server/dist/external/org/countersign.d.ts +6 -5
- package/server/dist/external/org/countersign.d.ts.map +1 -1
- package/server/dist/external/org/countersign.js +12 -141
- package/server/dist/external/org/countersign.js.map +1 -1
- package/server/dist/external/org/daemon-config-read.d.ts +31 -0
- package/server/dist/external/org/daemon-config-read.d.ts.map +1 -0
- package/server/dist/external/org/daemon-config-read.js +50 -0
- package/server/dist/external/org/daemon-config-read.js.map +1 -0
- package/server/dist/external/org/decisions-lock.d.ts +6 -4
- package/server/dist/external/org/decisions-lock.d.ts.map +1 -1
- package/server/dist/external/org/decisions-lock.js +9 -8
- package/server/dist/external/org/decisions-lock.js.map +1 -1
- package/server/dist/external/org/domains.d.ts +35 -0
- package/server/dist/external/org/domains.d.ts.map +1 -0
- package/server/dist/external/org/domains.js +29 -0
- package/server/dist/external/org/domains.js.map +1 -0
- package/server/dist/external/org/existing-charters-read.d.ts +5 -0
- package/server/dist/external/org/existing-charters-read.d.ts.map +1 -0
- package/server/dist/external/org/existing-charters-read.js +31 -0
- package/server/dist/external/org/existing-charters-read.js.map +1 -0
- package/server/dist/external/org/leadwright-proposal-merge.d.ts +54 -0
- package/server/dist/external/org/leadwright-proposal-merge.d.ts.map +1 -0
- package/server/dist/external/org/leadwright-proposal-merge.js +47 -0
- package/server/dist/external/org/leadwright-proposal-merge.js.map +1 -0
- package/server/dist/external/org/mount.d.ts +10 -2
- package/server/dist/external/org/mount.d.ts.map +1 -1
- package/server/dist/external/org/mount.js +6 -1
- package/server/dist/external/org/mount.js.map +1 -1
- package/server/dist/external/org/org-chart-full-read.d.ts +19 -0
- package/server/dist/external/org/org-chart-full-read.d.ts.map +1 -0
- package/server/dist/external/org/org-chart-full-read.js +58 -0
- package/server/dist/external/org/org-chart-full-read.js.map +1 -0
- package/server/dist/external/org/org-file-lock.d.ts +41 -0
- package/server/dist/external/org/org-file-lock.d.ts.map +1 -0
- package/server/dist/external/org/org-file-lock.js +90 -0
- package/server/dist/external/org/org-file-lock.js.map +1 -0
- package/server/dist/external/org/routes.d.ts +10 -0
- package/server/dist/external/org/routes.d.ts.map +1 -1
- package/server/dist/external/org/routes.js +22 -1
- package/server/dist/external/org/routes.js.map +1 -1
- package/server/dist/external/org/verdict.d.ts +57 -0
- package/server/dist/external/org/verdict.d.ts.map +1 -0
- package/server/dist/external/org/verdict.js +74 -0
- package/server/dist/external/org/verdict.js.map +1 -0
- package/server/dist/external/preview/routes.d.ts +3 -1
- package/server/dist/external/preview/routes.d.ts.map +1 -1
- package/server/dist/external/preview/routes.js +8 -1
- package/server/dist/external/preview/routes.js.map +1 -1
- package/server/dist/external/routes.d.ts +3 -101
- package/server/dist/external/routes.d.ts.map +1 -1
- package/server/dist/external/routes.js +21 -6
- package/server/dist/external/routes.js.map +1 -1
- package/server/dist/external/session-file/probe-route.d.ts +4 -0
- package/server/dist/external/session-file/probe-route.d.ts.map +1 -0
- package/server/dist/external/session-file/probe-route.js +66 -0
- package/server/dist/external/session-file/probe-route.js.map +1 -0
- package/server/dist/external/session-file/routes.d.ts +12 -0
- package/server/dist/external/session-file/routes.d.ts.map +1 -0
- package/server/dist/external/session-file/routes.js +90 -0
- package/server/dist/external/session-file/routes.js.map +1 -0
- package/server/dist/external/session-file/session-file.fixture.d.ts +45 -0
- package/server/dist/external/session-file/session-file.fixture.d.ts.map +1 -0
- package/server/dist/external/session-file/session-file.fixture.js +41 -0
- package/server/dist/external/session-file/session-file.fixture.js.map +1 -0
- package/server/dist/external/session-info/routes.d.ts +15 -0
- package/server/dist/external/session-info/routes.d.ts.map +1 -0
- package/server/dist/external/session-info/routes.js +57 -0
- package/server/dist/external/session-info/routes.js.map +1 -0
- package/server/dist/external/tasks/_phase-helpers.js +2 -2
- package/server/dist/external/tasks/_phase-helpers.js.map +1 -1
- package/server/dist/external/tasks/create.d.ts.map +1 -1
- package/server/dist/external/tasks/create.js +10 -2
- package/server/dist/external/tasks/create.js.map +1 -1
- package/server/dist/external/tasks/fork.d.ts +29 -0
- package/server/dist/external/tasks/fork.d.ts.map +1 -0
- package/server/dist/external/tasks/fork.js +166 -0
- package/server/dist/external/tasks/fork.js.map +1 -0
- package/server/dist/external/tasks/lifecycle.d.ts.map +1 -1
- package/server/dist/external/tasks/lifecycle.js +10 -57
- package/server/dist/external/tasks/lifecycle.js.map +1 -1
- package/server/dist/external/tasks/patch.d.ts.map +1 -1
- package/server/dist/external/tasks/patch.js +17 -0
- package/server/dist/external/tasks/patch.js.map +1 -1
- package/server/dist/external/tasks/routes.d.ts +2 -0
- package/server/dist/external/tasks/routes.d.ts.map +1 -1
- package/server/dist/external/tasks/routes.js +7 -0
- package/server/dist/external/tasks/routes.js.map +1 -1
- package/server/dist/external/transcript/routes.d.ts.map +1 -1
- package/server/dist/external/transcript/routes.js +25 -3
- package/server/dist/external/transcript/routes.js.map +1 -1
- package/server/dist/external-routes-wiring.d.ts +28 -0
- package/server/dist/external-routes-wiring.d.ts.map +1 -0
- package/server/dist/external-routes-wiring.js +70 -0
- package/server/dist/external-routes-wiring.js.map +1 -0
- package/server/dist/index.d.ts.map +1 -1
- package/server/dist/index.js +117 -52
- package/server/dist/index.js.map +1 -1
- package/server/dist/lib/resolveHonoHost.d.ts.map +1 -1
- package/server/dist/lib/resolveHonoHost.js +16 -1
- package/server/dist/lib/resolveHonoHost.js.map +1 -1
- package/server/dist/routes/_triage-api-harness.d.ts +1 -1
- package/server/dist/routes/_triage-api-harness.d.ts.map +1 -1
- package/server/dist/routes/_triage-api-harness.js.map +1 -1
- package/server/dist/routes/adopt-scan.d.ts +4 -0
- package/server/dist/routes/adopt-scan.d.ts.map +1 -0
- package/server/dist/routes/adopt-scan.js +27 -0
- package/server/dist/routes/adopt-scan.js.map +1 -0
- package/server/dist/routes/campaigns-readiness.d.ts +10 -0
- package/server/dist/routes/campaigns-readiness.d.ts.map +1 -0
- package/server/dist/routes/campaigns-readiness.js +58 -0
- package/server/dist/routes/campaigns-readiness.js.map +1 -0
- package/server/dist/routes/campaigns.d.ts.map +1 -1
- package/server/dist/routes/campaigns.js +3 -0
- package/server/dist/routes/campaigns.js.map +1 -1
- package/server/dist/routes/codex-models.d.ts +15 -0
- package/server/dist/routes/codex-models.d.ts.map +1 -0
- package/server/dist/routes/codex-models.js +77 -0
- package/server/dist/routes/codex-models.js.map +1 -0
- package/server/dist/routes/codextender-models.d.ts +16 -0
- package/server/dist/routes/codextender-models.d.ts.map +1 -0
- package/server/dist/routes/codextender-models.js +81 -0
- package/server/dist/routes/codextender-models.js.map +1 -0
- package/server/dist/routes/diagnostics.d.ts +15 -0
- package/server/dist/routes/diagnostics.d.ts.map +1 -1
- package/server/dist/routes/diagnostics.js +1 -0
- package/server/dist/routes/diagnostics.js.map +1 -1
- package/server/dist/routes/org-chart-lead-guard.d.ts +10 -0
- package/server/dist/routes/org-chart-lead-guard.d.ts.map +1 -0
- package/server/dist/routes/org-chart-lead-guard.js +49 -0
- package/server/dist/routes/org-chart-lead-guard.js.map +1 -0
- package/server/dist/routes/org-inventory-composite.d.ts +20 -0
- package/server/dist/routes/org-inventory-composite.d.ts.map +1 -0
- package/server/dist/routes/org-inventory-composite.js +100 -0
- package/server/dist/routes/org-inventory-composite.js.map +1 -0
- package/server/dist/routes/org-lead-setup-wizard.d.ts +10 -0
- package/server/dist/routes/org-lead-setup-wizard.d.ts.map +1 -0
- package/server/dist/routes/org-lead-setup-wizard.js +51 -0
- package/server/dist/routes/org-lead-setup-wizard.js.map +1 -0
- package/server/dist/routes/org-leads-composite.d.ts.map +1 -1
- package/server/dist/routes/org-leads-composite.js +35 -9
- package/server/dist/routes/org-leads-composite.js.map +1 -1
- package/server/dist/routes/org-writes.d.ts +14 -0
- package/server/dist/routes/org-writes.d.ts.map +1 -0
- package/server/dist/routes/org-writes.js +61 -0
- package/server/dist/routes/org-writes.js.map +1 -0
- package/server/dist/routes/org.d.ts +11 -2
- package/server/dist/routes/org.d.ts.map +1 -1
- package/server/dist/routes/org.js +50 -47
- package/server/dist/routes/org.js.map +1 -1
- package/server/dist/routes/profiles.d.ts +7 -0
- package/server/dist/routes/profiles.d.ts.map +1 -1
- package/server/dist/routes/profiles.js +13 -0
- package/server/dist/routes/profiles.js.map +1 -1
- package/server/dist/routes/projects.d.ts.map +1 -1
- package/server/dist/routes/projects.js +58 -16
- package/server/dist/routes/projects.js.map +1 -1
- package/server/dist/routes/settings.d.ts.map +1 -1
- package/server/dist/routes/settings.js +23 -2
- package/server/dist/routes/settings.js.map +1 -1
- package/server/dist/routes/stack-profiles.d.ts +10 -0
- package/server/dist/routes/stack-profiles.d.ts.map +1 -0
- package/server/dist/routes/stack-profiles.js +65 -0
- package/server/dist/routes/stack-profiles.js.map +1 -0
- package/server/dist/routes/triage.d.ts +17 -0
- package/server/dist/routes/triage.d.ts.map +1 -1
- package/server/dist/routes/triage.js +29 -0
- package/server/dist/routes/triage.js.map +1 -1
- package/server/dist/terminal/data-target.d.ts +17 -0
- package/server/dist/terminal/data-target.d.ts.map +1 -0
- package/server/dist/terminal/data-target.js +56 -0
- package/server/dist/terminal/data-target.js.map +1 -0
- package/server/dist/terminal/image-paste.d.ts +2 -0
- package/server/dist/terminal/image-paste.d.ts.map +1 -1
- package/server/dist/terminal/image-paste.js +11 -12
- package/server/dist/terminal/image-paste.js.map +1 -1
- package/server/dist/terminal/pty-manager.d.ts +14 -0
- package/server/dist/terminal/pty-manager.d.ts.map +1 -1
- package/server/dist/terminal/pty-manager.js +11 -0
- package/server/dist/terminal/pty-manager.js.map +1 -1
- package/server/dist/terminal/routes.d.ts +5 -0
- package/server/dist/terminal/routes.d.ts.map +1 -1
- package/server/dist/terminal/routes.js +20 -13
- package/server/dist/terminal/routes.js.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.d.ts.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.fixtures.js +1 -0
- package/server/dist/terminal/ws-upgrade-handler.fixtures.js.map +1 -1
- package/server/dist/terminal/ws-upgrade-handler.js +14 -5
- package/server/dist/terminal/ws-upgrade-handler.js.map +1 -1
- package/server/dist/test/event-test-counts-fixtures.d.ts +40 -0
- package/server/dist/test/event-test-counts-fixtures.d.ts.map +1 -0
- package/server/dist/test/event-test-counts-fixtures.js +56 -0
- package/server/dist/test/event-test-counts-fixtures.js.map +1 -0
- package/server/dist/types/leadwright-beat-step.d.ts +19 -0
- package/server/dist/types/leadwright-beat-step.d.ts.map +1 -0
- package/server/dist/types/leadwright-beat-step.js +56 -0
- package/server/dist/types/leadwright-beat-step.js.map +1 -0
- package/server/dist/types/leadwright-preflight.d.ts +90 -0
- package/server/dist/types/leadwright-preflight.d.ts.map +1 -0
- package/server/dist/types/leadwright-preflight.js +65 -0
- package/server/dist/types/leadwright-preflight.js.map +1 -0
- package/server/dist/types/leadwright-schema-drift.d.ts +28 -0
- package/server/dist/types/leadwright-schema-drift.d.ts.map +1 -0
- package/server/dist/types/leadwright-schema-drift.js +89 -0
- package/server/dist/types/leadwright-schema-drift.js.map +1 -0
- package/server/dist/types/org-inventory.d.ts +53 -0
- package/server/dist/types/org-inventory.d.ts.map +1 -0
- package/server/dist/types/org-inventory.js +11 -0
- package/server/dist/types/org-inventory.js.map +1 -0
- package/server/dist/types/org.d.ts +57 -6
- package/server/dist/types/org.d.ts.map +1 -1
- package/server/dist/types/project.d.ts +9 -0
- package/server/dist/types/project.d.ts.map +1 -1
- package/server/dist/types/run-config-retry.d.ts +29 -0
- package/server/dist/types/run-config-retry.d.ts.map +1 -0
- package/server/dist/types/run-config-retry.js +47 -0
- package/server/dist/types/run-config-retry.js.map +1 -0
- package/server/dist/types/run-config-v2.d.ts +29 -41
- package/server/dist/types/run-config-v2.d.ts.map +1 -1
- package/server/dist/types/run-config-v2.js +16 -50
- package/server/dist/types/run-config-v2.js.map +1 -1
- package/server/dist/types/settings.d.ts +33 -0
- package/server/dist/types/settings.d.ts.map +1 -1
- package/server/dist/types/stack-profile-contract.d.ts +33 -0
- package/server/dist/types/stack-profile-contract.d.ts.map +1 -0
- package/server/dist/types/stack-profile-contract.js +11 -0
- package/server/dist/types/stack-profile-contract.js.map +1 -0
- package/server/dist/vendor/leadwright/beat-step.schema.json +83 -0
- package/server/dist/vendor/leadwright/claim-record-lock-contract.json +15 -0
- package/server/dist/vendor/leadwright/org-chart.schema.json +195 -0
- package/server/dist/vendor/leadwright/preflight-input.schema.json +318 -0
- package/server/dist/vendor/leadwright/preflight-result.schema.json +56 -0
- package/server/package.json +3 -3
- package/client/dist/assets/arc-DQmjbsFU.js +0 -1
- package/client/dist/assets/architectureDiagram-ZJ3FMSHR-DAvCsPCW.js +0 -36
- package/client/dist/assets/blockDiagram-677ZJIJ3-DC-dlyYI.js +0 -132
- package/client/dist/assets/c4Diagram-LMCZKHZV-DSlmXfhE.js +0 -10
- package/client/dist/assets/channel-BfmIcrp7.js +0 -1
- package/client/dist/assets/chunk-RYQCIY6F-BKhdp_8v.js +0 -1
- package/client/dist/assets/chunk-VR4S4FIN-OgFi2_iB.js +0 -1
- package/client/dist/assets/classDiagram-OUVF2IWQ-HfUQZ6Uc.js +0 -1
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-HfUQZ6Uc.js +0 -1
- package/client/dist/assets/dagre-VKFMJZFB-D7djx1_Y.js +0 -4
- package/client/dist/assets/diagram-OA4YK3LP-CwQPbOn0.js +0 -30
- package/client/dist/assets/diagram-WEI45ONY-abtYnYqH.js +0 -41
- package/client/dist/assets/erDiagram-Q63AITRT-vtbCprgH.js +0 -85
- package/client/dist/assets/flowDiagram-23GEKE2U-CVCgcyDF.js +0 -156
- package/client/dist/assets/graph-C9eacEi8.js +0 -1
- package/client/dist/assets/index-CKU9dY18.css +0 -1
- package/client/dist/assets/index-DOMl6atu.js +0 -847
- package/client/dist/assets/infoDiagram-FWYZ7A6U-Dr4mN24J.js +0 -2
- package/client/dist/assets/katex-DkKDou_j.js +0 -257
- package/client/dist/assets/layout-DEXfKzaS.js +0 -1
- package/client/dist/assets/map-Czzmt4hB.js +0 -1
- package/client/dist/assets/mermaid.core-BcLNGbxW.js +0 -314
- package/client/dist/assets/stateDiagram-2N3HPSRC-CFwCOonY.js +0 -1
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-srkiu3Ib.js +0 -1
- package/client/dist/assets/swimlanes-5IMT3BWC-DFa2tzxu.js +0 -2
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-Dq-0K9Zm.js +0 -8
- package/client/dist/assets/xychartDiagram-FW5EYKEG-D9PFTCfm.js +0 -7
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type CopyCommandForms } from "../../core/launcher.js";
|
|
2
|
+
import type { ClaimExecutorLaunchOverrides } from "./claim-executor-permissions.js";
|
|
3
|
+
export type ArmTemplateResult = {
|
|
4
|
+
ok: true;
|
|
5
|
+
commands: CopyCommandForms;
|
|
6
|
+
} | {
|
|
7
|
+
ok: false;
|
|
8
|
+
detail: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* True only when the RAW `command_template` (before any substitution)
|
|
12
|
+
* literally declares the `--session-id {task.uuid}` placeholder. This is
|
|
13
|
+
* the attacker-uncontrollable precondition for arming: `command_template`
|
|
14
|
+
* comes from project configuration (bundled defaults or a project's own
|
|
15
|
+
* `.shipwright-webui/actions.json`), never from the launch request body, so
|
|
16
|
+
* a caller cannot forge this check the way they could forge a coincidental
|
|
17
|
+
* match in the RENDERED output (see module header).
|
|
18
|
+
*/
|
|
19
|
+
export declare function templateDeclaresSessionIdAnchor(commandTemplate: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Inserts `--tools <allow-list> --permission-mode <mode>` immediately after
|
|
22
|
+
* the substituted `--session-id <this task's sessionUuid>` token, on all
|
|
23
|
+
* three shell forms. The anchor is the task's own UUID rendered UNQUOTED —
|
|
24
|
+
* verified live (`actions-substitute.ts`'s `{task.uuid}` case returns the
|
|
25
|
+
* raw value, and its per-shell `q()` wrapping is applied only to
|
|
26
|
+
* user-derived placeholders, not this one; a debug probe against the real
|
|
27
|
+
* substitution engine confirmed `--session-id 11111111-...` with no quotes
|
|
28
|
+
* on posix, cmd AND powershell). The flags THEMSELVES still go through the
|
|
29
|
+
* matching shell's own quoter (`FLAG_QUOTERS`) — only the anchor is
|
|
30
|
+
* unquoted, matching the substitution engine's own convention for a
|
|
31
|
+
* server-generated UUID. The flags are inserted at the anchor's FIRST
|
|
32
|
+
* occurrence only when that occurrence is provably unique in the rendered
|
|
33
|
+
* string (checked via `indexOf` === `lastIndexOf`) — a custom project
|
|
34
|
+
* `command_template` can interpolate other placeholders (e.g.
|
|
35
|
+
* `{task.description}`) ahead of `{task.uuid}`, and a caller-supplied value
|
|
36
|
+
* that happens to contain this task's own UUID would otherwise let the
|
|
37
|
+
* flags land inside unrelated text while the real `--session-id` flag stays
|
|
38
|
+
* unarmed and the function still reported success. A non-unique anchor
|
|
39
|
+
* fails closed exactly like a missing one.
|
|
40
|
+
*/
|
|
41
|
+
export declare function armActionTemplatePermissionPerimeter(commands: CopyCommandForms, sessionUuid: string, overrides: ClaimExecutorLaunchOverrides): ArmTemplateResult;
|
|
42
|
+
//# sourceMappingURL=claim-executor-template-arming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-executor-template-arming.d.ts","sourceRoot":"","sources":["../../../src/external/launch/claim-executor-template-arming.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQlC;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAEhF;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,4BAA4B,GACtC,iBAAiB,CA8BnB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* external/launch/claim-executor-template-arming.ts — FR-04.22 permission
|
|
3
|
+
* perimeter for the ACTION-TEMPLATE launch path (iterate-2026-09-06-claim-
|
|
4
|
+
* launch-permission-perimeter, Stage-1 review follow-up).
|
|
5
|
+
*
|
|
6
|
+
* `action-substitution-branch.ts` builds its command via
|
|
7
|
+
* `substitutePlaceholders(action.command_template, ...)` — a completely
|
|
8
|
+
* separate rendering path from `core/launcher.ts`'s `buildCopyCommands`/
|
|
9
|
+
* `LaunchArgs`, so `launcher-permission-flags.ts`'s argv-level flags never
|
|
10
|
+
* reach it. Spec review (Stage 1) proved this branch, not the legacy
|
|
11
|
+
* fallback, is the one leadwright's real tasks actually hit: leadwright's
|
|
12
|
+
* `CreateExternalTaskBody.actionId` is a REQUIRED field
|
|
13
|
+
* (`webui-client.ts`), persisted onto the task
|
|
14
|
+
* (`external/tasks/create.ts`), and `parse-body.ts`'s once-set-always-used
|
|
15
|
+
* contract means a claim-only `{ claimToken }` launch body still resolves
|
|
16
|
+
* `parsed.actionId` from that persisted value — so
|
|
17
|
+
* `applyActionSubstitutionBranch` fires, not the legacy fallback.
|
|
18
|
+
*
|
|
19
|
+
* `command_template` is a project-configurable string (bundled defaults in
|
|
20
|
+
* `config/default-actions.json`, or a project's own `actions.json` via
|
|
21
|
+
* `loadActionsForProject`) — NOT a fixed shape this module can trust
|
|
22
|
+
* blindly. Every bundled template starts `--session-id {task.uuid} ...`,
|
|
23
|
+
* but a custom project template is not guaranteed to. FAIL CLOSED: if the
|
|
24
|
+
* expected `--session-id <this task's own uuid>` anchor is not found,
|
|
25
|
+
* verbatim, in a rendered shell form, this module refuses to arm rather
|
|
26
|
+
* than silently returning an unrestricted command that LOOKS armed because
|
|
27
|
+
* the caller asked for arming (the exact "looks compliant, isn't" failure
|
|
28
|
+
* mode this whole card exists to close).
|
|
29
|
+
*
|
|
30
|
+
* Stage-3 doubt review found the rendered-output anchor search alone is not
|
|
31
|
+
* enough: a template that never emits the literal `--session-id {task.uuid}`
|
|
32
|
+
* placeholder at all could still coincidentally contain a UNIQUE occurrence
|
|
33
|
+
* of `--session-id <this task's uuid>` inside a substituted, caller-supplied
|
|
34
|
+
* placeholder (e.g. `{task.description?}`, settable in the very same
|
|
35
|
+
* claim-authorized launch body) — arming would then splice the flags inside
|
|
36
|
+
* quoted user text, not a real CLI flag, and still report success. Callers
|
|
37
|
+
* MUST call `templateDeclaresSessionIdAnchor` on the RAW (pre-substitution)
|
|
38
|
+
* `command_template` first and refuse to arm if it returns false — that
|
|
39
|
+
* check is immune to request-supplied content because the template comes
|
|
40
|
+
* from project configuration, not the launch body.
|
|
41
|
+
*
|
|
42
|
+
* The doubt review also found a template can independently re-declare
|
|
43
|
+
* `--tools`/`--permission-mode` via its own `{task.parameters?}` (a
|
|
44
|
+
* project's custom parameter schema may set `cli_flag: "--tools"` — the
|
|
45
|
+
* allowlist regex in `types/action-schema.ts` permits it), which could
|
|
46
|
+
* override or conflict with the injected flags depending on Claude CLI's
|
|
47
|
+
* duplicate-flag precedence. This module therefore also fails closed if the
|
|
48
|
+
* rendered command already contains either flag BEFORE arming.
|
|
49
|
+
*/
|
|
50
|
+
import { qPs, qCmd, qPosix } from "../../core/launcher.js";
|
|
51
|
+
const FLAG_QUOTERS = {
|
|
52
|
+
powershell: qPs,
|
|
53
|
+
cmd: qCmd,
|
|
54
|
+
posix: qPosix,
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* True only when the RAW `command_template` (before any substitution)
|
|
58
|
+
* literally declares the `--session-id {task.uuid}` placeholder. This is
|
|
59
|
+
* the attacker-uncontrollable precondition for arming: `command_template`
|
|
60
|
+
* comes from project configuration (bundled defaults or a project's own
|
|
61
|
+
* `.shipwright-webui/actions.json`), never from the launch request body, so
|
|
62
|
+
* a caller cannot forge this check the way they could forge a coincidental
|
|
63
|
+
* match in the RENDERED output (see module header).
|
|
64
|
+
*/
|
|
65
|
+
export function templateDeclaresSessionIdAnchor(commandTemplate) {
|
|
66
|
+
return commandTemplate.includes("--session-id {task.uuid}");
|
|
67
|
+
}
|
|
68
|
+
const CONFLICTING_FLAG_PATTERN = /(^|\s)(--tools|--permission-mode)(\s|$)/;
|
|
69
|
+
/**
|
|
70
|
+
* Inserts `--tools <allow-list> --permission-mode <mode>` immediately after
|
|
71
|
+
* the substituted `--session-id <this task's sessionUuid>` token, on all
|
|
72
|
+
* three shell forms. The anchor is the task's own UUID rendered UNQUOTED —
|
|
73
|
+
* verified live (`actions-substitute.ts`'s `{task.uuid}` case returns the
|
|
74
|
+
* raw value, and its per-shell `q()` wrapping is applied only to
|
|
75
|
+
* user-derived placeholders, not this one; a debug probe against the real
|
|
76
|
+
* substitution engine confirmed `--session-id 11111111-...` with no quotes
|
|
77
|
+
* on posix, cmd AND powershell). The flags THEMSELVES still go through the
|
|
78
|
+
* matching shell's own quoter (`FLAG_QUOTERS`) — only the anchor is
|
|
79
|
+
* unquoted, matching the substitution engine's own convention for a
|
|
80
|
+
* server-generated UUID. The flags are inserted at the anchor's FIRST
|
|
81
|
+
* occurrence only when that occurrence is provably unique in the rendered
|
|
82
|
+
* string (checked via `indexOf` === `lastIndexOf`) — a custom project
|
|
83
|
+
* `command_template` can interpolate other placeholders (e.g.
|
|
84
|
+
* `{task.description}`) ahead of `{task.uuid}`, and a caller-supplied value
|
|
85
|
+
* that happens to contain this task's own UUID would otherwise let the
|
|
86
|
+
* flags land inside unrelated text while the real `--session-id` flag stays
|
|
87
|
+
* unarmed and the function still reported success. A non-unique anchor
|
|
88
|
+
* fails closed exactly like a missing one.
|
|
89
|
+
*/
|
|
90
|
+
export function armActionTemplatePermissionPerimeter(commands, sessionUuid, overrides) {
|
|
91
|
+
const armed = {};
|
|
92
|
+
for (const shellForm of Object.keys(FLAG_QUOTERS)) {
|
|
93
|
+
const q = FLAG_QUOTERS[shellForm];
|
|
94
|
+
const marker = `--session-id ${sessionUuid}`;
|
|
95
|
+
const source = commands[shellForm];
|
|
96
|
+
const idx = source.indexOf(marker);
|
|
97
|
+
if (idx === -1) {
|
|
98
|
+
return {
|
|
99
|
+
ok: false,
|
|
100
|
+
detail: `no '--session-id ${sessionUuid}' anchor found in the ${shellForm} command form — cannot arm the permission perimeter`,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if (idx !== source.lastIndexOf(marker)) {
|
|
104
|
+
return {
|
|
105
|
+
ok: false,
|
|
106
|
+
detail: `'--session-id ${sessionUuid}' anchor is not unique in the ${shellForm} command form — cannot safely arm the permission perimeter`,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (CONFLICTING_FLAG_PATTERN.test(source)) {
|
|
110
|
+
return {
|
|
111
|
+
ok: false,
|
|
112
|
+
detail: `the ${shellForm} command form already contains a --tools or --permission-mode flag before arming — refusing to risk a duplicate/conflicting flag`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const insertAt = idx + marker.length;
|
|
116
|
+
const flags = ` --tools ${q(overrides.toolsAllowlist.join(","))} --permission-mode ${q(overrides.permissionMode)}`;
|
|
117
|
+
armed[shellForm] = source.slice(0, insertAt) + flags + source.slice(insertAt);
|
|
118
|
+
}
|
|
119
|
+
return { ok: true, commands: armed };
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=claim-executor-template-arming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-executor-template-arming.js","sourceRoot":"","sources":["../../../src/external/launch/claim-executor-template-arming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAyB,MAAM,wBAAwB,CAAC;AAOlF,MAAM,YAAY,GAA0D;IAC1E,UAAU,EAAE,GAAG;IACf,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,MAAM;CACd,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAAC,eAAuB;IACrE,OAAO,eAAe,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,wBAAwB,GAAG,yCAAyC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oCAAoC,CAClD,QAA0B,EAC1B,WAAmB,EACnB,SAAuC;IAEvC,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAkC,EAAE,CAAC;QACnF,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,gBAAgB,WAAW,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,oBAAoB,WAAW,yBAAyB,SAAS,qDAAqD;aAC/H,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,KAAK,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,iBAAiB,WAAW,iCAAiC,SAAS,4DAA4D;aAC3I,CAAC;QACJ,CAAC;QACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,OAAO,SAAS,kIAAkI;aAC3J,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;QACnH,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAyB,EAAE,CAAC;AAC3D,CAAC"}
|
|
@@ -25,6 +25,7 @@ export declare const CLAIM_LAUNCH_WINDOW_MS: number;
|
|
|
25
25
|
export declare const CLAIM_CLOCK_SKEW_TOLERANCE_MS: number;
|
|
26
26
|
export type ClaimGateResult = {
|
|
27
27
|
allowed: true;
|
|
28
|
+
claimAuthorized: boolean;
|
|
28
29
|
} | {
|
|
29
30
|
allowed: false;
|
|
30
31
|
error: Record<string, unknown>;
|
|
@@ -37,6 +38,14 @@ export type ClaimGateResult = {
|
|
|
37
38
|
* envelope — `claimExpired: true` distinguishes "right token, too old" from
|
|
38
39
|
* a foreign/absent token (trap: an expired claim must read differently from
|
|
39
40
|
* someone else's).
|
|
41
|
+
*
|
|
42
|
+
* `claimAuthorized` (iterate-2026-09-06-claim-launch-permission-perimeter,
|
|
43
|
+
* FR-04.22 follow-up) distinguishes the TWO shapes of `allowed: true`: "no
|
|
44
|
+
* claim was ever on record" (an ordinary human/manual launch) vs. "the
|
|
45
|
+
* caller proved it holds the CURRENT, unexpired claim" (leadwright's stage-2
|
|
46
|
+
* executor). The launch route uses this — not a second, independently
|
|
47
|
+
* re-derived token-match check — to decide whether to arm the executor's
|
|
48
|
+
* permission perimeter, so the two conditions can never drift apart.
|
|
40
49
|
*/
|
|
41
50
|
export declare function checkClaimHolderGate(task: ExternalTask, bodyClaimToken: string | undefined): ClaimGateResult;
|
|
42
51
|
//# sourceMappingURL=claim-holder-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-holder-gate.d.ts","sourceRoot":"","sources":["../../../src/external/launch/claim-holder-gate.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,QAAgB,CAAC;AAE3D,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"claim-holder-gate.d.ts","sourceRoot":"","sources":["../../../src/external/launch/claim-holder-gate.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,QAAgB,CAAC;AAE3D,MAAM,MAAM,eAAe,GACvB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GAC3C;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,eAAe,CAqCjB"}
|
|
@@ -52,10 +52,18 @@ export const CLAIM_CLOCK_SKEW_TOLERANCE_MS = 5 * 60 * 1000;
|
|
|
52
52
|
* envelope — `claimExpired: true` distinguishes "right token, too old" from
|
|
53
53
|
* a foreign/absent token (trap: an expired claim must read differently from
|
|
54
54
|
* someone else's).
|
|
55
|
+
*
|
|
56
|
+
* `claimAuthorized` (iterate-2026-09-06-claim-launch-permission-perimeter,
|
|
57
|
+
* FR-04.22 follow-up) distinguishes the TWO shapes of `allowed: true`: "no
|
|
58
|
+
* claim was ever on record" (an ordinary human/manual launch) vs. "the
|
|
59
|
+
* caller proved it holds the CURRENT, unexpired claim" (leadwright's stage-2
|
|
60
|
+
* executor). The launch route uses this — not a second, independently
|
|
61
|
+
* re-derived token-match check — to decide whether to arm the executor's
|
|
62
|
+
* permission perimeter, so the two conditions can never drift apart.
|
|
55
63
|
*/
|
|
56
64
|
export function checkClaimHolderGate(task, bodyClaimToken) {
|
|
57
65
|
if (typeof task.claimToken !== "string" || task.claimToken.length === 0) {
|
|
58
|
-
return { allowed: true };
|
|
66
|
+
return { allowed: true, claimAuthorized: false };
|
|
59
67
|
}
|
|
60
68
|
const tokenMatches = bodyClaimToken !== undefined && bodyClaimToken === task.claimToken;
|
|
61
69
|
const claimedAtMs = task.claimedAt ? Date.parse(task.claimedAt) : NaN;
|
|
@@ -64,7 +72,7 @@ export function checkClaimHolderGate(task, bodyClaimToken) {
|
|
|
64
72
|
age >= -CLAIM_CLOCK_SKEW_TOLERANCE_MS &&
|
|
65
73
|
age <= CLAIM_LAUNCH_WINDOW_MS;
|
|
66
74
|
if (tokenMatches && withinWindow) {
|
|
67
|
-
return { allowed: true };
|
|
75
|
+
return { allowed: true, claimAuthorized: true };
|
|
68
76
|
}
|
|
69
77
|
console.warn(JSON.stringify({
|
|
70
78
|
level: "warn",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-holder-gate.js","sourceRoot":"","sources":["../../../src/external/launch/claim-holder-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAM3D
|
|
1
|
+
{"version":3,"file":"claim-holder-gate.js","sourceRoot":"","sources":["../../../src/external/launch/claim-holder-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAM3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,cAAkC;IAElC,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,YAAY,GAChB,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,CAAC,UAAU,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;IACrC,MAAM,YAAY,GAChB,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC5B,GAAG,IAAI,CAAC,6BAA6B;QACrC,GAAG,IAAI,sBAAsB,CAAC;IAEhC,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,sDAAsD;QAC/D,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;KACzD,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAA4B;QACrC,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;IACF,IAAI,YAAY;QAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-permission-perimeter-assert.d.ts","sourceRoot":"","sources":["../../../src/external/launch/claim-permission-perimeter-assert.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAMT"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* external/launch/claim-permission-perimeter-assert.ts — FR-04.22 Stage-3
|
|
3
|
+
* doubt-review follow-up (iterate-2026-09-06-claim-launch-permission-perimeter).
|
|
4
|
+
*
|
|
5
|
+
* `claimAuthorized` is threaded, opt-in, into only two of the six
|
|
6
|
+
* launch-precedence branches (action-substitution, legacy-fallback) because
|
|
7
|
+
* those are the only ones a `{ claimToken }`-only body can structurally
|
|
8
|
+
* reach today. That is an assumption about the CALLING daemon's current
|
|
9
|
+
* body shape, not a code-enforced invariant — a future body that combines a
|
|
10
|
+
* valid `claimToken` with `phaseTaskRef` / `campaignSlug` / `campaignStep` /
|
|
11
|
+
* `masterRun` would dispatch to one of the four branches that never learned
|
|
12
|
+
* about claims and get back a fully unrestricted command while still
|
|
13
|
+
* holding a valid claim.
|
|
14
|
+
*
|
|
15
|
+
* This is the centralized backstop: regardless of which branch produced
|
|
16
|
+
* `commands`, a claim-authorized launch must show the permission perimeter
|
|
17
|
+
* on every shell form or the request is refused (409) — never silently
|
|
18
|
+
* downgraded.
|
|
19
|
+
*/
|
|
20
|
+
export function commandsCarryPermissionPerimeter(commands) {
|
|
21
|
+
return Object.keys(commands).every((shellForm) => commands[shellForm].includes("--tools") &&
|
|
22
|
+
commands[shellForm].includes("--permission-mode"));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=claim-permission-perimeter-assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-permission-perimeter-assert.js","sourceRoot":"","sources":["../../../src/external/launch/claim-permission-perimeter-assert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,UAAU,gCAAgC,CAC9C,QAA0B;IAE1B,OAAQ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAmC,CAAC,KAAK,CACnE,CAAC,SAAS,EAAE,EAAE,CACZ,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -5,6 +5,20 @@ export declare function applyLegacyFallbackBranch(args: {
|
|
|
5
5
|
task: ExternalTask;
|
|
6
6
|
parsed: ParsedLaunchBody;
|
|
7
7
|
jsonlObserved: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* FR-04.22 (iterate-2026-09-06-claim-launch-permission-perimeter) — true
|
|
10
|
+
* only when `checkClaimHolderGate` proved this caller holds the task's
|
|
11
|
+
* CURRENT, unexpired claim (leadwright's stage-2 executor). `undefined`/
|
|
12
|
+
* `false` (every human/manual launch) leaves the command byte-identical
|
|
13
|
+
* to before this field existed — verified by
|
|
14
|
+
* `legacy-fallback-branch.test.ts`'s own "manual launch unchanged"
|
|
15
|
+
* assertion on the produced command STRING, not just a 200 status. A
|
|
16
|
+
* leadwright-created task normally has `actionId` set and is armed
|
|
17
|
+
* through `action-substitution-branch.ts` instead (Stage-1 spec review
|
|
18
|
+
* finding) — this branch still needs the same wiring for a task launched
|
|
19
|
+
* before it ever had an actionId.
|
|
20
|
+
*/
|
|
21
|
+
claimAuthorized?: boolean;
|
|
8
22
|
}): {
|
|
9
23
|
commands: CopyCommandForms;
|
|
10
24
|
taskUpdate: Partial<ExternalTask>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-fallback-branch.d.ts","sourceRoot":"","sources":["../../../src/external/launch/legacy-fallback-branch.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"legacy-fallback-branch.d.ts","sourceRoot":"","sources":["../../../src/external/launch/legacy-fallback-branch.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAAE,CAiBpE"}
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
* JSONL on disk, `--resume` is the correct shape.
|
|
11
11
|
*/
|
|
12
12
|
import { buildCopyCommands, } from "../../core/launcher.js";
|
|
13
|
+
import { claimExecutorLaunchOverrides } from "./claim-executor-permissions.js";
|
|
13
14
|
export function applyLegacyFallbackBranch(args) {
|
|
14
|
-
const { task, parsed, jsonlObserved } = args;
|
|
15
|
+
const { task, parsed, jsonlObserved, claimAuthorized } = args;
|
|
15
16
|
const effectiveResume = parsed.resume && (task.actionId !== "new-plain" || jsonlObserved);
|
|
16
17
|
const commands = buildCopyCommands({
|
|
17
18
|
sessionUuid: task.sessionUuid,
|
|
@@ -19,6 +20,7 @@ export function applyLegacyFallbackBranch(args) {
|
|
|
19
20
|
resume: effectiveResume,
|
|
20
21
|
pluginDirs: task.pluginDirs,
|
|
21
22
|
title: task.title,
|
|
23
|
+
...(claimAuthorized ? claimExecutorLaunchOverrides() : {}),
|
|
22
24
|
});
|
|
23
25
|
const taskUpdate = {
|
|
24
26
|
state: "awaiting_external_start",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-fallback-branch.js","sourceRoot":"","sources":["../../../src/external/launch/legacy-fallback-branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"legacy-fallback-branch.js","sourceRoot":"","sources":["../../../src/external/launch/legacy-fallback-branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,UAAU,yBAAyB,CAAC,IAkBzC;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAC9D,MAAM,eAAe,GACnB,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,aAAa,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC,CAAC;IACH,MAAM,UAAU,GAA0B;QACxC,KAAK,EAAE,yBAA8C;QACrD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -118,9 +118,9 @@ export async function applyMasterRunBranch(args) {
|
|
|
118
118
|
}
|
|
119
119
|
const mode = resolveRunMode(cfg.config);
|
|
120
120
|
if (mode !== "single_session") {
|
|
121
|
-
// multi_session (or a mode-less legacy config →
|
|
121
|
+
// multi_session (or a mode-less legacy config → standalone) uses the
|
|
122
122
|
// per-phase Continue path, not a single master. Refuse rather than inject
|
|
123
|
-
// `/shipwright-run` into a multi-session run.
|
|
123
|
+
// `/shipwright-run` into a multi-session/standalone run.
|
|
124
124
|
return {
|
|
125
125
|
error: { error: "master_launch_wrong_mode", detail: mode },
|
|
126
126
|
status: 400,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-run-branch.js","sourceRoot":"","sources":["../../../src/external/launch/master-run-branch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"master-run-branch.js","sourceRoot":"","sources":["../../../src/external/launch/master-run-branch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ParsedLaunchBody } from "./parse-body.js";
|
|
2
|
+
export interface MixedIntentsError {
|
|
3
|
+
error: {
|
|
4
|
+
error: "mixed_launch_intents";
|
|
5
|
+
detail: string;
|
|
6
|
+
};
|
|
7
|
+
status: 400;
|
|
8
|
+
}
|
|
9
|
+
export declare function checkMixedLaunchIntents(body: Record<string, unknown>, parsed: ParsedLaunchBody): MixedIntentsError | null;
|
|
10
|
+
//# sourceMappingURL=mixed-intents-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixed-intents-guard.d.ts","sourceRoot":"","sources":["../../../src/external/launch/mixed-intents-guard.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QAAE,KAAK,EAAE,sBAAsB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GACvB,iBAAiB,GAAG,IAAI,CAgD1B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* external/launch/mixed-intents-guard.ts — the three `mixed_launch_intents`
|
|
3
|
+
* checks split out of routes.ts to keep that file ≤ 300 LOC. Each launch
|
|
4
|
+
* intent (campaignSlug / campaignStep / masterRun) is mutually exclusive
|
|
5
|
+
* with the others and with actionId / phaseTaskRef. Checked against the RAW
|
|
6
|
+
* body (never the parsed/once-set-always-used values) so a task's persisted
|
|
7
|
+
* `actionId` can never spuriously trip these — see routes.ts callers for
|
|
8
|
+
* the FR-01.34 / FR-01.36 / webui-pipeline-convergence W2 provenance.
|
|
9
|
+
*/
|
|
10
|
+
export function checkMixedLaunchIntents(body, parsed) {
|
|
11
|
+
if (typeof body.campaignSlug === "string" &&
|
|
12
|
+
body.campaignSlug.trim().length > 0 &&
|
|
13
|
+
(body.actionId !== undefined || body.phaseTaskRef !== undefined)) {
|
|
14
|
+
return {
|
|
15
|
+
error: {
|
|
16
|
+
error: "mixed_launch_intents",
|
|
17
|
+
detail: "campaignSlug is mutually exclusive with actionId / phaseTaskRef",
|
|
18
|
+
},
|
|
19
|
+
status: 400,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (parsed.campaignStep &&
|
|
23
|
+
(body.actionId !== undefined ||
|
|
24
|
+
body.phaseTaskRef !== undefined ||
|
|
25
|
+
(typeof body.campaignSlug === "string" && body.campaignSlug.trim().length > 0))) {
|
|
26
|
+
return {
|
|
27
|
+
error: {
|
|
28
|
+
error: "mixed_launch_intents",
|
|
29
|
+
detail: "campaignStep is mutually exclusive with actionId / phaseTaskRef / campaignSlug",
|
|
30
|
+
},
|
|
31
|
+
status: 400,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (Boolean(body.masterRun) &&
|
|
35
|
+
(body.actionId !== undefined ||
|
|
36
|
+
body.phaseTaskRef !== undefined ||
|
|
37
|
+
(typeof body.campaignSlug === "string" && body.campaignSlug.trim().length > 0) ||
|
|
38
|
+
body.campaignStep !== undefined)) {
|
|
39
|
+
return {
|
|
40
|
+
error: {
|
|
41
|
+
error: "mixed_launch_intents",
|
|
42
|
+
detail: "masterRun is mutually exclusive with actionId / phaseTaskRef / campaignSlug / campaignStep",
|
|
43
|
+
},
|
|
44
|
+
status: 400,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=mixed-intents-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixed-intents-guard.js","sourceRoot":"","sources":["../../../src/external/launch/mixed-intents-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,UAAU,uBAAuB,CACrC,IAA6B,EAC7B,MAAwB;IAExB,IACE,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAChE,CAAC;QACD,OAAO;YACL,KAAK,EAAE;gBACL,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,iEAAiE;aAC1E;YACD,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC;IAED,IACE,MAAM,CAAC,YAAY;QACnB,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC1B,IAAI,CAAC,YAAY,KAAK,SAAS;YAC/B,CAAC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EACjF,CAAC;QACD,OAAO;YACL,KAAK,EAAE;gBACL,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,gFAAgF;aACzF;YACD,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC;IAED,IACE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC1B,IAAI,CAAC,YAAY,KAAK,SAAS;YAC/B,CAAC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9E,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAClC,CAAC;QACD,OAAO;YACL,KAAK,EAAE;gBACL,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EACJ,4FAA4F;aAC/F;YACD,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { ExternalTask } from "../../core/sdk-sessions-store.js";
|
|
2
|
+
/**
|
|
3
|
+
* iterate-2026-09-17-codex-model-tier-parameterization, revised
|
|
4
|
+
* 2026-09-18 after shipwright#771 — a closed, hand-maintained catalog enum
|
|
5
|
+
* was withdrawn in favor of the same posture shipwright's own
|
|
6
|
+
* `codex_review`/`codex_plan_review` config axis uses
|
|
7
|
+
* (`shared/scripts/lib/codex_review_transport.py`'s
|
|
8
|
+
* `_CODEX_MODEL_SLUG_PATTERN`): an unconditional SYNTACTIC allowlist, never
|
|
9
|
+
* a live-catalog-pinned enum. #771's own architecture review rejected
|
|
10
|
+
* catalog validation outright — "a standing dependency on an undocumented,
|
|
11
|
+
* already-shifting CLI subcommand ... not worth it" — the exact dependency
|
|
12
|
+
* `CODEX_IMPLEMENTATION_MODELS` (the withdrawn enum) had. Pattern mirrored
|
|
13
|
+
* verbatim so both repos reject/accept the same slug shapes.
|
|
14
|
+
*/
|
|
15
|
+
export declare const CODEX_MODEL_SLUG_PATTERN: RegExp;
|
|
2
16
|
export interface ParsedLaunchBody {
|
|
3
17
|
resume: boolean;
|
|
4
18
|
dryRun: boolean;
|
|
@@ -26,6 +40,21 @@ export interface ParsedLaunchBody {
|
|
|
26
40
|
* single_session run_config + builds the fixed `/shipwright-run` command;
|
|
27
41
|
* this just surfaces the boolean intent. Launch-body only (never persisted). */
|
|
28
42
|
masterRun: boolean;
|
|
43
|
+
/** iterate-2026-09-17-codex-model-tier-parameterization — session-scoped
|
|
44
|
+
* Codex implementation-model override. Body-only (never persisted on the
|
|
45
|
+
* task, and no once-set-always-used fallback), same "only for this
|
|
46
|
+
* session" posture as Claude's review-model/plan-review-model. Deliberately
|
|
47
|
+
* NOT routed through `userParams`/the action-schema `parameters` pipeline
|
|
48
|
+
* — see the iterate spec's server-scope decision for why. */
|
|
49
|
+
codexImplementationModel: string | undefined;
|
|
50
|
+
/** iterate-2026-09-19-codex-reviewer-fields (shipwright#772) —
|
|
51
|
+
* session-scoped Codex review-model overrides, same body-only /
|
|
52
|
+
* never-persisted posture as `codexImplementationModel` above. Threaded
|
|
53
|
+
* to `buildCodexCommands` as `SHIPWRIGHT_CODEX_PLAN_REVIEW_MODEL` /
|
|
54
|
+
* `SHIPWRIGHT_CODEX_REVIEW_MODEL` env-var prefixes — `run_codex_review`
|
|
55
|
+
* resolves those ahead of the project's `shipwright_model_config.json`. */
|
|
56
|
+
codexPlanReviewModel: string | undefined;
|
|
57
|
+
codexReviewModel: string | undefined;
|
|
29
58
|
}
|
|
30
59
|
/**
|
|
31
60
|
* Parses the launch body into normalized fields + applies the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-body.d.ts","sourceRoot":"","sources":["../../../src/external/launch/parse-body.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;IACzD,eAAe,EAAE,OAAO,CAAC;IACzB;;iFAE6E;IAC7E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;iFAG6E;IAC7E,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC3D;;;qFAGiF;IACjF,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-body.d.ts","sourceRoot":"","sources":["../../../src/external/launch/parse-body.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,QAAsC,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC;IACzD,eAAe,EAAE,OAAO,CAAC;IACzB;;iFAE6E;IAC7E,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;;iFAG6E;IAC7E,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC3D;;;qFAGiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;kEAK8D;IAC9D,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C;;;;;gFAK4E;IAC5E,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,YAAY,GAEhB,gBAAgB,GAChB;IAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CA0J5D"}
|
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
* value ?? persisted task value (v0.4.1 fix).
|
|
5
5
|
*/
|
|
6
6
|
import { PARAM_NAME_PATTERN } from "../../types/action-schema.js";
|
|
7
|
+
/**
|
|
8
|
+
* iterate-2026-09-17-codex-model-tier-parameterization, revised
|
|
9
|
+
* 2026-09-18 after shipwright#771 — a closed, hand-maintained catalog enum
|
|
10
|
+
* was withdrawn in favor of the same posture shipwright's own
|
|
11
|
+
* `codex_review`/`codex_plan_review` config axis uses
|
|
12
|
+
* (`shared/scripts/lib/codex_review_transport.py`'s
|
|
13
|
+
* `_CODEX_MODEL_SLUG_PATTERN`): an unconditional SYNTACTIC allowlist, never
|
|
14
|
+
* a live-catalog-pinned enum. #771's own architecture review rejected
|
|
15
|
+
* catalog validation outright — "a standing dependency on an undocumented,
|
|
16
|
+
* already-shifting CLI subcommand ... not worth it" — the exact dependency
|
|
17
|
+
* `CODEX_IMPLEMENTATION_MODELS` (the withdrawn enum) had. Pattern mirrored
|
|
18
|
+
* verbatim so both repos reject/accept the same slug shapes.
|
|
19
|
+
*/
|
|
20
|
+
export const CODEX_MODEL_SLUG_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
|
|
7
21
|
/**
|
|
8
22
|
* Parses the launch body into normalized fields + applies the
|
|
9
23
|
* once-set-always-used contract (v0.4.1): body field falls back to the
|
|
@@ -97,6 +111,33 @@ export function parseLaunchBody(body, task) {
|
|
|
97
111
|
campaignStep = { slug: s.trim(), stepId: id.trim() };
|
|
98
112
|
}
|
|
99
113
|
}
|
|
114
|
+
// iterate-2026-09-17-codex-model-tier-parameterization, revised for
|
|
115
|
+
// shipwright#771 — syntactic allowlist, not a catalog enum; trimmed first
|
|
116
|
+
// so an incidental leading/trailing space from a free-text field doesn't
|
|
117
|
+
// fail a slug that would otherwise match. An unrecognized shape fails
|
|
118
|
+
// closed (400), never silently dropped or coerced to undefined.
|
|
119
|
+
// Deliberately unconditional on task.runtime: a value irrelevant to a
|
|
120
|
+
// Claude-runtime task (runtime-chokepoint.ts never reads it for one) is
|
|
121
|
+
// still malformed-input-rejected rather than silently accepted, same
|
|
122
|
+
// fail-closed posture as every other field this function validates.
|
|
123
|
+
// Today's only caller (useNewIssueFormSubmit.ts) already gates on
|
|
124
|
+
// runtime === "codex" before ever setting this field.
|
|
125
|
+
const implementationModelResult = parseCodexModelSlugField(body.codexImplementationModel, "invalid_codex_implementation_model");
|
|
126
|
+
if ("error" in implementationModelResult)
|
|
127
|
+
return implementationModelResult;
|
|
128
|
+
const codexImplementationModel = implementationModelResult.value;
|
|
129
|
+
// iterate-2026-09-19-codex-reviewer-fields — same syntactic allowlist and
|
|
130
|
+
// fail-closed posture as codexImplementationModel above (see that field's
|
|
131
|
+
// comment); the value differs only in what it's used for downstream
|
|
132
|
+
// (an env-var prefix, not a `-c model=` CLI flag).
|
|
133
|
+
const planReviewModelResult = parseCodexModelSlugField(body.codexPlanReviewModel, "invalid_codex_plan_review_model");
|
|
134
|
+
if ("error" in planReviewModelResult)
|
|
135
|
+
return planReviewModelResult;
|
|
136
|
+
const codexPlanReviewModel = planReviewModelResult.value;
|
|
137
|
+
const reviewModelResult = parseCodexModelSlugField(body.codexReviewModel, "invalid_codex_review_model");
|
|
138
|
+
if ("error" in reviewModelResult)
|
|
139
|
+
return reviewModelResult;
|
|
140
|
+
const codexReviewModel = reviewModelResult.value;
|
|
100
141
|
return {
|
|
101
142
|
resume,
|
|
102
143
|
dryRun,
|
|
@@ -110,6 +151,31 @@ export function parseLaunchBody(body, task) {
|
|
|
110
151
|
campaignSlug,
|
|
111
152
|
campaignStep,
|
|
112
153
|
masterRun: Boolean(body.masterRun),
|
|
154
|
+
codexImplementationModel,
|
|
155
|
+
codexPlanReviewModel,
|
|
156
|
+
codexReviewModel,
|
|
113
157
|
};
|
|
114
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Shared validator for the three body-only Codex model-slug overrides
|
|
161
|
+
* (implementation / plan-review / review): absent → `{ value: undefined }`;
|
|
162
|
+
* present but malformed → the field's own error code, fail-closed (never
|
|
163
|
+
* silently dropped or coerced), matching `codexImplementationModel`'s
|
|
164
|
+
* original inline behavior verbatim.
|
|
165
|
+
*/
|
|
166
|
+
function parseCodexModelSlugField(raw, errorCode) {
|
|
167
|
+
if (raw === undefined)
|
|
168
|
+
return { value: undefined };
|
|
169
|
+
const trimmed = typeof raw === "string" ? raw.trim() : "";
|
|
170
|
+
if (!CODEX_MODEL_SLUG_PATTERN.test(trimmed)) {
|
|
171
|
+
return {
|
|
172
|
+
error: {
|
|
173
|
+
error: errorCode,
|
|
174
|
+
detail: `must match ${CODEX_MODEL_SLUG_PATTERN.source}`,
|
|
175
|
+
},
|
|
176
|
+
status: 400,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
return { value: trimmed };
|
|
180
|
+
}
|
|
115
181
|
//# sourceMappingURL=parse-body.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-body.js","sourceRoot":"","sources":["../../../src/external/launch/parse-body.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-body.js","sourceRoot":"","sources":["../../../src/external/launch/parse-body.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ export interface LaunchRouterDeps {
|
|
|
18
18
|
* per-router unit tests that don't wire a watcher default to "no JSONL".
|
|
19
19
|
*/
|
|
20
20
|
jsonlExistsOnDisk?: (sessionUuid: string) => Promise<boolean>;
|
|
21
|
+
/** Codextender Part B.6 — fresh settings reads for the runtime chokepoint. */
|
|
22
|
+
getCodexIntegrationMode?: () => Promise<"light" | "codextender" | undefined>;
|
|
23
|
+
getCodextenderPort?: () => Promise<number | undefined>;
|
|
21
24
|
}
|
|
22
25
|
export declare function createLaunchRouter(deps: LaunchRouterDeps): Hono;
|
|
23
26
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/launch/routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/launch/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAYtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE;QAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,8EAA8E;IAC9E,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;IAC7E,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAkK/D"}
|