@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.
Files changed (621) hide show
  1. package/client/dist/assets/{EmbeddedTerminal-D3wpPNZP.js → EmbeddedTerminal-4xgNUBUu.js} +19 -19
  2. package/client/dist/assets/{abnfDiagram-VRR7QNED-BkLIltB3.js → abnfDiagram-VRR7QNED-BdCNbaqc.js} +1 -1
  3. package/client/dist/assets/{arc-Sw-Gh0nI.js → arc-DoZTTE1N.js} +1 -1
  4. package/client/dist/assets/{architectureDiagram-ZJ3FMSHR-rdxUi9Ks.js → architectureDiagram-ZJ3FMSHR-DFTG4KtO.js} +1 -1
  5. package/client/dist/assets/{blockDiagram-677ZJIJ3-Ch_9dj8a.js → blockDiagram-677ZJIJ3-C34UBjOB.js} +1 -1
  6. package/client/dist/assets/{c4Diagram-LMCZKHZV-CkFlO65x.js → c4Diagram-LMCZKHZV-CbqAB1Ou.js} +1 -1
  7. package/client/dist/assets/channel-DBcZw7Kn.js +1 -0
  8. package/client/dist/assets/{chunk-2Q5K7J3B-CypX83xu.js → chunk-2Q5K7J3B-4N6AnmBJ.js} +1 -1
  9. package/client/dist/assets/{chunk-32BRIVSS-DxVLYGdl.js → chunk-32BRIVSS-Cs67LiCy.js} +1 -1
  10. package/client/dist/assets/{chunk-5VM5RSS4-Cxk1evhx.js → chunk-5VM5RSS4-Bwd7rtD3.js} +1 -1
  11. package/client/dist/assets/{chunk-EX3LRPZG-n9q5S4yJ.js → chunk-EX3LRPZG-CQqGfptD.js} +1 -1
  12. package/client/dist/assets/{chunk-JWPE2WC7-jeL4xvir.js → chunk-JWPE2WC7-ClvKd4PN.js} +1 -1
  13. package/client/dist/assets/{chunk-MOJQB5TN-DDSHN0cj.js → chunk-MOJQB5TN-Cwvj8GE1.js} +1 -1
  14. package/client/dist/assets/{chunk-RYQCIY6F-C0bo383g.js → chunk-RYQCIY6F-DrWMx37d.js} +1 -1
  15. package/client/dist/assets/{chunk-V7JOEXUC-C0jDXXAU.js → chunk-V7JOEXUC-CYFfa4PY.js} +1 -1
  16. package/client/dist/assets/{chunk-VR4S4FIN-h-Rr4Pn2.js → chunk-VR4S4FIN-B5eWtesm.js} +1 -1
  17. package/client/dist/assets/{chunk-XXDRQBXY-BexSo0-s.js → chunk-XXDRQBXY-BQAZ6Our.js} +1 -1
  18. package/client/dist/assets/classDiagram-OUVF2IWQ-C3Q1V9DU.js +1 -0
  19. package/client/dist/assets/classDiagram-v2-EOCWNBFH-C3Q1V9DU.js +1 -0
  20. package/client/dist/assets/{cose-bilkent-JH36ORCC-BQXzaioj.js → cose-bilkent-JH36ORCC-C76Yia6h.js} +1 -1
  21. package/client/dist/assets/{cynefin-VYW2F7L2-BJIofhfe.js → cynefin-VYW2F7L2-pJe7rdTi.js} +1 -1
  22. package/client/dist/assets/{cynefinDiagram-TSTJHNR4-DmPqTM1T.js → cynefinDiagram-TSTJHNR4-EeHQ7dYV.js} +1 -1
  23. package/client/dist/assets/{dagre-VKFMJZFB-1xljvw6X.js → dagre-VKFMJZFB-VXOY6IHR.js} +1 -1
  24. package/client/dist/assets/{diagram-FQU43EPY-iyL9muCG.js → diagram-FQU43EPY-DW_-leqw.js} +1 -1
  25. package/client/dist/assets/{diagram-G47NLZAW-DREp2Th6.js → diagram-G47NLZAW-C_hsLD4u.js} +1 -1
  26. package/client/dist/assets/{diagram-NH7WQ7WH-h0X3Is2S.js → diagram-NH7WQ7WH-CbeQuO_f.js} +1 -1
  27. package/client/dist/assets/{diagram-OA4YK3LP-Bj8YZRFJ.js → diagram-OA4YK3LP-DRHY5d_c.js} +1 -1
  28. package/client/dist/assets/{diagram-WEI45ONY-BZOf805d.js → diagram-WEI45ONY-B87OYR_S.js} +1 -1
  29. package/client/dist/assets/{ebnfDiagram-CCIWWBDH-DO5JnXda.js → ebnfDiagram-CCIWWBDH-B8Z8WHF6.js} +1 -1
  30. package/client/dist/assets/{erDiagram-Q63AITRT-DRgcqg1T.js → erDiagram-Q63AITRT-DaD7oa9H.js} +1 -1
  31. package/client/dist/assets/{flowDiagram-23GEKE2U-C3J9QmrW.js → flowDiagram-23GEKE2U-GrMVpsea.js} +1 -1
  32. package/client/dist/assets/{ganttDiagram-NO4QXBWP-BIEl3Tkm.js → ganttDiagram-NO4QXBWP-K3X0DYBa.js} +1 -1
  33. package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-BNF0tFWC.js → gitGraphDiagram-IHSO6WYX-B2SEx0xa.js} +1 -1
  34. package/client/dist/assets/index-CIpLt0ie.js +863 -0
  35. package/client/dist/assets/index-DGtnTeFd.css +1 -0
  36. package/client/dist/assets/{infoDiagram-FWYZ7A6U-DEyFxiyY.js → infoDiagram-FWYZ7A6U-Fi8fQ95G.js} +1 -1
  37. package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-B_ehlg3I.js → ishikawaDiagram-FXEZZL3T-CrN7QJzt.js} +1 -1
  38. package/client/dist/assets/{journeyDiagram-5HDEW3XC-Dp00FyJS.js → journeyDiagram-5HDEW3XC-XHIsl7rM.js} +1 -1
  39. package/client/dist/assets/{kanban-definition-HUTT4EX6-CTAf16q8.js → kanban-definition-HUTT4EX6-A6HJqHw7.js} +1 -1
  40. package/client/dist/assets/{linear-9vNUgmYd.js → linear-D1vF9IQB.js} +1 -1
  41. package/client/dist/assets/{mermaid.core-A6tjaEVD.js → mermaid.core-D6w9zlA0.js} +4 -4
  42. package/client/dist/assets/{mindmap-definition-LN4V7U3C-DRW3bmCY.js → mindmap-definition-LN4V7U3C-CxRkUj6Z.js} +1 -1
  43. package/client/dist/assets/{pegDiagram-2B236MQR-DJFCjHp2.js → pegDiagram-2B236MQR-Bs9dp-8a.js} +1 -1
  44. package/client/dist/assets/{pieDiagram-ENE6RG2P-KRd-sGvC.js → pieDiagram-ENE6RG2P-DBWILzB8.js} +1 -1
  45. package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-9TLZE3Hu.js → quadrantDiagram-ABIIQ3AL-DrCVJJx6.js} +1 -1
  46. package/client/dist/assets/{railroadDiagram-RFXS5EU6-y4tLtjXg.js → railroadDiagram-RFXS5EU6-BdPW2dNf.js} +1 -1
  47. package/client/dist/assets/{requirementDiagram-TGXJPOKE-B9EOQDQM.js → requirementDiagram-TGXJPOKE-Bj_g3tC5.js} +1 -1
  48. package/client/dist/assets/{sankeyDiagram-HTMAVEWB-zfwiDzkT.js → sankeyDiagram-HTMAVEWB-BGL9NnsS.js} +1 -1
  49. package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-DW1LWepL.js → sequenceDiagram-DBY2YBRQ-DEirxTZY.js} +1 -1
  50. package/client/dist/assets/{sizeCapture-X5ZJPWSS-BM81Mik0.js → sizeCapture-X5ZJPWSS-BtLrvrea.js} +1 -1
  51. package/client/dist/assets/{stateDiagram-2N3HPSRC-D0EMIw1w.js → stateDiagram-2N3HPSRC-D3GXIouX.js} +1 -1
  52. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-D3lXe_mJ.js +1 -0
  53. package/client/dist/assets/{swimlanes-5IMT3BWC-CKXNCX6M.js → swimlanes-5IMT3BWC-PMRQzNhU.js} +2 -2
  54. package/client/dist/assets/swimlanesDiagram-G3AALYLV-DMLbRFiO.js +8 -0
  55. package/client/dist/assets/{timeline-definition-FHXFAJF6-ByzIfvL5.js → timeline-definition-FHXFAJF6-CnBKJtD_.js} +1 -1
  56. package/client/dist/assets/{vennDiagram-L72KCM5P-Xep38xBH.js → vennDiagram-L72KCM5P-BYmiJYoh.js} +1 -1
  57. package/client/dist/assets/{wardleyDiagram-EHGQE667-DKWDpx6g.js → wardleyDiagram-EHGQE667-DU7vW8q3.js} +1 -1
  58. package/client/dist/assets/{xychartDiagram-FW5EYKEG-BGcwZTnu.js → xychartDiagram-FW5EYKEG-BEtPvBSU.js} +1 -1
  59. package/client/dist/index.html +2 -2
  60. package/lib/preflight.mjs +24 -5
  61. package/lib/probes.mjs +10 -4
  62. package/lib/server.mjs +149 -12
  63. package/lib/util.mjs +5 -1
  64. package/package.json +1 -1
  65. package/scripts/deploy-procs.mjs +105 -20
  66. package/scripts/deploy-swap.mjs +23 -2
  67. package/server/dist/config.d.ts +9 -0
  68. package/server/dist/config.d.ts.map +1 -1
  69. package/server/dist/config.js +1 -0
  70. package/server/dist/config.js.map +1 -1
  71. package/server/dist/core/campaign-events.d.ts.map +1 -1
  72. package/server/dist/core/campaign-events.js +1 -0
  73. package/server/dist/core/campaign-events.js.map +1 -1
  74. package/server/dist/core/campaign-loop-state.d.ts.map +1 -1
  75. package/server/dist/core/campaign-loop-state.js +54 -21
  76. package/server/dist/core/campaign-loop-state.js.map +1 -1
  77. package/server/dist/core/campaign-parse.d.ts +4 -0
  78. package/server/dist/core/campaign-parse.d.ts.map +1 -1
  79. package/server/dist/core/campaign-parse.js +9 -0
  80. package/server/dist/core/campaign-parse.js.map +1 -1
  81. package/server/dist/core/campaign-readiness-schema.d.ts +33 -0
  82. package/server/dist/core/campaign-readiness-schema.d.ts.map +1 -0
  83. package/server/dist/core/campaign-readiness-schema.js +70 -0
  84. package/server/dist/core/campaign-readiness-schema.js.map +1 -0
  85. package/server/dist/core/campaign-readiness.d.ts +59 -0
  86. package/server/dist/core/campaign-readiness.d.ts.map +1 -0
  87. package/server/dist/core/campaign-readiness.js +163 -0
  88. package/server/dist/core/campaign-readiness.js.map +1 -0
  89. package/server/dist/core/campaign-status-json.d.ts +3 -0
  90. package/server/dist/core/campaign-status-json.d.ts.map +1 -1
  91. package/server/dist/core/campaign-status-json.js +7 -0
  92. package/server/dist/core/campaign-status-json.js.map +1 -1
  93. package/server/dist/core/campaign-store.d.ts.map +1 -1
  94. package/server/dist/core/campaign-store.js +4 -1
  95. package/server/dist/core/campaign-store.js.map +1 -1
  96. package/server/dist/core/campaign-types.d.ts +8 -0
  97. package/server/dist/core/campaign-types.d.ts.map +1 -1
  98. package/server/dist/core/campaign-worktree-root.d.ts +19 -0
  99. package/server/dist/core/campaign-worktree-root.d.ts.map +1 -0
  100. package/server/dist/core/campaign-worktree-root.js +76 -0
  101. package/server/dist/core/campaign-worktree-root.js.map +1 -0
  102. package/server/dist/core/claim-record-lock.d.ts +30 -0
  103. package/server/dist/core/claim-record-lock.d.ts.map +1 -0
  104. package/server/dist/core/claim-record-lock.js +90 -0
  105. package/server/dist/core/claim-record-lock.js.map +1 -0
  106. package/server/dist/core/cli-child-spawn.d.ts +28 -0
  107. package/server/dist/core/cli-child-spawn.d.ts.map +1 -0
  108. package/server/dist/core/cli-child-spawn.js +146 -0
  109. package/server/dist/core/cli-child-spawn.js.map +1 -0
  110. package/server/dist/core/codex-models-probe.d.ts +46 -0
  111. package/server/dist/core/codex-models-probe.d.ts.map +1 -0
  112. package/server/dist/core/codex-models-probe.js +103 -0
  113. package/server/dist/core/codex-models-probe.js.map +1 -0
  114. package/server/dist/core/codex-oracle-runner.d.ts +68 -0
  115. package/server/dist/core/codex-oracle-runner.d.ts.map +1 -0
  116. package/server/dist/core/codex-oracle-runner.js +124 -0
  117. package/server/dist/core/codex-oracle-runner.js.map +1 -0
  118. package/server/dist/core/codex-status-report.d.ts +6 -0
  119. package/server/dist/core/codex-status-report.d.ts.map +1 -0
  120. package/server/dist/core/codex-status-report.js +40 -0
  121. package/server/dist/core/codex-status-report.js.map +1 -0
  122. package/server/dist/core/codex-task-watcher-types.d.ts +69 -0
  123. package/server/dist/core/codex-task-watcher-types.d.ts.map +1 -0
  124. package/server/dist/core/codex-task-watcher-types.js +12 -0
  125. package/server/dist/core/codex-task-watcher-types.js.map +1 -0
  126. package/server/dist/core/codex-task-watcher.d.ts +30 -0
  127. package/server/dist/core/codex-task-watcher.d.ts.map +1 -0
  128. package/server/dist/core/codex-task-watcher.js +252 -0
  129. package/server/dist/core/codex-task-watcher.js.map +1 -0
  130. package/server/dist/core/codex-terminal-signal-detect.d.ts +7 -0
  131. package/server/dist/core/codex-terminal-signal-detect.d.ts.map +1 -0
  132. package/server/dist/core/codex-terminal-signal-detect.js +113 -0
  133. package/server/dist/core/codex-terminal-signal-detect.js.map +1 -0
  134. package/server/dist/core/codex-thread-discovery.d.ts +21 -0
  135. package/server/dist/core/codex-thread-discovery.d.ts.map +1 -0
  136. package/server/dist/core/codex-thread-discovery.js +169 -0
  137. package/server/dist/core/codex-thread-discovery.js.map +1 -0
  138. package/server/dist/core/codextender-auth-file-sweep.d.ts +41 -0
  139. package/server/dist/core/codextender-auth-file-sweep.d.ts.map +1 -0
  140. package/server/dist/core/codextender-auth-file-sweep.js +97 -0
  141. package/server/dist/core/codextender-auth-file-sweep.js.map +1 -0
  142. package/server/dist/core/codextender-proxy-probe.d.ts +80 -0
  143. package/server/dist/core/codextender-proxy-probe.d.ts.map +1 -0
  144. package/server/dist/core/codextender-proxy-probe.js +179 -0
  145. package/server/dist/core/codextender-proxy-probe.js.map +1 -0
  146. package/server/dist/core/contract-version.d.ts +16 -1
  147. package/server/dist/core/contract-version.d.ts.map +1 -1
  148. package/server/dist/core/contract-version.js +16 -1
  149. package/server/dist/core/contract-version.js.map +1 -1
  150. package/server/dist/core/launcher-codex.d.ts +61 -0
  151. package/server/dist/core/launcher-codex.d.ts.map +1 -0
  152. package/server/dist/core/launcher-codex.js +187 -0
  153. package/server/dist/core/launcher-codex.js.map +1 -0
  154. package/server/dist/core/launcher-codextender-env.d.ts +44 -0
  155. package/server/dist/core/launcher-codextender-env.d.ts.map +1 -0
  156. package/server/dist/core/launcher-codextender-env.js +212 -0
  157. package/server/dist/core/launcher-codextender-env.js.map +1 -0
  158. package/server/dist/core/launcher-codextender.d.ts +72 -0
  159. package/server/dist/core/launcher-codextender.d.ts.map +1 -0
  160. package/server/dist/core/launcher-codextender.js +98 -0
  161. package/server/dist/core/launcher-codextender.js.map +1 -0
  162. package/server/dist/core/launcher-codextender.smoke-helpers.d.ts +25 -0
  163. package/server/dist/core/launcher-codextender.smoke-helpers.d.ts.map +1 -0
  164. package/server/dist/core/launcher-codextender.smoke-helpers.js +211 -0
  165. package/server/dist/core/launcher-codextender.smoke-helpers.js.map +1 -0
  166. package/server/dist/core/launcher-permission-flags.d.ts +17 -0
  167. package/server/dist/core/launcher-permission-flags.d.ts.map +1 -0
  168. package/server/dist/core/launcher-permission-flags.js +27 -0
  169. package/server/dist/core/launcher-permission-flags.js.map +1 -0
  170. package/server/dist/core/launcher.d.ts +18 -0
  171. package/server/dist/core/launcher.d.ts.map +1 -1
  172. package/server/dist/core/launcher.js +6 -0
  173. package/server/dist/core/launcher.js.map +1 -1
  174. package/server/dist/core/leadwright-preflight-transport.d.ts +27 -0
  175. package/server/dist/core/leadwright-preflight-transport.d.ts.map +1 -0
  176. package/server/dist/core/leadwright-preflight-transport.js +124 -0
  177. package/server/dist/core/leadwright-preflight-transport.js.map +1 -0
  178. package/server/dist/core/mission-context/artifacts-tests-ac.d.ts +6 -0
  179. package/server/dist/core/mission-context/artifacts-tests-ac.d.ts.map +1 -0
  180. package/server/dist/core/mission-context/artifacts-tests-ac.js +31 -0
  181. package/server/dist/core/mission-context/artifacts-tests-ac.js.map +1 -0
  182. package/server/dist/core/mission-context/artifacts-tests.d.ts.map +1 -1
  183. package/server/dist/core/mission-context/artifacts-tests.js +20 -0
  184. package/server/dist/core/mission-context/artifacts-tests.js.map +1 -1
  185. package/server/dist/core/mission-context/resolver-io.d.ts +10 -0
  186. package/server/dist/core/mission-context/resolver-io.d.ts.map +1 -1
  187. package/server/dist/core/mission-context/resolver-parts.d.ts +8 -7
  188. package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -1
  189. package/server/dist/core/mission-context/resolver-parts.js +22 -14
  190. package/server/dist/core/mission-context/resolver-parts.js.map +1 -1
  191. package/server/dist/core/mission-context/resolver.d.ts.map +1 -1
  192. package/server/dist/core/mission-context/resolver.js +1 -1
  193. package/server/dist/core/mission-context/resolver.js.map +1 -1
  194. package/server/dist/core/mission-context/run-id-recovery.d.ts +18 -2
  195. package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -1
  196. package/server/dist/core/mission-context/run-id-recovery.js +38 -18
  197. package/server/dist/core/mission-context/run-id-recovery.js.map +1 -1
  198. package/server/dist/core/mission-context/traceability.d.ts.map +1 -1
  199. package/server/dist/core/mission-context/traceability.js +15 -1
  200. package/server/dist/core/mission-context/traceability.js.map +1 -1
  201. package/server/dist/core/mission-context/types-slice2.d.ts +44 -0
  202. package/server/dist/core/mission-context/types-slice2.d.ts.map +1 -1
  203. package/server/dist/core/model-tier-config-reader.d.ts +14 -1
  204. package/server/dist/core/model-tier-config-reader.d.ts.map +1 -1
  205. package/server/dist/core/model-tier-config-reader.js +34 -2
  206. package/server/dist/core/model-tier-config-reader.js.map +1 -1
  207. package/server/dist/core/powershell-probe.smoke-helpers.d.ts +12 -0
  208. package/server/dist/core/powershell-probe.smoke-helpers.d.ts.map +1 -0
  209. package/server/dist/core/powershell-probe.smoke-helpers.js +80 -0
  210. package/server/dist/core/powershell-probe.smoke-helpers.js.map +1 -0
  211. package/server/dist/core/readiness-install-hints.d.ts +1 -1
  212. package/server/dist/core/readiness-install-hints.d.ts.map +1 -1
  213. package/server/dist/core/readiness-install-hints.js +5 -0
  214. package/server/dist/core/readiness-install-hints.js.map +1 -1
  215. package/server/dist/core/readiness-probe-run.d.ts +61 -0
  216. package/server/dist/core/readiness-probe-run.d.ts.map +1 -1
  217. package/server/dist/core/readiness-probe-run.js +93 -15
  218. package/server/dist/core/readiness-probe-run.js.map +1 -1
  219. package/server/dist/core/readiness-probe.d.ts +1 -1
  220. package/server/dist/core/readiness-probe.d.ts.map +1 -1
  221. package/server/dist/core/readiness-probe.js +36 -8
  222. package/server/dist/core/readiness-probe.js.map +1 -1
  223. package/server/dist/core/sdk-sessions-merge.d.ts +19 -0
  224. package/server/dist/core/sdk-sessions-merge.d.ts.map +1 -1
  225. package/server/dist/core/sdk-sessions-merge.js +19 -5
  226. package/server/dist/core/sdk-sessions-merge.js.map +1 -1
  227. package/server/dist/core/sdk-sessions-refresh.d.ts +50 -0
  228. package/server/dist/core/sdk-sessions-refresh.d.ts.map +1 -0
  229. package/server/dist/core/sdk-sessions-refresh.js +69 -0
  230. package/server/dist/core/sdk-sessions-refresh.js.map +1 -0
  231. package/server/dist/core/sdk-sessions-store.d.ts +48 -0
  232. package/server/dist/core/sdk-sessions-store.d.ts.map +1 -1
  233. package/server/dist/core/sdk-sessions-store.js +8 -9
  234. package/server/dist/core/sdk-sessions-store.js.map +1 -1
  235. package/server/dist/core/sdk-sessions-validate.d.ts.map +1 -1
  236. package/server/dist/core/sdk-sessions-validate.js +11 -0
  237. package/server/dist/core/sdk-sessions-validate.js.map +1 -1
  238. package/server/dist/core/settings-reader.d.ts +18 -0
  239. package/server/dist/core/settings-reader.d.ts.map +1 -0
  240. package/server/dist/core/settings-reader.js +40 -0
  241. package/server/dist/core/settings-reader.js.map +1 -0
  242. package/server/dist/core/shell-quote.d.ts +29 -0
  243. package/server/dist/core/shell-quote.d.ts.map +1 -1
  244. package/server/dist/core/shell-quote.js +34 -0
  245. package/server/dist/core/shell-quote.js.map +1 -1
  246. package/server/dist/core/shipwright-plugin-version-reader.d.ts +15 -0
  247. package/server/dist/core/shipwright-plugin-version-reader.d.ts.map +1 -0
  248. package/server/dist/core/shipwright-plugin-version-reader.js +49 -0
  249. package/server/dist/core/shipwright-plugin-version-reader.js.map +1 -0
  250. package/server/dist/core/task-editability.d.ts +1 -1
  251. package/server/dist/core/task-editability.d.ts.map +1 -1
  252. package/server/dist/core/task-editability.js +1 -0
  253. package/server/dist/core/task-editability.js.map +1 -1
  254. package/server/dist/core/triage-cli-runner.d.ts.map +1 -1
  255. package/server/dist/core/triage-cli-runner.js +6 -21
  256. package/server/dist/core/triage-cli-runner.js.map +1 -1
  257. package/server/dist/core/triage-compose.d.ts.map +1 -1
  258. package/server/dist/core/triage-compose.js +34 -3
  259. package/server/dist/core/triage-compose.js.map +1 -1
  260. package/server/dist/core/triage-store.d.ts +2 -1
  261. package/server/dist/core/triage-store.d.ts.map +1 -1
  262. package/server/dist/core/triage-store.js +1 -1
  263. package/server/dist/core/triage-store.js.map +1 -1
  264. package/server/dist/external/create-external-routes-args.d.ts +122 -0
  265. package/server/dist/external/create-external-routes-args.d.ts.map +1 -0
  266. package/server/dist/external/create-external-routes-args.js +2 -0
  267. package/server/dist/external/create-external-routes-args.js.map +1 -0
  268. package/server/dist/external/inbox/_codex.d.ts +14 -0
  269. package/server/dist/external/inbox/_codex.d.ts.map +1 -0
  270. package/server/dist/external/inbox/_codex.js +88 -0
  271. package/server/dist/external/inbox/_codex.js.map +1 -0
  272. package/server/dist/external/inbox/_derive.d.ts +2 -25
  273. package/server/dist/external/inbox/_derive.d.ts.map +1 -1
  274. package/server/dist/external/inbox/_derive.js +11 -0
  275. package/server/dist/external/inbox/_derive.js.map +1 -1
  276. package/server/dist/external/inbox/_lead.d.ts +23 -0
  277. package/server/dist/external/inbox/_lead.d.ts.map +1 -0
  278. package/server/dist/external/inbox/_lead.js +83 -0
  279. package/server/dist/external/inbox/_lead.js.map +1 -0
  280. package/server/dist/external/inbox/_types.d.ts +55 -0
  281. package/server/dist/external/inbox/_types.d.ts.map +1 -0
  282. package/server/dist/external/inbox/_types.js +13 -0
  283. package/server/dist/external/inbox/_types.js.map +1 -0
  284. package/server/dist/external/inbox/routes.d.ts +7 -0
  285. package/server/dist/external/inbox/routes.d.ts.map +1 -1
  286. package/server/dist/external/inbox/routes.js +43 -2
  287. package/server/dist/external/inbox/routes.js.map +1 -1
  288. package/server/dist/external/launch/_helpers.d.ts +4 -0
  289. package/server/dist/external/launch/_helpers.d.ts.map +1 -1
  290. package/server/dist/external/launch/_helpers.js.map +1 -1
  291. package/server/dist/external/launch/action-substitution-branch.d.ts +12 -0
  292. package/server/dist/external/launch/action-substitution-branch.d.ts.map +1 -1
  293. package/server/dist/external/launch/action-substitution-branch.js +35 -1
  294. package/server/dist/external/launch/action-substitution-branch.js.map +1 -1
  295. package/server/dist/external/launch/branch-dispatch.d.ts +15 -0
  296. package/server/dist/external/launch/branch-dispatch.d.ts.map +1 -0
  297. package/server/dist/external/launch/branch-dispatch.js +73 -0
  298. package/server/dist/external/launch/branch-dispatch.js.map +1 -0
  299. package/server/dist/external/launch/campaign-step-branch.d.ts +7 -1
  300. package/server/dist/external/launch/campaign-step-branch.d.ts.map +1 -1
  301. package/server/dist/external/launch/campaign-step-branch.js +70 -2
  302. package/server/dist/external/launch/campaign-step-branch.js.map +1 -1
  303. package/server/dist/external/launch/claim-executor-permissions.d.ts +31 -0
  304. package/server/dist/external/launch/claim-executor-permissions.d.ts.map +1 -0
  305. package/server/dist/external/launch/claim-executor-permissions.js +107 -0
  306. package/server/dist/external/launch/claim-executor-permissions.js.map +1 -0
  307. package/server/dist/external/launch/claim-executor-template-arming.d.ts +42 -0
  308. package/server/dist/external/launch/claim-executor-template-arming.d.ts.map +1 -0
  309. package/server/dist/external/launch/claim-executor-template-arming.js +121 -0
  310. package/server/dist/external/launch/claim-executor-template-arming.js.map +1 -0
  311. package/server/dist/external/launch/claim-holder-gate.d.ts +51 -0
  312. package/server/dist/external/launch/claim-holder-gate.d.ts.map +1 -0
  313. package/server/dist/external/launch/claim-holder-gate.js +95 -0
  314. package/server/dist/external/launch/claim-holder-gate.js.map +1 -0
  315. package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts +3 -0
  316. package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts.map +1 -0
  317. package/server/dist/external/launch/claim-permission-perimeter-assert.js +24 -0
  318. package/server/dist/external/launch/claim-permission-perimeter-assert.js.map +1 -0
  319. package/server/dist/external/launch/legacy-fallback-branch.d.ts +14 -0
  320. package/server/dist/external/launch/legacy-fallback-branch.d.ts.map +1 -1
  321. package/server/dist/external/launch/legacy-fallback-branch.js +3 -1
  322. package/server/dist/external/launch/legacy-fallback-branch.js.map +1 -1
  323. package/server/dist/external/launch/master-run-branch.js +2 -2
  324. package/server/dist/external/launch/master-run-branch.js.map +1 -1
  325. package/server/dist/external/launch/mixed-intents-guard.d.ts +10 -0
  326. package/server/dist/external/launch/mixed-intents-guard.d.ts.map +1 -0
  327. package/server/dist/external/launch/mixed-intents-guard.js +49 -0
  328. package/server/dist/external/launch/mixed-intents-guard.js.map +1 -0
  329. package/server/dist/external/launch/parse-body.d.ts +29 -0
  330. package/server/dist/external/launch/parse-body.d.ts.map +1 -1
  331. package/server/dist/external/launch/parse-body.js +66 -0
  332. package/server/dist/external/launch/parse-body.js.map +1 -1
  333. package/server/dist/external/launch/routes.d.ts +3 -0
  334. package/server/dist/external/launch/routes.d.ts.map +1 -1
  335. package/server/dist/external/launch/routes.js +99 -128
  336. package/server/dist/external/launch/routes.js.map +1 -1
  337. package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts +20 -0
  338. package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts.map +1 -0
  339. package/server/dist/external/launch/runtime-chokepoint-codextender.js +51 -0
  340. package/server/dist/external/launch/runtime-chokepoint-codextender.js.map +1 -0
  341. package/server/dist/external/launch/runtime-chokepoint-errors.d.ts +33 -0
  342. package/server/dist/external/launch/runtime-chokepoint-errors.d.ts.map +1 -0
  343. package/server/dist/external/launch/runtime-chokepoint-errors.js +63 -0
  344. package/server/dist/external/launch/runtime-chokepoint-errors.js.map +1 -0
  345. package/server/dist/external/launch/runtime-chokepoint.d.ts +120 -0
  346. package/server/dist/external/launch/runtime-chokepoint.d.ts.map +1 -0
  347. package/server/dist/external/launch/runtime-chokepoint.js +201 -0
  348. package/server/dist/external/launch/runtime-chokepoint.js.map +1 -0
  349. package/server/dist/external/mission-context/routes.d.ts +33 -27
  350. package/server/dist/external/mission-context/routes.d.ts.map +1 -1
  351. package/server/dist/external/mission-context/routes.js +30 -27
  352. package/server/dist/external/mission-context/routes.js.map +1 -1
  353. package/server/dist/external/mission-context/test-harness.d.ts +6 -0
  354. package/server/dist/external/mission-context/test-harness.d.ts.map +1 -1
  355. package/server/dist/external/mission-context/test-harness.js +6 -1
  356. package/server/dist/external/mission-context/test-harness.js.map +1 -1
  357. package/server/dist/external/mission-context/wire.d.ts.map +1 -1
  358. package/server/dist/external/mission-context/wire.js +24 -2
  359. package/server/dist/external/mission-context/wire.js.map +1 -1
  360. package/server/dist/external/org/audit-log.d.ts +19 -0
  361. package/server/dist/external/org/audit-log.d.ts.map +1 -1
  362. package/server/dist/external/org/audit-log.js +33 -18
  363. package/server/dist/external/org/audit-log.js.map +1 -1
  364. package/server/dist/external/org/beat-effect-audit-read.d.ts +15 -0
  365. package/server/dist/external/org/beat-effect-audit-read.d.ts.map +1 -0
  366. package/server/dist/external/org/beat-effect-audit-read.js +73 -0
  367. package/server/dist/external/org/beat-effect-audit-read.js.map +1 -0
  368. package/server/dist/external/org/beat-register-health.d.ts +57 -0
  369. package/server/dist/external/org/beat-register-health.d.ts.map +1 -0
  370. package/server/dist/external/org/beat-register-health.js +125 -0
  371. package/server/dist/external/org/beat-register-health.js.map +1 -0
  372. package/server/dist/external/org/beat-register-release-core.d.ts.map +1 -1
  373. package/server/dist/external/org/beat-register-release-core.js +4 -1
  374. package/server/dist/external/org/beat-register-release-core.js.map +1 -1
  375. package/server/dist/external/org/beat-register-release-request.d.ts +20 -0
  376. package/server/dist/external/org/beat-register-release-request.d.ts.map +1 -0
  377. package/server/dist/external/org/beat-register-release-request.js +92 -0
  378. package/server/dist/external/org/beat-register-release-request.js.map +1 -0
  379. package/server/dist/external/org/beat-register-release.d.ts +3 -1
  380. package/server/dist/external/org/beat-register-release.d.ts.map +1 -1
  381. package/server/dist/external/org/beat-register-release.js +15 -57
  382. package/server/dist/external/org/beat-register-release.js.map +1 -1
  383. package/server/dist/external/org/beat-register.d.ts +18 -20
  384. package/server/dist/external/org/beat-register.d.ts.map +1 -1
  385. package/server/dist/external/org/beat-register.js +30 -56
  386. package/server/dist/external/org/beat-register.js.map +1 -1
  387. package/server/dist/external/org/beat-steps-read.d.ts +17 -0
  388. package/server/dist/external/org/beat-steps-read.d.ts.map +1 -0
  389. package/server/dist/external/org/beat-steps-read.js +89 -0
  390. package/server/dist/external/org/beat-steps-read.js.map +1 -0
  391. package/server/dist/external/org/charter-authority-read.d.ts +39 -0
  392. package/server/dist/external/org/charter-authority-read.d.ts.map +1 -0
  393. package/server/dist/external/org/charter-authority-read.js +142 -0
  394. package/server/dist/external/org/charter-authority-read.js.map +1 -0
  395. package/server/dist/external/org/commit-validate.d.ts +18 -0
  396. package/server/dist/external/org/commit-validate.d.ts.map +1 -0
  397. package/server/dist/external/org/commit-validate.js +59 -0
  398. package/server/dist/external/org/commit-validate.js.map +1 -0
  399. package/server/dist/external/org/commit-writes.d.ts +68 -0
  400. package/server/dist/external/org/commit-writes.d.ts.map +1 -0
  401. package/server/dist/external/org/commit-writes.js +110 -0
  402. package/server/dist/external/org/commit-writes.js.map +1 -0
  403. package/server/dist/external/org/commit.d.ts +73 -0
  404. package/server/dist/external/org/commit.d.ts.map +1 -0
  405. package/server/dist/external/org/commit.js +181 -0
  406. package/server/dist/external/org/commit.js.map +1 -0
  407. package/server/dist/external/org/commit.test-fixtures.d.ts +38 -0
  408. package/server/dist/external/org/commit.test-fixtures.d.ts.map +1 -0
  409. package/server/dist/external/org/commit.test-fixtures.js +67 -0
  410. package/server/dist/external/org/commit.test-fixtures.js.map +1 -0
  411. package/server/dist/external/org/countersign-core.d.ts +19 -0
  412. package/server/dist/external/org/countersign-core.d.ts.map +1 -0
  413. package/server/dist/external/org/countersign-core.js +122 -0
  414. package/server/dist/external/org/countersign-core.js.map +1 -0
  415. package/server/dist/external/org/countersign-request.d.ts +14 -0
  416. package/server/dist/external/org/countersign-request.d.ts.map +1 -0
  417. package/server/dist/external/org/countersign-request.js +78 -0
  418. package/server/dist/external/org/countersign-request.js.map +1 -0
  419. package/server/dist/external/org/countersign.d.ts +6 -5
  420. package/server/dist/external/org/countersign.d.ts.map +1 -1
  421. package/server/dist/external/org/countersign.js +12 -141
  422. package/server/dist/external/org/countersign.js.map +1 -1
  423. package/server/dist/external/org/daemon-config-read.d.ts +31 -0
  424. package/server/dist/external/org/daemon-config-read.d.ts.map +1 -0
  425. package/server/dist/external/org/daemon-config-read.js +50 -0
  426. package/server/dist/external/org/daemon-config-read.js.map +1 -0
  427. package/server/dist/external/org/decisions-lock.d.ts +6 -4
  428. package/server/dist/external/org/decisions-lock.d.ts.map +1 -1
  429. package/server/dist/external/org/decisions-lock.js +9 -8
  430. package/server/dist/external/org/decisions-lock.js.map +1 -1
  431. package/server/dist/external/org/domains.d.ts +35 -0
  432. package/server/dist/external/org/domains.d.ts.map +1 -0
  433. package/server/dist/external/org/domains.js +29 -0
  434. package/server/dist/external/org/domains.js.map +1 -0
  435. package/server/dist/external/org/existing-charters-read.d.ts +5 -0
  436. package/server/dist/external/org/existing-charters-read.d.ts.map +1 -0
  437. package/server/dist/external/org/existing-charters-read.js +31 -0
  438. package/server/dist/external/org/existing-charters-read.js.map +1 -0
  439. package/server/dist/external/org/lead-question-threads.d.ts +46 -0
  440. package/server/dist/external/org/lead-question-threads.d.ts.map +1 -0
  441. package/server/dist/external/org/lead-question-threads.js +132 -0
  442. package/server/dist/external/org/lead-question-threads.js.map +1 -0
  443. package/server/dist/external/org/leadwright-proposal-merge.d.ts +54 -0
  444. package/server/dist/external/org/leadwright-proposal-merge.d.ts.map +1 -0
  445. package/server/dist/external/org/leadwright-proposal-merge.js +47 -0
  446. package/server/dist/external/org/leadwright-proposal-merge.js.map +1 -0
  447. package/server/dist/external/org/mount.d.ts +11 -0
  448. package/server/dist/external/org/mount.d.ts.map +1 -1
  449. package/server/dist/external/org/mount.js +7 -1
  450. package/server/dist/external/org/mount.js.map +1 -1
  451. package/server/dist/external/org/org-chart-full-read.d.ts +19 -0
  452. package/server/dist/external/org/org-chart-full-read.d.ts.map +1 -0
  453. package/server/dist/external/org/org-chart-full-read.js +58 -0
  454. package/server/dist/external/org/org-chart-full-read.js.map +1 -0
  455. package/server/dist/external/org/org-file-lock.d.ts +41 -0
  456. package/server/dist/external/org/org-file-lock.d.ts.map +1 -0
  457. package/server/dist/external/org/org-file-lock.js +90 -0
  458. package/server/dist/external/org/org-file-lock.js.map +1 -0
  459. package/server/dist/external/org/routes.d.ts +10 -0
  460. package/server/dist/external/org/routes.d.ts.map +1 -1
  461. package/server/dist/external/org/routes.js +22 -1
  462. package/server/dist/external/org/routes.js.map +1 -1
  463. package/server/dist/external/org/usage.d.ts.map +1 -1
  464. package/server/dist/external/org/usage.js +20 -2
  465. package/server/dist/external/org/usage.js.map +1 -1
  466. package/server/dist/external/org/verdict.d.ts +57 -0
  467. package/server/dist/external/org/verdict.d.ts.map +1 -0
  468. package/server/dist/external/org/verdict.js +74 -0
  469. package/server/dist/external/org/verdict.js.map +1 -0
  470. package/server/dist/external/routes.d.ts +3 -101
  471. package/server/dist/external/routes.d.ts.map +1 -1
  472. package/server/dist/external/routes.js +12 -3
  473. package/server/dist/external/routes.js.map +1 -1
  474. package/server/dist/external/tasks/create.d.ts.map +1 -1
  475. package/server/dist/external/tasks/create.js +8 -0
  476. package/server/dist/external/tasks/create.js.map +1 -1
  477. package/server/dist/external/tasks/fork.d.ts +29 -0
  478. package/server/dist/external/tasks/fork.d.ts.map +1 -0
  479. package/server/dist/external/tasks/fork.js +166 -0
  480. package/server/dist/external/tasks/fork.js.map +1 -0
  481. package/server/dist/external/tasks/lifecycle.d.ts.map +1 -1
  482. package/server/dist/external/tasks/lifecycle.js +10 -57
  483. package/server/dist/external/tasks/lifecycle.js.map +1 -1
  484. package/server/dist/external/tasks/patch.d.ts.map +1 -1
  485. package/server/dist/external/tasks/patch.js +17 -0
  486. package/server/dist/external/tasks/patch.js.map +1 -1
  487. package/server/dist/external/tasks/routes.d.ts +2 -0
  488. package/server/dist/external/tasks/routes.d.ts.map +1 -1
  489. package/server/dist/external/tasks/routes.js +7 -0
  490. package/server/dist/external/tasks/routes.js.map +1 -1
  491. package/server/dist/external/transcript/routes.d.ts.map +1 -1
  492. package/server/dist/external/transcript/routes.js +25 -3
  493. package/server/dist/external/transcript/routes.js.map +1 -1
  494. package/server/dist/external-routes-wiring.d.ts +28 -0
  495. package/server/dist/external-routes-wiring.d.ts.map +1 -0
  496. package/server/dist/external-routes-wiring.js +61 -0
  497. package/server/dist/external-routes-wiring.js.map +1 -0
  498. package/server/dist/index.d.ts.map +1 -1
  499. package/server/dist/index.js +111 -44
  500. package/server/dist/index.js.map +1 -1
  501. package/server/dist/lib/resolveHonoHost.d.ts.map +1 -1
  502. package/server/dist/lib/resolveHonoHost.js +16 -1
  503. package/server/dist/lib/resolveHonoHost.js.map +1 -1
  504. package/server/dist/routes/_triage-api-harness.d.ts +1 -1
  505. package/server/dist/routes/_triage-api-harness.d.ts.map +1 -1
  506. package/server/dist/routes/_triage-api-harness.js.map +1 -1
  507. package/server/dist/routes/campaigns-readiness.d.ts +10 -0
  508. package/server/dist/routes/campaigns-readiness.d.ts.map +1 -0
  509. package/server/dist/routes/campaigns-readiness.js +58 -0
  510. package/server/dist/routes/campaigns-readiness.js.map +1 -0
  511. package/server/dist/routes/campaigns.d.ts.map +1 -1
  512. package/server/dist/routes/campaigns.js +3 -0
  513. package/server/dist/routes/campaigns.js.map +1 -1
  514. package/server/dist/routes/codex-models.d.ts +15 -0
  515. package/server/dist/routes/codex-models.d.ts.map +1 -0
  516. package/server/dist/routes/codex-models.js +77 -0
  517. package/server/dist/routes/codex-models.js.map +1 -0
  518. package/server/dist/routes/codextender-models.d.ts +16 -0
  519. package/server/dist/routes/codextender-models.d.ts.map +1 -0
  520. package/server/dist/routes/codextender-models.js +81 -0
  521. package/server/dist/routes/codextender-models.js.map +1 -0
  522. package/server/dist/routes/diagnostics.d.ts +27 -0
  523. package/server/dist/routes/diagnostics.d.ts.map +1 -1
  524. package/server/dist/routes/diagnostics.js +5 -1
  525. package/server/dist/routes/diagnostics.js.map +1 -1
  526. package/server/dist/routes/org-chart-lead-guard.d.ts +10 -0
  527. package/server/dist/routes/org-chart-lead-guard.d.ts.map +1 -0
  528. package/server/dist/routes/org-chart-lead-guard.js +49 -0
  529. package/server/dist/routes/org-chart-lead-guard.js.map +1 -0
  530. package/server/dist/routes/org-inventory-composite.d.ts +20 -0
  531. package/server/dist/routes/org-inventory-composite.d.ts.map +1 -0
  532. package/server/dist/routes/org-inventory-composite.js +100 -0
  533. package/server/dist/routes/org-inventory-composite.js.map +1 -0
  534. package/server/dist/routes/org-lead-setup-wizard.d.ts +10 -0
  535. package/server/dist/routes/org-lead-setup-wizard.d.ts.map +1 -0
  536. package/server/dist/routes/org-lead-setup-wizard.js +51 -0
  537. package/server/dist/routes/org-lead-setup-wizard.js.map +1 -0
  538. package/server/dist/routes/org-leads-composite.d.ts.map +1 -1
  539. package/server/dist/routes/org-leads-composite.js +35 -9
  540. package/server/dist/routes/org-leads-composite.js.map +1 -1
  541. package/server/dist/routes/org-threads-composite.d.ts +24 -0
  542. package/server/dist/routes/org-threads-composite.d.ts.map +1 -0
  543. package/server/dist/routes/org-threads-composite.js +51 -0
  544. package/server/dist/routes/org-threads-composite.js.map +1 -0
  545. package/server/dist/routes/org-writes.d.ts +14 -0
  546. package/server/dist/routes/org-writes.d.ts.map +1 -0
  547. package/server/dist/routes/org-writes.js +61 -0
  548. package/server/dist/routes/org-writes.js.map +1 -0
  549. package/server/dist/routes/org.d.ts +14 -0
  550. package/server/dist/routes/org.d.ts.map +1 -1
  551. package/server/dist/routes/org.js +63 -47
  552. package/server/dist/routes/org.js.map +1 -1
  553. package/server/dist/routes/settings.d.ts.map +1 -1
  554. package/server/dist/routes/settings.js +23 -2
  555. package/server/dist/routes/settings.js.map +1 -1
  556. package/server/dist/routes/triage.d.ts +17 -0
  557. package/server/dist/routes/triage.d.ts.map +1 -1
  558. package/server/dist/routes/triage.js +29 -0
  559. package/server/dist/routes/triage.js.map +1 -1
  560. package/server/dist/terminal/pty-manager.d.ts +37 -1
  561. package/server/dist/terminal/pty-manager.d.ts.map +1 -1
  562. package/server/dist/terminal/pty-manager.js +33 -3
  563. package/server/dist/terminal/pty-manager.js.map +1 -1
  564. package/server/dist/terminal/pty-write-chunker.d.ts +109 -0
  565. package/server/dist/terminal/pty-write-chunker.d.ts.map +1 -0
  566. package/server/dist/terminal/pty-write-chunker.js +234 -0
  567. package/server/dist/terminal/pty-write-chunker.js.map +1 -0
  568. package/server/dist/terminal/routes.d.ts.map +1 -1
  569. package/server/dist/terminal/routes.js +9 -0
  570. package/server/dist/terminal/routes.js.map +1 -1
  571. package/server/dist/terminal/ws-upgrade-handler.d.ts.map +1 -1
  572. package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts.map +1 -1
  573. package/server/dist/terminal/ws-upgrade-handler.fixtures.js +1 -0
  574. package/server/dist/terminal/ws-upgrade-handler.fixtures.js.map +1 -1
  575. package/server/dist/terminal/ws-upgrade-handler.js +14 -5
  576. package/server/dist/terminal/ws-upgrade-handler.js.map +1 -1
  577. package/server/dist/test/event-test-counts-fixtures.d.ts +40 -0
  578. package/server/dist/test/event-test-counts-fixtures.d.ts.map +1 -0
  579. package/server/dist/test/event-test-counts-fixtures.js +56 -0
  580. package/server/dist/test/event-test-counts-fixtures.js.map +1 -0
  581. package/server/dist/types/leadwright-beat-step.d.ts +19 -0
  582. package/server/dist/types/leadwright-beat-step.d.ts.map +1 -0
  583. package/server/dist/types/leadwright-beat-step.js +56 -0
  584. package/server/dist/types/leadwright-beat-step.js.map +1 -0
  585. package/server/dist/types/leadwright-preflight.d.ts +90 -0
  586. package/server/dist/types/leadwright-preflight.d.ts.map +1 -0
  587. package/server/dist/types/leadwright-preflight.js +65 -0
  588. package/server/dist/types/leadwright-preflight.js.map +1 -0
  589. package/server/dist/types/leadwright-schema-drift.d.ts +28 -0
  590. package/server/dist/types/leadwright-schema-drift.d.ts.map +1 -0
  591. package/server/dist/types/leadwright-schema-drift.js +89 -0
  592. package/server/dist/types/leadwright-schema-drift.js.map +1 -0
  593. package/server/dist/types/org-inventory.d.ts +53 -0
  594. package/server/dist/types/org-inventory.d.ts.map +1 -0
  595. package/server/dist/types/org-inventory.js +11 -0
  596. package/server/dist/types/org-inventory.js.map +1 -0
  597. package/server/dist/types/org.d.ts +76 -6
  598. package/server/dist/types/org.d.ts.map +1 -1
  599. package/server/dist/types/run-config-retry.d.ts +29 -0
  600. package/server/dist/types/run-config-retry.d.ts.map +1 -0
  601. package/server/dist/types/run-config-retry.js +47 -0
  602. package/server/dist/types/run-config-retry.js.map +1 -0
  603. package/server/dist/types/run-config-v2.d.ts +29 -41
  604. package/server/dist/types/run-config-v2.d.ts.map +1 -1
  605. package/server/dist/types/run-config-v2.js +16 -50
  606. package/server/dist/types/run-config-v2.js.map +1 -1
  607. package/server/dist/types/settings.d.ts +33 -0
  608. package/server/dist/types/settings.d.ts.map +1 -1
  609. package/server/dist/vendor/leadwright/beat-step.schema.json +83 -0
  610. package/server/dist/vendor/leadwright/claim-record-lock-contract.json +15 -0
  611. package/server/dist/vendor/leadwright/org-chart.schema.json +195 -0
  612. package/server/dist/vendor/leadwright/preflight-input.schema.json +318 -0
  613. package/server/dist/vendor/leadwright/preflight-result.schema.json +56 -0
  614. package/server/package.json +1 -1
  615. package/client/dist/assets/channel-BYPbLjRl.js +0 -1
  616. package/client/dist/assets/classDiagram-OUVF2IWQ-CsFIeTju.js +0 -1
  617. package/client/dist/assets/classDiagram-v2-EOCWNBFH-CsFIeTju.js +0 -1
  618. package/client/dist/assets/index-BnTOrFHb.js +0 -829
  619. package/client/dist/assets/index-CYPc6qxw.css +0 -1
  620. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-B3E4_xxT.js +0 -1
  621. package/client/dist/assets/swimlanesDiagram-G3AALYLV-BegQBqnC.js +0 -8
