@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,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* campaign-worktree-root.ts — where a campaign's loop state actually lives.
|
|
3
|
+
*
|
|
4
|
+
* A campaign runs in its OWN worktree, `<main_root>/.worktrees/campaign-<slug>`
|
|
5
|
+
* (monorepo `campaign-worktree.md`), keyed by the campaign slug so a resumed
|
|
6
|
+
* campaign re-enters the same directory. That worktree — not the main root —
|
|
7
|
+
* holds the campaign's `.shipwright/loop_state.json`, and it is the cwd every
|
|
8
|
+
* git call of `loop_claim.py` (batch-base resolution, ancestry asserts) must
|
|
9
|
+
* run in. The main root's own `loop_state.json` is not a worktree campaign's
|
|
10
|
+
* state and is never read for one.
|
|
11
|
+
*
|
|
12
|
+
* Legacy campaigns (no such worktree) fall back to the project root, exactly
|
|
13
|
+
* as they behaved before campaigns got worktrees.
|
|
14
|
+
*
|
|
15
|
+
* Read-only and tolerant: any fs error resolves to the fallback, never throws.
|
|
16
|
+
*/
|
|
17
|
+
import { readdirSync, realpathSync, statSync } from "node:fs";
|
|
18
|
+
import path from "node:path";
|
|
19
|
+
import { isWithin } from "./campaign-paths.js";
|
|
20
|
+
const SLUG_PATTERN = /^[A-Za-z0-9._-]{1,128}$/;
|
|
21
|
+
const WORKTREE_PREFIX = "campaign-";
|
|
22
|
+
/** `<root>/.shipwright/loop_state.json`. */
|
|
23
|
+
export function loopStatePathFor(root) {
|
|
24
|
+
return path.join(root, ".shipwright", "loop_state.json");
|
|
25
|
+
}
|
|
26
|
+
/** realpath of a directory under `<projectRoot>/.worktrees`, or null. */
|
|
27
|
+
function safeWorktreeDir(projectRoot, name) {
|
|
28
|
+
try {
|
|
29
|
+
const parent = realpathSync(path.join(projectRoot, ".worktrees"));
|
|
30
|
+
// `.worktrees` itself may be a symlink out of the project: it must resolve inside.
|
|
31
|
+
if (!isWithin(realpathSync(projectRoot), parent))
|
|
32
|
+
return null;
|
|
33
|
+
const candidate = path.join(parent, name);
|
|
34
|
+
if (!statSync(candidate).isDirectory())
|
|
35
|
+
return null;
|
|
36
|
+
const real = realpathSync(candidate);
|
|
37
|
+
return isWithin(parent, real) && real !== parent ? real : null;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The state root for one campaign: its worktree when present (realpath-guarded
|
|
45
|
+
* inside `<projectRoot>/.worktrees`), else the project root.
|
|
46
|
+
*/
|
|
47
|
+
export function resolveCampaignStateRoot(projectRoot, slug) {
|
|
48
|
+
const fallback = { root: projectRoot, worktree: false };
|
|
49
|
+
if (!SLUG_PATTERN.test(slug) || slug.includes(".."))
|
|
50
|
+
return fallback;
|
|
51
|
+
const real = safeWorktreeDir(projectRoot, WORKTREE_PREFIX + slug);
|
|
52
|
+
return real ? { root: real, worktree: true } : fallback;
|
|
53
|
+
}
|
|
54
|
+
/** Every existing campaign worktree under the project, as `{ slug, root }`. */
|
|
55
|
+
export function listCampaignWorktrees(projectRoot) {
|
|
56
|
+
let entries;
|
|
57
|
+
try {
|
|
58
|
+
entries = readdirSync(path.join(projectRoot, ".worktrees"));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const out = [];
|
|
64
|
+
for (const name of entries) {
|
|
65
|
+
if (!name.startsWith(WORKTREE_PREFIX))
|
|
66
|
+
continue;
|
|
67
|
+
const slug = name.slice(WORKTREE_PREFIX.length);
|
|
68
|
+
if (!slug || !SLUG_PATTERN.test(slug) || slug.includes(".."))
|
|
69
|
+
continue;
|
|
70
|
+
const real = safeWorktreeDir(projectRoot, name);
|
|
71
|
+
if (real)
|
|
72
|
+
out.push({ slug, root: real });
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=campaign-worktree-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campaign-worktree-root.js","sourceRoot":"","sources":["../../src/core/campaign-worktree-root.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
interface VendoredClaimRecordLockContract {
|
|
2
|
+
contractVersion: number;
|
|
3
|
+
lockPathSuffix: string;
|
|
4
|
+
staleMs: number;
|
|
5
|
+
realpath: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const CLAIM_RECORD_LOCK_CONTRACT: VendoredClaimRecordLockContract;
|
|
8
|
+
/**
|
|
9
|
+
* `proper-lockfile` options carrying the contract's `stale` / `realpath`
|
|
10
|
+
* fixings explicitly. Never sets `lockfilePath` — the lock marker must stay
|
|
11
|
+
* `proper-lockfile`'s own `<canonical-target>${lockPathSuffix}`, which is
|
|
12
|
+
* what a peer holding a different path string to the same file resolves to
|
|
13
|
+
* as well (contract `lockPathDescription`). Enforced structurally: an
|
|
14
|
+
* `extra.lockfilePath` is dropped rather than forwarded, so this invariant
|
|
15
|
+
* does not rely on every caller remembering not to pass one.
|
|
16
|
+
*/
|
|
17
|
+
export declare function claimRecordLockOptions<T extends Record<string, unknown>>(extra: T): Omit<T, "lockfilePath"> & {
|
|
18
|
+
stale: number;
|
|
19
|
+
realpath: boolean;
|
|
20
|
+
};
|
|
21
|
+
export interface LockRetryConfig {
|
|
22
|
+
retries?: number;
|
|
23
|
+
minTimeout?: number;
|
|
24
|
+
maxTimeout?: number;
|
|
25
|
+
factor?: number;
|
|
26
|
+
}
|
|
27
|
+
/** Acquire a `proper-lockfile` lock on `path` under the FR-04.28 contract. */
|
|
28
|
+
export declare function lockClaimRecordFile(path: string, retries?: number | LockRetryConfig): Promise<() => Promise<void>>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=claim-record-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-record-lock.d.ts","sourceRoot":"","sources":["../../src/core/claim-record-lock.ts"],"names":[],"mappings":"AAkDA,UAAU,+BAA+B;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA2BD,eAAO,MAAM,0BAA0B,EAAE,+BAKxC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,KAAK,EAAE,CAAC,GACP,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAOhE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,8EAA8E;AAC9E,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,GAAG,eAAmB,GACpC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAE9B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* claim-record-lock.ts — FR-04.28 claim-record lock fixings, applied
|
|
3
|
+
* EXPLICITLY at both of this repo's shared-file lock sites so agreement
|
|
4
|
+
* with leadwright survives a `proper-lockfile` upstream default change.
|
|
5
|
+
*
|
|
6
|
+
* leadwright writes two files this repo also writes: `sdk-sessions.json`
|
|
7
|
+
* (this module's consumer, via `index.ts`'s `lockPath`) and
|
|
8
|
+
* `decisions-proposed.md` (`external/org/decisions-lock.ts`). Both call
|
|
9
|
+
* sites import the SAME constant below rather than retyping numbers, so
|
|
10
|
+
* they cannot drift from each other even if one is edited without the
|
|
11
|
+
* other. `index.ts`'s `lockPath` local is also reused for two files
|
|
12
|
+
* leadwright does NOT touch — `projects.json` and `settings.json` — so a
|
|
13
|
+
* future `contractVersion` bump changing `staleMs`/`realpath` widens to
|
|
14
|
+
* those too, not just `sdk-sessions.json`; harmless today only because the
|
|
15
|
+
* contract's values equal `proper-lockfile`'s own defaults (code-review
|
|
16
|
+
* finding).
|
|
17
|
+
*
|
|
18
|
+
* `core/triage-lock.ts` and `external/org/beat-register-release-core.ts`
|
|
19
|
+
* are two OTHER `proper-lockfile` call sites nearby that are deliberately
|
|
20
|
+
* NOT wired to this module (doubt-review finding) — do not migrate them
|
|
21
|
+
* for "consistency": `triage-lock.ts` sets `lockfilePath` on purpose (to
|
|
22
|
+
* dodge a Python-owned sidecar lock), which `claimRecordLockOptions` would
|
|
23
|
+
* silently strip; `beat-register-release-core.ts` hand-mirrors a
|
|
24
|
+
* DIFFERENT leadwright contract (`lib/file-locks.ts`) with its own
|
|
25
|
+
* deliberately much longer `stale: 300_000`, and folding it into this
|
|
26
|
+
* module would silently shrink that window 30x.
|
|
27
|
+
*
|
|
28
|
+
* The contract itself is vendored, byte-for-byte, at
|
|
29
|
+
* `../vendor/leadwright/claim-record-lock-contract.json` — a copy of
|
|
30
|
+
* leadwright's `schemas/claim-record-lock-contract.json` (generated there
|
|
31
|
+
* from `lib/claim-contract.ts`'s `CLAIM_RECORD_LOCK_CONTRACT`, leadwright
|
|
32
|
+
* PR #55, commit 3d24a46). This repo has no build-time or runtime
|
|
33
|
+
* dependency on the leadwright checkout — the vendored copy is the whole
|
|
34
|
+
* of the coupling, and it is deliberately weak: nothing here fails loud
|
|
35
|
+
* when leadwright bumps `contractVersion`. `claim-record-lock.test.ts`
|
|
36
|
+
* pins today's `contractVersion` (1) against the vendored file, so a
|
|
37
|
+
* future re-copy that changes the value fails that pin until a human
|
|
38
|
+
* reviews the bump and updates it deliberately — the same ratchet shape
|
|
39
|
+
* this repo already uses for the Semgrep suppression set (CLAUDE.md rule
|
|
40
|
+
* 31). Short of that: re-copying the file is a human's job, on being told
|
|
41
|
+
* (by leadwright's own changelog, an ADR, or this comment) that the
|
|
42
|
+
* upstream contract changed. Do not add a script or CI job that fetches
|
|
43
|
+
* it live — that would be the cross-repo build dependency the iterate
|
|
44
|
+
* spec for this change explicitly rules out.
|
|
45
|
+
*/
|
|
46
|
+
import { readFileSync } from "node:fs";
|
|
47
|
+
import { dirname, join } from "node:path";
|
|
48
|
+
import { fileURLToPath } from "node:url";
|
|
49
|
+
import * as lockfile from "proper-lockfile";
|
|
50
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
51
|
+
const vendoredContractPath = join(here, "..", "vendor", "leadwright", "claim-record-lock-contract.json");
|
|
52
|
+
let vendoredContract;
|
|
53
|
+
try {
|
|
54
|
+
vendoredContract = JSON.parse(readFileSync(vendoredContractPath, "utf-8"));
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
// Named explicitly (external review finding): a missing/malformed
|
|
58
|
+
// vendored copy would otherwise surface as an opaque ENOENT/JSON-parse
|
|
59
|
+
// error at whichever entry point first imports this module.
|
|
60
|
+
throw new Error(`claim-record-lock.ts: failed to read the vendored FR-04.28 contract at ` +
|
|
61
|
+
`${vendoredContractPath} — ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
62
|
+
}
|
|
63
|
+
export const CLAIM_RECORD_LOCK_CONTRACT = {
|
|
64
|
+
contractVersion: vendoredContract.contractVersion,
|
|
65
|
+
lockPathSuffix: vendoredContract.lockPathSuffix,
|
|
66
|
+
staleMs: vendoredContract.staleMs,
|
|
67
|
+
realpath: vendoredContract.realpath,
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* `proper-lockfile` options carrying the contract's `stale` / `realpath`
|
|
71
|
+
* fixings explicitly. Never sets `lockfilePath` — the lock marker must stay
|
|
72
|
+
* `proper-lockfile`'s own `<canonical-target>${lockPathSuffix}`, which is
|
|
73
|
+
* what a peer holding a different path string to the same file resolves to
|
|
74
|
+
* as well (contract `lockPathDescription`). Enforced structurally: an
|
|
75
|
+
* `extra.lockfilePath` is dropped rather than forwarded, so this invariant
|
|
76
|
+
* does not rely on every caller remembering not to pass one.
|
|
77
|
+
*/
|
|
78
|
+
export function claimRecordLockOptions(extra) {
|
|
79
|
+
const { lockfilePath: _dropped, ...rest } = extra;
|
|
80
|
+
return {
|
|
81
|
+
...rest,
|
|
82
|
+
stale: CLAIM_RECORD_LOCK_CONTRACT.staleMs,
|
|
83
|
+
realpath: CLAIM_RECORD_LOCK_CONTRACT.realpath,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Acquire a `proper-lockfile` lock on `path` under the FR-04.28 contract. */
|
|
87
|
+
export async function lockClaimRecordFile(path, retries = 3) {
|
|
88
|
+
return lockfile.lock(path, claimRecordLockOptions({ retries }));
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=claim-record-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-record-lock.js","sourceRoot":"","sources":["../../src/core/claim-record-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAS5C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,oBAAoB,GAAG,IAAI,CAC/B,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,iCAAiC,CAClC,CAAC;AAEF,IAAI,gBAAiD,CAAC;AACtD,IAAI,CAAC;IACH,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAC3B,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CACT,CAAC;AACvC,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,kEAAkE;IAClE,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,IAAI,KAAK,CACb,yEAAyE;QACvE,GAAG,oBAAoB,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACjF,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAoC;IACzE,eAAe,EAAE,gBAAgB,CAAC,eAAe;IACjD,cAAc,EAAE,gBAAgB,CAAC,cAAc;IAC/C,OAAO,EAAE,gBAAgB,CAAC,OAAO;IACjC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;CACpC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAQ;IAER,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAuC,CAAC;IACpF,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,0BAA0B,CAAC,OAAO;QACzC,QAAQ,EAAE,0BAA0B,CAAC,QAAQ;KAC9C,CAAC;AACJ,CAAC;AASD,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,UAAoC,CAAC;IAErC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { treeKill as realTreeKill } from "./preview-child-lifecycle.js";
|
|
3
|
+
export interface CliChildSpawnResult {
|
|
4
|
+
code: number;
|
|
5
|
+
stdout: string;
|
|
6
|
+
stderr: string;
|
|
7
|
+
spawnError?: string;
|
|
8
|
+
}
|
|
9
|
+
export type CliChildSpawnFn = (bin: string, args: string[], options: {
|
|
10
|
+
timeoutMs: number;
|
|
11
|
+
env: NodeJS.ProcessEnv;
|
|
12
|
+
}) => Promise<CliChildSpawnResult>;
|
|
13
|
+
export interface CliChildSpawnDeps {
|
|
14
|
+
/** Injected for tests — a fake `spawn`. */
|
|
15
|
+
spawnFn?: typeof spawn;
|
|
16
|
+
/** Injected for tests — a fake `treeKill`. */
|
|
17
|
+
treeKillFn?: typeof realTreeKill;
|
|
18
|
+
/** Injected for tests — overrides `process.platform`. */
|
|
19
|
+
platform?: NodeJS.Platform;
|
|
20
|
+
}
|
|
21
|
+
/** Tree-kill every currently in-flight CLI child. Best-effort, synchronous
|
|
22
|
+
* (matches `PreviewSessionManager.killAll()` / `PtyManager.killAll()`).
|
|
23
|
+
* `treeKillFn` is injectable — tests exercise the registry without a real
|
|
24
|
+
* platform-dependent `taskkill`/`process.kill` side effect. */
|
|
25
|
+
export declare function killAllTrackedCliChildren(treeKillFn?: typeof realTreeKill): void;
|
|
26
|
+
export declare function createCliChildSpawn(deps?: CliChildSpawnDeps): CliChildSpawnFn;
|
|
27
|
+
export declare const defaultCliChildSpawn: CliChildSpawnFn;
|
|
28
|
+
//# sourceMappingURL=cli-child-spawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-child-spawn.d.ts","sourceRoot":"","sources":["../../src/core/cli-child-spawn.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAIxE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,KACnD,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,YAAY,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAUD;;;gEAGgE;AAChE,wBAAgB,yBAAyB,CAAC,UAAU,GAAE,OAAO,YAA2B,GAAG,IAAI,CAS9F;AAgBD,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,iBAAsB,GAAG,eAAe,CAuEjF;AAED,eAAO,MAAM,oBAAoB,EAAE,eAAuC,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* cli-child-spawn.ts — shared spawn wrapper for the short-lived CLI
|
|
3
|
+
* bridges (`triage-cli-runner.ts`, `codex-oracle-runner.ts`). Both wrap
|
|
4
|
+
* `uv run --no-project --python ">=3.11" <script>` and previously carried
|
|
5
|
+
* byte-identical `execFile(..., { timeout }, cb)` implementations —
|
|
6
|
+
* factored out here so a fix lands once instead of twice, and so the two
|
|
7
|
+
* copies can't re-diverge.
|
|
8
|
+
*
|
|
9
|
+
* Required-CI PR-review finding on PR #466: `execFile`'s own `timeout`
|
|
10
|
+
* option only signals the IMMEDIATE child (`uv`); if `uv run` has already
|
|
11
|
+
* forked a Python grandchild by the time it fires, Node does not reap that
|
|
12
|
+
* grandchild on Windows. Accepted as low-severity for triage-cli-runner.ts
|
|
13
|
+
* (fires only on a user click) but NOT for codex-oracle-runner.ts, which
|
|
14
|
+
* fires every 60s per stalled task indefinitely — the same theoretical gap
|
|
15
|
+
* at a much higher exposure rate. Fixed here by driving our OWN timer that
|
|
16
|
+
* tree-kills the whole process group instead of relying on Node's
|
|
17
|
+
* single-process kill — reusing `preview-child-lifecycle.ts`'s `treeKill`
|
|
18
|
+
* (win32 `taskkill /t /f`, POSIX `kill(-pid)`) rather than adding the
|
|
19
|
+
* `tree-kill` npm package, which `decision_log.md` records as a
|
|
20
|
+
* deliberately pruned dependency.
|
|
21
|
+
*
|
|
22
|
+
* `execFile` is replaced with `spawn` (matching `preview-session-manager.
|
|
23
|
+
* ts`'s own spawn call) because `execFile`'s TypeScript surface has no
|
|
24
|
+
* `detached` option at all — and `detached: platform !== "win32"` is
|
|
25
|
+
* load-bearing, not incidental: POSIX `treeKill` signals the process
|
|
26
|
+
* GROUP via a negative pid, which only exists if the child led its own
|
|
27
|
+
* group at spawn time. Without it `kill(-pid)` ESRCHes and silently
|
|
28
|
+
* degrades to a single-process kill — the exact case this module exists
|
|
29
|
+
* to close. stdout/stderr are accumulated manually and truncated (not
|
|
30
|
+
* errored) past the 1MB cap — a truncated JSON payload still fails the
|
|
31
|
+
* caller's `JSON.parse` the same way an old `maxBuffer` error used to,
|
|
32
|
+
* without adding a distinct overflow error path to keep in sync.
|
|
33
|
+
*
|
|
34
|
+
* `error.killed` is NOT how a timeout is detected here (unlike the old
|
|
35
|
+
* per-file implementations) — our tree-kill goes around `child.kill()`
|
|
36
|
+
* entirely (an external `taskkill` process, or a raw `process.kill(-pid)`),
|
|
37
|
+
* so `ChildProcess#killed` never flips true for it. An explicit `timedOut`
|
|
38
|
+
* flag, set the instant our timer fires, is the only correct signal.
|
|
39
|
+
*/
|
|
40
|
+
import { spawn } from "node:child_process";
|
|
41
|
+
import { treeKill as realTreeKill } from "./preview-child-lifecycle.js";
|
|
42
|
+
const MAX_BUFFER_CHARS = 1024 * 1024;
|
|
43
|
+
// Every real child this process has spawned via `createCliChildSpawn` and
|
|
44
|
+
// has not yet seen exit — index.ts's shutdown() tree-kills whatever remains
|
|
45
|
+
// here, mirroring the existing `previewManager.killAll()` / `ptyManager.
|
|
46
|
+
// killAll()` precedent (a stalled-task tick can leave one in flight; the
|
|
47
|
+
// 30s-per-call timeout alone is not a shutdown guarantee, since a hard
|
|
48
|
+
// process.exit() can fire well inside that window).
|
|
49
|
+
const trackedChildren = new Set();
|
|
50
|
+
/** Tree-kill every currently in-flight CLI child. Best-effort, synchronous
|
|
51
|
+
* (matches `PreviewSessionManager.killAll()` / `PtyManager.killAll()`).
|
|
52
|
+
* `treeKillFn` is injectable — tests exercise the registry without a real
|
|
53
|
+
* platform-dependent `taskkill`/`process.kill` side effect. */
|
|
54
|
+
export function killAllTrackedCliChildren(treeKillFn = realTreeKill) {
|
|
55
|
+
for (const child of trackedChildren) {
|
|
56
|
+
try {
|
|
57
|
+
treeKillFn(child, "SIGKILL");
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// best-effort — nothing more to do for an already-dead child
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
trackedChildren.clear();
|
|
64
|
+
}
|
|
65
|
+
function appendBounded(current, chunk) {
|
|
66
|
+
const next = current + chunk;
|
|
67
|
+
return next.length > MAX_BUFFER_CHARS ? next.slice(0, MAX_BUFFER_CHARS) : next;
|
|
68
|
+
}
|
|
69
|
+
// Local PR-review preflight finding, round 2 (PR #466): the tree-kill call
|
|
70
|
+
// on timeout is fire-and-forget — an external `taskkill` process (win32) or
|
|
71
|
+
// a raw `process.kill(-pid)` (POSIX) — and neither GUARANTEES a `close`
|
|
72
|
+
// event follows (an unresponsive process, a `taskkill` that itself failed
|
|
73
|
+
// silently). Without a second bound, a failed kill would leave the
|
|
74
|
+
// returned promise pending and the child in `trackedChildren` forever,
|
|
75
|
+
// defeating the "bounded" half of "bounded/reaped subprocess strategy".
|
|
76
|
+
const KILL_GRACE_MS = 5000;
|
|
77
|
+
export function createCliChildSpawn(deps = {}) {
|
|
78
|
+
const spawnFn = deps.spawnFn ?? spawn;
|
|
79
|
+
const treeKillFn = deps.treeKillFn ?? realTreeKill;
|
|
80
|
+
const platform = deps.platform ?? process.platform;
|
|
81
|
+
return (bin, args, options) => new Promise((resolve) => {
|
|
82
|
+
let timedOut = false;
|
|
83
|
+
let settled = false;
|
|
84
|
+
let stdout = "";
|
|
85
|
+
let stderr = "";
|
|
86
|
+
let timer;
|
|
87
|
+
let killGraceTimer;
|
|
88
|
+
const child = spawnFn(bin, args, {
|
|
89
|
+
windowsHide: true,
|
|
90
|
+
env: options.env,
|
|
91
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
92
|
+
// See module header — spawn/kill must agree on whether a
|
|
93
|
+
// process group exists.
|
|
94
|
+
detached: platform !== "win32",
|
|
95
|
+
});
|
|
96
|
+
trackedChildren.add(child);
|
|
97
|
+
child.stdout?.setEncoding("utf-8");
|
|
98
|
+
child.stderr?.setEncoding("utf-8");
|
|
99
|
+
child.stdout?.on("data", (chunk) => {
|
|
100
|
+
stdout = appendBounded(stdout, chunk);
|
|
101
|
+
});
|
|
102
|
+
child.stderr?.on("data", (chunk) => {
|
|
103
|
+
stderr = appendBounded(stderr, chunk);
|
|
104
|
+
});
|
|
105
|
+
const finish = (result) => {
|
|
106
|
+
if (settled)
|
|
107
|
+
return;
|
|
108
|
+
settled = true;
|
|
109
|
+
clearTimeout(timer);
|
|
110
|
+
if (killGraceTimer)
|
|
111
|
+
clearTimeout(killGraceTimer);
|
|
112
|
+
trackedChildren.delete(child);
|
|
113
|
+
resolve(result);
|
|
114
|
+
};
|
|
115
|
+
child.once("error", (err) => {
|
|
116
|
+
finish({
|
|
117
|
+
code: -1,
|
|
118
|
+
stdout,
|
|
119
|
+
stderr,
|
|
120
|
+
spawnError: typeof err.code === "string" ? err.code : "spawn_error",
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
child.once("close", (code) => {
|
|
124
|
+
if (timedOut)
|
|
125
|
+
return finish({ code: 124, stdout, stderr, spawnError: "timeout" });
|
|
126
|
+
return finish({ code: code ?? 1, stdout, stderr });
|
|
127
|
+
});
|
|
128
|
+
timer = setTimeout(() => {
|
|
129
|
+
timedOut = true;
|
|
130
|
+
try {
|
|
131
|
+
treeKillFn(child, "SIGKILL", { platform });
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// best-effort — the grace timer below bounds the promise
|
|
135
|
+
// regardless of whether the kill itself threw or was ignored.
|
|
136
|
+
}
|
|
137
|
+
killGraceTimer = setTimeout(() => {
|
|
138
|
+
finish({ code: 124, stdout, stderr, spawnError: "timeout" });
|
|
139
|
+
}, KILL_GRACE_MS);
|
|
140
|
+
killGraceTimer.unref?.();
|
|
141
|
+
}, options.timeoutMs);
|
|
142
|
+
timer.unref?.();
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
export const defaultCliChildSpawn = createCliChildSpawn();
|
|
146
|
+
//# sourceMappingURL=cli-child-spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-child-spawn.js","sourceRoot":"","sources":["../../src/core/cli-child-spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type RunFn } from "./readiness-probe-run.js";
|
|
2
|
+
export interface CodexModelCatalogEntry {
|
|
3
|
+
slug: string;
|
|
4
|
+
display_name: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CodexModelsProbeResult {
|
|
7
|
+
ok: boolean;
|
|
8
|
+
models: CodexModelCatalogEntry[];
|
|
9
|
+
}
|
|
10
|
+
export interface CodexModelsProbeDeps {
|
|
11
|
+
run?: RunFn;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Run `codex debug models` and reduce its raw catalog (which also carries
|
|
15
|
+
* per-model reasoning-level metadata and multi-KB prompt text this codebase
|
|
16
|
+
* has no use for) down to the `{slug, display_name}` pairs a launch-form
|
|
17
|
+
* combobox needs. Never throws.
|
|
18
|
+
*
|
|
19
|
+
* Filters to entries that are objects with a `slug` matching the existing
|
|
20
|
+
* `CODEX_MODEL_SLUG_PATTERN` (the same syntactic gate `parse-body.ts` applies
|
|
21
|
+
* to a launch request — imported directly here since this is an intra-server
|
|
22
|
+
* import, not the cross-package case DO-NOT #7 forbids) and a non-empty
|
|
23
|
+
* string `display_name`, with `visibility === "list"` (excludes
|
|
24
|
+
* internal/reserved entries like `codex-auto-review`). A single malformed
|
|
25
|
+
* entry is dropped, not fatal to the rest of the list — this is untrusted
|
|
26
|
+
* external-process output whose shape this codebase does not control.
|
|
27
|
+
* (external review fix, both reviewers, 2026-09-19 architecture review.)
|
|
28
|
+
*
|
|
29
|
+
* Gates on `result.code === 0`, NOT `result.ok` — `readiness-probe-run.ts`'s
|
|
30
|
+
* shared `ok` heuristic (`!error && /\d+\.\d+/.test(stdout+stderr)`) was
|
|
31
|
+
* written for `--version` probes and requires a dotted version number
|
|
32
|
+
* somewhere in the output. A real catalog containing only integer-suffixed
|
|
33
|
+
* slugs (no dotted version anywhere in the JSON) would trip that heuristic to
|
|
34
|
+
* `false` despite a clean exit and fully valid JSON — exactly the false
|
|
35
|
+
* `unavailable` gap `RunResult.code`'s own doc comment already names `code`
|
|
36
|
+
* as the fix for (code-review finding, 2026-09-19). `code` can be `null` on
|
|
37
|
+
* ENOENT/timeout, hence the strict `=== 0`.
|
|
38
|
+
*
|
|
39
|
+
* De-duplicates on `slug`, first-wins — the CLI's own catalog shape is
|
|
40
|
+
* untrusted external-process output (same reasoning as the per-entry
|
|
41
|
+
* shape checks above), and a duplicate slug would otherwise reach the
|
|
42
|
+
* client as two `<option>`s sharing one React key (doubt-review finding,
|
|
43
|
+
* 2026-09-19).
|
|
44
|
+
*/
|
|
45
|
+
export declare function runCodexModelsProbe(deps: CodexModelsProbeDeps): Promise<CodexModelsProbeResult>;
|
|
46
|
+
//# sourceMappingURL=codex-models-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-models-probe.d.ts","sourceRoot":"","sources":["../../src/core/codex-models-probe.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAkB,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,KAAK,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmCrG"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* codex-models-probe — the "codex debug models" catalog PROBE
|
|
3
|
+
* (iterate-2026-09-19-codex-model-catalog, follow-up to shipwright#471/#473).
|
|
4
|
+
*
|
|
5
|
+
* Replaces the withdrawn hardcoded model-slug enum (shipwright#771) with a
|
|
6
|
+
* live probe of the Codex CLI's own catalog, so the New Iterate combobox
|
|
7
|
+
* never lags the provider's own model lineup. Reuses `defaultRunShim` from
|
|
8
|
+
* `readiness-probe-run.ts` — `codex` installs as a Windows `.cmd` PATHEXT
|
|
9
|
+
* shim (no `codex.exe`), which `execFile(cmd, args, {shell:false})` cannot
|
|
10
|
+
* invoke directly (see that module's own doc comment); `defaultRunShim`
|
|
11
|
+
* already solves this for the readiness probe's `codex --version` check, and
|
|
12
|
+
* this is the same binary.
|
|
13
|
+
*
|
|
14
|
+
* Runs with NO extra flags — deliberately not `--bundled` ("skip refresh,
|
|
15
|
+
* dump only the catalog shipped with this binary"): empirically, `--bundled`
|
|
16
|
+
* returns a visibly OLDER catalog (verified during this iterate's Confidence
|
|
17
|
+
* Calibration — missing a newly-listed model, carrying stale entries the
|
|
18
|
+
* refreshed call no longer lists). The whole point of this probe is to stay
|
|
19
|
+
* ahead of a hand-maintained list, so the default (refreshing) invocation is
|
|
20
|
+
* the only one that serves that goal.
|
|
21
|
+
*
|
|
22
|
+
* Verified during this iterate: `codex debug models` requires NO
|
|
23
|
+
* authentication (re-ran with an empty `CODEX_HOME` — no `auth.json` — and
|
|
24
|
+
* it still exited 0 with the full catalog), so this probe has no
|
|
25
|
+
* auth-specific degraded path to handle.
|
|
26
|
+
*/
|
|
27
|
+
import { CODEX_MODEL_SLUG_PATTERN } from "../external/launch/parse-body.js";
|
|
28
|
+
import { defaultRunShim } from "./readiness-probe-run.js";
|
|
29
|
+
/**
|
|
30
|
+
* Run `codex debug models` and reduce its raw catalog (which also carries
|
|
31
|
+
* per-model reasoning-level metadata and multi-KB prompt text this codebase
|
|
32
|
+
* has no use for) down to the `{slug, display_name}` pairs a launch-form
|
|
33
|
+
* combobox needs. Never throws.
|
|
34
|
+
*
|
|
35
|
+
* Filters to entries that are objects with a `slug` matching the existing
|
|
36
|
+
* `CODEX_MODEL_SLUG_PATTERN` (the same syntactic gate `parse-body.ts` applies
|
|
37
|
+
* to a launch request — imported directly here since this is an intra-server
|
|
38
|
+
* import, not the cross-package case DO-NOT #7 forbids) and a non-empty
|
|
39
|
+
* string `display_name`, with `visibility === "list"` (excludes
|
|
40
|
+
* internal/reserved entries like `codex-auto-review`). A single malformed
|
|
41
|
+
* entry is dropped, not fatal to the rest of the list — this is untrusted
|
|
42
|
+
* external-process output whose shape this codebase does not control.
|
|
43
|
+
* (external review fix, both reviewers, 2026-09-19 architecture review.)
|
|
44
|
+
*
|
|
45
|
+
* Gates on `result.code === 0`, NOT `result.ok` — `readiness-probe-run.ts`'s
|
|
46
|
+
* shared `ok` heuristic (`!error && /\d+\.\d+/.test(stdout+stderr)`) was
|
|
47
|
+
* written for `--version` probes and requires a dotted version number
|
|
48
|
+
* somewhere in the output. A real catalog containing only integer-suffixed
|
|
49
|
+
* slugs (no dotted version anywhere in the JSON) would trip that heuristic to
|
|
50
|
+
* `false` despite a clean exit and fully valid JSON — exactly the false
|
|
51
|
+
* `unavailable` gap `RunResult.code`'s own doc comment already names `code`
|
|
52
|
+
* as the fix for (code-review finding, 2026-09-19). `code` can be `null` on
|
|
53
|
+
* ENOENT/timeout, hence the strict `=== 0`.
|
|
54
|
+
*
|
|
55
|
+
* De-duplicates on `slug`, first-wins — the CLI's own catalog shape is
|
|
56
|
+
* untrusted external-process output (same reasoning as the per-entry
|
|
57
|
+
* shape checks above), and a duplicate slug would otherwise reach the
|
|
58
|
+
* client as two `<option>`s sharing one React key (doubt-review finding,
|
|
59
|
+
* 2026-09-19).
|
|
60
|
+
*/
|
|
61
|
+
export async function runCodexModelsProbe(deps) {
|
|
62
|
+
const run = deps.run ?? defaultRunShim;
|
|
63
|
+
let result;
|
|
64
|
+
try {
|
|
65
|
+
result = await run("codex", ["debug", "models"]);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// `defaultRunShim`/`defaultRun` never reject (execFile's callback always
|
|
69
|
+
// resolves a RunResult) — this guards a rejecting `run` override, so the
|
|
70
|
+
// "never throws" contract this docstring promises actually holds for any
|
|
71
|
+
// caller's `deps.run`, not just the two shipped implementations
|
|
72
|
+
// (external code-review finding, 2026-09-19).
|
|
73
|
+
return { ok: false, models: [] };
|
|
74
|
+
}
|
|
75
|
+
if (result.code !== 0)
|
|
76
|
+
return { ok: false, models: [] };
|
|
77
|
+
let parsed;
|
|
78
|
+
try {
|
|
79
|
+
parsed = JSON.parse(result.stdout);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return { ok: false, models: [] };
|
|
83
|
+
}
|
|
84
|
+
const rawModels = parsed?.models;
|
|
85
|
+
if (!Array.isArray(rawModels))
|
|
86
|
+
return { ok: false, models: [] };
|
|
87
|
+
const bySlug = new Map();
|
|
88
|
+
for (const entry of rawModels) {
|
|
89
|
+
if (!entry || typeof entry !== "object")
|
|
90
|
+
continue;
|
|
91
|
+
const { slug, display_name, visibility } = entry;
|
|
92
|
+
if (visibility !== "list")
|
|
93
|
+
continue;
|
|
94
|
+
if (typeof slug !== "string" || !CODEX_MODEL_SLUG_PATTERN.test(slug))
|
|
95
|
+
continue;
|
|
96
|
+
if (typeof display_name !== "string" || display_name.trim() === "")
|
|
97
|
+
continue;
|
|
98
|
+
if (!bySlug.has(slug))
|
|
99
|
+
bySlug.set(slug, { slug, display_name });
|
|
100
|
+
}
|
|
101
|
+
return { ok: true, models: [...bySlug.values()] };
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=codex-models-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-models-probe.js","sourceRoot":"","sources":["../../src/core/codex-models-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AAgBtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAA0B;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC;IACvC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,gEAAgE;QAChE,8CAA8C;QAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAExD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,SAAS,GAAI,MAAsC,EAAE,MAAM,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEhE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QAClD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAgC,CAAC;QAC5E,IAAI,UAAU,KAAK,MAAM;YAAE,SAAS;QACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/E,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAC7E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type RunFn } from "./readiness-probe.js";
|
|
2
|
+
export declare const CODEX_ORACLE_TIMEOUT_MS = 30000;
|
|
3
|
+
/** Verbatim mirror of `codex_completion_oracle.py`'s `verdict` field. */
|
|
4
|
+
export type OracleVerdict = "done" | "not_done" | "delivery_pending" | "no_oracle";
|
|
5
|
+
export interface OracleEvidence {
|
|
6
|
+
/**
|
|
7
|
+
* §5.1's correction — present only on an `iterate`-phase `delivery_pending`
|
|
8
|
+
* verdict. `"error"` = watch_pr_delivery.py's checks_failed/closed branch
|
|
9
|
+
* (a PR exists but its delivery failed — never re-poll forever). Absent or
|
|
10
|
+
* `"indeterminate"` = case 13 proper (CI/review/auto-merge still running,
|
|
11
|
+
* or the watcher itself produced no verdict) — safe to keep re-polling.
|
|
12
|
+
*/
|
|
13
|
+
delivery_state?: "error" | "indeterminate";
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface OracleResult {
|
|
17
|
+
verdict: OracleVerdict;
|
|
18
|
+
phase: string;
|
|
19
|
+
session: string;
|
|
20
|
+
evidence: OracleEvidence;
|
|
21
|
+
}
|
|
22
|
+
export type OracleOutcome = {
|
|
23
|
+
kind: "ok";
|
|
24
|
+
result: OracleResult;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "engine-unavailable";
|
|
27
|
+
reason: string;
|
|
28
|
+
repairCommand: string;
|
|
29
|
+
} | {
|
|
30
|
+
kind: "failed";
|
|
31
|
+
reason: string;
|
|
32
|
+
};
|
|
33
|
+
export interface OracleSpawnResult {
|
|
34
|
+
code: number;
|
|
35
|
+
stdout: string;
|
|
36
|
+
stderr: string;
|
|
37
|
+
spawnError?: string;
|
|
38
|
+
}
|
|
39
|
+
export type OracleSpawnFn = (bin: string, args: string[], options: {
|
|
40
|
+
timeoutMs: number;
|
|
41
|
+
env: NodeJS.ProcessEnv;
|
|
42
|
+
}) => Promise<OracleSpawnResult>;
|
|
43
|
+
export declare const defaultSpawnOracle: OracleSpawnFn;
|
|
44
|
+
export interface RunCodexOracleInput {
|
|
45
|
+
projectRoot: string;
|
|
46
|
+
phase: string;
|
|
47
|
+
session: string;
|
|
48
|
+
/** ISO-8601 with timezone — the §2.4 degradation-path floor. */
|
|
49
|
+
since?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface CodexOracleDeps {
|
|
52
|
+
run?: RunFn;
|
|
53
|
+
spawn?: OracleSpawnFn;
|
|
54
|
+
existsFn?: (p: string) => boolean;
|
|
55
|
+
homeDir?: string;
|
|
56
|
+
scriptOverride?: string;
|
|
57
|
+
timeoutMs?: number;
|
|
58
|
+
baseEnv?: NodeJS.ProcessEnv;
|
|
59
|
+
}
|
|
60
|
+
/** Resolve the single cache-owned oracle CLI shipped with the Shipwright runtime. */
|
|
61
|
+
export declare function resolveCodexOracleScript(deps?: Pick<CodexOracleDeps, "existsFn" | "homeDir" | "scriptOverride">): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* Run `codex_completion_oracle.py --project-root <root> --phase <p>
|
|
64
|
+
* --session <sid> [--since <iso>]` and parse its JSON verdict. Never
|
|
65
|
+
* throws for an oracle failure — only a programming error would reject.
|
|
66
|
+
*/
|
|
67
|
+
export declare function runCodexOracle(input: RunCodexOracleInput, deps?: CodexOracleDeps): Promise<OracleOutcome>;
|
|
68
|
+
//# sourceMappingURL=codex-oracle-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-oracle-runner.d.ts","sourceRoot":"","sources":["../../src/core/codex-oracle-runner.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAiD,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGjG,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,kBAAkB,GAAG,WAAW,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,KACnD,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEhC,eAAO,MAAM,kBAAkB,EAAE,aAAoC,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAC7B;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CACtC,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB,CAAM,GAC1E,MAAM,GAAG,IAAI,CAWf;AAQD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,aAAa,CAAC,CAuExB"}
|