@svenroth-ai/shipwright 0.26.0 → 0.28.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/assets/{EmbeddedTerminal-D3wpPNZP.js → EmbeddedTerminal-4xgNUBUu.js} +19 -19
- package/client/dist/assets/{abnfDiagram-VRR7QNED-BkLIltB3.js → abnfDiagram-VRR7QNED-BdCNbaqc.js} +1 -1
- package/client/dist/assets/{arc-Sw-Gh0nI.js → arc-DoZTTE1N.js} +1 -1
- package/client/dist/assets/{architectureDiagram-ZJ3FMSHR-rdxUi9Ks.js → architectureDiagram-ZJ3FMSHR-DFTG4KtO.js} +1 -1
- package/client/dist/assets/{blockDiagram-677ZJIJ3-Ch_9dj8a.js → blockDiagram-677ZJIJ3-C34UBjOB.js} +1 -1
- package/client/dist/assets/{c4Diagram-LMCZKHZV-CkFlO65x.js → c4Diagram-LMCZKHZV-CbqAB1Ou.js} +1 -1
- package/client/dist/assets/channel-DBcZw7Kn.js +1 -0
- package/client/dist/assets/{chunk-2Q5K7J3B-CypX83xu.js → chunk-2Q5K7J3B-4N6AnmBJ.js} +1 -1
- package/client/dist/assets/{chunk-32BRIVSS-DxVLYGdl.js → chunk-32BRIVSS-Cs67LiCy.js} +1 -1
- package/client/dist/assets/{chunk-5VM5RSS4-Cxk1evhx.js → chunk-5VM5RSS4-Bwd7rtD3.js} +1 -1
- package/client/dist/assets/{chunk-EX3LRPZG-n9q5S4yJ.js → chunk-EX3LRPZG-CQqGfptD.js} +1 -1
- package/client/dist/assets/{chunk-JWPE2WC7-jeL4xvir.js → chunk-JWPE2WC7-ClvKd4PN.js} +1 -1
- package/client/dist/assets/{chunk-MOJQB5TN-DDSHN0cj.js → chunk-MOJQB5TN-Cwvj8GE1.js} +1 -1
- package/client/dist/assets/{chunk-RYQCIY6F-C0bo383g.js → chunk-RYQCIY6F-DrWMx37d.js} +1 -1
- package/client/dist/assets/{chunk-V7JOEXUC-C0jDXXAU.js → chunk-V7JOEXUC-CYFfa4PY.js} +1 -1
- package/client/dist/assets/{chunk-VR4S4FIN-h-Rr4Pn2.js → chunk-VR4S4FIN-B5eWtesm.js} +1 -1
- package/client/dist/assets/{chunk-XXDRQBXY-BexSo0-s.js → chunk-XXDRQBXY-BQAZ6Our.js} +1 -1
- package/client/dist/assets/classDiagram-OUVF2IWQ-C3Q1V9DU.js +1 -0
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-C3Q1V9DU.js +1 -0
- package/client/dist/assets/{cose-bilkent-JH36ORCC-BQXzaioj.js → cose-bilkent-JH36ORCC-C76Yia6h.js} +1 -1
- package/client/dist/assets/{cynefin-VYW2F7L2-BJIofhfe.js → cynefin-VYW2F7L2-pJe7rdTi.js} +1 -1
- package/client/dist/assets/{cynefinDiagram-TSTJHNR4-DmPqTM1T.js → cynefinDiagram-TSTJHNR4-EeHQ7dYV.js} +1 -1
- package/client/dist/assets/{dagre-VKFMJZFB-1xljvw6X.js → dagre-VKFMJZFB-VXOY6IHR.js} +1 -1
- package/client/dist/assets/{diagram-FQU43EPY-iyL9muCG.js → diagram-FQU43EPY-DW_-leqw.js} +1 -1
- package/client/dist/assets/{diagram-G47NLZAW-DREp2Th6.js → diagram-G47NLZAW-C_hsLD4u.js} +1 -1
- package/client/dist/assets/{diagram-NH7WQ7WH-h0X3Is2S.js → diagram-NH7WQ7WH-CbeQuO_f.js} +1 -1
- package/client/dist/assets/{diagram-OA4YK3LP-Bj8YZRFJ.js → diagram-OA4YK3LP-DRHY5d_c.js} +1 -1
- package/client/dist/assets/{diagram-WEI45ONY-BZOf805d.js → diagram-WEI45ONY-B87OYR_S.js} +1 -1
- package/client/dist/assets/{ebnfDiagram-CCIWWBDH-DO5JnXda.js → ebnfDiagram-CCIWWBDH-B8Z8WHF6.js} +1 -1
- package/client/dist/assets/{erDiagram-Q63AITRT-DRgcqg1T.js → erDiagram-Q63AITRT-DaD7oa9H.js} +1 -1
- package/client/dist/assets/{flowDiagram-23GEKE2U-C3J9QmrW.js → flowDiagram-23GEKE2U-GrMVpsea.js} +1 -1
- package/client/dist/assets/{ganttDiagram-NO4QXBWP-BIEl3Tkm.js → ganttDiagram-NO4QXBWP-K3X0DYBa.js} +1 -1
- package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-BNF0tFWC.js → gitGraphDiagram-IHSO6WYX-B2SEx0xa.js} +1 -1
- package/client/dist/assets/index-CIpLt0ie.js +863 -0
- package/client/dist/assets/index-DGtnTeFd.css +1 -0
- package/client/dist/assets/{infoDiagram-FWYZ7A6U-DEyFxiyY.js → infoDiagram-FWYZ7A6U-Fi8fQ95G.js} +1 -1
- package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-B_ehlg3I.js → ishikawaDiagram-FXEZZL3T-CrN7QJzt.js} +1 -1
- package/client/dist/assets/{journeyDiagram-5HDEW3XC-Dp00FyJS.js → journeyDiagram-5HDEW3XC-XHIsl7rM.js} +1 -1
- package/client/dist/assets/{kanban-definition-HUTT4EX6-CTAf16q8.js → kanban-definition-HUTT4EX6-A6HJqHw7.js} +1 -1
- package/client/dist/assets/{linear-9vNUgmYd.js → linear-D1vF9IQB.js} +1 -1
- package/client/dist/assets/{mermaid.core-A6tjaEVD.js → mermaid.core-D6w9zlA0.js} +4 -4
- package/client/dist/assets/{mindmap-definition-LN4V7U3C-DRW3bmCY.js → mindmap-definition-LN4V7U3C-CxRkUj6Z.js} +1 -1
- package/client/dist/assets/{pegDiagram-2B236MQR-DJFCjHp2.js → pegDiagram-2B236MQR-Bs9dp-8a.js} +1 -1
- package/client/dist/assets/{pieDiagram-ENE6RG2P-KRd-sGvC.js → pieDiagram-ENE6RG2P-DBWILzB8.js} +1 -1
- package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-9TLZE3Hu.js → quadrantDiagram-ABIIQ3AL-DrCVJJx6.js} +1 -1
- package/client/dist/assets/{railroadDiagram-RFXS5EU6-y4tLtjXg.js → railroadDiagram-RFXS5EU6-BdPW2dNf.js} +1 -1
- package/client/dist/assets/{requirementDiagram-TGXJPOKE-B9EOQDQM.js → requirementDiagram-TGXJPOKE-Bj_g3tC5.js} +1 -1
- package/client/dist/assets/{sankeyDiagram-HTMAVEWB-zfwiDzkT.js → sankeyDiagram-HTMAVEWB-BGL9NnsS.js} +1 -1
- package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-DW1LWepL.js → sequenceDiagram-DBY2YBRQ-DEirxTZY.js} +1 -1
- package/client/dist/assets/{sizeCapture-X5ZJPWSS-BM81Mik0.js → sizeCapture-X5ZJPWSS-BtLrvrea.js} +1 -1
- package/client/dist/assets/{stateDiagram-2N3HPSRC-D0EMIw1w.js → stateDiagram-2N3HPSRC-D3GXIouX.js} +1 -1
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-D3lXe_mJ.js +1 -0
- package/client/dist/assets/{swimlanes-5IMT3BWC-CKXNCX6M.js → swimlanes-5IMT3BWC-PMRQzNhU.js} +2 -2
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-DMLbRFiO.js +8 -0
- package/client/dist/assets/{timeline-definition-FHXFAJF6-ByzIfvL5.js → timeline-definition-FHXFAJF6-CnBKJtD_.js} +1 -1
- package/client/dist/assets/{vennDiagram-L72KCM5P-Xep38xBH.js → vennDiagram-L72KCM5P-BYmiJYoh.js} +1 -1
- package/client/dist/assets/{wardleyDiagram-EHGQE667-DKWDpx6g.js → wardleyDiagram-EHGQE667-DU7vW8q3.js} +1 -1
- package/client/dist/assets/{xychartDiagram-FW5EYKEG-BGcwZTnu.js → xychartDiagram-FW5EYKEG-BEtPvBSU.js} +1 -1
- package/client/dist/index.html +2 -2
- package/lib/preflight.mjs +24 -5
- package/lib/probes.mjs +10 -4
- package/lib/server.mjs +149 -12
- package/lib/util.mjs +5 -1
- package/package.json +1 -1
- 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 +1 -0
- package/server/dist/config.js.map +1 -1
- 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/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/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-merge.d.ts +19 -0
- package/server/dist/core/sdk-sessions-merge.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-merge.js +19 -5
- package/server/dist/core/sdk-sessions-merge.js.map +1 -1
- package/server/dist/core/sdk-sessions-refresh.d.ts +50 -0
- package/server/dist/core/sdk-sessions-refresh.d.ts.map +1 -0
- package/server/dist/core/sdk-sessions-refresh.js +69 -0
- package/server/dist/core/sdk-sessions-refresh.js.map +1 -0
- package/server/dist/core/sdk-sessions-store.d.ts +48 -0
- package/server/dist/core/sdk-sessions-store.d.ts.map +1 -1
- package/server/dist/core/sdk-sessions-store.js +8 -9
- 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/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/shipwright-plugin-version-reader.d.ts +15 -0
- package/server/dist/core/shipwright-plugin-version-reader.d.ts.map +1 -0
- package/server/dist/core/shipwright-plugin-version-reader.js +49 -0
- package/server/dist/core/shipwright-plugin-version-reader.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/create-external-routes-args.d.ts +122 -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 +2 -25
- 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/_lead.d.ts +23 -0
- package/server/dist/external/inbox/_lead.d.ts.map +1 -0
- package/server/dist/external/inbox/_lead.js +83 -0
- package/server/dist/external/inbox/_lead.js.map +1 -0
- package/server/dist/external/inbox/_types.d.ts +55 -0
- package/server/dist/external/inbox/_types.d.ts.map +1 -0
- package/server/dist/external/inbox/_types.js +13 -0
- package/server/dist/external/inbox/_types.js.map +1 -0
- 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 +43 -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 +35 -1
- 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 +51 -0
- package/server/dist/external/launch/claim-holder-gate.d.ts.map +1 -0
- package/server/dist/external/launch/claim-holder-gate.js +95 -0
- package/server/dist/external/launch/claim-holder-gate.js.map +1 -0
- 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 +99 -128
- 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/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/lead-question-threads.d.ts +46 -0
- package/server/dist/external/org/lead-question-threads.d.ts.map +1 -0
- package/server/dist/external/org/lead-question-threads.js +132 -0
- package/server/dist/external/org/lead-question-threads.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 +11 -0
- package/server/dist/external/org/mount.d.ts.map +1 -1
- package/server/dist/external/org/mount.js +7 -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/usage.d.ts.map +1 -1
- package/server/dist/external/org/usage.js +20 -2
- package/server/dist/external/org/usage.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/routes.d.ts +3 -101
- package/server/dist/external/routes.d.ts.map +1 -1
- package/server/dist/external/routes.js +12 -3
- package/server/dist/external/routes.js.map +1 -1
- package/server/dist/external/tasks/create.d.ts.map +1 -1
- package/server/dist/external/tasks/create.js +8 -0
- 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 +61 -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 +111 -44
- 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/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 +27 -0
- package/server/dist/routes/diagnostics.d.ts.map +1 -1
- package/server/dist/routes/diagnostics.js +5 -1
- 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-threads-composite.d.ts +24 -0
- package/server/dist/routes/org-threads-composite.d.ts.map +1 -0
- package/server/dist/routes/org-threads-composite.js +51 -0
- package/server/dist/routes/org-threads-composite.js.map +1 -0
- 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 +14 -0
- package/server/dist/routes/org.d.ts.map +1 -1
- package/server/dist/routes/org.js +63 -47
- package/server/dist/routes/org.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/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/pty-manager.d.ts +37 -1
- package/server/dist/terminal/pty-manager.d.ts.map +1 -1
- package/server/dist/terminal/pty-manager.js +33 -3
- package/server/dist/terminal/pty-manager.js.map +1 -1
- package/server/dist/terminal/pty-write-chunker.d.ts +109 -0
- package/server/dist/terminal/pty-write-chunker.d.ts.map +1 -0
- package/server/dist/terminal/pty-write-chunker.js +234 -0
- package/server/dist/terminal/pty-write-chunker.js.map +1 -0
- package/server/dist/terminal/routes.d.ts.map +1 -1
- package/server/dist/terminal/routes.js +9 -0
- 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 +76 -6
- package/server/dist/types/org.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/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 +1 -1
- package/client/dist/assets/channel-BYPbLjRl.js +0 -1
- package/client/dist/assets/classDiagram-OUVF2IWQ-CsFIeTju.js +0 -1
- package/client/dist/assets/classDiagram-v2-EOCWNBFH-CsFIeTju.js +0 -1
- package/client/dist/assets/index-BnTOrFHb.js +0 -829
- package/client/dist/assets/index-CYPc6qxw.css +0 -1
- package/client/dist/assets/stateDiagram-v2-6OUMAXLB-B3E4_xxT.js +0 -1
- package/client/dist/assets/swimlanesDiagram-G3AALYLV-BegQBqnC.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-chokepoint.d.ts","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,oBAAoB,GAAG,SAAS,GAClD,oBAAoB,GAAG,SAAS,CAElC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG5D;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAErE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,gBAAgB,EACxB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAGT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,gBAAgB,EACxB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAMT;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI/B,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC;;;uEAGmE;IACnE,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;yDACqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD;qEACiE;IACjE,8BAA8B,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;uEACmE;IACnE,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACnD;;uFAEmF;IACnF,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7F,GAAG,OAAO,CAAC,mBAAmB,GAAG,wBAAwB,CAAC,CA2F1D"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* external/launch/runtime-chokepoint.ts — Codex Light §2.1's ONE chokepoint
|
|
3
|
+
* for the main `/launch` route, plus §3.5/AC9's new-pipeline block.
|
|
4
|
+
*
|
|
5
|
+
* Called from `routes.ts` right after branch 4's fallback assigns
|
|
6
|
+
* `commands`/`taskUpdate` and BEFORE `commandsCarryPermissionPerimeter`.
|
|
7
|
+
* `task` (already loaded), `parsed` (the parsed launch body) and
|
|
8
|
+
* `getProjectById` are already in scope there.
|
|
9
|
+
*
|
|
10
|
+
* `POST /tasks/:id/fork` does NOT share this chokepoint — it calls
|
|
11
|
+
* `buildCopyCommands`/`buildCodexCommands`/`buildCodextenderCommands`
|
|
12
|
+
* directly in `external/tasks/fork.ts` (§2.1's correction). Both import
|
|
13
|
+
* `runtimeForTask` from here so the two insertion points agree on what
|
|
14
|
+
* "this task's runtime" means.
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync } from "node:fs";
|
|
17
|
+
import path from "node:path";
|
|
18
|
+
import { probeCodextenderLiveness, resolveCodextenderMaxContextTokens, } from "../../core/codextender-proxy-probe.js";
|
|
19
|
+
import { buildCodexCommands } from "../../core/launcher-codex.js";
|
|
20
|
+
import { resolveCodextenderAuthToken } from "../../core/launcher-codextender.js";
|
|
21
|
+
import { defaultRunShim } from "../../core/readiness-probe-run.js";
|
|
22
|
+
import { applyCodextenderChokepoint } from "./runtime-chokepoint-codextender.js";
|
|
23
|
+
import { codexCliNotFoundError } from "./runtime-chokepoint-errors.js";
|
|
24
|
+
/**
|
|
25
|
+
* Plan-review HIGH fix (iterate-2026-09-23) — pin to the task's OWN stamped
|
|
26
|
+
* mode once one exists, falling back to the live global setting only on a
|
|
27
|
+
* task's very first Codex-runtime launch. Without this, a Resume straddling
|
|
28
|
+
* a post-first-launch mode flip would silently switch mechanisms mid-session
|
|
29
|
+
* (e.g. discard a real `codex` thread's history for a Codextender relaunch).
|
|
30
|
+
* Pure/IO-free so `routes.ts` can unit-test the choice directly.
|
|
31
|
+
*/
|
|
32
|
+
export function resolveCodexIntegrationModeForLaunch(task, liveGlobalSetting) {
|
|
33
|
+
return task.codexIntegrationMode ?? liveGlobalSetting;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* AC8 — "a task launched with a runtime whose CLI isn't installed fails at
|
|
37
|
+
* launch time with one actionable message ... independent of the readiness
|
|
38
|
+
* probe's own gate" (Spec/codex-light-webui.md §5.9, lines 789-792). The
|
|
39
|
+
* per-task toggle means readiness can no longer treat either CLI as globally
|
|
40
|
+
* required (the readiness fix lives in readiness-probe.ts), so THIS is where
|
|
41
|
+
* an all-Claude machine actually gets stopped before a launch it can't run.
|
|
42
|
+
* Not cached like /api/readiness's 15s TTL — a launch is a low-frequency,
|
|
43
|
+
* user-initiated action, so a fresh check here is worth the one extra
|
|
44
|
+
* process spawn for correctness at the moment that matters.
|
|
45
|
+
*
|
|
46
|
+
* `defaultRunShim`, not `defaultRun` — on Windows Codex CLI installs as a
|
|
47
|
+
* `.cmd` shim (no `codex.exe`), which `defaultRun` cannot spawn under
|
|
48
|
+
* `shell:false` (ENOENT even when Codex is genuinely installed and working).
|
|
49
|
+
* See `defaultRunShim`'s own doc comment (iterate-2026-09-16-codex-probe-
|
|
50
|
+
* win32-shim) for why this is a sibling probe rather than a `defaultRun` fix.
|
|
51
|
+
*/
|
|
52
|
+
export async function isCodexCliAvailable() {
|
|
53
|
+
const result = await defaultRunShim("codex", ["--version"]);
|
|
54
|
+
return result.ok;
|
|
55
|
+
}
|
|
56
|
+
/** §2.1 — a plain field read on an already-loaded task, not a fallback chain. */
|
|
57
|
+
export function runtimeForTask(task) {
|
|
58
|
+
return task.runtime;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* ADR-309 generalized the `new-plain` JSONL-liveness special-case to every
|
|
62
|
+
* Codex-runtime task (a Codex Light task never writes a Claude `.jsonl`
|
|
63
|
+
* under any actionId). Codextender integration Part B.6 excludes
|
|
64
|
+
* Codextender mode from that generalization: it drives ordinary `claude`
|
|
65
|
+
* via the local proxy, so it DOES write a real `.jsonl` and the ordinary
|
|
66
|
+
* `!firstJsonlObservedAt` transcript-poll path is already authoritative for
|
|
67
|
+
* it, exactly like a plain Claude task. Shared by `ws-upgrade-handler.ts`
|
|
68
|
+
* and `external/transcript/routes.ts` — their own companion-fix comments
|
|
69
|
+
* point back here rather than re-typing the condition.
|
|
70
|
+
*/
|
|
71
|
+
export function isCodexNonCodextenderTask(task) {
|
|
72
|
+
return task.runtime === "codex" && task.codexIntegrationMode !== "codextender";
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* AC9 — a multi-phase single thread's "done" has no oracle row (§1.8); a
|
|
76
|
+
* `new-pipeline` launch for a Codex task is blocked here, not silently
|
|
77
|
+
* downgraded. Keys on `actionId === "new-pipeline"` (never `phase`, which
|
|
78
|
+
* a pipeline launch never submits — `useNewIssueFormSubmit.ts`).
|
|
79
|
+
*
|
|
80
|
+
* Codextender integration Part B.6 — AC9's rationale (no thread/app-server
|
|
81
|
+
* resume machinery, `codex-light-webui.md` §1.8) is specific to the real
|
|
82
|
+
* `codex` CLI; a Codextender task drives ordinary `claude` underneath, so it
|
|
83
|
+
* has the SAME pipeline/resume machinery a Claude-runtime task does. Bypass
|
|
84
|
+
* keys on the FRESH `codexIntegrationMode` param (not `task.
|
|
85
|
+
* codexIntegrationMode`), which is unset on a task's very first Codextender
|
|
86
|
+
* launch — reading the stale/absent task field would wrongly block it.
|
|
87
|
+
*/
|
|
88
|
+
export function isCodexNewPipelineBlocked(task, parsed, codexIntegrationMode) {
|
|
89
|
+
if (codexIntegrationMode === "codextender")
|
|
90
|
+
return false;
|
|
91
|
+
return parsed.actionId === "new-pipeline" && runtimeForTask(task) === "codex";
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* AC7 — "Campaign is 'Codex Light 2'" (deferred, still out of scope). The
|
|
95
|
+
* campaign/step/master-run branches each build their own fixed command
|
|
96
|
+
* server-side (`/shipwright-run`, `/shipwright-iterate "<specPath>"`, ...);
|
|
97
|
+
* without this check this chokepoint would silently DISCARD that command
|
|
98
|
+
* and override it with a generic `buildCodexCommands` resume/launch built
|
|
99
|
+
* from `phase`/`description` — a behavior mismatch, not the spec's
|
|
100
|
+
* required "block/explain". Keyed on the parsed body's own campaign-intent
|
|
101
|
+
* fields (never persisted on the task — parse-body.ts), so it fires
|
|
102
|
+
* exactly when a campaign launch surface (not an ordinary per-task
|
|
103
|
+
* Launch/Resume) is the caller, resume or fresh start alike.
|
|
104
|
+
*
|
|
105
|
+
* Codextender integration Part B.6 — same bypass rationale as
|
|
106
|
+
* `isCodexNewPipelineBlocked` above: AC7 is a real-`codex`-CLI limitation,
|
|
107
|
+
* not one Codextender (ordinary `claude` underneath) inherits.
|
|
108
|
+
*/
|
|
109
|
+
export function isCodexCampaignBlocked(task, parsed, codexIntegrationMode) {
|
|
110
|
+
if (codexIntegrationMode === "codextender")
|
|
111
|
+
return false;
|
|
112
|
+
return (runtimeForTask(task) === "codex" &&
|
|
113
|
+
(Boolean(parsed.campaignSlug) || Boolean(parsed.campaignStep) || parsed.masterRun));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The main-route half of §2.1. Returns the ORIGINAL `commands`/`taskUpdate`
|
|
117
|
+
* unchanged for a Claude-runtime task (byte-identical to before this
|
|
118
|
+
* feature existed); overrides with `buildCodexCommands` for a
|
|
119
|
+
* Codex-runtime one; blocks per AC9 for a Codex `new-pipeline` launch.
|
|
120
|
+
*/
|
|
121
|
+
export async function applyRuntimeChokepoint(args) {
|
|
122
|
+
const { task, parsed, project, commands, taskUpdate, codexIntegrationMode } = args;
|
|
123
|
+
const checkCodexCliAvailable = args.checkCodexCliAvailable ?? isCodexCliAvailable;
|
|
124
|
+
const codextenderPort = args.codextenderPort ?? 4000;
|
|
125
|
+
const checkCodextenderProxyAvailable = args.checkCodextenderProxyAvailable ??
|
|
126
|
+
(() => probeCodextenderLiveness(codextenderPort));
|
|
127
|
+
const getCodextenderAuthToken = args.getCodextenderAuthToken ?? resolveCodextenderAuthToken;
|
|
128
|
+
const getCodextenderMaxContextTokens = args.getCodextenderMaxContextTokens ??
|
|
129
|
+
((model) => resolveCodextenderMaxContextTokens(codextenderPort, model));
|
|
130
|
+
if (isCodexNewPipelineBlocked(task, parsed, codexIntegrationMode)) {
|
|
131
|
+
return {
|
|
132
|
+
error: {
|
|
133
|
+
error: "codex_new_pipeline_unsupported",
|
|
134
|
+
detail: "Codex Light doesn't support multi-phase pipeline runs yet (\"Codex " +
|
|
135
|
+
"Light 2\"). Switch this task's runtime to Claude, or launch each " +
|
|
136
|
+
"phase as its own task.",
|
|
137
|
+
},
|
|
138
|
+
status: 400,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
if (isCodexCampaignBlocked(task, parsed, codexIntegrationMode)) {
|
|
142
|
+
return {
|
|
143
|
+
error: {
|
|
144
|
+
error: "codex_campaign_unsupported",
|
|
145
|
+
detail: "Codex Light doesn't support campaign launches yet (\"Codex Light " +
|
|
146
|
+
"2\"). Switch this task's runtime to Claude to run it as part of a " +
|
|
147
|
+
"campaign.",
|
|
148
|
+
},
|
|
149
|
+
status: 400,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (runtimeForTask(task) !== "codex") {
|
|
153
|
+
return { commands, taskUpdate };
|
|
154
|
+
}
|
|
155
|
+
// Codextender integration Part B.3/B.6 — split out to
|
|
156
|
+
// runtime-chokepoint-codextender.ts (bloat anti-ratchet, 2026-09-26).
|
|
157
|
+
if (codexIntegrationMode === "codextender") {
|
|
158
|
+
return applyCodextenderChokepoint({
|
|
159
|
+
task,
|
|
160
|
+
parsed,
|
|
161
|
+
commands,
|
|
162
|
+
taskUpdate,
|
|
163
|
+
codextenderPort,
|
|
164
|
+
checkCodextenderProxyAvailable,
|
|
165
|
+
getCodextenderAuthToken,
|
|
166
|
+
getCodextenderMaxContextTokens,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
// AC8 — see isCodexCliAvailable's doc comment above.
|
|
170
|
+
if (!(await checkCodexCliAvailable())) {
|
|
171
|
+
return { error: codexCliNotFoundError(), status: 400 };
|
|
172
|
+
}
|
|
173
|
+
// §4 resume state machine — we only ever know a `threadId` once a prior
|
|
174
|
+
// launch has produced one, so its presence (not the client's `resume`
|
|
175
|
+
// flag, which is Claude-JSONL-shaped) is the honest fresh-vs-resume
|
|
176
|
+
// signal for a Codex task.
|
|
177
|
+
const resume = Boolean(task.threadId);
|
|
178
|
+
const hasAgentsMd = Boolean(project?.path && existsSync(path.join(project.path, "AGENTS.md")));
|
|
179
|
+
const codexCommands = buildCodexCommands({
|
|
180
|
+
cwd: task.cwd,
|
|
181
|
+
autonomy: parsed.autonomy ?? task.autonomy ?? "guided",
|
|
182
|
+
resume,
|
|
183
|
+
threadId: task.threadId,
|
|
184
|
+
phase: parsed.phase ?? task.phase,
|
|
185
|
+
description: parsed.description ?? task.description,
|
|
186
|
+
hasAgentsMd,
|
|
187
|
+
implementationModel: parsed.codexImplementationModel,
|
|
188
|
+
planReviewModel: parsed.codexPlanReviewModel,
|
|
189
|
+
reviewModel: parsed.codexReviewModel,
|
|
190
|
+
});
|
|
191
|
+
return {
|
|
192
|
+
commands: codexCommands,
|
|
193
|
+
taskUpdate: {
|
|
194
|
+
...taskUpdate,
|
|
195
|
+
state: "awaiting_external_start",
|
|
196
|
+
launchedAt: new Date().toISOString(),
|
|
197
|
+
codexIntegrationMode: "light",
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=runtime-chokepoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-chokepoint.js","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,36 +8,38 @@ export declare const TRANSCRIPT_TAIL_BYTES: number;
|
|
|
8
8
|
* The larger bounded tail used ONLY while a task is still unidentified, so the
|
|
9
9
|
* `Run-ID` footer recovery can reach it (run-id-recovery.ts).
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* RAISED from 1 MiB to 8 MiB (iterate-2026-09-28-mission-feed-completeness,
|
|
12
|
+
* AC2): a real, finished session's commit footer sat ~2.8 MB before EOF in a
|
|
13
|
+
* 4.9 MB transcript — outside the old 1 MB window — leaving its whole
|
|
14
|
+
* Mission artifact rail permanently empty. Re-measured fresh across this
|
|
15
|
+
* project's 91 real transcripts (supersedes the 65/203-transcript figures
|
|
16
|
+
* below, which this project's growing transcript population had already
|
|
17
|
+
* outgrown): of 71 carrying any footer, 512 KB recovers 38, 1 MB 53, 2 MB 63,
|
|
18
|
+
* 4 MB 67, **8 MB 70**, 16 MB no more than 8 MB. The one transcript 8 MB
|
|
19
|
+
* still misses has its footer ~28 MB before EOF — an extreme outlier no
|
|
20
|
+
* fixed cap short of "unbounded" reaches (see the mini-plan's "Alternative
|
|
21
|
+
* approach considered" for why unbounded was rejected). 8 MB recovers 70/71
|
|
22
|
+
* (98.6%) and is the practical ceiling.
|
|
15
23
|
*
|
|
16
|
-
* It is a REACH-BACK, not a standing subscription
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
24
|
+
* It is a REACH-BACK, not a standing subscription — requested once per task
|
|
25
|
+
* and again only once the transcript has moved (`wideWindows`). Raising this
|
|
26
|
+
* constant makes that existing, already-accepted per-poll cost larger (up to
|
|
27
|
+
* ~7.5 MB more decode+scan for a task that stays unidentified and keeps
|
|
28
|
+
* growing) rather than introducing a new one — accepted at this iterate's
|
|
29
|
+
* review against a session whose whole artifact rail was otherwise
|
|
30
|
+
* permanently wrong; a bounded incremental/backward-chunked rescan was
|
|
31
|
+
* considered and deferred as a separate, larger change.
|
|
23
32
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* itself. Measured over this project's 203 real transcripts, a full sweep fell
|
|
31
|
-
* from 919 MB / 253 ms to 102 MB / 44 ms; one poll of the largest (137.9 MB)
|
|
32
|
-
* went from ~31 ms to 2.2 ms.
|
|
33
|
+
* Superseded (provenance only): 65 transcripts, 512 KB recovered 42/missed 4
|
|
34
|
+
* (closest miss 526 KB), 1 MB recovered all 50, 2/4/8 MB added nothing — that
|
|
35
|
+
* last claim did not survive this iterate's counter-example. Separately, 203
|
|
36
|
+
* transcripts showed the POSITIONAL-read I/O saving (919 MB/253 ms → 102
|
|
37
|
+
* MB/44 ms, iterate-2026-07-21-transcript-positional-tail-read) — orthogonal
|
|
38
|
+
* to the cap's size, unaffected here.
|
|
33
39
|
*
|
|
34
40
|
* The invariant is "a narrower window cannot lose a recovery", and it holds
|
|
35
|
-
* UNLESS the transcript outruns the ordinary tail within one poll interval
|
|
36
|
-
*
|
|
37
|
-
* before the next reach-back is earned. Such a session is in flight and so
|
|
38
|
-
* pointer-identified in practice, which is why it never reaches this path — but
|
|
39
|
-
* the invariant is CONDITIONAL, and claiming otherwise would be the same kind of
|
|
40
|
-
* overstatement this run exists to correct.
|
|
41
|
+
* UNLESS the transcript outruns the ordinary tail within one poll interval —
|
|
42
|
+
* CONDITIONAL, not absolute.
|
|
41
43
|
*/
|
|
42
44
|
export declare const RECOVERY_TAIL_BYTES: number;
|
|
43
45
|
export interface MissionContextRouterDeps {
|
|
@@ -55,10 +57,14 @@ export interface MissionContextRouterDeps {
|
|
|
55
57
|
* cannot supply one: an empty revision is never recorded, so a fault can never
|
|
56
58
|
* suppress a recovery. Deliberately metadata and not a content digest — the
|
|
57
59
|
* cache would otherwise retain transcript text well past the read.
|
|
58
|
-
|
|
60
|
+
*
|
|
61
|
+
* `startedMidFile`: true when this read began after byte 0 (a leading
|
|
62
|
+
* partial line was dropped) — lets the resolver avoid keeping a byte-cut
|
|
63
|
+
* record as unparseable-therefore-safe (AC2). */
|
|
59
64
|
readTranscriptTail: (sessionUuid: string, maxBytes?: number) => Promise<{
|
|
60
65
|
text: string;
|
|
61
66
|
revision: string;
|
|
67
|
+
startedMidFile?: boolean;
|
|
62
68
|
}>;
|
|
63
69
|
/** Scenario inputs the resolver cannot derive itself. */
|
|
64
70
|
getScenarioFacts: (project: ExternalRouteProjectView, task: ExternalTask) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,mBAAmB,QAAkB,CAAC;AASnD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE;;;;;;;;;;;;;;;qDAeiD;IACjD,kBAAkB,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E,yDAAyD;IACzD,gBAAgB,EAAE,CAChB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,YAAY,KACf,OAAO,CAAC;QACX,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACnC,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACnD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,0EAA0E;QAC1E,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QACtC,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAwK/E"}
|
|
@@ -30,38 +30,40 @@ export const TRANSCRIPT_TAIL_BYTES = 512 * 1024;
|
|
|
30
30
|
* The larger bounded tail used ONLY while a task is still unidentified, so the
|
|
31
31
|
* `Run-ID` footer recovery can reach it (run-id-recovery.ts).
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* RAISED from 1 MiB to 8 MiB (iterate-2026-09-28-mission-feed-completeness,
|
|
34
|
+
* AC2): a real, finished session's commit footer sat ~2.8 MB before EOF in a
|
|
35
|
+
* 4.9 MB transcript — outside the old 1 MB window — leaving its whole
|
|
36
|
+
* Mission artifact rail permanently empty. Re-measured fresh across this
|
|
37
|
+
* project's 91 real transcripts (supersedes the 65/203-transcript figures
|
|
38
|
+
* below, which this project's growing transcript population had already
|
|
39
|
+
* outgrown): of 71 carrying any footer, 512 KB recovers 38, 1 MB 53, 2 MB 63,
|
|
40
|
+
* 4 MB 67, **8 MB 70**, 16 MB no more than 8 MB. The one transcript 8 MB
|
|
41
|
+
* still misses has its footer ~28 MB before EOF — an extreme outlier no
|
|
42
|
+
* fixed cap short of "unbounded" reaches (see the mini-plan's "Alternative
|
|
43
|
+
* approach considered" for why unbounded was rejected). 8 MB recovers 70/71
|
|
44
|
+
* (98.6%) and is the practical ceiling.
|
|
37
45
|
*
|
|
38
|
-
* It is a REACH-BACK, not a standing subscription
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
46
|
+
* It is a REACH-BACK, not a standing subscription — requested once per task
|
|
47
|
+
* and again only once the transcript has moved (`wideWindows`). Raising this
|
|
48
|
+
* constant makes that existing, already-accepted per-poll cost larger (up to
|
|
49
|
+
* ~7.5 MB more decode+scan for a task that stays unidentified and keeps
|
|
50
|
+
* growing) rather than introducing a new one — accepted at this iterate's
|
|
51
|
+
* review against a session whose whole artifact rail was otherwise
|
|
52
|
+
* permanently wrong; a bounded incremental/backward-chunked rescan was
|
|
53
|
+
* considered and deferred as a separate, larger change.
|
|
45
54
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* itself. Measured over this project's 203 real transcripts, a full sweep fell
|
|
53
|
-
* from 919 MB / 253 ms to 102 MB / 44 ms; one poll of the largest (137.9 MB)
|
|
54
|
-
* went from ~31 ms to 2.2 ms.
|
|
55
|
+
* Superseded (provenance only): 65 transcripts, 512 KB recovered 42/missed 4
|
|
56
|
+
* (closest miss 526 KB), 1 MB recovered all 50, 2/4/8 MB added nothing — that
|
|
57
|
+
* last claim did not survive this iterate's counter-example. Separately, 203
|
|
58
|
+
* transcripts showed the POSITIONAL-read I/O saving (919 MB/253 ms → 102
|
|
59
|
+
* MB/44 ms, iterate-2026-07-21-transcript-positional-tail-read) — orthogonal
|
|
60
|
+
* to the cap's size, unaffected here.
|
|
55
61
|
*
|
|
56
62
|
* The invariant is "a narrower window cannot lose a recovery", and it holds
|
|
57
|
-
* UNLESS the transcript outruns the ordinary tail within one poll interval
|
|
58
|
-
*
|
|
59
|
-
* before the next reach-back is earned. Such a session is in flight and so
|
|
60
|
-
* pointer-identified in practice, which is why it never reaches this path — but
|
|
61
|
-
* the invariant is CONDITIONAL, and claiming otherwise would be the same kind of
|
|
62
|
-
* overstatement this run exists to correct.
|
|
63
|
+
* UNLESS the transcript outruns the ordinary tail within one poll interval —
|
|
64
|
+
* CONDITIONAL, not absolute.
|
|
63
65
|
*/
|
|
64
|
-
export const RECOVERY_TAIL_BYTES = 1024 * 1024;
|
|
66
|
+
export const RECOVERY_TAIL_BYTES = 8 * 1024 * 1024;
|
|
65
67
|
/**
|
|
66
68
|
* How many tasks' reach-back state is remembered. Cleared wholesale at the cap —
|
|
67
69
|
* the same bounded-Map discipline as the resolver cache and the recovery memo,
|
|
@@ -146,6 +148,7 @@ export function createMissionContextRouter(deps) {
|
|
|
146
148
|
projectId: task.projectId,
|
|
147
149
|
projectRoot: project.path,
|
|
148
150
|
transcript,
|
|
151
|
+
transcriptStartedMidFile: read.startedMidFile ?? false,
|
|
149
152
|
phaseTaskId: task.phaseTaskId ?? null,
|
|
150
153
|
taskRunId: task.runId ?? null,
|
|
151
154
|
taskTerminal: task.state === "done" || task.state === "launch_failed",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GAGjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAGjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEhD
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,16 @@ export interface HarnessOptions {
|
|
|
21
21
|
* no difference. Setting it models the case the wide window exists for: a
|
|
22
22
|
* footer sitting further back than `TRANSCRIPT_TAIL_BYTES`, which only the
|
|
23
23
|
* reach-back can read.
|
|
24
|
+
*
|
|
25
|
+
* `startedMidFile` models the real reader's own signal (wire.ts) that this
|
|
26
|
+
* read began after byte 0 — a route-level seam for AC2's end-to-end test,
|
|
27
|
+
* since the unit tests already cover `findRunIdFooter` itself directly.
|
|
24
28
|
*/
|
|
25
29
|
reads?: {
|
|
26
30
|
text: string;
|
|
27
31
|
revision: string;
|
|
28
32
|
narrowText?: string;
|
|
33
|
+
startedMidFile?: boolean;
|
|
29
34
|
}[];
|
|
30
35
|
}
|
|
31
36
|
export declare function harness(root: string, task: ExternalTask | ExternalTask[], opts?: HarnessOptions): {
|
|
@@ -35,6 +40,7 @@ export declare function harness(root: string, task: ExternalTask | ExternalTask[
|
|
|
35
40
|
readTranscriptTail: import("vitest").Mock<(_uuid: string, maxBytes?: number) => Promise<{
|
|
36
41
|
text: string;
|
|
37
42
|
revision: string;
|
|
43
|
+
startedMidFile: boolean | undefined;
|
|
38
44
|
}>>;
|
|
39
45
|
};
|
|
40
46
|
interface ArtifactLike {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGrE,eAAO,MAAM,IAAI,yCAAyC,CAAC;AAC3D,eAAO,MAAM,UAAU,yCAAyC,CAAC;AACjE,eAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,eAAO,MAAM,QAAQ,sEAAwD,CAAC;AAE9E,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,CAoCpC;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGrE,eAAO,MAAM,IAAI,yCAAyC,CAAC;AAC3D,eAAO,MAAM,UAAU,yCAAyC,CAAC;AACjE,eAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,eAAO,MAAM,QAAQ,sEAAwD,CAAC;AAE9E,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,CAoCpC;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CAcvE;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7F;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,EACnC,IAAI,GAAE,cAAmB;;;;sDA+BsB,MAAM,aAAa,MAAM;;;;;EAwBzE;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,EACtC,MAAM,SAAW,GAChB,OAAO,CAAC,WAAW,CAAC,CAItB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjF"}
|
|
@@ -56,6 +56,7 @@ export function makeTask(over = {}) {
|
|
|
56
56
|
state: "active",
|
|
57
57
|
title: "Demo iterate",
|
|
58
58
|
projectId: "proj-1",
|
|
59
|
+
runtime: "claude",
|
|
59
60
|
createdAt: "2026-07-18T09:00:00Z",
|
|
60
61
|
inbox: { pendingToolUseIds: [], dismissedToolUseIds: [], lastProcessedByteOffset: 0 },
|
|
61
62
|
...over,
|
|
@@ -94,7 +95,11 @@ export function harness(root, task, opts = {}) {
|
|
|
94
95
|
const readTranscriptTail = vi.fn(async (_uuid, maxBytes) => {
|
|
95
96
|
const r = reads[Math.min(poll++, reads.length - 1)];
|
|
96
97
|
const narrow = (maxBytes ?? TRANSCRIPT_TAIL_BYTES) < RECOVERY_TAIL_BYTES;
|
|
97
|
-
return {
|
|
98
|
+
return {
|
|
99
|
+
text: narrow ? (r.narrowText ?? r.text) : r.text,
|
|
100
|
+
revision: r.revision,
|
|
101
|
+
startedMidFile: r.startedMidFile,
|
|
102
|
+
};
|
|
98
103
|
});
|
|
99
104
|
const app = createMissionContextRouter({
|
|
100
105
|
store: store,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAIrB,MAAM,CAAC,MAAM,IAAI,GAAG,sCAAsC,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,sCAAsC,CAAC;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,yBAAyB,CAAC;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,gCAAgC,MAAM,eAAe,CAAC;AAE9E,6DAA6D;AAC7D,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IACtD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,mEAAmE;IACnE,2EAA2E;IAC3E,8CAA8C;IAC9C,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EACxE;QACE,aAAa;QACb,EAAE;QACF,+CAA+C;QAC/C,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,gDAAgD;QAChD,EAAE;QACF,eAAe;QACf,EAAE;QACF,kEAAkE;QAClE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,IAAI,OAAO,CAAC,EAC3D,IAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,sBAAsB;KACnC,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAA8B,EAAE;IACvD,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,IAAI;QACjB,GAAG,EAAE,IAAI;QACT,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,sBAAsB;QACjC,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,uBAAuB,EAAE,CAAC,EAAE;QACrF,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtE;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtE;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,uBAAuB,6FA+D5E"}
|
|
@@ -28,7 +28,18 @@ export function createWiredMissionContextRouter(deps) {
|
|
|
28
28
|
if (!loc)
|
|
29
29
|
return { text: "", revision: "" };
|
|
30
30
|
const budget = Math.min(Math.max(maxBytes ?? TRANSCRIPT_TAIL_BYTES, TRANSCRIPT_TAIL_BYTES), RECOVERY_TAIL_BYTES);
|
|
31
|
-
const
|
|
31
|
+
const target = Math.max(0, loc.sizeBytes - budget);
|
|
32
|
+
// Read from ONE BYTE BEFORE `target` (when `target > 0`) and peek it,
|
|
33
|
+
// rather than assuming the leading line is partial whenever the read
|
|
34
|
+
// didn't start at byte 0 (external code review, openai, raised twice
|
|
35
|
+
// across two independent review passes — settled here with one extra
|
|
36
|
+
// byte instead of arguing probability a third time). The byte
|
|
37
|
+
// immediately before `target` PROVES the answer: `\n` means `target`
|
|
38
|
+
// is itself the first character of a real line (the read landed on
|
|
39
|
+
// an exact line boundary, however unlikely), anything else means it
|
|
40
|
+
// genuinely lands mid-line (a real byte cut). `peeked` is false only
|
|
41
|
+
// when `target` was already 0 — nothing precedes it to peek.
|
|
42
|
+
const fromByte = target > 0 ? target - 1 : 0;
|
|
32
43
|
// `loc` is handed to the reader so it does not repeat the walk we just
|
|
33
44
|
// did (iterate-2026-07-22-…-single-walk). Safe HERE specifically
|
|
34
45
|
// because this caller passes `expectFingerprint: null` — a caller that
|
|
@@ -42,12 +53,23 @@ export function createWiredMissionContextRouter(deps) {
|
|
|
42
53
|
});
|
|
43
54
|
if (r.status !== "ok")
|
|
44
55
|
return { text: "", revision: "" };
|
|
56
|
+
const raw = r.chunk.content;
|
|
57
|
+
const peeked = fromByte < target;
|
|
58
|
+
// Strip the peeked byte either way, so `text` always represents
|
|
59
|
+
// exactly `[target, EOF)` — the same contract this returned before
|
|
60
|
+
// the peek byte was added, independent of what it turned out to be.
|
|
61
|
+
const text = peeked ? raw.slice(1) : raw;
|
|
62
|
+
const startedMidFile = peeked && raw[0] !== "\n";
|
|
45
63
|
// Already in hand from the SAME `findByUuid` walk, so scheduling the
|
|
46
64
|
// wide reach-back costs no extra I/O. All three parts earn their place:
|
|
47
65
|
// `path` catches a transcript REPLACED under the same session uuid,
|
|
48
66
|
// `sizeBytes` the ordinary append, `mtimeMs` an in-place rewrite that
|
|
49
67
|
// happens to preserve the length.
|
|
50
|
-
return {
|
|
68
|
+
return {
|
|
69
|
+
text,
|
|
70
|
+
revision: `${loc.path}:${loc.sizeBytes}:${loc.mtimeMs}`,
|
|
71
|
+
startedMidFile,
|
|
72
|
+
};
|
|
51
73
|
}
|
|
52
74
|
catch {
|
|
53
75
|
// A transcript fault degrades the PR marker (merge → "unknown"), and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAa9C,MAAM,UAAU,+BAA+B,CAAC,IAA6B;IAC3E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC/D,OAAO,0BAA0B,CAAC;QAChC,KAAK;QACL,cAAc;QACd,kBAAkB,EAAE,KAAK,EAAE,WAAmB,EAAE,QAAiB,EAAE,EAAE;YACnE,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAClD,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,qBAAqB,EAAE,qBAAqB,CAAC,EAClE,mBAAmB,CACpB,CAAC;gBACF,MAAM,
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,25 @@ export interface AuditLogParams {
|
|
|
22
22
|
/** Page size, clamped to `[1, MAX_LIMIT]`. Default `DEFAULT_LIMIT`. */
|
|
23
23
|
limit?: number;
|
|
24
24
|
}
|
|
25
|
+
export type AuditLinesGuardedResult = {
|
|
26
|
+
status: 200;
|
|
27
|
+
linesNewestFirst: string[];
|
|
28
|
+
} | {
|
|
29
|
+
status: 400 | 403 | 404 | 500;
|
|
30
|
+
body: {
|
|
31
|
+
error: string;
|
|
32
|
+
detail?: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Guarded, single-read helper shared by `auditLogCore` (paginates the
|
|
37
|
+
* result for the Docs block's viewer) and `beat-effect-audit-read.ts`
|
|
38
|
+
* (wants every line in one pass, not a page at a time — see that file's
|
|
39
|
+
* header for why re-reading the file per page was a real cost, not just a
|
|
40
|
+
* style preference). Owns the open-first/`O_NOFOLLOW`/`fstat`/
|
|
41
|
+
* `realPathGuard`/`LEAD_ID_RE` chain exactly once.
|
|
42
|
+
*/
|
|
43
|
+
export declare function readAuditLinesGuarded(deps: AuditLogDeps, leadId: string | undefined): AuditLinesGuardedResult;
|
|
25
44
|
/** Pure core — reads and paginates `<leadsRoot>/<leadId>/audit.jsonl`. */
|
|
26
45
|
export declare function auditLogCore(deps: AuditLogDeps, params: AuditLogParams): AuditLogCoreResult;
|
|
27
46
|
//# sourceMappingURL=audit-log.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../src/external/org/audit-log.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkD,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAKjG,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMtE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../src/external/org/audit-log.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkD,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAKjG,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMtE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CA4C7G;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAuB3F"}
|