@@ -4,6 +4,7 @@
4
4
  * The launch handler dispatches across branches in precedence order.
5
5
  * Each branch lives in its own file to keep this shell ≤ 300 LOC:
6
6
  *
7
+ * (dispatch chain lives in ./branch-dispatch.ts)
7
8
  * 1. ./phase-task-branch.ts — body.phaseTaskRef present
8
9
  * 2. ./campaign-branch.ts — body.campaignSlug + fresh-start (FR-01.34)
9
10
  * 2.5 ./campaign-step-branch.ts — body.campaignStep + fresh-start (FR-01.36)
@@ -19,7 +20,12 @@
19
20
  */
20
21
  import { Hono } from "hono";
21
22
  import { withLiveSession } from "../_shared/helpers.js";
22
- import { parseLaunchBody, applyPhaseTaskBranch, applyCampaignBranch, applyCampaignStepBranch, applyMasterRunBranch, applyActionSubstitutionBranch, applyLegacyFallbackBranch, } from "./_helpers.js";
23
+ import { parseLaunchBody } from "./_helpers.js";
24
+ import { dispatchLaunchBranches } from "./branch-dispatch.js";
25
+ import { checkClaimHolderGate } from "./claim-holder-gate.js";
26
+ import { commandsCarryPermissionPerimeter } from "./claim-permission-perimeter-assert.js";
27
+ import { checkMixedLaunchIntents } from "./mixed-intents-guard.js";
28
+ import { applyRuntimeChokepoint, resolveCodexIntegrationModeForLaunch, } from "./runtime-chokepoint.js";
23
29
  export function createLaunchRouter(deps) {
24
30
  const app = new Hono();
25
31
  const { store, ptyManager, getProjectById, runConfigReader, jsonlExistsOnDisk } = deps;
@@ -28,7 +34,7 @@ export function createLaunchRouter(deps) {
28
34
  const body = rawBody && typeof rawBody === "object" && !Array.isArray(rawBody)
29
35
  ? rawBody
30
36
  : {};
31
- const task = store.get(c.req.param("id"));
37
+ let task = store.get(c.req.param("id"));
32
38
  if (!task)
33
39
  return c.json({ error: "Task not found" }, 404);
34
40
  // Section 03 (iterate 3) — O20 idempotency guard. Reject re-launch on
@@ -39,158 +45,123 @@ export function createLaunchRouter(deps) {
39
45
  return c.json({ error: "launch_invalid_state", state: task.state }, 409);
40
46
  }
41
47
  // iterate-2026-05-14 lead-foundation-task-schema (leadwright Phase 1).
42
- // While a task is claimed the user-level launch route MUST step aside
43
- // so user + daemon don't fight over the same session (stale SQLite
44
- // lock, interleaved JSONL, double-running shells). External review
45
- // HIGH-2: only `claimToken` triggers the 409.
46
- if (typeof task.claimToken === "string" && task.claimToken.length > 0) {
47
- console.warn(JSON.stringify({
48
- level: "warn",
49
- message: "task_claimed: launch refused while claimToken is set",
50
- taskId: task.taskId,
51
- claimedBy: task.claimedBy,
52
- claimedAt: task.claimedAt,
53
- claimPid: task.claimPid,
54
- }));
55
- return c.json({
56
- error: "task_claimed",
57
- claimedBy: task.claimedBy,
58
- claimedAt: task.claimedAt,
59
- }, 409);
48
+ // While a task is claimed the launch route MUST step aside for anyone
49
+ // but the claim HOLDER (FR-04.22/V5, iterate-2026-09-03-claim-holder-launch)
50
+ // — so a stranger and the daemon don't fight over the same session
51
+ // (stale SQLite lock, interleaved JSONL, double-running shells), while
52
+ // the holder itself can still (re)launch. External review HIGH-2: only
53
+ // `claimToken` triggers the 409.
54
+ //
55
+ // The in-memory row can be STALE — `load()` runs once at server boot
56
+ // (index.ts), so a foreign claim written to disk by the leadwright
57
+ // daemon only reaches this process's memory via its OWN persist(). A
58
+ // webui that has persisted nothing since the claim was written would
59
+ // otherwise see no claim at all (the normal case for an idle daemon
60
+ // with no browser open). Refresh this one row from disk first — never
61
+ // re-run `load()` (a guarded no-op after the first call).
62
+ const freshTask = await store.refreshRowFromDisk(task.taskId);
63
+ if (freshTask)
64
+ task = freshTask;
65
+ const bodyClaimToken = typeof body.claimToken === "string" ? body.claimToken : undefined;
66
+ const claimGate = checkClaimHolderGate(task, bodyClaimToken);
67
+ if (!claimGate.allowed) {
68
+ return c.json(claimGate.error, 409);
60
69
  }
70
+ // FR-04.22 (iterate-2026-09-06-claim-launch-permission-perimeter) —
71
+ // true only for the leadwright stage-2 executor (the ONE caller that
72
+ // ever proves it holds the CURRENT claim). Threaded into BOTH branches
73
+ // a claim-only `{ claimToken }` launch body can actually reach: the
74
+ // action-substitution branch (leadwright always sets `actionId` at
75
+ // task creation — a required field on its side — and parse-body.ts's
76
+ // once-set-always-used contract resolves it from the persisted task
77
+ // even though the launch body carries no `actionId` itself) and the
78
+ // legacy fallback (a task launched before ever having an actionId set).
79
+ // phaseTaskRef/campaignSlug/campaignStep/masterRun are NEVER
80
+ // once-set-always-used (parse-body.ts: "Launch-body only (never
81
+ // persisted)"), so those branches structurally cannot fire for a
82
+ // `{ claimToken }`-only body and are left untouched. Every human/manual
83
+ // launch takes `claimGate.claimAuthorized === false` here, so its
84
+ // command string is unchanged byte-for-byte. See
85
+ // `./claim-executor-permissions.ts` for what gets armed and why.
86
+ const claimAuthorized = claimGate.claimAuthorized;
61
87
  // Parse + apply once-set-always-used (v0.4.1 fallback contract).
62
88
  const parseResult = parseLaunchBody(body, task);
63
89
  if ("error" in parseResult) {
64
90
  return c.json(parseResult.error, parseResult.status);
65
91
  }
66
92
  const parsed = parseResult;
67
- // FR-01.34 — campaign autonomous launch is its own intent. Reject an
68
- // EXPLICIT-body mix with actionId / phaseTaskRef (mirrors the existing
69
- // phaseTaskRef+actionId rule). Checked on the raw body so a task's
70
- // once-set-always-used persisted actionId never spuriously trips it.
71
- if (typeof body.campaignSlug === "string" &&
72
- body.campaignSlug.trim().length > 0 &&
73
- (body.actionId !== undefined || body.phaseTaskRef !== undefined)) {
74
- return c.json({
75
- error: "mixed_launch_intents",
76
- detail: "campaignSlug is mutually exclusive with actionId / phaseTaskRef",
77
- }, 400);
78
- }
79
- // FR-01.36 — a single-sub-iterate launch is its own intent too. Reject a
80
- // mix with actionId / phaseTaskRef / campaignSlug. Presence is the parsed
81
- // (well-formed) campaignStep so a malformed body never trips it.
82
- if (parsed.campaignStep &&
83
- (body.actionId !== undefined ||
84
- body.phaseTaskRef !== undefined ||
85
- (typeof body.campaignSlug === "string" && body.campaignSlug.trim().length > 0))) {
86
- return c.json({
87
- error: "mixed_launch_intents",
88
- detail: "campaignStep is mutually exclusive with actionId / phaseTaskRef / campaignSlug",
89
- }, 400);
93
+ // FR-01.34 / FR-01.36 / webui-pipeline-convergence W2 — campaignSlug,
94
+ // campaignStep and masterRun are each their own launch intent, mutually
95
+ // exclusive with actionId / phaseTaskRef / each other. See
96
+ // ./mixed-intents-guard.ts.
97
+ const mixedIntents = checkMixedLaunchIntents(body, parsed);
98
+ if (mixedIntents) {
99
+ return c.json(mixedIntents.error, mixedIntents.status);
90
100
  }
91
- // Campaign webui-pipeline-convergence W2 — a single-session master launch is
92
- // its own intent. Reject a mix with any other explicit intent. Checked on
93
- // the raw body (`parsed.masterRun` is derived from `body.masterRun`, which is
94
- // never persisted) so a once-set-always-used field can't spuriously trip it.
95
- if (Boolean(body.masterRun) &&
96
- (body.actionId !== undefined ||
97
- body.phaseTaskRef !== undefined ||
98
- (typeof body.campaignSlug === "string" && body.campaignSlug.trim().length > 0) ||
99
- body.campaignStep !== undefined)) {
100
- return c.json({
101
- error: "mixed_launch_intents",
102
- detail: "masterRun is mutually exclusive with actionId / phaseTaskRef / campaignSlug / campaignStep",
103
- }, 400);
104
- }
105
- // iterate-2026-05-18-fix-resume-description — a Resume click on a
106
- // task whose Claude conversation was never established (no
107
- // <uuid>.jsonl ever observed on disk → there is nothing to resume)
108
- // is semantically a FRESH start. Route it through the substitution
109
- // branch so the brief + slash command are injected exactly like a
110
- // direct Launch. A genuine resume (JSONL on disk) stays on the
111
- // description-free `--resume` shape.
112
- const jsonlObserved = Boolean(task.firstJsonlObservedAt);
113
- const effectivelyFreshStart = !parsed.resume || (!jsonlObserved && !parsed.dryRun);
114
- // Branch 1 — phaseTaskRef (load-bearing security path).
115
- const phaseResult = await applyPhaseTaskBranch({
101
+ const branchResult = await dispatchLaunchBranches({
116
102
  task,
117
103
  parsed,
118
104
  getProjectById,
119
105
  runConfigReader,
120
106
  jsonlExistsOnDisk,
107
+ listTasks: () => store.list(),
108
+ claimAuthorized,
121
109
  });
122
- let branchResult = phaseResult;
123
- // Branch 2 — campaign autonomous launch (FR-01.34). Command built
124
- // server-side from a validated slug; null when no campaignSlug / a resume.
125
- if (!branchResult) {
126
- branchResult = applyCampaignBranch({
127
- task,
128
- parsed,
129
- effectivelyFreshStart,
130
- getProjectById,
131
- });
132
- }
133
- // Branch 2.5 — single-sub-iterate launch (FR-01.36). Command built
134
- // server-side from a validated { slug, stepId }; null when no campaignStep
135
- // / a resume.
136
- if (!branchResult) {
137
- branchResult = applyCampaignStepBranch({
138
- task,
139
- parsed,
140
- effectivelyFreshStart,
141
- getProjectById,
142
- });
143
- }
144
- // Branch 2.6 — single-session master launch (campaign
145
- // webui-pipeline-convergence W2). Command built server-side (`/shipwright-run`)
146
- // gated on a readable single_session run_config; null when no masterRun / a
147
- // resume (→ legacy `--resume <masterUuid>`).
148
- if (!branchResult) {
149
- branchResult = await applyMasterRunBranch({
150
- task,
151
- parsed,
152
- effectivelyFreshStart,
153
- getProjectById,
154
- runConfigReader,
155
- listTasks: () => store.list(),
156
- jsonlExistsOnDisk,
157
- });
158
- }
159
- // Branch 3 — action substitution.
160
- if (!branchResult) {
161
- branchResult = applyActionSubstitutionBranch({
162
- task,
163
- parsed,
164
- effectivelyFreshStart,
165
- getProjectById,
166
- });
167
- }
168
- // If a branch produced an error envelope, terminate.
169
- if (branchResult && "error" in branchResult) {
110
+ // A branch that produced an error envelope terminates the handler.
111
+ if ("error" in branchResult) {
170
112
  return c.json(branchResult.error, branchResult.status);
171
113
  }
172
- // Branch 4 — legacy fallback. Always populates.
173
- let commands;
174
- let taskUpdate;
175
- if (branchResult) {
176
- ({ commands, taskUpdate } = branchResult);
114
+ let { commands, taskUpdate } = branchResult;
115
+ // Fail-open notice from the single-sub-iterate branch (see _helpers.ts).
116
+ const readinessNotice = branchResult.readinessChecked === false ? { readinessChecked: false } : {};
117
+ // Codex Light (Spec/codex-light-webui.md §2.1) — the ONE chokepoint for
118
+ // all six launch branches above: overrides `commands`/`taskUpdate` with
119
+ // `buildCodexCommands` when this task's runtime is Codex, byte-identical
120
+ // pass-through otherwise. Also carries AC9's new-pipeline block. Must
121
+ // run before the permission-perimeter assertion below so a blocked
122
+ // pipeline launch never reaches it, and so a Codex override is present
123
+ // BY the time that assertion inspects `commands`.
124
+ const runtimeResult = await applyRuntimeChokepoint({
125
+ task,
126
+ parsed,
127
+ project: getProjectById?.(task.projectId),
128
+ commands,
129
+ taskUpdate,
130
+ codexIntegrationMode: resolveCodexIntegrationModeForLaunch(task, await deps.getCodexIntegrationMode?.()),
131
+ codextenderPort: await deps.getCodextenderPort?.(),
132
+ });
133
+ if ("error" in runtimeResult) {
134
+ return c.json(runtimeResult.error, runtimeResult.status);
177
135
  }
178
- else {
179
- ({ commands, taskUpdate } = applyLegacyFallbackBranch({
180
- task,
181
- parsed,
182
- jsonlObserved,
183
- }));
136
+ ({ commands, taskUpdate } = runtimeResult);
137
+ // FR-04.22 Stage-3 doubt review — a per-branch opt-in (only
138
+ // action-substitution-branch.ts and legacy-fallback-branch.ts take
139
+ // `claimAuthorized`) rests on an assumption about which body shapes
140
+ // leadwright sends today; it is not a code-enforced invariant against a
141
+ // FUTURE body that combines a valid `claimToken` with `phaseTaskRef` /
142
+ // `campaignSlug` / `campaignStep` / `masterRun` and reaches one of the
143
+ // four branches that never learned about claims. This centralized
144
+ // assertion is the actual enforcement: no matter which branch produced
145
+ // `commands`, a claim-authorized launch must carry the permission
146
+ // perimeter on every shell form, or the request is refused — never
147
+ // silently downgraded to an unrestricted command that looks armed
148
+ // because the caller held a claim.
149
+ if (claimAuthorized && !commandsCarryPermissionPerimeter(commands)) {
150
+ return c.json({
151
+ error: "claim_launch_permission_perimeter_missing",
152
+ detail: "claim-authorized launch resolved to a branch that did not arm the permission perimeter",
153
+ }, 409);
184
154
  }
185
155
  if (parsed.dryRun) {
186
156
  // Pure command-string build — no state mutation, no persist.
187
- return c.json({ task: withLiveSession(task, ptyManager), commands });
157
+ return c.json({ task: withLiveSession(task, ptyManager), commands, ...readinessNotice });
188
158
  }
189
159
  const updated = store.patch(task.taskId, taskUpdate);
190
160
  await store.persist();
191
161
  return c.json({
192
162
  task: withLiveSession(updated, ptyManager),
193
163
  commands,
164
+ ...readinessNotice,
194
165
  });
195
166
  });
196
167
  return app;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/launch/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/launch/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CopyCommandForms } from "../../core/launcher.js";
2
+ import type { ExternalTask } from "../../core/sdk-sessions-store.js";
3
+ import type { ParsedLaunchBody } from "./parse-body.js";
4
+ import type { RuntimeChokepointBlocked, RuntimeChokepointOk } from "./runtime-chokepoint.js";
5
+ export declare function applyCodextenderChokepoint(args: {
6
+ task: ExternalTask;
7
+ parsed: ParsedLaunchBody;
8
+ commands: CopyCommandForms;
9
+ taskUpdate: Partial<ExternalTask>;
10
+ codextenderPort: number;
11
+ checkCodextenderProxyAvailable: () => Promise<boolean>;
12
+ getCodextenderAuthToken: () => string | undefined;
13
+ /** Test seam — defaults to a real probe of the proxy's `/v1/models` for
14
+ * the selected alias's `max_input_tokens` (operator finding,
15
+ * 2026-09-26: Claude Code assumes a 200K context window for any model id
16
+ * it doesn't recognize and over-compacts against that wrong ceiling).
17
+ * `model` is the same value passed to `buildCodextenderCommands`. */
18
+ getCodextenderMaxContextTokens: (model: string | undefined) => Promise<number | undefined>;
19
+ }): Promise<RuntimeChokepointOk | RuntimeChokepointBlocked>;
20
+ //# sourceMappingURL=runtime-chokepoint-codextender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-chokepoint-codextender.d.ts","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint-codextender.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,uBAAuB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAClD;;;;0EAIsE;IACtE,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5F,GAAG,OAAO,CAAC,mBAAmB,GAAG,wBAAwB,CAAC,CA2C1D"}
@@ -0,0 +1,51 @@
1
+ /*
2
+ * external/launch/runtime-chokepoint-codextender.ts — the launch
3
+ * chokepoint's Codextender-mode branch (Codextender integration Part
4
+ * B.3/B.6), split out of runtime-chokepoint.ts (2026-09-26, bloat
5
+ * anti-ratchet — mirrors the `fork.ts` split out of `lifecycle.ts` for the
6
+ * same "Codextender integration file-size cleanup" reason). A Codextender
7
+ * task drives ordinary `claude` underneath (via a local LiteLLM proxy), not
8
+ * the `codex` CLI, so it needs its own availability probe (the proxy's
9
+ * `/v1/models`, not `codex --version`) and reuses the already-built
10
+ * plain-Claude `commands` the chokepoint received, rather than
11
+ * `buildCodexCommands`.
12
+ */
13
+ import { buildCodextenderCommands, CodextenderCwdMismatchError, } from "../../core/launcher-codextender.js";
14
+ import { codextenderAuthTokenMissingError, codextenderCwdMismatchError, codextenderProxyUnreachableError, } from "./runtime-chokepoint-errors.js";
15
+ export async function applyCodextenderChokepoint(args) {
16
+ const { task, parsed, commands, taskUpdate, codextenderPort, checkCodextenderProxyAvailable, getCodextenderAuthToken, getCodextenderMaxContextTokens, } = args;
17
+ if (!(await checkCodextenderProxyAvailable())) {
18
+ return { error: codextenderProxyUnreachableError(codextenderPort), status: 400 };
19
+ }
20
+ const codextenderAuthToken = getCodextenderAuthToken();
21
+ if (!codextenderAuthToken) {
22
+ return { error: codextenderAuthTokenMissingError(), status: 400 };
23
+ }
24
+ const maxContextTokens = await getCodextenderMaxContextTokens(parsed.codexImplementationModel);
25
+ let codextenderCommands;
26
+ try {
27
+ codextenderCommands = buildCodextenderCommands({
28
+ cwd: task.cwd,
29
+ baseUrl: `http://127.0.0.1:${codextenderPort}`,
30
+ model: parsed.codexImplementationModel,
31
+ authToken: codextenderAuthToken,
32
+ claudeCommands: commands,
33
+ maxContextTokens,
34
+ });
35
+ }
36
+ catch (err) {
37
+ if (!(err instanceof CodextenderCwdMismatchError))
38
+ throw err;
39
+ return { error: codextenderCwdMismatchError(), status: 500 };
40
+ }
41
+ return {
42
+ commands: codextenderCommands,
43
+ taskUpdate: {
44
+ ...taskUpdate,
45
+ state: "awaiting_external_start",
46
+ launchedAt: new Date().toISOString(),
47
+ codexIntegrationMode: "codextender",
48
+ },
49
+ };
50
+ }
51
+ //# sourceMappingURL=runtime-chokepoint-codextender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-chokepoint-codextender.js","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint-codextender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,gCAAgC,CAAC;AAGxC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAchD;IACC,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,UAAU,EACV,eAAe,EACf,8BAA8B,EAC9B,uBAAuB,EACvB,8BAA8B,GAC/B,GAAG,IAAI,CAAC;IAET,IAAI,CAAC,CAAC,MAAM,8BAA8B,EAAE,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,gCAAgC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACnF,CAAC;IACD,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;IACvD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACpE,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,8BAA8B,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC/F,IAAI,mBAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,mBAAmB,GAAG,wBAAwB,CAAC;YAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,oBAAoB,eAAe,EAAE;YAC9C,KAAK,EAAE,MAAM,CAAC,wBAAwB;YACtC,SAAS,EAAE,oBAAoB;YAC/B,cAAc,EAAE,QAAQ;YACxB,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,2BAA2B,CAAC;YAAE,MAAM,GAAG,CAAC;QAC7D,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,UAAU,EAAE;YACV,GAAG,UAAU;YACb,KAAK,EAAE,yBAAyB;YAChC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,oBAAoB,EAAE,aAAa;SACpC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ export declare function codextenderProxyUnreachableError(port: number): {
2
+ error: "codextender_proxy_unreachable";
3
+ detail: string;
4
+ };
5
+ /**
6
+ * PR-review BLOCK (iterate-2026-09-23-codextender-webui-integration,
7
+ * second round) — a hardcoded fallback bearer token read as an unsafe
8
+ * unconditional credential. `resolveCodextenderAuthToken()` now has no
9
+ * built-in default: a launch/fork attempted with none configured fails
10
+ * loud here instead of silently sending nothing (which `claude` would
11
+ * reject anyway once it tries to use `ANTHROPIC_BASE_URL`) or falling
12
+ * back to a baked-in value.
13
+ */
14
+ export declare function codextenderAuthTokenMissingError(): {
15
+ error: "codextender_auth_token_missing";
16
+ detail: string;
17
+ };
18
+ export declare function codexCliNotFoundError(): {
19
+ error: "codex_cli_not_found";
20
+ detail: string;
21
+ };
22
+ /**
23
+ * Doubt-review HIGH (iterate-2026-09-23-codextender-webui-integration) —
24
+ * see `CodextenderCwdMismatchError`'s own doc comment in
25
+ * `core/launcher-codextender.ts` for why this can happen: a custom
26
+ * action's commands are built from `project.path`, not `task.cwd`, and the
27
+ * two can diverge for a worktree-based task.
28
+ */
29
+ export declare function codextenderCwdMismatchError(): {
30
+ error: "codextender_cwd_mismatch";
31
+ detail: string;
32
+ };
33
+ //# sourceMappingURL=runtime-chokepoint-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-chokepoint-errors.d.ts","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint-errors.ts"],"names":[],"mappings":"AAcA,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM;;;EAS5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC;;;EAU/C;AAED,wBAAgB,qBAAqB;;;EAQpC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B;;;EAQ1C"}
@@ -0,0 +1,63 @@
1
+ /*
2
+ * external/launch/runtime-chokepoint-errors.ts — the Codex-runtime error
3
+ * bodies shared between `runtime-chokepoint.ts` and `external/tasks/
4
+ * fork.ts` (fork cannot call the chokepoint per §2.1's correction, but the
5
+ * user-facing wording has no reason to drift between the two call sites).
6
+ *
7
+ * Split out of runtime-chokepoint.ts (2026-09-23 — that file crossed the
8
+ * 300-line guideline) so each file stays a single concern.
9
+ */
10
+ import os from "node:os";
11
+ import { installHint } from "../../core/readiness-install-hints.js";
12
+ export function codextenderProxyUnreachableError(port) {
13
+ return {
14
+ error: "codextender_proxy_unreachable",
15
+ detail: `This task's runtime is Codex, and the Codex Integration Mode is ` +
16
+ `Codextender, but the local Codextender proxy at ` +
17
+ `127.0.0.1:${port} isn't reachable. Start the ` +
18
+ "Codextender proxy, or switch this task's runtime to Claude.",
19
+ };
20
+ }
21
+ /**
22
+ * PR-review BLOCK (iterate-2026-09-23-codextender-webui-integration,
23
+ * second round) — a hardcoded fallback bearer token read as an unsafe
24
+ * unconditional credential. `resolveCodextenderAuthToken()` now has no
25
+ * built-in default: a launch/fork attempted with none configured fails
26
+ * loud here instead of silently sending nothing (which `claude` would
27
+ * reject anyway once it tries to use `ANTHROPIC_BASE_URL`) or falling
28
+ * back to a baked-in value.
29
+ */
30
+ export function codextenderAuthTokenMissingError() {
31
+ return {
32
+ error: "codextender_auth_token_missing",
33
+ detail: "This task's runtime is Codex, and the Codex Integration Mode is " +
34
+ "Codextender, but no CODEXTENDER_AUTH_TOKEN is set in the webui " +
35
+ "server's environment. Set it to the local Codextender proxy's " +
36
+ "configured master key (see the codextender README) and restart " +
37
+ "the server, or switch this task's runtime to Claude.",
38
+ };
39
+ }
40
+ export function codexCliNotFoundError() {
41
+ return {
42
+ error: "codex_cli_not_found",
43
+ detail: "This task's runtime is Codex, but the Codex CLI isn't installed " +
44
+ "on this machine. " + installHint("codex", os.platform()) +
45
+ ", or switch this task's runtime to Claude.",
46
+ };
47
+ }
48
+ /**
49
+ * Doubt-review HIGH (iterate-2026-09-23-codextender-webui-integration) —
50
+ * see `CodextenderCwdMismatchError`'s own doc comment in
51
+ * `core/launcher-codextender.ts` for why this can happen: a custom
52
+ * action's commands are built from `project.path`, not `task.cwd`, and the
53
+ * two can diverge for a worktree-based task.
54
+ */
55
+ export function codextenderCwdMismatchError() {
56
+ return {
57
+ error: "codextender_cwd_mismatch",
58
+ detail: "This task's launch command was built from a different working " +
59
+ "directory than the task's own cwd — refusing to launch with an " +
60
+ "ambiguous working directory.",
61
+ };
62
+ }
63
+ //# sourceMappingURL=runtime-chokepoint-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-chokepoint-errors.js","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,OAAO;QACL,KAAK,EAAE,+BAAwC;QAC/C,MAAM,EACJ,kEAAkE;YAClE,kDAAkD;YAClD,aAAa,IAAI,8BAA8B;YAC/C,6DAA6D;KAChE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,KAAK,EAAE,gCAAyC;QAChD,MAAM,EACJ,kEAAkE;YAClE,iEAAiE;YACjE,gEAAgE;YAChE,iEAAiE;YACjE,sDAAsD;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,qBAA8B;QACrC,MAAM,EACJ,kEAAkE;YAClE,mBAAmB,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzD,4CAA4C;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,KAAK,EAAE,0BAAmC;QAC1C,MAAM,EACJ,gEAAgE;YAChE,iEAAiE;YACjE,8BAA8B;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,120 @@
1
+ import type { CopyCommandForms } from "../../core/launcher.js";
2
+ import type { ExternalTask, Runtime } from "../../core/sdk-sessions-store.js";
3
+ import type { ExternalRouteProjectView } from "../_shared/helpers.js";
4
+ import type { ParsedLaunchBody } from "./parse-body.js";
5
+ export type CodexIntegrationMode = "light" | "codextender";
6
+ /**
7
+ * Plan-review HIGH fix (iterate-2026-09-23) — pin to the task's OWN stamped
8
+ * mode once one exists, falling back to the live global setting only on a
9
+ * task's very first Codex-runtime launch. Without this, a Resume straddling
10
+ * a post-first-launch mode flip would silently switch mechanisms mid-session
11
+ * (e.g. discard a real `codex` thread's history for a Codextender relaunch).
12
+ * Pure/IO-free so `routes.ts` can unit-test the choice directly.
13
+ */
14
+ export declare function resolveCodexIntegrationModeForLaunch(task: ExternalTask, liveGlobalSetting: CodexIntegrationMode | undefined): CodexIntegrationMode | undefined;
15
+ /**
16
+ * AC8 — "a task launched with a runtime whose CLI isn't installed fails at
17
+ * launch time with one actionable message ... independent of the readiness
18
+ * probe's own gate" (Spec/codex-light-webui.md §5.9, lines 789-792). The
19
+ * per-task toggle means readiness can no longer treat either CLI as globally
20
+ * required (the readiness fix lives in readiness-probe.ts), so THIS is where
21
+ * an all-Claude machine actually gets stopped before a launch it can't run.
22
+ * Not cached like /api/readiness's 15s TTL — a launch is a low-frequency,
23
+ * user-initiated action, so a fresh check here is worth the one extra
24
+ * process spawn for correctness at the moment that matters.
25
+ *
26
+ * `defaultRunShim`, not `defaultRun` — on Windows Codex CLI installs as a
27
+ * `.cmd` shim (no `codex.exe`), which `defaultRun` cannot spawn under
28
+ * `shell:false` (ENOENT even when Codex is genuinely installed and working).
29
+ * See `defaultRunShim`'s own doc comment (iterate-2026-09-16-codex-probe-
30
+ * win32-shim) for why this is a sibling probe rather than a `defaultRun` fix.
31
+ */
32
+ export declare function isCodexCliAvailable(): Promise<boolean>;
33
+ /** §2.1 — a plain field read on an already-loaded task, not a fallback chain. */
34
+ export declare function runtimeForTask(task: ExternalTask): Runtime;
35
+ /**
36
+ * ADR-309 generalized the `new-plain` JSONL-liveness special-case to every
37
+ * Codex-runtime task (a Codex Light task never writes a Claude `.jsonl`
38
+ * under any actionId). Codextender integration Part B.6 excludes
39
+ * Codextender mode from that generalization: it drives ordinary `claude`
40
+ * via the local proxy, so it DOES write a real `.jsonl` and the ordinary
41
+ * `!firstJsonlObservedAt` transcript-poll path is already authoritative for
42
+ * it, exactly like a plain Claude task. Shared by `ws-upgrade-handler.ts`
43
+ * and `external/transcript/routes.ts` — their own companion-fix comments
44
+ * point back here rather than re-typing the condition.
45
+ */
46
+ export declare function isCodexNonCodextenderTask(task: ExternalTask): boolean;
47
+ /**
48
+ * AC9 — a multi-phase single thread's "done" has no oracle row (§1.8); a
49
+ * `new-pipeline` launch for a Codex task is blocked here, not silently
50
+ * downgraded. Keys on `actionId === "new-pipeline"` (never `phase`, which
51
+ * a pipeline launch never submits — `useNewIssueFormSubmit.ts`).
52
+ *
53
+ * Codextender integration Part B.6 — AC9's rationale (no thread/app-server
54
+ * resume machinery, `codex-light-webui.md` §1.8) is specific to the real
55
+ * `codex` CLI; a Codextender task drives ordinary `claude` underneath, so it
56
+ * has the SAME pipeline/resume machinery a Claude-runtime task does. Bypass
57
+ * keys on the FRESH `codexIntegrationMode` param (not `task.
58
+ * codexIntegrationMode`), which is unset on a task's very first Codextender
59
+ * launch — reading the stale/absent task field would wrongly block it.
60
+ */
61
+ export declare function isCodexNewPipelineBlocked(task: ExternalTask, parsed: ParsedLaunchBody, codexIntegrationMode?: CodexIntegrationMode): boolean;
62
+ /**
63
+ * AC7 — "Campaign is 'Codex Light 2'" (deferred, still out of scope). The
64
+ * campaign/step/master-run branches each build their own fixed command
65
+ * server-side (`/shipwright-run`, `/shipwright-iterate "<specPath>"`, ...);
66
+ * without this check this chokepoint would silently DISCARD that command
67
+ * and override it with a generic `buildCodexCommands` resume/launch built
68
+ * from `phase`/`description` — a behavior mismatch, not the spec's
69
+ * required "block/explain". Keyed on the parsed body's own campaign-intent
70
+ * fields (never persisted on the task — parse-body.ts), so it fires
71
+ * exactly when a campaign launch surface (not an ordinary per-task
72
+ * Launch/Resume) is the caller, resume or fresh start alike.
73
+ *
74
+ * Codextender integration Part B.6 — same bypass rationale as
75
+ * `isCodexNewPipelineBlocked` above: AC7 is a real-`codex`-CLI limitation,
76
+ * not one Codextender (ordinary `claude` underneath) inherits.
77
+ */
78
+ export declare function isCodexCampaignBlocked(task: ExternalTask, parsed: ParsedLaunchBody, codexIntegrationMode?: CodexIntegrationMode): boolean;
79
+ export interface RuntimeChokepointOk {
80
+ commands: CopyCommandForms;
81
+ taskUpdate: Partial<ExternalTask>;
82
+ }
83
+ export interface RuntimeChokepointBlocked {
84
+ error: Record<string, unknown>;
85
+ status: 400 | 500;
86
+ }
87
+ /**
88
+ * The main-route half of §2.1. Returns the ORIGINAL `commands`/`taskUpdate`
89
+ * unchanged for a Claude-runtime task (byte-identical to before this
90
+ * feature existed); overrides with `buildCodexCommands` for a
91
+ * Codex-runtime one; blocks per AC9 for a Codex `new-pipeline` launch.
92
+ */
93
+ export declare function applyRuntimeChokepoint(args: {
94
+ task: ExternalTask;
95
+ parsed: ParsedLaunchBody;
96
+ project: ExternalRouteProjectView | undefined;
97
+ commands: CopyCommandForms;
98
+ taskUpdate: Partial<ExternalTask>;
99
+ /** Codextender integration Part B.6 — a FRESH read of the global
100
+ * `codexIntegrationMode` setting (never `task.codexIntegrationMode`,
101
+ * which is unset on this task's very first Codextender launch). Absent
102
+ * or `"light"` behaves exactly as before this feature existed. */
103
+ codexIntegrationMode?: CodexIntegrationMode;
104
+ /** The `codextenderPort` global setting; defaults to 4000 (matches the
105
+ * `codextender` CLI's own default) when omitted. */
106
+ codextenderPort?: number;
107
+ /** Test seam — defaults to a real `codex --version` probe. */
108
+ checkCodexCliAvailable?: () => Promise<boolean>;
109
+ /** Test seam — defaults to a real `GET /health/liveliness` probe of the
110
+ * Codextender proxy at `codextenderPort` (no auth required). */
111
+ checkCodextenderProxyAvailable?: () => Promise<boolean>;
112
+ /** Test seam — defaults to `resolveCodextenderAuthToken()` (reads
113
+ * `process.env.CODEXTENDER_AUTH_TOKEN`, no built-in fallback). */
114
+ getCodextenderAuthToken?: () => string | undefined;
115
+ /** Test seam — defaults to a real probe of the proxy's `/v1/models` for
116
+ * the selected alias's `max_input_tokens` (operator finding,
117
+ * 2026-09-26). `model` is the same value passed to `buildCodextenderCommands`. */
118
+ getCodextenderMaxContextTokens?: (model: string | undefined) => Promise<number | undefined>;
119
+ }): Promise<RuntimeChokepointOk | RuntimeChokepointBlocked>;
120
+ //# sourceMappingURL=runtime-chokepoint.d.ts.map