@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
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 :3847 on 127.0.0.1 (IPv4 — Node resolves `localhost` → ::1 but Hono
5
- * binds v4; a known trap in this repo). Then:
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://127.0.0.1:${port}/api/diagnostics`, { signal: ctrl.signal });
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. Today's only caller passes
230
- // `http://localhost:<validated port>`, but this is exported public API in a
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. Today's only
241
- // caller passes `http://localhost:<validated port>`.
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
- const probeFn = opts.probeFn ?? (() => probeServer(port));
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.26.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": {
@@ -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 (which is pure parsing, unit-tested, shared
5
- * with dev-restart.js). Split out of deploy-swap.mjs to keep both files inside the
6
- * 300-line convention; the swapper owns the deploy CHOREOGRAPHY, this file owns
7
- * "which processes, and how do we end them".
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 on a webui server entry.
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
- * KNOWN over-broad scope (inherited verbatim from the pre-fix inline sweep, kept
78
- * for behavior parity): the match is `tsx` + `src/index.ts`, which also hits a
79
- * *different* project's dev server, because a `tsx watch` command line carries the
80
- * entry path relatively (`src/index.ts`) and not the repo it belongs to. Narrowing
81
- * it needs per-PID cwd resolution — deliberately out of scope for the self-kill fix
82
- * (see the iterate's decision drop).
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
- "Where-Object { $_.CommandLine -match 'tsx' -and $_.CommandLine -match 'src[\\\\/]index\\.ts' } | " +
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
- return String(r.stdout ?? '').split(/\r?\n/).map((s) => s.trim()).filter(Boolean);
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
- return execSync("pgrep -f 'tsx.*src/index\\.ts'", CAPTURE).split(/\s+/).filter(Boolean);
101
- } catch {
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([...findListenerPids(port), ...findTsxServerPids()])];
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.
@@ -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. The old server is still up — worse than a fresh
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
  }
@@ -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;CACtC;AAeD,wBAAgB,SAAS,IAAI,YAAY,CAyExC"}
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"}
@@ -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":"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"}
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;AAmDD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,EAAE,wBAAwB,GACnC,QAAQ,EAAE,CAwBZ"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-loop-state.d.ts","sourceRoot":"","sources":["../../src/core/campaign-loop-state.ts"],"names":[],"mappings":"AAsDA;;;;;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,CA2Cd;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,CAAC,CAEb"}
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"}