@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
package/lib/server.mjs
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* server.mjs — AC1c + AC4: port-check, then boot / attach / swap. Open browser.
|
|
3
3
|
*
|
|
4
|
-
* Probe
|
|
5
|
-
*
|
|
4
|
+
* Probe on the address `resolveProbeHost` resolves (127.0.0.1 by default; a
|
|
5
|
+
* profile-derived address under SHIPWRIGHT_NETWORK_PROFILE — see below). Then:
|
|
6
6
|
* free → boot the packaged server (detached, outlives npx)
|
|
7
7
|
* Shipwright, same-or-newer → ATTACH (open browser, no 2nd server)
|
|
8
8
|
* Shipwright, OLDER → SWAP via the DETACHED deploy-swap.mjs
|
|
9
9
|
* foreign → FAIL LOUD with a PORT= remediation, incumbent ALIVE
|
|
10
10
|
*
|
|
11
|
+
* webui#415: under `SHIPWRIGHT_NETWORK_PROFILE=tailscale` the server binds
|
|
12
|
+
* ONLY the tailnet interface, never loopback — a hardcoded 127.0.0.1 probe
|
|
13
|
+
* never sees it, so attach/swap/foreign are all unreachable and every launch
|
|
14
|
+
* redundantly re-boots and fails on EADDRINUSE while a healthy incumbent runs.
|
|
15
|
+
* `resolveProbeHost` fixes this by reusing the server's OWN `resolveHonoHost`
|
|
16
|
+
* (staged into `pkgRoot/server/dist`, exactly like `bootSpawnPlan` already
|
|
17
|
+
* reaches into that same directory) instead of re-deriving profile precedence
|
|
18
|
+
* here — a second implementation would drift the moment the server's changes.
|
|
19
|
+
*
|
|
11
20
|
* This module issues NO kill/taskkill/process.kill — ever. The incumbent on
|
|
12
21
|
* :3847 may be hosting the very terminal this command runs in (PR #249, the
|
|
13
22
|
* deploy self-kill). The swap's kill lives ONLY inside the detached swapper,
|
|
@@ -18,6 +27,8 @@ import path from "node:path";
|
|
|
18
27
|
import { spawn } from "node:child_process";
|
|
19
28
|
import { readFileSync, openSync, closeSync, mkdirSync } from "node:fs";
|
|
20
29
|
import os from "node:os";
|
|
30
|
+
import { pathToFileURL } from "node:url";
|
|
31
|
+
import { isIP } from "node:net";
|
|
21
32
|
|
|
22
33
|
import { compareSemverFull } from "./util.mjs";
|
|
23
34
|
import { tcpOccupied, checkNativePty } from "./probes.mjs";
|
|
@@ -37,6 +48,113 @@ const DEFAULT_PORT = 3847;
|
|
|
37
48
|
*/
|
|
38
49
|
export const APP_IDENTITY = "shipwright-command-center";
|
|
39
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Guards against shell/URL METACHARACTERS only — NOT a judgment on whether
|
|
53
|
+
* `host` is an appropriate network target. A probe host is safe here when it
|
|
54
|
+
* is either a valid IPv4/IPv6 literal (`net.isIP`) or a plain hostname
|
|
55
|
+
* (letters/digits/`.`/`-` only — covers "localhost" and any profile-provided
|
|
56
|
+
* value). Anything else (e.g. a stray `%`, `&`, quote) is REJECTED rather
|
|
57
|
+
* than passed through: `resolveProbeHost`'s result is later spliced into a
|
|
58
|
+
* fetch URL and, via `ensureServer`'s reported `url`, into `openBrowserPlan`'s
|
|
59
|
+
* win32 `cmd.exe` invocation, where an unvalidated `%VAR%` would expand
|
|
60
|
+
* inside the quoted argument — so anything reaching it from HONO_HOST must be
|
|
61
|
+
* validated HERE, at the source, not trusted downstream (see
|
|
62
|
+
* `openBrowserPlan`'s own comment for the receiving side). A value that
|
|
63
|
+
* passes here can still be a real external hostname the bootstrapper CLI
|
|
64
|
+
* will itself issue outbound TCP + `/api/diagnostics` HTTP requests to
|
|
65
|
+
* (webui#415 doubt review) — that egress is the intended behaviour of probing
|
|
66
|
+
* where the server will actually bind, not a gap this function is meant to
|
|
67
|
+
* close.
|
|
68
|
+
* @param {string} host
|
|
69
|
+
* @returns {boolean}
|
|
70
|
+
*/
|
|
71
|
+
function isSafeProbeHost(host) {
|
|
72
|
+
return typeof host === "string" && host.length > 0 && (isIP(host) !== 0 || /^[A-Za-z0-9.-]+$/.test(host));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Format a probe host for use as a URL authority — bracket an IPv6 literal
|
|
77
|
+
* (`::1` -> `[::1]`), otherwise pass through unchanged. Without this, a
|
|
78
|
+
* bracket-less IPv6 host makes `new URL()` throw inside `fetchImpl`
|
|
79
|
+
* (`probeServer`'s catch then misreports the probe as FOREIGN — a loud,
|
|
80
|
+
* wrong "port held by a non-Shipwright process" for the user's own healthy
|
|
81
|
+
* server; webui#415 code review).
|
|
82
|
+
* @param {string} host
|
|
83
|
+
* @returns {string}
|
|
84
|
+
*/
|
|
85
|
+
function formatHostForUrl(host) {
|
|
86
|
+
return host.includes(":") ? `[${host}]` : host;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Resolve the address to PROBE — not necessarily the address the server
|
|
91
|
+
* BINDS. Reuses the server's own `resolveHonoHost` (compiled into
|
|
92
|
+
* `pkgRoot/server/dist/lib/`, which ships in this package the same way
|
|
93
|
+
* `bootSpawnPlan` already targets `pkgRoot/server/dist/index.js`) so
|
|
94
|
+
* SHIPWRIGHT_NETWORK_PROFILE precedence is never re-implemented here.
|
|
95
|
+
*
|
|
96
|
+
* A wildcard bind ("0.0.0.0" — `open` profile, or "::" — `HONO_HOST=true`)
|
|
97
|
+
* still accepts loopback connections, so it maps back down to 127.0.0.1;
|
|
98
|
+
* anything concrete (the `tailscale` profile's resolved IP, or an explicit
|
|
99
|
+
* non-wildcard HONO_HOST) is probed directly, since loopback would not see
|
|
100
|
+
* it (webui#415).
|
|
101
|
+
*
|
|
102
|
+
* Reverse-direction gap, accepted (not fixed here): if the INCUMBENT is
|
|
103
|
+
* bound to loopback while this env resolves to a non-loopback host (e.g. a
|
|
104
|
+
* previously-launched server still on `local`, now re-launched with
|
|
105
|
+
* SHIPWRIGHT_NETWORK_PROFILE=tailscale), the probe never sees it — no
|
|
106
|
+
* EADDRINUSE, but two live Command Centers on the same port, sharing
|
|
107
|
+
* `sdk-sessions.json` / the scrollback store / two `PtyManager`s. The
|
|
108
|
+
* issue's alternative fix (probe loopback FIRST, then fall back to the
|
|
109
|
+
* profile address) would cover both directions; this function implements
|
|
110
|
+
* the issue's PRIMARY suggestion (resolve the intended bind host directly)
|
|
111
|
+
* instead, which is simpler and covers the reported failure mode.
|
|
112
|
+
*
|
|
113
|
+
* Never fatal: an import failure (no build staged, e.g. running from
|
|
114
|
+
* source), a resolution failure (`tailscale ip -4` unreachable, an invalid
|
|
115
|
+
* SHIPWRIGHT_NETWORK_PROFILE value), or an unsafe/malformed resolved host
|
|
116
|
+
* all fall back to 127.0.0.1 — the pre-fix probe, not a crash. `onFallback`
|
|
117
|
+
* (best-effort logging only, never throws itself) is called with the reason
|
|
118
|
+
* so a real misconfiguration (as opposed to "no build staged") is not
|
|
119
|
+
* silently swallowed — see `ensureServer`, which wires it to its own `log`.
|
|
120
|
+
*
|
|
121
|
+
* Accepted, narrow window (webui#415 doubt review): this resolution runs
|
|
122
|
+
* fresh on EVERY launch, not pinned to what an already-running incumbent
|
|
123
|
+
* bound to at ITS boot. If `tailscale ip -4` fails only on THIS invocation
|
|
124
|
+
* (the 2s exec timeout in `resolveTailscaleIp`, a transient daemon hiccup)
|
|
125
|
+
* while a healthy incumbent is genuinely bound to a tailscale IP from an
|
|
126
|
+
* earlier, successful resolution, this falls back to loopback, reads the
|
|
127
|
+
* healthy incumbent as "port free", and triggers a redundant boot attempt —
|
|
128
|
+
* the SAME symptom `SHIPWRIGHT_NETWORK_PROFILE=tailscale` always produced
|
|
129
|
+
* pre-fix (this was the reported bug), now rare instead of constant. Not
|
|
130
|
+
* chased further: differentiating "resolution failed" from "server not
|
|
131
|
+
* running" would need `ensureServer` to treat a probe-host fallback as a
|
|
132
|
+
* distinct outcome from a genuinely free port, which is more machinery than
|
|
133
|
+
* this narrow, already-rare window (a transient CLI failure, not a
|
|
134
|
+
* SHIPWRIGHT_NETWORK_PROFILE=tailscale user's steady state) earns.
|
|
135
|
+
* @param {string} pkgRoot
|
|
136
|
+
* @param {NodeJS.ProcessEnv} [env]
|
|
137
|
+
* @param {(specifier: string) => Promise<any>} [importFn]
|
|
138
|
+
* @param {(reason: string) => void} [onFallback]
|
|
139
|
+
* @returns {Promise<string>}
|
|
140
|
+
*/
|
|
141
|
+
export async function resolveProbeHost(pkgRoot, env = process.env, importFn = (m) => import(m), onFallback = () => {}) {
|
|
142
|
+
try {
|
|
143
|
+
const modUrl = pathToFileURL(path.join(pkgRoot, "server", "dist", "lib", "resolveHonoHost.js")).href;
|
|
144
|
+
const { resolveHonoHost } = await importFn(modUrl);
|
|
145
|
+
const host = resolveHonoHost(env);
|
|
146
|
+
if (host === "0.0.0.0" || host === "::") return "127.0.0.1";
|
|
147
|
+
if (!isSafeProbeHost(host)) {
|
|
148
|
+
try { onFallback(`resolved host "${host}" is not a safe IP/hostname`); } catch { /* logging must never throw */ }
|
|
149
|
+
return "127.0.0.1";
|
|
150
|
+
}
|
|
151
|
+
return host;
|
|
152
|
+
} catch (e) {
|
|
153
|
+
try { onFallback(String(e?.message ?? e)); } catch { /* logging must never throw */ }
|
|
154
|
+
return "127.0.0.1";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
40
158
|
/**
|
|
41
159
|
* Classify a port. TCP occupancy is decided FIRST, independent of HTTP: a
|
|
42
160
|
* process that accepts connections but never answers /api/diagnostics (or is
|
|
@@ -44,7 +162,7 @@ export const APP_IDENTITY = "shipwright-command-center";
|
|
|
44
162
|
* exactly the bug AC4 forbids. Only a Shipwright server (200 +
|
|
45
163
|
* `app.name === APP_IDENTITY` + `app.version`) counts as ours. Offline-safe.
|
|
46
164
|
* @param {number} port
|
|
47
|
-
* @param {{ fetchImpl?: typeof fetch, timeoutMs?: number, tcpProbe?: typeof tcpOccupied }} [deps]
|
|
165
|
+
* @param {{ fetchImpl?: typeof fetch, timeoutMs?: number, tcpProbe?: typeof tcpOccupied, host?: string }} [deps]
|
|
48
166
|
* @returns {Promise<{ reachable: boolean, shipwright: boolean, version: string | null }>}
|
|
49
167
|
*/
|
|
50
168
|
export async function probeServer(port, deps = {}) {
|
|
@@ -52,16 +170,17 @@ export async function probeServer(port, deps = {}) {
|
|
|
52
170
|
fetchImpl = typeof fetch === "function" ? fetch : undefined,
|
|
53
171
|
timeoutMs = 2000,
|
|
54
172
|
tcpProbe = tcpOccupied,
|
|
173
|
+
host = "127.0.0.1",
|
|
55
174
|
} = deps;
|
|
56
175
|
|
|
57
|
-
const occupied = await tcpProbe(port, { timeoutMs: Math.min(timeoutMs, 1500) });
|
|
176
|
+
const occupied = await tcpProbe(port, { host, timeoutMs: Math.min(timeoutMs, 1500) });
|
|
58
177
|
if (!occupied) return { reachable: false, shipwright: false, version: null };
|
|
59
178
|
if (!fetchImpl) return { reachable: true, shipwright: false, version: null };
|
|
60
179
|
|
|
61
180
|
const ctrl = new AbortController();
|
|
62
181
|
const timer = setTimeout(() => ctrl.abort(), timeoutMs);
|
|
63
182
|
try {
|
|
64
|
-
const res = await fetchImpl(`http
|
|
183
|
+
const res = await fetchImpl(`http://${formatHostForUrl(host)}:${port}/api/diagnostics`, { signal: ctrl.signal });
|
|
65
184
|
if (!res || !res.ok) return { reachable: true, shipwright: false, version: null };
|
|
66
185
|
const body = await res.json();
|
|
67
186
|
const app = body && typeof body.app === "object" ? body.app : null;
|
|
@@ -226,9 +345,8 @@ export function openBrowserPlan(url, platform = process.platform, env = process.
|
|
|
226
345
|
// Built through the SAME wrap as every other cmd.exe invocation rather than
|
|
227
346
|
// splicing the url into discrete argv. That is not decoration: a url with a
|
|
228
347
|
// query string (`http://h/?a=1&b=2`) would otherwise reach cmd.exe with a
|
|
229
|
-
// bare `&` and run `b=2` as a second command.
|
|
230
|
-
//
|
|
231
|
-
// published package, so it must not depend on that.
|
|
348
|
+
// bare `&` and run `b=2` as a second command. This is exported public API in
|
|
349
|
+
// a published package, so it must not depend on what today's caller passes.
|
|
232
350
|
// The empty string is `start`'s window-TITLE argument; without it `start`
|
|
233
351
|
// consumes a quoted URL as the title and opens nothing.
|
|
234
352
|
//
|
|
@@ -237,8 +355,12 @@ export function openBrowserPlan(url, platform = process.platform, env = process.
|
|
|
237
355
|
// percent-encoded here rather than trusted. `"` is never valid unescaped in a
|
|
238
356
|
// URL, so this cannot corrupt a legitimate one. Residual, stated rather than
|
|
239
357
|
// implied: `%VAR%` still expands inside double quotes, so a url carrying a
|
|
240
|
-
// real environment-variable reference would be substituted
|
|
241
|
-
//
|
|
358
|
+
// real environment-variable reference would be substituted — closed at the
|
|
359
|
+
// SOURCE since webui#415, not here: `ensureServer`'s host is no longer
|
|
360
|
+
// always `localhost` (a profile/HONO_HOST-derived value is possible), but
|
|
361
|
+
// `resolveProbeHost`'s `isSafeProbeHost` rejects anything that is not a
|
|
362
|
+
// valid IP literal or a plain `[A-Za-z0-9.-]+` hostname before it ever
|
|
363
|
+
// reaches this function — a `%`, `&`, or `"` in HONO_HOST cannot arrive here.
|
|
242
364
|
return win32CmdWrap("start", ["", url.replace(/"/g, "%22")], env);
|
|
243
365
|
}
|
|
244
366
|
return { command: platform === "darwin" ? "open" : "xdg-open", args: [url] };
|
|
@@ -274,6 +396,7 @@ export function defaultOpenBrowser(url) {
|
|
|
274
396
|
* @param {{
|
|
275
397
|
* port?: number, pkgRoot: string, packageVersion: string, noOpen?: boolean,
|
|
276
398
|
* probeFn?: () => Promise<Awaited<ReturnType<typeof probeServer>>>,
|
|
399
|
+
* resolveProbeHost?: (pkgRoot: string) => Promise<string>,
|
|
277
400
|
* bootServer?: (port:number, pkgRoot:string) => number | null,
|
|
278
401
|
* spawnSwapper?: (port:number, pkgRoot:string) => number | null,
|
|
279
402
|
* readDeployStatus?: () => any,
|
|
@@ -284,9 +407,23 @@ export function defaultOpenBrowser(url) {
|
|
|
284
407
|
*/
|
|
285
408
|
export async function ensureServer(opts) {
|
|
286
409
|
const port = opts.port ?? DEFAULT_PORT;
|
|
287
|
-
const url = `http://localhost:${port}`;
|
|
288
410
|
const log = opts.log ?? (() => {});
|
|
289
|
-
|
|
411
|
+
// Under the tailscale profile this resolves `tailscale ip -4` once here; the
|
|
412
|
+
// BOOTED server (bootSpawnPlan, below) independently resolves it again at its
|
|
413
|
+
// own startup. Deliberately not forwarded as SHIPWRIGHT_TAILSCALE_IP — that
|
|
414
|
+
// would change the packaged server's own env-precedence semantics for a
|
|
415
|
+
// bootstrapper-internal convenience. Paid at most once per launch either way
|
|
416
|
+
// (not a loop), and bounded by resolveTailscaleIp's own 2s exec timeout.
|
|
417
|
+
const resolveHost = opts.resolveProbeHost
|
|
418
|
+
?? ((pkgRoot) => resolveProbeHost(pkgRoot, process.env, undefined, (reason) => log(`probe host resolution fell back to loopback: ${reason}`)));
|
|
419
|
+
const probeHost = await resolveHost(opts.pkgRoot);
|
|
420
|
+
// "localhost" (not the literal 127.0.0.1) preserves today's reported/opened
|
|
421
|
+
// address for the loopback case — only a genuinely non-loopback resolution
|
|
422
|
+
// (webui#415: tailscale) changes what the user is shown and what opens.
|
|
423
|
+
// formatHostForUrl brackets an IPv6 literal (e.g. HONO_HOST=::1) so it forms
|
|
424
|
+
// a valid URL authority instead of throwing inside probeServer's fetch.
|
|
425
|
+
const url = probeHost === "127.0.0.1" ? `http://localhost:${port}` : `http://${formatHostForUrl(probeHost)}:${port}`;
|
|
426
|
+
const probeFn = opts.probeFn ?? (() => probeServer(port, { host: probeHost }));
|
|
290
427
|
const bootServer = opts.bootServer ?? defaultBootServer;
|
|
291
428
|
const spawnSwapper = opts.spawnSwapper ?? defaultSpawnSwapper;
|
|
292
429
|
const readDeployStatus = opts.readDeployStatus ?? defaultReadDeployStatus;
|
package/lib/util.mjs
CHANGED
|
@@ -111,7 +111,7 @@ export function isWindows(platform = process.platform) {
|
|
|
111
111
|
* Platform-correct, copy-pasteable install command for a missing prerequisite.
|
|
112
112
|
* A missing tool must never be a vague "install it" — the user gets the exact
|
|
113
113
|
* line for THEIR OS. Mirrors the pointers `scripts/verify-setup.sh` prints.
|
|
114
|
-
* @param {"uv"|"python"|"node"|"git"|"claude"} tool
|
|
114
|
+
* @param {"uv"|"python"|"node"|"git"|"claude"|"codex"} tool
|
|
115
115
|
* @param {NodeJS.Platform} [platform]
|
|
116
116
|
* @returns {string}
|
|
117
117
|
*/
|
|
@@ -139,6 +139,10 @@ export function installHint(tool, platform = process.platform) {
|
|
|
139
139
|
return win
|
|
140
140
|
? 'powershell -c "irm https://claude.ai/install.ps1 | iex"'
|
|
141
141
|
: "curl -fsSL https://claude.ai/install.sh | bash";
|
|
142
|
+
case "codex":
|
|
143
|
+
// Codex Light AC8 (server mirror: readiness-install-hints.ts) — no
|
|
144
|
+
// single canonical install-script URL is confirmed for this tool yet.
|
|
145
|
+
return "install the Codex CLI — see your Codex account's CLI setup instructions";
|
|
142
146
|
default:
|
|
143
147
|
return "";
|
|
144
148
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@svenroth-ai/shipwright",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "One command to install AND update Shipwright — the /shipwright-* SDLC plugins and the Command Center. Run `npx @svenroth-ai/shipwright@latest`.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/scripts/deploy-procs.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* deploy-procs.mjs — OS process discovery + termination for the production deploy.
|
|
3
3
|
*
|
|
4
|
-
* The impure twin of kill-targets.js (
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* The impure twin of kill-targets.js (port-kill helpers, shared with
|
|
5
|
+
* dev-restart.js) and deploy-tsx-scope.js (tsx-watch repo-scoping helpers) —
|
|
6
|
+
* both pure parsing, unit-tested. Split out of deploy-swap.mjs to keep both
|
|
7
|
+
* files inside the 300-line convention; the swapper owns the deploy
|
|
8
|
+
* CHOREOGRAPHY, this file owns "which processes, and how do we end them".
|
|
8
9
|
*
|
|
9
10
|
* The one rule that must never be broken here: KILL ONE PROCESS, NEVER ITS TREE.
|
|
10
11
|
* See killPid().
|
|
@@ -14,8 +15,15 @@ import { execSync, spawnSync } from 'node:child_process';
|
|
|
14
15
|
import { createRequire } from 'node:module';
|
|
15
16
|
|
|
16
17
|
const require = createRequire(import.meta.url);
|
|
17
|
-
// Audited kill-scope helpers: state-filtered, exact-port, IPv6-aware
|
|
18
|
+
// Audited kill-scope helpers: state-filtered, exact-port, IPv6-aware — see
|
|
19
|
+
// kill-targets.js for the WHY on each.
|
|
18
20
|
const { parseWindowsListenerPids, buildLsofCommand } = require('./kill-targets.js');
|
|
21
|
+
// tsx-watch repo-scoping helpers — see deploy-tsx-scope.js for the WHY.
|
|
22
|
+
const {
|
|
23
|
+
parseWindowsTsxEntries,
|
|
24
|
+
parsePosixTsxEntries,
|
|
25
|
+
filterTsxEntriesByRepo,
|
|
26
|
+
} = require('./deploy-tsx-scope.js');
|
|
19
27
|
|
|
20
28
|
const isWin = process.platform === 'win32';
|
|
21
29
|
const CAPTURE = { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] };
|
|
@@ -68,37 +76,99 @@ export function findListenerPids(port) {
|
|
|
68
76
|
}
|
|
69
77
|
|
|
70
78
|
/**
|
|
71
|
-
* PIDs of a `tsx watch` dev server
|
|
79
|
+
* PIDs of a `tsx watch` dev server belonging to `repoRoot`'s own checkout.
|
|
72
80
|
*
|
|
73
81
|
* Why this exists at all: killing only the port listener is not enough when the
|
|
74
82
|
* server runs under `tsx watch` — the watch PARENT would immediately respawn the
|
|
75
83
|
* child and re-take the port. The parent has to go too.
|
|
76
84
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
85
|
+
* Discovery still matches the generic markers `tsx` + `src/index.ts` (that part
|
|
86
|
+
* says nothing about which repo), but the raw candidates are then narrowed to
|
|
87
|
+
* `repoRoot` via filterTsxEntriesByRepo() — see deploy-tsx-scope.js for why
|
|
88
|
+
* matching the repo path this way is safe rather than "silently narrows to nothing"
|
|
89
|
+
* (iterate-2026-09-09-deploy-tsx-kill-scope; fixes the machine-wide scope this
|
|
90
|
+
* function originally inherited verbatim from the pre-fix inline sweep).
|
|
91
|
+
*
|
|
92
|
+
* @param {string} [repoRoot] absolute path to the server dir being deployed —
|
|
93
|
+
* required to find anything; an empty repoRoot returns [] (fail closed).
|
|
94
|
+
* @param {(diag: {raw: number|null, matched: number|null, error?: string}) => void} [onDiag]
|
|
95
|
+
* Fires exactly once with raw-candidate / matched-in-repo counts (or an
|
|
96
|
+
* `error` when discovery itself failed). `[]` is otherwise ambiguous
|
|
97
|
+
* between "nothing running", "discovery failed", and "candidates existed
|
|
98
|
+
* but none matched this repo" — three states with the same symptom
|
|
99
|
+
* (the watch parent survives) but different fixes. Optional and
|
|
100
|
+
* best-effort so existing callers/tests that ignore it are unaffected.
|
|
83
101
|
*/
|
|
84
|
-
export function findTsxServerPids() {
|
|
102
|
+
export function findTsxServerPids(repoRoot, onDiag) {
|
|
103
|
+
if (!repoRoot) return [];
|
|
104
|
+
const diag = (d) => { if (onDiag) onDiag(d); };
|
|
85
105
|
try {
|
|
106
|
+
let raw;
|
|
86
107
|
if (isWin) {
|
|
87
108
|
// spawnSync with shell:false — the argument reaches powershell.exe verbatim.
|
|
88
109
|
// An execSync string would cross JS -> cmd.exe -> powershell, three escaping
|
|
89
110
|
// layers deep, where one added quote silently turns the sweep into a no-op.
|
|
111
|
+
// -Filter "Name='node.exe'" is what bounds the CIM output size; the tsx +
|
|
112
|
+
// src/index.ts marker match now lives in parseWindowsTsxEntries() (JS side)
|
|
113
|
+
// so it can never drift from the POSIX arm's equivalent check — which
|
|
114
|
+
// means, unlike the pre-fix Where-Object clause, this pipe now carries
|
|
115
|
+
// EVERY node.exe process's PID+CommandLine, not just the 2-4 matches.
|
|
116
|
+
// maxBuffer, symmetric with the POSIX arm below: spawnSync's 1 MiB
|
|
117
|
+
// default silently TRUNCATES stdout on overflow (no throw), which would
|
|
118
|
+
// corrupt the JSON and make parseWindowsTsxEntries return [] the same
|
|
119
|
+
// way a genuine "nothing is running" result does.
|
|
120
|
+
// [Console]::OutputEncoding=UTF8: PowerShell 5.1 writes redirected stdout
|
|
121
|
+
// in the OEM codepage by default; any non-ASCII byte in ANY node.exe
|
|
122
|
+
// command line on the machine would otherwise corrupt the JSON stream
|
|
123
|
+
// and drop every candidate, not just the offending one.
|
|
124
|
+
// ParentProcessId: lets filterTsxEntriesByRepo() order a kill-safe
|
|
125
|
+
// parents-before-children sequence instead of trusting raw CIM
|
|
126
|
+
// enumeration order (external review round 5, openai).
|
|
90
127
|
const script =
|
|
128
|
+
'[Console]::OutputEncoding=[Text.Encoding]::UTF8; ' +
|
|
91
129
|
"Get-CimInstance Win32_Process -Filter \"Name='node.exe'\" | " +
|
|
92
|
-
|
|
93
|
-
'Select-Object -ExpandProperty ProcessId';
|
|
130
|
+
'Select-Object ProcessId, ParentProcessId, CommandLine | ConvertTo-Json -Compress';
|
|
94
131
|
const r = spawnSync('powershell', ['-NoProfile', '-Command', script], {
|
|
95
132
|
encoding: 'utf-8',
|
|
96
133
|
shell: false,
|
|
134
|
+
maxBuffer: 16 * 1024 * 1024,
|
|
97
135
|
});
|
|
98
|
-
|
|
136
|
+
// r.error (spawn itself failed, e.g. powershell missing) and a non-zero
|
|
137
|
+
// exit are both silently-successful-looking to JSON.parse otherwise —
|
|
138
|
+
// partial/garbage stdout would parse as "no candidates" instead of
|
|
139
|
+
// "discovery failed", which is the wrong diagnosis to hand the operator.
|
|
140
|
+
// Empty stdout on a CLEAN exit is NOT an error, though: when zero
|
|
141
|
+
// node.exe processes match the CIM filter, ConvertTo-Json legitimately
|
|
142
|
+
// prints nothing on an empty pipeline — that is "0 candidates", not a
|
|
143
|
+
// failure (external review round 2 caught this ambiguity in the
|
|
144
|
+
// original check, which is exactly the false diagnosis onDiag exists
|
|
145
|
+
// to prevent).
|
|
146
|
+
if (r.error || r.status !== 0) {
|
|
147
|
+
diag({ raw: null, matched: null, error: r.error ? String(r.error) : `powershell exited ${r.status}` });
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
raw = parseWindowsTsxEntries(r.stdout);
|
|
151
|
+
} else {
|
|
152
|
+
// ps -A -o pid=,args= (NOT pgrep -af): pgrep's -a flag is not portable —
|
|
153
|
+
// it means "include the full command line" on Linux (procps) but "include
|
|
154
|
+
// process ancestors" on macOS/BSD, which would leave every entry's command
|
|
155
|
+
// line empty and silently drop the whole sweep there. See
|
|
156
|
+
// deploy-tsx-scope.js's parsePosixTsxEntries() for the full story; it also owns the tsx +
|
|
157
|
+
// src/index.ts match, since ps -A itself returns every process unfiltered.
|
|
158
|
+
// -ww: never truncate a long command line to terminal width (the match
|
|
159
|
+
// needs the FULL line, including the trailing src/index.ts). maxBuffer:
|
|
160
|
+
// execSync's 1 MiB default is sized for a handful of PIDs (what pgrep
|
|
161
|
+
// used to return); ps -A emits every process's full argv, which can
|
|
162
|
+
// exceed it on a loaded dev machine — an ENOBUFS there would silently
|
|
163
|
+
// return [] through the catch below and leave the watch parent alive.
|
|
164
|
+
const out = execSync('ps -Aww -o pid=,ppid=,args=', { ...CAPTURE, maxBuffer: 16 * 1024 * 1024 });
|
|
165
|
+
raw = parsePosixTsxEntries(out);
|
|
99
166
|
}
|
|
100
|
-
|
|
101
|
-
|
|
167
|
+
const matched = filterTsxEntriesByRepo(raw, repoRoot);
|
|
168
|
+
diag({ raw: raw.length, matched: matched.length });
|
|
169
|
+
return matched;
|
|
170
|
+
} catch (e) {
|
|
171
|
+
diag({ raw: null, matched: null, error: String(e) });
|
|
102
172
|
return [];
|
|
103
173
|
}
|
|
104
174
|
}
|
|
@@ -149,10 +219,25 @@ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
|
149
219
|
* SIGKILL follows only if it is still there. Windows has no graceful signal —
|
|
150
220
|
* taskkill /F was immediate before this change too.
|
|
151
221
|
*
|
|
222
|
+
* Kill ORDER is load-bearing: the tsx-watch PARENT goes first, the port
|
|
223
|
+
* listener (its child, when the two are distinct PIDs) second. Killing the
|
|
224
|
+
* listener first leaves the parent alive for the gap until its own kill
|
|
225
|
+
* lands — long enough, per this function's own justification above, for
|
|
226
|
+
* `tsx watch` to respawn a new child and re-take the port before we ever
|
|
227
|
+
* get to the parent.
|
|
228
|
+
*
|
|
229
|
+
* @param {number} port
|
|
230
|
+
* @param {{timeoutMs?: number, repoRoot?: string, onDiag?: (diag: {raw: number|null, matched: number|null, error?: string}) => void}} [options]
|
|
231
|
+
* @param {number} [options.timeoutMs]
|
|
232
|
+
* @param {string} [options.repoRoot] absolute path to the server dir being
|
|
233
|
+
* deployed — scopes the tsx-watch sweep to this checkout only, see
|
|
234
|
+
* findTsxServerPids().
|
|
235
|
+
* @param {(diag: {raw: number|null, matched: number|null, error?: string}) => void} [options.onDiag]
|
|
236
|
+
* forwarded to findTsxServerPids() — see its doc for why this matters.
|
|
152
237
|
* @returns {Promise<{freed: boolean, killed: string[], survivor: string|null}>}
|
|
153
238
|
*/
|
|
154
|
-
export async function stopOldServer(port, { timeoutMs = 5000 } = {}) {
|
|
155
|
-
const killed = [...new Set([...
|
|
239
|
+
export async function stopOldServer(port, { timeoutMs = 5000, repoRoot, onDiag } = {}) {
|
|
240
|
+
const killed = [...new Set([...findTsxServerPids(repoRoot, onDiag), ...findListenerPids(port)])];
|
|
156
241
|
for (const pid of killed) killPid(pid);
|
|
157
242
|
|
|
158
243
|
// Cannot observe listeners (no lsof) — fall back to the pre-fix behavior.
|
package/scripts/deploy-swap.mjs
CHANGED
|
@@ -216,20 +216,41 @@ async function main() {
|
|
|
216
216
|
|
|
217
217
|
// 1. Stop the old server. From here on the caller may die at any moment — this
|
|
218
218
|
// kill tears down the ConPTY that hosts it.
|
|
219
|
+
const tsxDiag = {};
|
|
219
220
|
const { freed, killed, survivor } = await stopOldServer(port, {
|
|
220
221
|
timeoutMs: PORT_FREE_TIMEOUT_MS,
|
|
222
|
+
// Scopes the tsx-watch parent sweep to THIS checkout's server dir only —
|
|
223
|
+
// without it the sweep matches any repo's/worktree's tsx watch process
|
|
224
|
+
// on the machine (iterate-2026-09-09-deploy-tsx-kill-scope).
|
|
225
|
+
repoRoot: serverDir,
|
|
226
|
+
onDiag: (d) => Object.assign(tsxDiag, d),
|
|
221
227
|
});
|
|
222
228
|
log(killed.length ? `stopped PID(s): ${killed.join(' ')}` : `nothing was listening on ${port}`);
|
|
229
|
+
log(
|
|
230
|
+
tsxDiag.error
|
|
231
|
+
? `tsx-watch sweep: discovery failed (${tsxDiag.error}) — a stale watch parent may survive`
|
|
232
|
+
: `tsx-watch sweep: ${tsxDiag.raw ?? 0} candidate(s) seen, ${tsxDiag.matched ?? 0} matched this repo (${serverDir})`,
|
|
233
|
+
);
|
|
223
234
|
|
|
224
235
|
if (!freed) {
|
|
225
236
|
// The port never came free. Starting now would only hit EADDRINUSE and leave
|
|
226
|
-
// the machine with NOTHING.
|
|
227
|
-
// one, far better than none. Say so loudly and stop here.
|
|
237
|
+
// the machine with NOTHING. Say so loudly and stop here.
|
|
228
238
|
heal('kill-failed');
|
|
239
|
+
// Candidates existed elsewhere but none matched THIS repo: the survivor is
|
|
240
|
+
// more likely a different checkout's tsx watch (repo-scoped by design,
|
|
241
|
+
// iterate-2026-09-09-deploy-tsx-kill-scope) than "the old server" — say so,
|
|
242
|
+
// rather than sending the operator hunting the wrong process.
|
|
243
|
+
const foreignHint =
|
|
244
|
+
tsxDiag.raw > 0 && tsxDiag.matched === 0
|
|
245
|
+
? `this looks like a DIFFERENT checkout's tsx watch process holding the port ` +
|
|
246
|
+
`(sweep saw ${tsxDiag.raw} tsx-watch candidate(s) elsewhere, none in this repo) — ` +
|
|
247
|
+
`check for another worktree bound to port ${port}; `
|
|
248
|
+
: '';
|
|
229
249
|
return finish(false, {
|
|
230
250
|
readiness: 'listener',
|
|
231
251
|
error:
|
|
232
252
|
`port ${port} is still held by PID ${survivor} after ${PORT_FREE_TIMEOUT_MS} ms — ` +
|
|
253
|
+
foreignHint +
|
|
233
254
|
`the OLD server is still running and was NOT replaced (nothing new was started)`,
|
|
234
255
|
});
|
|
235
256
|
}
|
package/server/dist/config.d.ts
CHANGED
|
@@ -91,6 +91,15 @@ export interface ServerConfig {
|
|
|
91
91
|
* accepting unauthenticated calls.
|
|
92
92
|
*/
|
|
93
93
|
leadsRouteSecret: string | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* iterate-2026-09-07-leadwright-setup-wizard (W14) — local filesystem
|
|
96
|
+
* CHECKOUT of the leadwright repo (for spawning
|
|
97
|
+
* `scripts/check-setup.ts --stdin --json`), distinct from `leadsRoot`
|
|
98
|
+
* (leadwright's DATA dir, above). Unset ⇒ the verdict/commit routes fail
|
|
99
|
+
* closed with a named "leadwright not configured" state rather than
|
|
100
|
+
* silently skipping the check — same posture as `leadsRouteSecret`.
|
|
101
|
+
*/
|
|
102
|
+
leadwrightCheckoutRoot: string | undefined;
|
|
94
103
|
}
|
|
95
104
|
export declare function getConfig(): ServerConfig;
|
|
96
105
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yGAAyG;IACzG,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iGAAiG;IACjG,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gHAAgH;IAChH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,yBAAyB,EAAE,MAAM,CAAC;IAClC,oGAAoG;IACpG,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;;;;;;;;;;OAYG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,yGAAyG;IACzG,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iGAAiG;IACjG,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gHAAgH;IAChH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,yBAAyB,EAAE,MAAM,CAAC;IAClC,oGAAoG;IACpG,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;;;;;;;;;;OAYG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAeD,wBAAgB,SAAS,IAAI,YAAY,CA0ExC"}
|
package/server/dist/config.js
CHANGED
|
@@ -63,6 +63,7 @@ export function getConfig() {
|
|
|
63
63
|
leadsRoot: process.env.SHIPWRIGHT_LEADS_ROOT ??
|
|
64
64
|
path.join(os.homedir(), ".claude", "leads"),
|
|
65
65
|
leadsRouteSecret: process.env.SHIPWRIGHT_LEADS_ROUTE_SECRET || undefined,
|
|
66
|
+
leadwrightCheckoutRoot: process.env.SHIPWRIGHT_LEADWRIGHT_CHECKOUT || undefined,
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-events.d.ts","sourceRoot":"","sources":["../../src/core/campaign-events.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,qBAAqB,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IACjC;;8EAE0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAcpF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GACtB,wBAAwB,CAwC1B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAUhF;
|
|
1
|
+
{"version":3,"file":"campaign-events.d.ts","sourceRoot":"","sources":["../../src/core/campaign-events.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,qBAAqB,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IACjC;;8EAE0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,iFAAiF;AACjF,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAcpF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GACtB,wBAAwB,CAwC1B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAUhF;AAoDD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,EAAE,wBAAwB,GACnC,QAAQ,EAAE,CAwBZ"}
|
|
@@ -124,6 +124,7 @@ function synthesizeCampaign(slug, subs) {
|
|
|
124
124
|
// Reconstructed from the event log, which records only COMPLETED units.
|
|
125
125
|
statusSource: "events",
|
|
126
126
|
specPath: null, // no skeleton file on a clone → launch CTAs disable
|
|
127
|
+
dependsOn: [], // no skeleton → no graph
|
|
127
128
|
commit: p.commit || null,
|
|
128
129
|
branch: null,
|
|
129
130
|
planFirst: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-events.js","sourceRoot":"","sources":["../../src/core/campaign-events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"campaign-events.js","sourceRoot":"","sources":["../../src/core/campaign-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,kFAAkF;AAClF,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAkB7C,SAAS,OAAO,CAAC,EAAW;IAC1B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,QAAQ,CAAC;IACpD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAuB;IAEvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6B,CAAC;IAClD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,wEAAwE;IACxE,+EAA+E;IAC/E,uEAAuE;IACvE,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB;YAAE,SAAS;QAC1C,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,SAAS;QAC5D,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,cAAc;YAAE,SAAS;QAExE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACzC,2EAA2E;QAC3E,gEAAgE;QAChE,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG;YAAE,SAAS;QACrC,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;YAAE,SAAS;QACxD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE;YAC1B,GAAG;YACH,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SACvD,CAAC,CAAC;IACL,CAAC;IACD,6DAA6D;IAC7D,MAAM,GAAG,GAA6B,IAAI,GAAG,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACrC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAW;IACpC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;IAClE,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,4EAA4E;AAC5E,SAAS,kBAAkB,CACzB,IAAY,EACZ,IAAqC;IAErC,MAAM,KAAK,GAAmB,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC;QAC/B,EAAE;QACF,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE,EAAE,iDAAiD;QAC5D,MAAM,EAAE,UAAU;QAClB,wEAAwE;QACxE,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,IAAI,EAAE,oDAAoD;QACpE,SAAS,EAAE,EAAE,EAAE,yBAAyB;QACxC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;QACxB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;QACH,2EAA2E;SAC1E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI;QACZ,wEAAwE;QACxE,6EAA6E;QAC7E,UAAU,EAAE;YACV,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,KAAK;YACf,oEAAoE;YACpE,eAAe,EAAE,QAAQ;YACzB,oBAAoB,EAAE,KAAK;SAC5B;QACD,KAAK;QACL,IAAI,EAAE,KAAK,CAAC,MAAM;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,IAAI;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAqB,EACrB,UAAoC;IAEpC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC;gBAAE,SAAS,CAAC,yCAAyC;YAC3D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,IAAI,CAAC,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAe,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS;QACtD,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign-loop-state.d.ts","sourceRoot":"","sources":["../../src/core/campaign-loop-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"campaign-loop-state.d.ts","sourceRoot":"","sources":["../../src/core/campaign-loop-state.ts"],"names":[],"mappings":"AAyEA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxE;AAgBD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,YAAY,CAoBd;AA+CD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,CAAC,CAEb"}
|