@svenroth-ai/shipwright 0.27.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (799) hide show
  1. package/client/dist/apple-touch-icon.png +0 -0
  2. package/client/dist/assets/{EmbeddedTerminal-CqCQUDtp.js → EmbeddedTerminal-IkAS1bic.js} +30 -30
  3. package/client/dist/assets/{abnfDiagram-VRR7QNED-DX2objTP.js → abnfDiagram-VCTEODGH-CclAL-Ri.js} +1 -1
  4. package/client/dist/assets/arc-C8vUxwav.js +1 -0
  5. package/client/dist/assets/architectureDiagram-5GKGNRK7-DdrrZJx7.js +36 -0
  6. package/client/dist/assets/blockDiagram-I7D4REHJ-CMhbhsVq.js +129 -0
  7. package/client/dist/assets/c4Diagram-7LVT6UL2-OvlH6BiV.js +38 -0
  8. package/client/dist/assets/channel-BtkABUIE.js +1 -0
  9. package/client/dist/assets/{chunk-2Q5K7J3B-C111EHL6.js → chunk-2Q5K7J3B-BxUk85j7.js} +1 -1
  10. package/client/dist/assets/{chunk-5VM5RSS4-DIejoaXS.js → chunk-5VM5RSS4-DoTSs3Kn.js} +1 -1
  11. package/client/dist/assets/{chunk-32BRIVSS-DrCYs2XG.js → chunk-F27PBJKO-DquVu1wX.js} +1 -1
  12. package/client/dist/assets/{chunk-EX3LRPZG-CGWNeH2g.js → chunk-IMKFNOWR-8l4wPLQK.js} +5 -5
  13. package/client/dist/assets/{chunk-JWPE2WC7-CCH0SRFY.js → chunk-JWPE2WC7-CTAa0a4O.js} +1 -1
  14. package/client/dist/assets/chunk-POPQ4Y6H-BZ6zpqEF.js +1 -0
  15. package/client/dist/assets/{chunk-MOJQB5TN-B3OpZGRv.js → chunk-SVP7TREG-Dx7pMiq4.js} +1 -1
  16. package/client/dist/assets/{chunk-V7JOEXUC-B6Bu8x1y.js → chunk-TICWLB2K-BtDKT858.js} +1 -1
  17. package/client/dist/assets/{chunk-XXDRQBXY-xyjuuhxl.js → chunk-XXDRQBXY-BbrrrzuM.js} +1 -1
  18. package/client/dist/assets/classDiagram-ZZMXUADV-2gEcH3cX.js +1 -0
  19. package/client/dist/assets/classDiagram-v2-VYDZK3BY-2gEcH3cX.js +1 -0
  20. package/client/dist/assets/{cose-bilkent-JH36ORCC-BQIH3SCK.js → cose-bilkent-JH36ORCC-Bhem6unn.js} +1 -1
  21. package/client/dist/assets/{cynefin-VYW2F7L2-oyLAz8te.js → cynefin-OW5HDTMX-hukx0bAt.js} +3 -3
  22. package/client/dist/assets/{cynefinDiagram-TSTJHNR4-DoLCsH0l.js → cynefinDiagram-5FMLGOSQ-CGogKYMK.js} +1 -1
  23. package/client/dist/assets/dagre-GXQ25YYZ-BiLo3XBj.js +4 -0
  24. package/client/dist/assets/diagram-S7CK7UJ4-DBfdjdN6.js +30 -0
  25. package/client/dist/assets/diagram-UQ7AKVKN-3CvmyZYO.js +41 -0
  26. package/client/dist/assets/{diagram-FQU43EPY-DFuYE0Vf.js → diagram-VSXAHHWV-COG9399I.js} +2 -2
  27. package/client/dist/assets/{diagram-G47NLZAW-CffCZVXk.js → diagram-VX7I27RA-Dftpj84a.js} +1 -1
  28. package/client/dist/assets/{diagram-NH7WQ7WH-BhrHtUlt.js → diagram-Z3DM3KII-Dw9_CGLA.js} +1 -1
  29. package/client/dist/assets/{ebnfDiagram-CCIWWBDH-DfV7gT4m.js → ebnfDiagram-PWID7BFC-CJirhPah.js} +1 -1
  30. package/client/dist/assets/erDiagram-RLTQ6QDP-B11aYoo6.js +99 -0
  31. package/client/dist/assets/flowDiagram-HODETNUW-CPC6X9E5.js +168 -0
  32. package/client/dist/assets/{ganttDiagram-NO4QXBWP-BclyOgMb.js → ganttDiagram-EL5Y4UJY-DDSk2AAg.js} +4 -4
  33. package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-BXT4rIKj.js → gitGraphDiagram-WWUBYQGX-D_2UGciq.js} +1 -1
  34. package/client/dist/assets/index-DDSwQXcp.js +924 -0
  35. package/client/dist/assets/index-DWrPE3aq.css +1 -0
  36. package/client/dist/assets/infoDiagram-27XIBGKW-BuUv5Wms.js +2 -0
  37. package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-BBUFWq5C.js → ishikawaDiagram-5VMMS53U-DpnAnJ0q.js} +4 -4
  38. package/client/dist/assets/{journeyDiagram-5HDEW3XC-CmclipcQ.js → journeyDiagram-3NMN7TZE-CFUsXz2q.js} +2 -2
  39. package/client/dist/assets/{kanban-definition-HUTT4EX6-eIzUeZ03.js → kanban-definition-UXKFOSKX-BAq4Kujj.js} +8 -8
  40. package/client/dist/assets/katex-C5jXJg4s.js +257 -0
  41. package/client/dist/assets/layout-CccpfEe3.js +1 -0
  42. package/client/dist/assets/{linear-DGiT7uKK.js → linear-BIeIr2tp.js} +1 -1
  43. package/client/dist/assets/mermaid.core-B-Ezy6Me.js +312 -0
  44. package/client/dist/assets/{mindmap-definition-LN4V7U3C-C4ANnNiP.js → mindmap-definition-YA3MSWOX-CMPZ0Ggp.js} +2 -2
  45. package/client/dist/assets/{pegDiagram-2B236MQR-DnMeh3Yh.js → pegDiagram-XKGWAZYB-B0_2KQ6f.js} +1 -1
  46. package/client/dist/assets/{pieDiagram-ENE6RG2P-CKV_rkhF.js → pieDiagram-E7YTZNPT-1-nOk5pZ.js} +3 -3
  47. package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-BuUsGwHh.js → quadrantDiagram-AXDQQJYC-C_RdmOuq.js} +1 -1
  48. package/client/dist/assets/{railroadDiagram-RFXS5EU6-BwwdKnFL.js → railroadDiagram-O6MQD6OU-o73KM0oq.js} +1 -1
  49. package/client/dist/assets/{requirementDiagram-TGXJPOKE-CpQZouJV.js → requirementDiagram-BXWQKSXE-DnhCWJHv.js} +5 -5
  50. package/client/dist/assets/{sankeyDiagram-HTMAVEWB-4fnDUNVa.js → sankeyDiagram-P5KCCOFB-CVkYgfTV.js} +4 -4
  51. package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-BOcaWlM0.js → sequenceDiagram-WJ2MYXX4-BYLed29R.js} +1 -1
  52. package/client/dist/assets/{sizeCapture-X5ZJPWSS-_pv-9R0c.js → sizeCapture-INFHLROL-CYb4HDaH.js} +1 -1
  53. package/client/dist/assets/stateDiagram-D77RDMKH-CNKFRye_.js +1 -0
  54. package/client/dist/assets/stateDiagram-v2-MP3YSRHH-NpMhMQ36.js +1 -0
  55. package/client/dist/assets/swimlanes-42K2YHIH-BhsYrplp.js +1 -0
  56. package/client/dist/assets/swimlanesDiagram-VR7AAH4N-B4frkWBG.js +8 -0
  57. package/client/dist/assets/{timeline-definition-FHXFAJF6-rhGYElgn.js → timeline-definition-24CTP7MA-DiUXzB2p.js} +3 -3
  58. package/client/dist/assets/{vennDiagram-L72KCM5P-BoGjRxyA.js → vennDiagram-4TSXK5OY-aE4j6W86.js} +5 -5
  59. package/client/dist/assets/{wardleyDiagram-EHGQE667-D-IGv5bH.js → wardleyDiagram-VM6X3IG4-BxJXq0mU.js} +1 -1
  60. package/client/dist/assets/xychartDiagram-S5SC5T6Z-4vHeL9zc.js +7 -0
  61. package/client/dist/favicon-16.png +0 -0
  62. package/client/dist/favicon-32.png +0 -0
  63. package/client/dist/icon-192.png +0 -0
  64. package/client/dist/icon-512.png +0 -0
  65. package/client/dist/icon-maskable-512.png +0 -0
  66. package/client/dist/index.html +11 -2
  67. package/client/dist/manifest.json +13 -0
  68. package/lib/preflight.mjs +24 -5
  69. package/lib/util.mjs +5 -1
  70. package/package.json +2 -2
  71. package/scripts/deploy-procs.mjs +105 -20
  72. package/scripts/deploy-swap.mjs +23 -2
  73. package/server/dist/config.d.ts +9 -0
  74. package/server/dist/config.d.ts.map +1 -1
  75. package/server/dist/config.js +8 -2
  76. package/server/dist/config.js.map +1 -1
  77. package/server/dist/core/adopt-scan-findings.d.ts +12 -0
  78. package/server/dist/core/adopt-scan-findings.d.ts.map +1 -0
  79. package/server/dist/core/adopt-scan-findings.js +96 -0
  80. package/server/dist/core/adopt-scan-findings.js.map +1 -0
  81. package/server/dist/core/adopt-scan.d.ts +49 -0
  82. package/server/dist/core/adopt-scan.d.ts.map +1 -0
  83. package/server/dist/core/adopt-scan.js +201 -0
  84. package/server/dist/core/adopt-scan.js.map +1 -0
  85. package/server/dist/core/campaign-events.d.ts.map +1 -1
  86. package/server/dist/core/campaign-events.js +1 -0
  87. package/server/dist/core/campaign-events.js.map +1 -1
  88. package/server/dist/core/campaign-loop-state.d.ts.map +1 -1
  89. package/server/dist/core/campaign-loop-state.js +54 -21
  90. package/server/dist/core/campaign-loop-state.js.map +1 -1
  91. package/server/dist/core/campaign-parse.d.ts +4 -0
  92. package/server/dist/core/campaign-parse.d.ts.map +1 -1
  93. package/server/dist/core/campaign-parse.js +9 -0
  94. package/server/dist/core/campaign-parse.js.map +1 -1
  95. package/server/dist/core/campaign-readiness-schema.d.ts +33 -0
  96. package/server/dist/core/campaign-readiness-schema.d.ts.map +1 -0
  97. package/server/dist/core/campaign-readiness-schema.js +70 -0
  98. package/server/dist/core/campaign-readiness-schema.js.map +1 -0
  99. package/server/dist/core/campaign-readiness.d.ts +59 -0
  100. package/server/dist/core/campaign-readiness.d.ts.map +1 -0
  101. package/server/dist/core/campaign-readiness.js +163 -0
  102. package/server/dist/core/campaign-readiness.js.map +1 -0
  103. package/server/dist/core/campaign-status-json.d.ts +3 -0
  104. package/server/dist/core/campaign-status-json.d.ts.map +1 -1
  105. package/server/dist/core/campaign-status-json.js +7 -0
  106. package/server/dist/core/campaign-status-json.js.map +1 -1
  107. package/server/dist/core/campaign-store.d.ts.map +1 -1
  108. package/server/dist/core/campaign-store.js +4 -1
  109. package/server/dist/core/campaign-store.js.map +1 -1
  110. package/server/dist/core/campaign-types.d.ts +8 -0
  111. package/server/dist/core/campaign-types.d.ts.map +1 -1
  112. package/server/dist/core/campaign-worktree-root.d.ts +19 -0
  113. package/server/dist/core/campaign-worktree-root.d.ts.map +1 -0
  114. package/server/dist/core/campaign-worktree-root.js +76 -0
  115. package/server/dist/core/campaign-worktree-root.js.map +1 -0
  116. package/server/dist/core/claim-record-lock.d.ts +30 -0
  117. package/server/dist/core/claim-record-lock.d.ts.map +1 -0
  118. package/server/dist/core/claim-record-lock.js +90 -0
  119. package/server/dist/core/claim-record-lock.js.map +1 -0
  120. package/server/dist/core/cli-child-spawn.d.ts +28 -0
  121. package/server/dist/core/cli-child-spawn.d.ts.map +1 -0
  122. package/server/dist/core/cli-child-spawn.js +146 -0
  123. package/server/dist/core/cli-child-spawn.js.map +1 -0
  124. package/server/dist/core/codex-models-probe.d.ts +46 -0
  125. package/server/dist/core/codex-models-probe.d.ts.map +1 -0
  126. package/server/dist/core/codex-models-probe.js +103 -0
  127. package/server/dist/core/codex-models-probe.js.map +1 -0
  128. package/server/dist/core/codex-oracle-runner.d.ts +68 -0
  129. package/server/dist/core/codex-oracle-runner.d.ts.map +1 -0
  130. package/server/dist/core/codex-oracle-runner.js +124 -0
  131. package/server/dist/core/codex-oracle-runner.js.map +1 -0
  132. package/server/dist/core/codex-status-report.d.ts +6 -0
  133. package/server/dist/core/codex-status-report.d.ts.map +1 -0
  134. package/server/dist/core/codex-status-report.js +40 -0
  135. package/server/dist/core/codex-status-report.js.map +1 -0
  136. package/server/dist/core/codex-task-watcher-types.d.ts +69 -0
  137. package/server/dist/core/codex-task-watcher-types.d.ts.map +1 -0
  138. package/server/dist/core/codex-task-watcher-types.js +12 -0
  139. package/server/dist/core/codex-task-watcher-types.js.map +1 -0
  140. package/server/dist/core/codex-task-watcher.d.ts +30 -0
  141. package/server/dist/core/codex-task-watcher.d.ts.map +1 -0
  142. package/server/dist/core/codex-task-watcher.js +252 -0
  143. package/server/dist/core/codex-task-watcher.js.map +1 -0
  144. package/server/dist/core/codex-terminal-signal-detect.d.ts +7 -0
  145. package/server/dist/core/codex-terminal-signal-detect.d.ts.map +1 -0
  146. package/server/dist/core/codex-terminal-signal-detect.js +113 -0
  147. package/server/dist/core/codex-terminal-signal-detect.js.map +1 -0
  148. package/server/dist/core/codex-thread-discovery.d.ts +21 -0
  149. package/server/dist/core/codex-thread-discovery.d.ts.map +1 -0
  150. package/server/dist/core/codex-thread-discovery.js +169 -0
  151. package/server/dist/core/codex-thread-discovery.js.map +1 -0
  152. package/server/dist/core/codextender-auth-file-sweep.d.ts +41 -0
  153. package/server/dist/core/codextender-auth-file-sweep.d.ts.map +1 -0
  154. package/server/dist/core/codextender-auth-file-sweep.js +97 -0
  155. package/server/dist/core/codextender-auth-file-sweep.js.map +1 -0
  156. package/server/dist/core/codextender-proxy-probe.d.ts +80 -0
  157. package/server/dist/core/codextender-proxy-probe.d.ts.map +1 -0
  158. package/server/dist/core/codextender-proxy-probe.js +179 -0
  159. package/server/dist/core/codextender-proxy-probe.js.map +1 -0
  160. package/server/dist/core/contract-version.d.ts +16 -1
  161. package/server/dist/core/contract-version.d.ts.map +1 -1
  162. package/server/dist/core/contract-version.js +16 -1
  163. package/server/dist/core/contract-version.js.map +1 -1
  164. package/server/dist/core/custom-profile-command-policy.d.ts +6 -0
  165. package/server/dist/core/custom-profile-command-policy.d.ts.map +1 -0
  166. package/server/dist/core/custom-profile-command-policy.js +110 -0
  167. package/server/dist/core/custom-profile-command-policy.js.map +1 -0
  168. package/server/dist/core/custom-profile-loader.d.ts +34 -0
  169. package/server/dist/core/custom-profile-loader.d.ts.map +1 -0
  170. package/server/dist/core/custom-profile-loader.js +225 -0
  171. package/server/dist/core/custom-profile-loader.js.map +1 -0
  172. package/server/dist/core/launcher-codex.d.ts +61 -0
  173. package/server/dist/core/launcher-codex.d.ts.map +1 -0
  174. package/server/dist/core/launcher-codex.js +187 -0
  175. package/server/dist/core/launcher-codex.js.map +1 -0
  176. package/server/dist/core/launcher-codextender-env.d.ts +44 -0
  177. package/server/dist/core/launcher-codextender-env.d.ts.map +1 -0
  178. package/server/dist/core/launcher-codextender-env.js +212 -0
  179. package/server/dist/core/launcher-codextender-env.js.map +1 -0
  180. package/server/dist/core/launcher-codextender.d.ts +72 -0
  181. package/server/dist/core/launcher-codextender.d.ts.map +1 -0
  182. package/server/dist/core/launcher-codextender.js +98 -0
  183. package/server/dist/core/launcher-codextender.js.map +1 -0
  184. package/server/dist/core/launcher-codextender.smoke-helpers.d.ts +25 -0
  185. package/server/dist/core/launcher-codextender.smoke-helpers.d.ts.map +1 -0
  186. package/server/dist/core/launcher-codextender.smoke-helpers.js +211 -0
  187. package/server/dist/core/launcher-codextender.smoke-helpers.js.map +1 -0
  188. package/server/dist/core/launcher-permission-flags.d.ts +17 -0
  189. package/server/dist/core/launcher-permission-flags.d.ts.map +1 -0
  190. package/server/dist/core/launcher-permission-flags.js +27 -0
  191. package/server/dist/core/launcher-permission-flags.js.map +1 -0
  192. package/server/dist/core/launcher.d.ts +18 -0
  193. package/server/dist/core/launcher.d.ts.map +1 -1
  194. package/server/dist/core/launcher.js +6 -0
  195. package/server/dist/core/launcher.js.map +1 -1
  196. package/server/dist/core/leadwright-preflight-transport.d.ts +27 -0
  197. package/server/dist/core/leadwright-preflight-transport.d.ts.map +1 -0
  198. package/server/dist/core/leadwright-preflight-transport.js +124 -0
  199. package/server/dist/core/leadwright-preflight-transport.js.map +1 -0
  200. package/server/dist/core/mission-context/artifacts-tests-ac.d.ts +6 -0
  201. package/server/dist/core/mission-context/artifacts-tests-ac.d.ts.map +1 -0
  202. package/server/dist/core/mission-context/artifacts-tests-ac.js +31 -0
  203. package/server/dist/core/mission-context/artifacts-tests-ac.js.map +1 -0
  204. package/server/dist/core/mission-context/artifacts-tests.d.ts.map +1 -1
  205. package/server/dist/core/mission-context/artifacts-tests.js +20 -0
  206. package/server/dist/core/mission-context/artifacts-tests.js.map +1 -1
  207. package/server/dist/core/mission-context/resolver-io.d.ts +10 -0
  208. package/server/dist/core/mission-context/resolver-io.d.ts.map +1 -1
  209. package/server/dist/core/mission-context/resolver-parts.d.ts +8 -7
  210. package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -1
  211. package/server/dist/core/mission-context/resolver-parts.js +22 -14
  212. package/server/dist/core/mission-context/resolver-parts.js.map +1 -1
  213. package/server/dist/core/mission-context/resolver.d.ts.map +1 -1
  214. package/server/dist/core/mission-context/resolver.js +1 -1
  215. package/server/dist/core/mission-context/resolver.js.map +1 -1
  216. package/server/dist/core/mission-context/run-id-recovery.d.ts +18 -2
  217. package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -1
  218. package/server/dist/core/mission-context/run-id-recovery.js +38 -18
  219. package/server/dist/core/mission-context/run-id-recovery.js.map +1 -1
  220. package/server/dist/core/mission-context/traceability.d.ts.map +1 -1
  221. package/server/dist/core/mission-context/traceability.js +15 -1
  222. package/server/dist/core/mission-context/traceability.js.map +1 -1
  223. package/server/dist/core/mission-context/types-slice2.d.ts +44 -0
  224. package/server/dist/core/mission-context/types-slice2.d.ts.map +1 -1
  225. package/server/dist/core/model-tier-config-reader.d.ts +14 -1
  226. package/server/dist/core/model-tier-config-reader.d.ts.map +1 -1
  227. package/server/dist/core/model-tier-config-reader.js +34 -2
  228. package/server/dist/core/model-tier-config-reader.js.map +1 -1
  229. package/server/dist/core/powershell-probe.smoke-helpers.d.ts +12 -0
  230. package/server/dist/core/powershell-probe.smoke-helpers.d.ts.map +1 -0
  231. package/server/dist/core/powershell-probe.smoke-helpers.js +80 -0
  232. package/server/dist/core/powershell-probe.smoke-helpers.js.map +1 -0
  233. package/server/dist/core/preview-child-lifecycle.d.ts +7 -2
  234. package/server/dist/core/preview-child-lifecycle.d.ts.map +1 -1
  235. package/server/dist/core/preview-child-lifecycle.js +17 -5
  236. package/server/dist/core/preview-child-lifecycle.js.map +1 -1
  237. package/server/dist/core/preview-session-manager.d.ts +1 -0
  238. package/server/dist/core/preview-session-manager.d.ts.map +1 -1
  239. package/server/dist/core/preview-session-manager.js +2 -2
  240. package/server/dist/core/preview-session-manager.js.map +1 -1
  241. package/server/dist/core/project-actions-loader.d.ts +13 -0
  242. package/server/dist/core/project-actions-loader.d.ts.map +1 -1
  243. package/server/dist/core/project-actions-loader.js +28 -6
  244. package/server/dist/core/project-actions-loader.js.map +1 -1
  245. package/server/dist/core/project-data-dir.d.ts +41 -0
  246. package/server/dist/core/project-data-dir.d.ts.map +1 -0
  247. package/server/dist/core/project-data-dir.js +64 -0
  248. package/server/dist/core/project-data-dir.js.map +1 -0
  249. package/server/dist/core/project-data-migrate.d.ts +14 -0
  250. package/server/dist/core/project-data-migrate.d.ts.map +1 -0
  251. package/server/dist/core/project-data-migrate.js +94 -0
  252. package/server/dist/core/project-data-migrate.js.map +1 -0
  253. package/server/dist/core/project-manager.d.ts.map +1 -1
  254. package/server/dist/core/project-manager.js +9 -10
  255. package/server/dist/core/project-manager.js.map +1 -1
  256. package/server/dist/core/readiness-install-hints.d.ts +1 -1
  257. package/server/dist/core/readiness-install-hints.d.ts.map +1 -1
  258. package/server/dist/core/readiness-install-hints.js +5 -0
  259. package/server/dist/core/readiness-install-hints.js.map +1 -1
  260. package/server/dist/core/readiness-probe-run.d.ts +61 -0
  261. package/server/dist/core/readiness-probe-run.d.ts.map +1 -1
  262. package/server/dist/core/readiness-probe-run.js +93 -15
  263. package/server/dist/core/readiness-probe-run.js.map +1 -1
  264. package/server/dist/core/readiness-probe.d.ts +1 -1
  265. package/server/dist/core/readiness-probe.d.ts.map +1 -1
  266. package/server/dist/core/readiness-probe.js +36 -8
  267. package/server/dist/core/readiness-probe.js.map +1 -1
  268. package/server/dist/core/sdk-sessions-store.d.ts +46 -0
  269. package/server/dist/core/sdk-sessions-store.d.ts.map +1 -1
  270. package/server/dist/core/sdk-sessions-store.js +1 -0
  271. package/server/dist/core/sdk-sessions-store.js.map +1 -1
  272. package/server/dist/core/sdk-sessions-validate.d.ts.map +1 -1
  273. package/server/dist/core/sdk-sessions-validate.js +11 -0
  274. package/server/dist/core/sdk-sessions-validate.js.map +1 -1
  275. package/server/dist/core/session-file/access.d.ts +26 -0
  276. package/server/dist/core/session-file/access.d.ts.map +1 -0
  277. package/server/dist/core/session-file/access.js +143 -0
  278. package/server/dist/core/session-file/access.js.map +1 -0
  279. package/server/dist/core/session-file/asset-access.d.ts +15 -0
  280. package/server/dist/core/session-file/asset-access.d.ts.map +1 -0
  281. package/server/dist/core/session-file/asset-access.js +141 -0
  282. package/server/dist/core/session-file/asset-access.js.map +1 -0
  283. package/server/dist/core/session-file/evidence.d.ts +25 -0
  284. package/server/dist/core/session-file/evidence.d.ts.map +1 -0
  285. package/server/dist/core/session-file/evidence.js +201 -0
  286. package/server/dist/core/session-file/evidence.js.map +1 -0
  287. package/server/dist/core/session-file/probe.d.ts +16 -0
  288. package/server/dist/core/session-file/probe.d.ts.map +1 -0
  289. package/server/dist/core/session-file/probe.js +63 -0
  290. package/server/dist/core/session-file/probe.js.map +1 -0
  291. package/server/dist/core/session-file/safe-read.d.ts +33 -0
  292. package/server/dist/core/session-file/safe-read.d.ts.map +1 -0
  293. package/server/dist/core/session-file/safe-read.js +103 -0
  294. package/server/dist/core/session-file/safe-read.js.map +1 -0
  295. package/server/dist/core/session-file/sensitive.d.ts +5 -0
  296. package/server/dist/core/session-file/sensitive.d.ts.map +1 -0
  297. package/server/dist/core/session-file/sensitive.js +52 -0
  298. package/server/dist/core/session-file/sensitive.js.map +1 -0
  299. package/server/dist/core/session-info/collect.d.ts +70 -0
  300. package/server/dist/core/session-info/collect.d.ts.map +1 -0
  301. package/server/dist/core/session-info/collect.js +248 -0
  302. package/server/dist/core/session-info/collect.js.map +1 -0
  303. package/server/dist/core/session-info/line-scan.d.ts +20 -0
  304. package/server/dist/core/session-info/line-scan.d.ts.map +1 -0
  305. package/server/dist/core/session-info/line-scan.js +109 -0
  306. package/server/dist/core/session-info/line-scan.js.map +1 -0
  307. package/server/dist/core/session-info/remote-control.d.ts +9 -0
  308. package/server/dist/core/session-info/remote-control.d.ts.map +1 -0
  309. package/server/dist/core/session-info/remote-control.js +64 -0
  310. package/server/dist/core/session-info/remote-control.js.map +1 -0
  311. package/server/dist/core/session-info/session-info.d.ts +18 -0
  312. package/server/dist/core/session-info/session-info.d.ts.map +1 -0
  313. package/server/dist/core/session-info/session-info.js +170 -0
  314. package/server/dist/core/session-info/session-info.js.map +1 -0
  315. package/server/dist/core/session-info/small-file.d.ts +2 -0
  316. package/server/dist/core/session-info/small-file.d.ts.map +1 -0
  317. package/server/dist/core/session-info/small-file.js +42 -0
  318. package/server/dist/core/session-info/small-file.js.map +1 -0
  319. package/server/dist/core/session-info/subagent-transcript.d.ts +12 -0
  320. package/server/dist/core/session-info/subagent-transcript.d.ts.map +1 -0
  321. package/server/dist/core/session-info/subagent-transcript.js +78 -0
  322. package/server/dist/core/session-info/subagent-transcript.js.map +1 -0
  323. package/server/dist/core/session-info/subagents.d.ts +14 -0
  324. package/server/dist/core/session-info/subagents.d.ts.map +1 -0
  325. package/server/dist/core/session-info/subagents.js +92 -0
  326. package/server/dist/core/session-info/subagents.js.map +1 -0
  327. package/server/dist/core/session-info/test-fixtures.d.ts +50 -0
  328. package/server/dist/core/session-info/test-fixtures.d.ts.map +1 -0
  329. package/server/dist/core/session-info/test-fixtures.js +43 -0
  330. package/server/dist/core/session-info/test-fixtures.js.map +1 -0
  331. package/server/dist/core/session-info/types.d.ts +77 -0
  332. package/server/dist/core/session-info/types.d.ts.map +1 -0
  333. package/server/dist/core/session-info/types.js +14 -0
  334. package/server/dist/core/session-info/types.js.map +1 -0
  335. package/server/dist/core/settings-reader.d.ts +18 -0
  336. package/server/dist/core/settings-reader.d.ts.map +1 -0
  337. package/server/dist/core/settings-reader.js +40 -0
  338. package/server/dist/core/settings-reader.js.map +1 -0
  339. package/server/dist/core/shell-quote.d.ts +29 -0
  340. package/server/dist/core/shell-quote.d.ts.map +1 -1
  341. package/server/dist/core/shell-quote.js +34 -0
  342. package/server/dist/core/shell-quote.js.map +1 -1
  343. package/server/dist/core/stack-profiles-create.d.ts +31 -0
  344. package/server/dist/core/stack-profiles-create.d.ts.map +1 -0
  345. package/server/dist/core/stack-profiles-create.js +128 -0
  346. package/server/dist/core/stack-profiles-create.js.map +1 -0
  347. package/server/dist/core/stack-profiles.d.ts +49 -0
  348. package/server/dist/core/stack-profiles.d.ts.map +1 -0
  349. package/server/dist/core/stack-profiles.js +142 -0
  350. package/server/dist/core/stack-profiles.js.map +1 -0
  351. package/server/dist/core/task-editability.d.ts +1 -1
  352. package/server/dist/core/task-editability.d.ts.map +1 -1
  353. package/server/dist/core/task-editability.js +1 -0
  354. package/server/dist/core/task-editability.js.map +1 -1
  355. package/server/dist/core/triage-cli-runner.d.ts.map +1 -1
  356. package/server/dist/core/triage-cli-runner.js +6 -21
  357. package/server/dist/core/triage-cli-runner.js.map +1 -1
  358. package/server/dist/core/triage-compose.d.ts.map +1 -1
  359. package/server/dist/core/triage-compose.js +34 -3
  360. package/server/dist/core/triage-compose.js.map +1 -1
  361. package/server/dist/core/triage-store.d.ts +2 -1
  362. package/server/dist/core/triage-store.d.ts.map +1 -1
  363. package/server/dist/core/triage-store.js +1 -1
  364. package/server/dist/core/triage-store.js.map +1 -1
  365. package/server/dist/external/_shared/helpers.d.ts +2 -0
  366. package/server/dist/external/_shared/helpers.d.ts.map +1 -1
  367. package/server/dist/external/_shared/helpers.js.map +1 -1
  368. package/server/dist/external/actions/get.d.ts +3 -1
  369. package/server/dist/external/actions/get.d.ts.map +1 -1
  370. package/server/dist/external/actions/get.js +15 -4
  371. package/server/dist/external/actions/get.js.map +1 -1
  372. package/server/dist/external/actions/routes.d.ts +3 -1
  373. package/server/dist/external/actions/routes.d.ts.map +1 -1
  374. package/server/dist/external/actions/routes.js.map +1 -1
  375. package/server/dist/external/actions/stub.d.ts.map +1 -1
  376. package/server/dist/external/actions/stub.js +15 -4
  377. package/server/dist/external/actions/stub.js.map +1 -1
  378. package/server/dist/external/actions/upload-delete.d.ts.map +1 -1
  379. package/server/dist/external/actions/upload-delete.js +30 -20
  380. package/server/dist/external/actions/upload-delete.js.map +1 -1
  381. package/server/dist/external/actions/upload.d.ts.map +1 -1
  382. package/server/dist/external/actions/upload.js +5 -4
  383. package/server/dist/external/actions/upload.js.map +1 -1
  384. package/server/dist/external/create-external-routes-args.d.ts +124 -0
  385. package/server/dist/external/create-external-routes-args.d.ts.map +1 -0
  386. package/server/dist/external/create-external-routes-args.js +2 -0
  387. package/server/dist/external/create-external-routes-args.js.map +1 -0
  388. package/server/dist/external/inbox/_codex.d.ts +14 -0
  389. package/server/dist/external/inbox/_codex.d.ts.map +1 -0
  390. package/server/dist/external/inbox/_codex.js +88 -0
  391. package/server/dist/external/inbox/_codex.js.map +1 -0
  392. package/server/dist/external/inbox/_derive.d.ts.map +1 -1
  393. package/server/dist/external/inbox/_derive.js +11 -0
  394. package/server/dist/external/inbox/_derive.js.map +1 -1
  395. package/server/dist/external/inbox/_phase-gate.d.ts +9 -0
  396. package/server/dist/external/inbox/_phase-gate.d.ts.map +1 -0
  397. package/server/dist/external/inbox/_phase-gate.js +87 -0
  398. package/server/dist/external/inbox/_phase-gate.js.map +1 -0
  399. package/server/dist/external/inbox/_types.d.ts +30 -0
  400. package/server/dist/external/inbox/_types.d.ts.map +1 -1
  401. package/server/dist/external/inbox/_types.js +8 -5
  402. package/server/dist/external/inbox/_types.js.map +1 -1
  403. package/server/dist/external/inbox/routes.d.ts +7 -0
  404. package/server/dist/external/inbox/routes.d.ts.map +1 -1
  405. package/server/dist/external/inbox/routes.js +17 -2
  406. package/server/dist/external/inbox/routes.js.map +1 -1
  407. package/server/dist/external/launch/_helpers.d.ts +4 -0
  408. package/server/dist/external/launch/_helpers.d.ts.map +1 -1
  409. package/server/dist/external/launch/_helpers.js.map +1 -1
  410. package/server/dist/external/launch/action-substitution-branch.d.ts +12 -0
  411. package/server/dist/external/launch/action-substitution-branch.d.ts.map +1 -1
  412. package/server/dist/external/launch/action-substitution-branch.js +37 -3
  413. package/server/dist/external/launch/action-substitution-branch.js.map +1 -1
  414. package/server/dist/external/launch/branch-dispatch.d.ts +15 -0
  415. package/server/dist/external/launch/branch-dispatch.d.ts.map +1 -0
  416. package/server/dist/external/launch/branch-dispatch.js +73 -0
  417. package/server/dist/external/launch/branch-dispatch.js.map +1 -0
  418. package/server/dist/external/launch/campaign-step-branch.d.ts +7 -1
  419. package/server/dist/external/launch/campaign-step-branch.d.ts.map +1 -1
  420. package/server/dist/external/launch/campaign-step-branch.js +70 -2
  421. package/server/dist/external/launch/campaign-step-branch.js.map +1 -1
  422. package/server/dist/external/launch/claim-executor-permissions.d.ts +31 -0
  423. package/server/dist/external/launch/claim-executor-permissions.d.ts.map +1 -0
  424. package/server/dist/external/launch/claim-executor-permissions.js +107 -0
  425. package/server/dist/external/launch/claim-executor-permissions.js.map +1 -0
  426. package/server/dist/external/launch/claim-executor-template-arming.d.ts +42 -0
  427. package/server/dist/external/launch/claim-executor-template-arming.d.ts.map +1 -0
  428. package/server/dist/external/launch/claim-executor-template-arming.js +121 -0
  429. package/server/dist/external/launch/claim-executor-template-arming.js.map +1 -0
  430. package/server/dist/external/launch/claim-holder-gate.d.ts +9 -0
  431. package/server/dist/external/launch/claim-holder-gate.d.ts.map +1 -1
  432. package/server/dist/external/launch/claim-holder-gate.js +10 -2
  433. package/server/dist/external/launch/claim-holder-gate.js.map +1 -1
  434. package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts +3 -0
  435. package/server/dist/external/launch/claim-permission-perimeter-assert.d.ts.map +1 -0
  436. package/server/dist/external/launch/claim-permission-perimeter-assert.js +24 -0
  437. package/server/dist/external/launch/claim-permission-perimeter-assert.js.map +1 -0
  438. package/server/dist/external/launch/legacy-fallback-branch.d.ts +14 -0
  439. package/server/dist/external/launch/legacy-fallback-branch.d.ts.map +1 -1
  440. package/server/dist/external/launch/legacy-fallback-branch.js +3 -1
  441. package/server/dist/external/launch/legacy-fallback-branch.js.map +1 -1
  442. package/server/dist/external/launch/master-run-branch.js +2 -2
  443. package/server/dist/external/launch/master-run-branch.js.map +1 -1
  444. package/server/dist/external/launch/mixed-intents-guard.d.ts +10 -0
  445. package/server/dist/external/launch/mixed-intents-guard.d.ts.map +1 -0
  446. package/server/dist/external/launch/mixed-intents-guard.js +49 -0
  447. package/server/dist/external/launch/mixed-intents-guard.js.map +1 -0
  448. package/server/dist/external/launch/parse-body.d.ts +29 -0
  449. package/server/dist/external/launch/parse-body.d.ts.map +1 -1
  450. package/server/dist/external/launch/parse-body.js +66 -0
  451. package/server/dist/external/launch/parse-body.js.map +1 -1
  452. package/server/dist/external/launch/routes.d.ts +3 -0
  453. package/server/dist/external/launch/routes.d.ts.map +1 -1
  454. package/server/dist/external/launch/routes.js +76 -109
  455. package/server/dist/external/launch/routes.js.map +1 -1
  456. package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts +20 -0
  457. package/server/dist/external/launch/runtime-chokepoint-codextender.d.ts.map +1 -0
  458. package/server/dist/external/launch/runtime-chokepoint-codextender.js +51 -0
  459. package/server/dist/external/launch/runtime-chokepoint-codextender.js.map +1 -0
  460. package/server/dist/external/launch/runtime-chokepoint-errors.d.ts +33 -0
  461. package/server/dist/external/launch/runtime-chokepoint-errors.d.ts.map +1 -0
  462. package/server/dist/external/launch/runtime-chokepoint-errors.js +63 -0
  463. package/server/dist/external/launch/runtime-chokepoint-errors.js.map +1 -0
  464. package/server/dist/external/launch/runtime-chokepoint.d.ts +120 -0
  465. package/server/dist/external/launch/runtime-chokepoint.d.ts.map +1 -0
  466. package/server/dist/external/launch/runtime-chokepoint.js +201 -0
  467. package/server/dist/external/launch/runtime-chokepoint.js.map +1 -0
  468. package/server/dist/external/mission-context/facts.js +2 -2
  469. package/server/dist/external/mission-context/facts.js.map +1 -1
  470. package/server/dist/external/mission-context/routes.d.ts +33 -27
  471. package/server/dist/external/mission-context/routes.d.ts.map +1 -1
  472. package/server/dist/external/mission-context/routes.js +30 -27
  473. package/server/dist/external/mission-context/routes.js.map +1 -1
  474. package/server/dist/external/mission-context/test-harness.d.ts +6 -0
  475. package/server/dist/external/mission-context/test-harness.d.ts.map +1 -1
  476. package/server/dist/external/mission-context/test-harness.js +6 -1
  477. package/server/dist/external/mission-context/test-harness.js.map +1 -1
  478. package/server/dist/external/mission-context/wire.d.ts.map +1 -1
  479. package/server/dist/external/mission-context/wire.js +24 -2
  480. package/server/dist/external/mission-context/wire.js.map +1 -1
  481. package/server/dist/external/org/audit-log.d.ts +19 -0
  482. package/server/dist/external/org/audit-log.d.ts.map +1 -1
  483. package/server/dist/external/org/audit-log.js +33 -18
  484. package/server/dist/external/org/audit-log.js.map +1 -1
  485. package/server/dist/external/org/beat-effect-audit-read.d.ts +15 -0
  486. package/server/dist/external/org/beat-effect-audit-read.d.ts.map +1 -0
  487. package/server/dist/external/org/beat-effect-audit-read.js +73 -0
  488. package/server/dist/external/org/beat-effect-audit-read.js.map +1 -0
  489. package/server/dist/external/org/beat-register-health.d.ts +57 -0
  490. package/server/dist/external/org/beat-register-health.d.ts.map +1 -0
  491. package/server/dist/external/org/beat-register-health.js +125 -0
  492. package/server/dist/external/org/beat-register-health.js.map +1 -0
  493. package/server/dist/external/org/beat-register-release-core.d.ts.map +1 -1
  494. package/server/dist/external/org/beat-register-release-core.js +4 -1
  495. package/server/dist/external/org/beat-register-release-core.js.map +1 -1
  496. package/server/dist/external/org/beat-register-release-request.d.ts +20 -0
  497. package/server/dist/external/org/beat-register-release-request.d.ts.map +1 -0
  498. package/server/dist/external/org/beat-register-release-request.js +92 -0
  499. package/server/dist/external/org/beat-register-release-request.js.map +1 -0
  500. package/server/dist/external/org/beat-register-release.d.ts +3 -1
  501. package/server/dist/external/org/beat-register-release.d.ts.map +1 -1
  502. package/server/dist/external/org/beat-register-release.js +15 -57
  503. package/server/dist/external/org/beat-register-release.js.map +1 -1
  504. package/server/dist/external/org/beat-register.d.ts +18 -20
  505. package/server/dist/external/org/beat-register.d.ts.map +1 -1
  506. package/server/dist/external/org/beat-register.js +30 -56
  507. package/server/dist/external/org/beat-register.js.map +1 -1
  508. package/server/dist/external/org/beat-steps-read.d.ts +17 -0
  509. package/server/dist/external/org/beat-steps-read.d.ts.map +1 -0
  510. package/server/dist/external/org/beat-steps-read.js +89 -0
  511. package/server/dist/external/org/beat-steps-read.js.map +1 -0
  512. package/server/dist/external/org/charter-authority-read.d.ts +39 -0
  513. package/server/dist/external/org/charter-authority-read.d.ts.map +1 -0
  514. package/server/dist/external/org/charter-authority-read.js +142 -0
  515. package/server/dist/external/org/charter-authority-read.js.map +1 -0
  516. package/server/dist/external/org/commit-validate.d.ts +18 -0
  517. package/server/dist/external/org/commit-validate.d.ts.map +1 -0
  518. package/server/dist/external/org/commit-validate.js +59 -0
  519. package/server/dist/external/org/commit-validate.js.map +1 -0
  520. package/server/dist/external/org/commit-writes.d.ts +68 -0
  521. package/server/dist/external/org/commit-writes.d.ts.map +1 -0
  522. package/server/dist/external/org/commit-writes.js +110 -0
  523. package/server/dist/external/org/commit-writes.js.map +1 -0
  524. package/server/dist/external/org/commit.d.ts +73 -0
  525. package/server/dist/external/org/commit.d.ts.map +1 -0
  526. package/server/dist/external/org/commit.js +181 -0
  527. package/server/dist/external/org/commit.js.map +1 -0
  528. package/server/dist/external/org/commit.test-fixtures.d.ts +38 -0
  529. package/server/dist/external/org/commit.test-fixtures.d.ts.map +1 -0
  530. package/server/dist/external/org/commit.test-fixtures.js +67 -0
  531. package/server/dist/external/org/commit.test-fixtures.js.map +1 -0
  532. package/server/dist/external/org/countersign-core.d.ts +19 -0
  533. package/server/dist/external/org/countersign-core.d.ts.map +1 -0
  534. package/server/dist/external/org/countersign-core.js +122 -0
  535. package/server/dist/external/org/countersign-core.js.map +1 -0
  536. package/server/dist/external/org/countersign-request.d.ts +14 -0
  537. package/server/dist/external/org/countersign-request.d.ts.map +1 -0
  538. package/server/dist/external/org/countersign-request.js +78 -0
  539. package/server/dist/external/org/countersign-request.js.map +1 -0
  540. package/server/dist/external/org/countersign.d.ts +6 -5
  541. package/server/dist/external/org/countersign.d.ts.map +1 -1
  542. package/server/dist/external/org/countersign.js +12 -141
  543. package/server/dist/external/org/countersign.js.map +1 -1
  544. package/server/dist/external/org/daemon-config-read.d.ts +31 -0
  545. package/server/dist/external/org/daemon-config-read.d.ts.map +1 -0
  546. package/server/dist/external/org/daemon-config-read.js +50 -0
  547. package/server/dist/external/org/daemon-config-read.js.map +1 -0
  548. package/server/dist/external/org/decisions-lock.d.ts +6 -4
  549. package/server/dist/external/org/decisions-lock.d.ts.map +1 -1
  550. package/server/dist/external/org/decisions-lock.js +9 -8
  551. package/server/dist/external/org/decisions-lock.js.map +1 -1
  552. package/server/dist/external/org/domains.d.ts +35 -0
  553. package/server/dist/external/org/domains.d.ts.map +1 -0
  554. package/server/dist/external/org/domains.js +29 -0
  555. package/server/dist/external/org/domains.js.map +1 -0
  556. package/server/dist/external/org/existing-charters-read.d.ts +5 -0
  557. package/server/dist/external/org/existing-charters-read.d.ts.map +1 -0
  558. package/server/dist/external/org/existing-charters-read.js +31 -0
  559. package/server/dist/external/org/existing-charters-read.js.map +1 -0
  560. package/server/dist/external/org/leadwright-proposal-merge.d.ts +54 -0
  561. package/server/dist/external/org/leadwright-proposal-merge.d.ts.map +1 -0
  562. package/server/dist/external/org/leadwright-proposal-merge.js +47 -0
  563. package/server/dist/external/org/leadwright-proposal-merge.js.map +1 -0
  564. package/server/dist/external/org/mount.d.ts +10 -2
  565. package/server/dist/external/org/mount.d.ts.map +1 -1
  566. package/server/dist/external/org/mount.js +6 -1
  567. package/server/dist/external/org/mount.js.map +1 -1
  568. package/server/dist/external/org/org-chart-full-read.d.ts +19 -0
  569. package/server/dist/external/org/org-chart-full-read.d.ts.map +1 -0
  570. package/server/dist/external/org/org-chart-full-read.js +58 -0
  571. package/server/dist/external/org/org-chart-full-read.js.map +1 -0
  572. package/server/dist/external/org/org-file-lock.d.ts +41 -0
  573. package/server/dist/external/org/org-file-lock.d.ts.map +1 -0
  574. package/server/dist/external/org/org-file-lock.js +90 -0
  575. package/server/dist/external/org/org-file-lock.js.map +1 -0
  576. package/server/dist/external/org/routes.d.ts +10 -0
  577. package/server/dist/external/org/routes.d.ts.map +1 -1
  578. package/server/dist/external/org/routes.js +22 -1
  579. package/server/dist/external/org/routes.js.map +1 -1
  580. package/server/dist/external/org/verdict.d.ts +57 -0
  581. package/server/dist/external/org/verdict.d.ts.map +1 -0
  582. package/server/dist/external/org/verdict.js +74 -0
  583. package/server/dist/external/org/verdict.js.map +1 -0
  584. package/server/dist/external/preview/routes.d.ts +3 -1
  585. package/server/dist/external/preview/routes.d.ts.map +1 -1
  586. package/server/dist/external/preview/routes.js +8 -1
  587. package/server/dist/external/preview/routes.js.map +1 -1
  588. package/server/dist/external/routes.d.ts +3 -101
  589. package/server/dist/external/routes.d.ts.map +1 -1
  590. package/server/dist/external/routes.js +21 -6
  591. package/server/dist/external/routes.js.map +1 -1
  592. package/server/dist/external/session-file/probe-route.d.ts +4 -0
  593. package/server/dist/external/session-file/probe-route.d.ts.map +1 -0
  594. package/server/dist/external/session-file/probe-route.js +66 -0
  595. package/server/dist/external/session-file/probe-route.js.map +1 -0
  596. package/server/dist/external/session-file/routes.d.ts +12 -0
  597. package/server/dist/external/session-file/routes.d.ts.map +1 -0
  598. package/server/dist/external/session-file/routes.js +90 -0
  599. package/server/dist/external/session-file/routes.js.map +1 -0
  600. package/server/dist/external/session-file/session-file.fixture.d.ts +45 -0
  601. package/server/dist/external/session-file/session-file.fixture.d.ts.map +1 -0
  602. package/server/dist/external/session-file/session-file.fixture.js +41 -0
  603. package/server/dist/external/session-file/session-file.fixture.js.map +1 -0
  604. package/server/dist/external/session-info/routes.d.ts +15 -0
  605. package/server/dist/external/session-info/routes.d.ts.map +1 -0
  606. package/server/dist/external/session-info/routes.js +57 -0
  607. package/server/dist/external/session-info/routes.js.map +1 -0
  608. package/server/dist/external/tasks/_phase-helpers.js +2 -2
  609. package/server/dist/external/tasks/_phase-helpers.js.map +1 -1
  610. package/server/dist/external/tasks/create.d.ts.map +1 -1
  611. package/server/dist/external/tasks/create.js +10 -2
  612. package/server/dist/external/tasks/create.js.map +1 -1
  613. package/server/dist/external/tasks/fork.d.ts +29 -0
  614. package/server/dist/external/tasks/fork.d.ts.map +1 -0
  615. package/server/dist/external/tasks/fork.js +166 -0
  616. package/server/dist/external/tasks/fork.js.map +1 -0
  617. package/server/dist/external/tasks/lifecycle.d.ts.map +1 -1
  618. package/server/dist/external/tasks/lifecycle.js +10 -57
  619. package/server/dist/external/tasks/lifecycle.js.map +1 -1
  620. package/server/dist/external/tasks/patch.d.ts.map +1 -1
  621. package/server/dist/external/tasks/patch.js +17 -0
  622. package/server/dist/external/tasks/patch.js.map +1 -1
  623. package/server/dist/external/tasks/routes.d.ts +2 -0
  624. package/server/dist/external/tasks/routes.d.ts.map +1 -1
  625. package/server/dist/external/tasks/routes.js +7 -0
  626. package/server/dist/external/tasks/routes.js.map +1 -1
  627. package/server/dist/external/transcript/routes.d.ts.map +1 -1
  628. package/server/dist/external/transcript/routes.js +25 -3
  629. package/server/dist/external/transcript/routes.js.map +1 -1
  630. package/server/dist/external-routes-wiring.d.ts +28 -0
  631. package/server/dist/external-routes-wiring.d.ts.map +1 -0
  632. package/server/dist/external-routes-wiring.js +70 -0
  633. package/server/dist/external-routes-wiring.js.map +1 -0
  634. package/server/dist/index.d.ts.map +1 -1
  635. package/server/dist/index.js +117 -52
  636. package/server/dist/index.js.map +1 -1
  637. package/server/dist/lib/resolveHonoHost.d.ts.map +1 -1
  638. package/server/dist/lib/resolveHonoHost.js +16 -1
  639. package/server/dist/lib/resolveHonoHost.js.map +1 -1
  640. package/server/dist/routes/_triage-api-harness.d.ts +1 -1
  641. package/server/dist/routes/_triage-api-harness.d.ts.map +1 -1
  642. package/server/dist/routes/_triage-api-harness.js.map +1 -1
  643. package/server/dist/routes/adopt-scan.d.ts +4 -0
  644. package/server/dist/routes/adopt-scan.d.ts.map +1 -0
  645. package/server/dist/routes/adopt-scan.js +27 -0
  646. package/server/dist/routes/adopt-scan.js.map +1 -0
  647. package/server/dist/routes/campaigns-readiness.d.ts +10 -0
  648. package/server/dist/routes/campaigns-readiness.d.ts.map +1 -0
  649. package/server/dist/routes/campaigns-readiness.js +58 -0
  650. package/server/dist/routes/campaigns-readiness.js.map +1 -0
  651. package/server/dist/routes/campaigns.d.ts.map +1 -1
  652. package/server/dist/routes/campaigns.js +3 -0
  653. package/server/dist/routes/campaigns.js.map +1 -1
  654. package/server/dist/routes/codex-models.d.ts +15 -0
  655. package/server/dist/routes/codex-models.d.ts.map +1 -0
  656. package/server/dist/routes/codex-models.js +77 -0
  657. package/server/dist/routes/codex-models.js.map +1 -0
  658. package/server/dist/routes/codextender-models.d.ts +16 -0
  659. package/server/dist/routes/codextender-models.d.ts.map +1 -0
  660. package/server/dist/routes/codextender-models.js +81 -0
  661. package/server/dist/routes/codextender-models.js.map +1 -0
  662. package/server/dist/routes/diagnostics.d.ts +15 -0
  663. package/server/dist/routes/diagnostics.d.ts.map +1 -1
  664. package/server/dist/routes/diagnostics.js +1 -0
  665. package/server/dist/routes/diagnostics.js.map +1 -1
  666. package/server/dist/routes/org-chart-lead-guard.d.ts +10 -0
  667. package/server/dist/routes/org-chart-lead-guard.d.ts.map +1 -0
  668. package/server/dist/routes/org-chart-lead-guard.js +49 -0
  669. package/server/dist/routes/org-chart-lead-guard.js.map +1 -0
  670. package/server/dist/routes/org-inventory-composite.d.ts +20 -0
  671. package/server/dist/routes/org-inventory-composite.d.ts.map +1 -0
  672. package/server/dist/routes/org-inventory-composite.js +100 -0
  673. package/server/dist/routes/org-inventory-composite.js.map +1 -0
  674. package/server/dist/routes/org-lead-setup-wizard.d.ts +10 -0
  675. package/server/dist/routes/org-lead-setup-wizard.d.ts.map +1 -0
  676. package/server/dist/routes/org-lead-setup-wizard.js +51 -0
  677. package/server/dist/routes/org-lead-setup-wizard.js.map +1 -0
  678. package/server/dist/routes/org-leads-composite.d.ts.map +1 -1
  679. package/server/dist/routes/org-leads-composite.js +35 -9
  680. package/server/dist/routes/org-leads-composite.js.map +1 -1
  681. package/server/dist/routes/org-writes.d.ts +14 -0
  682. package/server/dist/routes/org-writes.d.ts.map +1 -0
  683. package/server/dist/routes/org-writes.js +61 -0
  684. package/server/dist/routes/org-writes.js.map +1 -0
  685. package/server/dist/routes/org.d.ts +11 -2
  686. package/server/dist/routes/org.d.ts.map +1 -1
  687. package/server/dist/routes/org.js +50 -47
  688. package/server/dist/routes/org.js.map +1 -1
  689. package/server/dist/routes/profiles.d.ts +7 -0
  690. package/server/dist/routes/profiles.d.ts.map +1 -1
  691. package/server/dist/routes/profiles.js +13 -0
  692. package/server/dist/routes/profiles.js.map +1 -1
  693. package/server/dist/routes/projects.d.ts.map +1 -1
  694. package/server/dist/routes/projects.js +58 -16
  695. package/server/dist/routes/projects.js.map +1 -1
  696. package/server/dist/routes/settings.d.ts.map +1 -1
  697. package/server/dist/routes/settings.js +23 -2
  698. package/server/dist/routes/settings.js.map +1 -1
  699. package/server/dist/routes/stack-profiles.d.ts +10 -0
  700. package/server/dist/routes/stack-profiles.d.ts.map +1 -0
  701. package/server/dist/routes/stack-profiles.js +65 -0
  702. package/server/dist/routes/stack-profiles.js.map +1 -0
  703. package/server/dist/routes/triage.d.ts +17 -0
  704. package/server/dist/routes/triage.d.ts.map +1 -1
  705. package/server/dist/routes/triage.js +29 -0
  706. package/server/dist/routes/triage.js.map +1 -1
  707. package/server/dist/terminal/data-target.d.ts +17 -0
  708. package/server/dist/terminal/data-target.d.ts.map +1 -0
  709. package/server/dist/terminal/data-target.js +56 -0
  710. package/server/dist/terminal/data-target.js.map +1 -0
  711. package/server/dist/terminal/image-paste.d.ts +2 -0
  712. package/server/dist/terminal/image-paste.d.ts.map +1 -1
  713. package/server/dist/terminal/image-paste.js +11 -12
  714. package/server/dist/terminal/image-paste.js.map +1 -1
  715. package/server/dist/terminal/pty-manager.d.ts +14 -0
  716. package/server/dist/terminal/pty-manager.d.ts.map +1 -1
  717. package/server/dist/terminal/pty-manager.js +11 -0
  718. package/server/dist/terminal/pty-manager.js.map +1 -1
  719. package/server/dist/terminal/routes.d.ts +5 -0
  720. package/server/dist/terminal/routes.d.ts.map +1 -1
  721. package/server/dist/terminal/routes.js +20 -13
  722. package/server/dist/terminal/routes.js.map +1 -1
  723. package/server/dist/terminal/ws-upgrade-handler.d.ts.map +1 -1
  724. package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts.map +1 -1
  725. package/server/dist/terminal/ws-upgrade-handler.fixtures.js +1 -0
  726. package/server/dist/terminal/ws-upgrade-handler.fixtures.js.map +1 -1
  727. package/server/dist/terminal/ws-upgrade-handler.js +14 -5
  728. package/server/dist/terminal/ws-upgrade-handler.js.map +1 -1
  729. package/server/dist/test/event-test-counts-fixtures.d.ts +40 -0
  730. package/server/dist/test/event-test-counts-fixtures.d.ts.map +1 -0
  731. package/server/dist/test/event-test-counts-fixtures.js +56 -0
  732. package/server/dist/test/event-test-counts-fixtures.js.map +1 -0
  733. package/server/dist/types/leadwright-beat-step.d.ts +19 -0
  734. package/server/dist/types/leadwright-beat-step.d.ts.map +1 -0
  735. package/server/dist/types/leadwright-beat-step.js +56 -0
  736. package/server/dist/types/leadwright-beat-step.js.map +1 -0
  737. package/server/dist/types/leadwright-preflight.d.ts +90 -0
  738. package/server/dist/types/leadwright-preflight.d.ts.map +1 -0
  739. package/server/dist/types/leadwright-preflight.js +65 -0
  740. package/server/dist/types/leadwright-preflight.js.map +1 -0
  741. package/server/dist/types/leadwright-schema-drift.d.ts +28 -0
  742. package/server/dist/types/leadwright-schema-drift.d.ts.map +1 -0
  743. package/server/dist/types/leadwright-schema-drift.js +89 -0
  744. package/server/dist/types/leadwright-schema-drift.js.map +1 -0
  745. package/server/dist/types/org-inventory.d.ts +53 -0
  746. package/server/dist/types/org-inventory.d.ts.map +1 -0
  747. package/server/dist/types/org-inventory.js +11 -0
  748. package/server/dist/types/org-inventory.js.map +1 -0
  749. package/server/dist/types/org.d.ts +57 -6
  750. package/server/dist/types/org.d.ts.map +1 -1
  751. package/server/dist/types/project.d.ts +9 -0
  752. package/server/dist/types/project.d.ts.map +1 -1
  753. package/server/dist/types/run-config-retry.d.ts +29 -0
  754. package/server/dist/types/run-config-retry.d.ts.map +1 -0
  755. package/server/dist/types/run-config-retry.js +47 -0
  756. package/server/dist/types/run-config-retry.js.map +1 -0
  757. package/server/dist/types/run-config-v2.d.ts +29 -41
  758. package/server/dist/types/run-config-v2.d.ts.map +1 -1
  759. package/server/dist/types/run-config-v2.js +16 -50
  760. package/server/dist/types/run-config-v2.js.map +1 -1
  761. package/server/dist/types/settings.d.ts +33 -0
  762. package/server/dist/types/settings.d.ts.map +1 -1
  763. package/server/dist/types/stack-profile-contract.d.ts +33 -0
  764. package/server/dist/types/stack-profile-contract.d.ts.map +1 -0
  765. package/server/dist/types/stack-profile-contract.js +11 -0
  766. package/server/dist/types/stack-profile-contract.js.map +1 -0
  767. package/server/dist/vendor/leadwright/beat-step.schema.json +83 -0
  768. package/server/dist/vendor/leadwright/claim-record-lock-contract.json +15 -0
  769. package/server/dist/vendor/leadwright/org-chart.schema.json +195 -0
  770. package/server/dist/vendor/leadwright/preflight-input.schema.json +318 -0
  771. package/server/dist/vendor/leadwright/preflight-result.schema.json +56 -0
  772. package/server/package.json +3 -3
  773. package/client/dist/assets/arc-DQmjbsFU.js +0 -1
  774. package/client/dist/assets/architectureDiagram-ZJ3FMSHR-DAvCsPCW.js +0 -36
  775. package/client/dist/assets/blockDiagram-677ZJIJ3-DC-dlyYI.js +0 -132
  776. package/client/dist/assets/c4Diagram-LMCZKHZV-DSlmXfhE.js +0 -10
  777. package/client/dist/assets/channel-BfmIcrp7.js +0 -1
  778. package/client/dist/assets/chunk-RYQCIY6F-BKhdp_8v.js +0 -1
  779. package/client/dist/assets/chunk-VR4S4FIN-OgFi2_iB.js +0 -1
  780. package/client/dist/assets/classDiagram-OUVF2IWQ-HfUQZ6Uc.js +0 -1
  781. package/client/dist/assets/classDiagram-v2-EOCWNBFH-HfUQZ6Uc.js +0 -1
  782. package/client/dist/assets/dagre-VKFMJZFB-D7djx1_Y.js +0 -4
  783. package/client/dist/assets/diagram-OA4YK3LP-CwQPbOn0.js +0 -30
  784. package/client/dist/assets/diagram-WEI45ONY-abtYnYqH.js +0 -41
  785. package/client/dist/assets/erDiagram-Q63AITRT-vtbCprgH.js +0 -85
  786. package/client/dist/assets/flowDiagram-23GEKE2U-CVCgcyDF.js +0 -156
  787. package/client/dist/assets/graph-C9eacEi8.js +0 -1
  788. package/client/dist/assets/index-CKU9dY18.css +0 -1
  789. package/client/dist/assets/index-DOMl6atu.js +0 -847
  790. package/client/dist/assets/infoDiagram-FWYZ7A6U-Dr4mN24J.js +0 -2
  791. package/client/dist/assets/katex-DkKDou_j.js +0 -257
  792. package/client/dist/assets/layout-DEXfKzaS.js +0 -1
  793. package/client/dist/assets/map-Czzmt4hB.js +0 -1
  794. package/client/dist/assets/mermaid.core-BcLNGbxW.js +0 -314
  795. package/client/dist/assets/stateDiagram-2N3HPSRC-CFwCOonY.js +0 -1
  796. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-srkiu3Ib.js +0 -1
  797. package/client/dist/assets/swimlanes-5IMT3BWC-DFa2tzxu.js +0 -2
  798. package/client/dist/assets/swimlanesDiagram-G3AALYLV-Dq-0K9Zm.js +0 -8
  799. package/client/dist/assets/xychartDiagram-FW5EYKEG-D9PFTCfm.js +0 -7
@@ -0,0 +1,124 @@
1
+ /*
2
+ * core/codex-oracle-runner.ts — the injection-safe bridge to `shared/
3
+ * scripts/tools/codex_completion_oracle.py` (Codex Light §1.7).
4
+ *
5
+ * Mirrors `triage-cli-runner.ts`'s spawn discipline verbatim (same reason:
6
+ * `uv run --no-project --python ">=3.11"` so the script always runs in a
7
+ * Python that actually satisfies its own floor, never whichever of
8
+ * python3/python/py answers `--version` first — see that module's header
9
+ * for the incident this avoids). `--no-project` matters here too: the
10
+ * oracle script has no `pyproject.toml` of its own (it's a plain module
11
+ * under `shared/scripts/tools/`), so an ambient one discovered by walking
12
+ * up from the SPAWNING PROCESS's cwd must never get silently activated.
13
+ *
14
+ * Unlike `grade-runner.ts` / `triage-cli-runner.ts`, the oracle CLI prints
15
+ * its JSON payload on EVERY exit code (0-3 all carry a verdict; there is no
16
+ * "non-JSON means engine trouble" branch) — see `codex_completion_oracle.py`
17
+ * `main()`. This wrapper therefore always attempts to parse stdout first and
18
+ * only falls back to an engine-unavailable/failed outcome when uv/the
19
+ * script itself couldn't be resolved or spawned at all.
20
+ *
21
+ * Required-CI PR-review finding (PR #466): the spawn pattern was a
22
+ * verbatim mirror of `triage-cli-runner.ts` (already in production), but
23
+ * the CADENCE is new — this runs every 60s tick for as long as a task
24
+ * stays stalled, where the triage call site fires once per user-initiated
25
+ * transition. `execFile`'s own `timeout` only SIGTERMs the immediate `uv`
26
+ * child; if `uv run` had already forked a Python grandchild, Node would
27
+ * not reap that process tree on Windows by default. Fixed (not merely
28
+ * accepted) via `cli-child-spawn.ts`'s shared tree-kill-on-timeout
29
+ * wrapper, shared with `triage-cli-runner.ts` so the two can't re-diverge.
30
+ */
31
+ import { existsSync } from "node:fs";
32
+ import os from "node:os";
33
+ import path from "node:path";
34
+ import { defaultCliChildSpawn } from "./cli-child-spawn.js";
35
+ import { READINESS_REPAIR_COMMAND, shipwrightCacheRoot } from "./readiness-probe.js";
36
+ import { resolveUv } from "./uv-runner.js";
37
+ export const CODEX_ORACLE_TIMEOUT_MS = 30_000;
38
+ export const defaultSpawnOracle = defaultCliChildSpawn;
39
+ /** Resolve the single cache-owned oracle CLI shipped with the Shipwright runtime. */
40
+ export function resolveCodexOracleScript(deps = {}) {
41
+ const exists = deps.existsFn ?? existsSync;
42
+ if (deps.scriptOverride)
43
+ return exists(deps.scriptOverride) ? deps.scriptOverride : null;
44
+ const candidate = path.join(shipwrightCacheRoot(deps.homeDir ?? os.homedir()), "shared", "scripts", "tools", "codex_completion_oracle.py");
45
+ return exists(candidate) ? candidate : null;
46
+ }
47
+ function cleanStderr(stderr) {
48
+ return stderr.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).pop() ?? "";
49
+ }
50
+ const ENGINE_UNAVAILABLE_REASON = "The Codex completion oracle isn't installed.";
51
+ /**
52
+ * Run `codex_completion_oracle.py --project-root <root> --phase <p>
53
+ * --session <sid> [--since <iso>]` and parse its JSON verdict. Never
54
+ * throws for an oracle failure — only a programming error would reject.
55
+ */
56
+ export async function runCodexOracle(input, deps = {}) {
57
+ const script = resolveCodexOracleScript(deps);
58
+ if (!script) {
59
+ return { kind: "engine-unavailable", reason: ENGINE_UNAVAILABLE_REASON, repairCommand: READINESS_REPAIR_COMMAND };
60
+ }
61
+ const uv = await resolveUv({ run: deps.run, homeDir: deps.homeDir, baseEnv: deps.baseEnv });
62
+ if (!uv) {
63
+ return {
64
+ kind: "engine-unavailable",
65
+ reason: "uv isn't installed — the Codex completion oracle needs it to run in a managed Python 3.11+.",
66
+ repairCommand: READINESS_REPAIR_COMMAND,
67
+ };
68
+ }
69
+ const spawn = deps.spawn ?? defaultSpawnOracle;
70
+ const args = [
71
+ "run",
72
+ "--no-project",
73
+ "--python",
74
+ ">=3.11",
75
+ script,
76
+ "--project-root",
77
+ input.projectRoot,
78
+ "--phase",
79
+ input.phase,
80
+ "--session",
81
+ input.session,
82
+ ...(input.since ? ["--since", input.since] : []),
83
+ ];
84
+ const result = await spawn(uv.bin, args, {
85
+ timeoutMs: deps.timeoutMs ?? CODEX_ORACLE_TIMEOUT_MS,
86
+ env: uv.env,
87
+ });
88
+ if (result.code === -1) {
89
+ return { kind: "engine-unavailable", reason: "uv couldn't start on this machine.", repairCommand: READINESS_REPAIR_COMMAND };
90
+ }
91
+ // Every other exit (0-3 documented, anything else a crash) prints JSON on
92
+ // stdout per the script's own contract — try to parse before giving up.
93
+ try {
94
+ const payload = JSON.parse(result.stdout);
95
+ if ((payload.verdict === "done" ||
96
+ payload.verdict === "not_done" ||
97
+ payload.verdict === "delivery_pending" ||
98
+ payload.verdict === "no_oracle") &&
99
+ typeof payload.phase === "string" &&
100
+ typeof payload.session === "string" &&
101
+ payload.evidence &&
102
+ typeof payload.evidence === "object") {
103
+ return {
104
+ kind: "ok",
105
+ result: {
106
+ verdict: payload.verdict,
107
+ phase: payload.phase,
108
+ session: payload.session,
109
+ evidence: payload.evidence,
110
+ },
111
+ };
112
+ }
113
+ }
114
+ catch {
115
+ /* fall through to the failed branch below */
116
+ }
117
+ return {
118
+ kind: "failed",
119
+ reason: result.spawnError === "timeout"
120
+ ? "The completion oracle took too long and was stopped."
121
+ : cleanStderr(result.stderr) || "The completion oracle returned an unrecognised response.",
122
+ };
123
+ }
124
+ //# sourceMappingURL=codex-oracle-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-oracle-runner.js","sourceRoot":"","sources":["../../src/core/codex-oracle-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface ShipwrightStatusReport {
2
+ phase: string;
3
+ done: boolean;
4
+ }
5
+ export declare function parseShipwrightStatusReport(text: string): ShipwrightStatusReport | null;
6
+ //# sourceMappingURL=codex-status-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-status-report.d.ts","sourceRoot":"","sources":["../../src/core/codex-status-report.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAQD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAiBvF"}
@@ -0,0 +1,40 @@
1
+ /*
2
+ * core/codex-status-report.ts — §5.4's structured self-report parser.
3
+ *
4
+ * Every Codex launch prompt (`launcher-codex.ts buildCodexPrompt`) ends
5
+ * with an instruction to close with a fenced ```SHIPWRIGHT-STATUS {json}```
6
+ * block. §5.4 (hard v1 scope, not an "Open item"): "Parsed from terminal
7
+ * scrollback, cross-checked against the oracle verdict: agreement raises
8
+ * confidence; disagreement always defers to the oracle. This gives
9
+ * `no_oracle` phases a real, if weaker, signal."
10
+ *
11
+ * Pure parser — no I/O. `CodexTaskWatcher` reads the terminal text (via
12
+ * `PtyManager.peekTerminalText`'s visible-viewport snapshot, the same
13
+ * mechanism `appendCodexTerminalSignals` already uses for approval-request
14
+ * detection) and hands it here.
15
+ */
16
+ // Matches the exact fence `buildCodexPrompt` instructs Codex to emit. Global
17
+ // so a viewport containing more than one report (e.g. an earlier nudge's
18
+ // echoed instruction text plus a real closing report) is fully scanned —
19
+ // the LAST well-formed match wins, since that's the most recent status.
20
+ const FENCE_RE = /```SHIPWRIGHT-STATUS\s*\r?\n([\s\S]*?)```/g;
21
+ export function parseShipwrightStatusReport(text) {
22
+ let match;
23
+ let last = null;
24
+ FENCE_RE.lastIndex = 0;
25
+ while ((match = FENCE_RE.exec(text)) !== null) {
26
+ try {
27
+ const parsed = JSON.parse(match[1].trim());
28
+ if (parsed && typeof parsed === "object" && typeof parsed.done === "boolean") {
29
+ const p = parsed;
30
+ last = { phase: typeof p.phase === "string" ? p.phase : "", done: p.done };
31
+ }
32
+ }
33
+ catch {
34
+ // Malformed block (truncated viewport, stray backticks in unrelated
35
+ // output) — skip it and keep scanning for an earlier well-formed one.
36
+ }
37
+ }
38
+ return last;
39
+ }
40
+ //# sourceMappingURL=codex-status-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-status-report.js","sourceRoot":"","sources":["../../src/core/codex-status-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,6EAA6E;AAC7E,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,QAAQ,GAAG,4CAA4C,CAAC;AAE9D,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,IAAI,KAA6B,CAAC;IAClC,IAAI,IAAI,GAAkC,IAAI,CAAC;IAC/C,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,MAAkC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1G,MAAM,CAAC,GAAG,MAAiC,CAAC;gBAC5C,IAAI,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAe,EAAE,CAAC;YACxF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;YACpE,sEAAsE;QACxE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { ExternalTask } from "./sdk-sessions-store.js";
2
+ import type { OracleOutcome, RunCodexOracleInput } from "./codex-oracle-runner.js";
3
+ /** Settings default per §5 (min 5 — Settings enforces the floor, not this module). */
4
+ export declare const DEFAULT_STALL_TIMEOUT_MS: number;
5
+ /** §5.2 launch-confirmation window — distinct from, and shorter than, the
6
+ * mid-task stall trigger above. */
7
+ export declare const DEFAULT_LAUNCH_CONFIRM_TIMEOUT_MS: number;
8
+ export type CodexWatcherNoticeKind = "nudge_sent" | "delivery_error" | "no_oracle_unresolved" | "launch_confirmation_failed";
9
+ export interface CodexWatcherNotice {
10
+ taskId: string;
11
+ kind: CodexWatcherNoticeKind;
12
+ detail: string;
13
+ at: number;
14
+ }
15
+ export interface CodexTaskWatcherStore {
16
+ list(): ExternalTask[];
17
+ patch(taskId: string, patch: Partial<ExternalTask>): ExternalTask | undefined;
18
+ persist(): Promise<void>;
19
+ }
20
+ export interface CodexTaskWatcherPtyManager {
21
+ getLastDataAt(taskId: string): number | null;
22
+ attachCount(taskId: string): number;
23
+ write(taskId: string, data: string): void;
24
+ }
25
+ export interface CodexTaskWatcherDeps {
26
+ store: CodexTaskWatcherStore;
27
+ ptyManager: CodexTaskWatcherPtyManager;
28
+ getProjectById: (id: string) => {
29
+ path: string;
30
+ } | undefined;
31
+ runOracle: (input: RunCodexOracleInput) => Promise<OracleOutcome>;
32
+ /**
33
+ * §4 — best-effort, filename-first discovery of a fresh launch's thread
34
+ * id (`core/codex-thread-discovery.ts`). Optional: omitting it just means
35
+ * no task ever gets a `threadId`, i.e. `resume` never fires (§4's earlier,
36
+ * pre-discovery behavior) — tests that don't care about §4 can skip it.
37
+ */
38
+ discoverThreadId?: (args: {
39
+ cwd: string;
40
+ sinceIso: string;
41
+ excludeThreadIds?: ReadonlySet<string>;
42
+ }) => Promise<string | null>;
43
+ now?: () => number;
44
+ /**
45
+ * Settings-backed (`GlobalSettings.codexStallTimeoutMinutes`) — a plain
46
+ * number OR a (possibly async) getter, so a caller that re-reads
47
+ * settings.json can hand in `async () => (await readSettings())...` and
48
+ * have a live-edited Settings value take effect on the very next tick,
49
+ * without reconstructing the watcher (which would drop in-flight
50
+ * episode/notice state).
51
+ */
52
+ stallTimeoutMs?: number | (() => number | Promise<number>);
53
+ launchConfirmTimeoutMs?: number | (() => number | Promise<number>);
54
+ /**
55
+ * §5.4 — best-effort visible-viewport text for the self-report parser
56
+ * (`codex-status-report.ts`). Optional and best-effort by design, same
57
+ * as `PtyManager.peekTerminalText` itself: `null`/omitted just means no
58
+ * self-report signal is available (headless mirror disabled, no live
59
+ * entry) — the oracle-only classification path is unaffected either way.
60
+ */
61
+ peekTerminalText?: (taskId: string) => string | null;
62
+ }
63
+ export interface EpisodeState {
64
+ /** The `lastDataAt` value this episode "belongs to" — a newer value
65
+ * means fresh output arrived, which starts a brand-new episode. */
66
+ lastSeenDataAt: number;
67
+ nudged: boolean;
68
+ }
69
+ //# sourceMappingURL=codex-task-watcher-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-task-watcher-types.d.ts","sourceRoot":"","sources":["../../src/core/codex-task-watcher-types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,sFAAsF;AACtF,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AACvD;oCACoC;AACpC,eAAO,MAAM,iCAAiC,QAAY,CAAC;AAE3D,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,gBAAgB,GAChB,sBAAsB,GACtB,4BAA4B,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,IAAI,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,SAAS,CAAC;IAC9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,EAAE,0BAA0B,CAAC;IACvC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KACxC,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,sBAAsB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,YAAY;IAC3B;wEACoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -0,0 +1,12 @@
1
+ /*
2
+ * core/codex-task-watcher-types.ts — types, deps interfaces, and tunable
3
+ * defaults for `CodexTaskWatcher` (`codex-task-watcher.ts`). Split out to
4
+ * keep the class file under the 300-line guideline; re-exported verbatim
5
+ * from `codex-task-watcher.ts` so every existing import site is unaffected.
6
+ */
7
+ /** Settings default per §5 (min 5 — Settings enforces the floor, not this module). */
8
+ export const DEFAULT_STALL_TIMEOUT_MS = 15 * 60 * 1000;
9
+ /** §5.2 launch-confirmation window — distinct from, and shorter than, the
10
+ * mid-task stall trigger above. */
11
+ export const DEFAULT_LAUNCH_CONFIRM_TIMEOUT_MS = 90 * 1000;
12
+ //# sourceMappingURL=codex-task-watcher-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-task-watcher-types.js","sourceRoot":"","sources":["../../src/core/codex-task-watcher-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,sFAAsF;AACtF,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD;oCACoC;AACpC,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type CodexWatcherNotice, type CodexTaskWatcherDeps } from "./codex-task-watcher-types.js";
2
+ export { DEFAULT_STALL_TIMEOUT_MS, DEFAULT_LAUNCH_CONFIRM_TIMEOUT_MS, type CodexWatcherNoticeKind, type CodexWatcherNotice, type CodexTaskWatcherStore, type CodexTaskWatcherPtyManager, type CodexTaskWatcherDeps, } from "./codex-task-watcher-types.js";
3
+ export declare class CodexTaskWatcher {
4
+ private readonly deps;
5
+ private readonly episodes;
6
+ private readonly notices;
7
+ private readonly nowFn;
8
+ private readonly stallTimeoutMs;
9
+ private readonly launchConfirmTimeoutMs;
10
+ /** Reentrancy guard (doubt-review finding) — `index.ts`'s `setInterval`
11
+ * never awaits the prior tick, and one tick can outlive 60s with a
12
+ * handful of stalled tasks (N sequential up-to-30s oracle calls). Two
13
+ * OVERLAPPING ticks would each build their own `claimedThreadIds` from
14
+ * `store.list()` and miss the other's in-flight §4 discovery, risking
15
+ * two tasks in the same cwd permanently claiming the same threadId (no
16
+ * re-validation once set). Skipping an overlapping tick is always safe
17
+ * — the next one 60s later just re-evaluates the same tasks. */
18
+ private ticking;
19
+ constructor(deps: CodexTaskWatcherDeps);
20
+ private resolveStallTimeoutMs;
21
+ private resolveLaunchConfirmTimeoutMs;
22
+ /** Ephemeral, in-memory Inbox feed — see the module header. */
23
+ snapshot(): CodexWatcherNotice[];
24
+ tick(): Promise<void>;
25
+ private checkTask;
26
+ private classify;
27
+ private setNotice;
28
+ private markDone;
29
+ }
30
+ //# sourceMappingURL=codex-task-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-task-watcher.d.ts","sourceRoot":"","sources":["../../src/core/codex-task-watcher.ts"],"names":[],"mappings":"AA+CA,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAE1B,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EACL,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AAUvC,qBAAa,gBAAgB;IAgBf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAfjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAC3E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA4C;IACnF;;;;;;;qEAOiE;IACjE,OAAO,CAAC,OAAO,CAAS;gBAEK,IAAI,EAAE,oBAAoB;YAMzC,qBAAqB;YAIrB,6BAA6B;IAM3C,+DAA+D;IAC/D,QAAQ,IAAI,kBAAkB,EAAE;IAI1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAiCb,SAAS;YA2ET,QAAQ;IA+DtB,OAAO,CAAC,SAAS;YAQH,QAAQ;CAMvB"}
@@ -0,0 +1,252 @@
1
+ /*
2
+ * core/codex-task-watcher.ts — Codex Light §5.1 `CodexTaskWatcher`: the
3
+ * plain module (no new process) that ties the completion oracle (§1) to
4
+ * the live pty (§4) into the actual runtime behavior AC5/AC6 need.
5
+ *
6
+ * On every `tick()`, for each live Codex-runtime task whose pty has been
7
+ * silent ≥ `stallTimeoutMs` (Settings-configurable, default 15 min, floor
8
+ * 5 min — §5's Settings field), calls the oracle CLI (`codex-oracle-
9
+ * runner.ts`) and classifies per the spec's table:
10
+ *
11
+ * not_done + silent → auto-nudge, capped at one attempt per stall
12
+ * EPISODE (a fresh `lastDataAt` starts a new one)
13
+ * delivery_pending, delivery_state absent/"indeterminate" → case 13
14
+ * proper; keep re-polling every tick, never nudge
15
+ * delivery_pending, delivery_state === "error" → surface distinctly to
16
+ * Inbox, never re-poll as "still pending" forever
17
+ * (§5.1's correction — do NOT branch on the
18
+ * verdict string alone)
19
+ * done → label done; the pty is left running (§4 —
20
+ * marking done never kills the process)
21
+ * no_oracle → one self-check nudge per episode, then
22
+ * Inbox-only once that nudge is spent (§5.4's
23
+ * self-report can still resolve it — see below)
24
+ *
25
+ * `snapshot()` exposes the resulting notices for the Inbox aggregator
26
+ * (`external/inbox/_codex.ts`) — an ephemeral, in-memory side-channel, not
27
+ * persisted to `sdk-sessions.json`; a server restart just re-derives it.
28
+ *
29
+ * Each `checkTask()` pass also attempts §4's `threadId` discovery
30
+ * (`core/codex-thread-discovery.ts`) for any Codex task that doesn't have
31
+ * one yet — a fresh launch never learns its own thread id from the launch
32
+ * command (v1 has no `--session-id`-equivalent flag), so without this the
33
+ * resume branch in `runtime-chokepoint.ts` could never fire. `tick()`'s
34
+ * reentrancy guard (below) also protects this from a cross-tick race.
35
+ *
36
+ * §5.3 Guided-mode approval/structured-error TEXT detection does NOT live
37
+ * here — it runs as an Inbox post-pass (`external/inbox/_codex.ts`'s
38
+ * `appendCodexTerminalSignals`, over `core/codex-terminal-signal-detect.ts`).
39
+ *
40
+ * §5.4's structured self-report (`codex-status-report.ts`) is consulted
41
+ * only in the `no_oracle` branch of `classify()` below — see that branch's
42
+ * own comment for why.
43
+ */
44
+ import { parseShipwrightStatusReport } from "./codex-status-report.js";
45
+ import { DEFAULT_STALL_TIMEOUT_MS, DEFAULT_LAUNCH_CONFIRM_TIMEOUT_MS, } from "./codex-task-watcher-types.js";
46
+ // Types/interfaces/constants live in `codex-task-watcher-types.ts` (split to
47
+ // stay under the 300-line guideline); re-exported here so every existing
48
+ // import site (`from "./codex-task-watcher.js"`) is unaffected.
49
+ export { DEFAULT_STALL_TIMEOUT_MS, DEFAULT_LAUNCH_CONFIRM_TIMEOUT_MS, } from "./codex-task-watcher-types.js";
50
+ const WAKER_PROMPT = "\n[Shipwright] Still there? If you're finished, wrap up and close with your " +
51
+ "SHIPWRIGHT-STATUS block. If not, please continue.\n";
52
+ const SELF_CHECK_PROMPT = "\n[Shipwright] This phase has no automated completion check — please confirm " +
53
+ "your status directly: are you done, or still working? Close with your " +
54
+ "SHIPWRIGHT-STATUS block either way.\n";
55
+ export class CodexTaskWatcher {
56
+ deps;
57
+ episodes = new Map();
58
+ notices = new Map();
59
+ nowFn;
60
+ stallTimeoutMs;
61
+ launchConfirmTimeoutMs;
62
+ /** Reentrancy guard (doubt-review finding) — `index.ts`'s `setInterval`
63
+ * never awaits the prior tick, and one tick can outlive 60s with a
64
+ * handful of stalled tasks (N sequential up-to-30s oracle calls). Two
65
+ * OVERLAPPING ticks would each build their own `claimedThreadIds` from
66
+ * `store.list()` and miss the other's in-flight §4 discovery, risking
67
+ * two tasks in the same cwd permanently claiming the same threadId (no
68
+ * re-validation once set). Skipping an overlapping tick is always safe
69
+ * — the next one 60s later just re-evaluates the same tasks. */
70
+ ticking = false;
71
+ constructor(deps) {
72
+ this.deps = deps;
73
+ this.nowFn = deps.now ?? Date.now;
74
+ this.stallTimeoutMs = deps.stallTimeoutMs ?? DEFAULT_STALL_TIMEOUT_MS;
75
+ this.launchConfirmTimeoutMs = deps.launchConfirmTimeoutMs ?? DEFAULT_LAUNCH_CONFIRM_TIMEOUT_MS;
76
+ }
77
+ async resolveStallTimeoutMs() {
78
+ return typeof this.stallTimeoutMs === "function" ? await this.stallTimeoutMs() : this.stallTimeoutMs;
79
+ }
80
+ async resolveLaunchConfirmTimeoutMs() {
81
+ return typeof this.launchConfirmTimeoutMs === "function"
82
+ ? await this.launchConfirmTimeoutMs()
83
+ : this.launchConfirmTimeoutMs;
84
+ }
85
+ /** Ephemeral, in-memory Inbox feed — see the module header. */
86
+ snapshot() {
87
+ return [...this.notices.values()];
88
+ }
89
+ async tick() {
90
+ if (this.ticking)
91
+ return; // reentrancy guard — see the field doc above
92
+ this.ticking = true;
93
+ try {
94
+ const allTasks = this.deps.store.list();
95
+ // §4 discovery de-dup — a rollout file already claimed by one task (in
96
+ // the store, or by an earlier task this same tick) is never handed to
97
+ // a second one, guarding the rare case of two Codex tasks launched in
98
+ // the same cwd within the same discovery window. The `ticking` guard
99
+ // above is what makes "this same tick" the only case that can ever
100
+ // happen — see its doc for why a cross-tick race would otherwise slip
101
+ // past this Set entirely.
102
+ const claimedThreadIds = new Set(allTasks.map((t) => t.threadId).filter((id) => Boolean(id)));
103
+ const tasks = allTasks.filter((t) => t.runtime === "codex" &&
104
+ (t.state === "active" || t.state === "awaiting_external_start"));
105
+ // Resolved ONCE per tick, not per task — the production getter
106
+ // re-reads settings.json on every call, so per-task was an N+1 read
107
+ // (code-review finding). A live edit still lands next tick either way.
108
+ const stallTimeoutMs = await this.resolveStallTimeoutMs();
109
+ const launchConfirmTimeoutMs = await this.resolveLaunchConfirmTimeoutMs();
110
+ for (const task of tasks) {
111
+ await this.checkTask(task, claimedThreadIds, stallTimeoutMs, launchConfirmTimeoutMs);
112
+ }
113
+ }
114
+ finally {
115
+ this.ticking = false;
116
+ }
117
+ }
118
+ async checkTask(task, claimedThreadIds, stallTimeoutMs, launchConfirmTimeoutMs) {
119
+ const lastDataAt = this.deps.ptyManager.getLastDataAt(task.taskId);
120
+ if (lastDataAt === null) {
121
+ // pty gone (PR #466 preflight finding) — any notice describes a
122
+ // state that no longer exists; don't leave it in the Inbox forever.
123
+ this.episodes.delete(task.taskId);
124
+ this.notices.delete(task.taskId);
125
+ return;
126
+ }
127
+ if (!task.threadId && this.deps.discoverThreadId && task.launchedAt) {
128
+ const threadId = await this.deps.discoverThreadId({
129
+ cwd: task.cwd,
130
+ sinceIso: task.launchedAt,
131
+ excludeThreadIds: claimedThreadIds,
132
+ });
133
+ if (threadId) {
134
+ claimedThreadIds.add(threadId);
135
+ this.deps.store.patch(task.taskId, { threadId });
136
+ await this.deps.store.persist();
137
+ task = { ...task, threadId };
138
+ }
139
+ }
140
+ const now = this.nowFn();
141
+ const silenceMs = now - lastDataAt;
142
+ // §5.2 — launch-confirmation timeout: distinct, shorter window, only
143
+ // while still awaiting the handshake and nothing has ever streamed.
144
+ // Disposition (external-code-review, OpenAI MEDIUM, accepted not fixed):
145
+ // `lastDataAt` is PtyManager's generic "any bytes" idle timer (ADR-068-A1)
146
+ // — a shell-prompt echo counts the same as a real Codex frame. Accepted:
147
+ // AC8's CLI check closes the common case; `codex-terminal-signal-detect.ts`
148
+ // already accepts the same fragile-TUI-matching gap elsewhere.
149
+ if (task.state === "awaiting_external_start") {
150
+ if (silenceMs >= launchConfirmTimeoutMs) {
151
+ this.setNotice(task.taskId, "launch_confirmation_failed", "Codex never produced output after launch — the terminal may not have started correctly.");
152
+ }
153
+ return;
154
+ }
155
+ // Doubt-review finding: reaching here means state left
156
+ // awaiting_external_start, so a stale launch_confirmation_failed
157
+ // banner must not keep sitting in the Inbox for a healthy run.
158
+ if (this.notices.get(task.taskId)?.kind === "launch_confirmation_failed") {
159
+ this.notices.delete(task.taskId);
160
+ }
161
+ const prev = this.episodes.get(task.taskId);
162
+ if (!prev || prev.lastSeenDataAt !== lastDataAt) {
163
+ this.episodes.set(task.taskId, { lastSeenDataAt: lastDataAt, nudged: false });
164
+ // A fresh episode's nudge notice is stale — mirrors the two clears above.
165
+ if (this.notices.get(task.taskId)?.kind === "nudge_sent") {
166
+ this.notices.delete(task.taskId);
167
+ }
168
+ }
169
+ if (silenceMs < stallTimeoutMs)
170
+ return;
171
+ const project = this.deps.getProjectById(task.projectId);
172
+ if (!project)
173
+ return;
174
+ const outcome = await this.deps.runOracle({
175
+ projectRoot: project.path,
176
+ phase: task.phase ?? "",
177
+ session: task.sessionUuid,
178
+ since: task.launchedAt,
179
+ });
180
+ if (outcome.kind !== "ok")
181
+ return; // engine-unavailable/failed — try again next tick
182
+ await this.classify(task, outcome.result.verdict, outcome.result.evidence);
183
+ }
184
+ async classify(task, verdict, evidence) {
185
+ const episode = this.episodes.get(task.taskId);
186
+ // External-code-review (GLM MEDIUM): a delivery_error notice, once
187
+ // set, was never cleared unless the task reached "done" — mirrors the
188
+ // launch_confirmation_failed clearing fix in checkTask() above.
189
+ const isDeliveryError = verdict === "delivery_pending" && evidence.delivery_state === "error";
190
+ if (!isDeliveryError && this.notices.get(task.taskId)?.kind === "delivery_error") {
191
+ this.notices.delete(task.taskId);
192
+ }
193
+ if (verdict === "done") {
194
+ await this.markDone(task.taskId);
195
+ return;
196
+ }
197
+ if (verdict === "delivery_pending") {
198
+ if (evidence.delivery_state === "error") {
199
+ this.setNotice(task.taskId, "delivery_error", "Codex's PR delivery failed (CI failed or the PR was closed) — needs your attention.");
200
+ }
201
+ // absent / "indeterminate" — case 13 proper: keep re-polling, never nudge.
202
+ //
203
+ // Disposition (external-code-review, GLM MEDIUM, accepted not
204
+ // fixed): re-polls the oracle every 60s tick while stalled+pending
205
+ // — §1.6/§5.1's "low-frequency" language could read as wanting a
206
+ // slower interval. Accepted: spec's "Open items" #4 names this
207
+ // interval a build-time call, and 60s matches the watcher's one
208
+ // existing tick rather than a second timer for an unspecified value.
209
+ return;
210
+ }
211
+ if (!episode || episode.nudged) {
212
+ if (verdict === "no_oracle") {
213
+ // §5.4 (external-code-review, OpenAI MEDIUM): the self-report's
214
+ // one behavior-changing use — no_oracle has no other completion
215
+ // signal, so a well-formed done:true report still on-screen after
216
+ // the spent nudge counts as real completion. Every OTHER verdict
217
+ // still defers to the oracle on disagreement, per §5.4.
218
+ const selfReport = parseShipwrightStatusReport(this.deps.peekTerminalText?.(task.taskId) ?? "");
219
+ if (selfReport?.done) {
220
+ await this.markDone(task.taskId);
221
+ return;
222
+ }
223
+ this.setNotice(task.taskId, "no_oracle_unresolved", "This phase has no automated completion check and the self-check nudge didn't resolve it.");
224
+ }
225
+ return;
226
+ }
227
+ // not_done or no_oracle — one nudge per episode. A watched task
228
+ // (attachCount !== 0) gets neither, by design (doubt-review, low):
229
+ // someone already has the terminal open.
230
+ if (this.deps.ptyManager.attachCount(task.taskId) !== 0)
231
+ return;
232
+ this.deps.ptyManager.write(task.taskId, verdict === "no_oracle" ? SELF_CHECK_PROMPT : WAKER_PROMPT);
233
+ episode.nudged = true;
234
+ this.setNotice(task.taskId, "nudge_sent", verdict === "no_oracle"
235
+ ? "Sent a self-check nudge — no automated completion check exists for this phase."
236
+ : "Sent a nudge — the completion oracle reports this run isn't done yet.");
237
+ }
238
+ setNotice(taskId, kind, detail) {
239
+ this.notices.set(taskId, { taskId, kind, detail, at: this.nowFn() });
240
+ }
241
+ // Shared by an oracle "done" verdict and a §5.4 self-report completion.
242
+ // boardColumn synced alongside state (doubt-review finding) — mirrors
243
+ // POST /tasks/:id/close's AC-6 fix; otherwise a task dragged to a
244
+ // non-Done column stays stranded/locked once auto-completed.
245
+ async markDone(taskId) {
246
+ this.episodes.delete(taskId);
247
+ this.notices.delete(taskId);
248
+ this.deps.store.patch(taskId, { state: "done", boardColumn: "done" });
249
+ await this.deps.store.persist();
250
+ }
251
+ }
252
+ //# sourceMappingURL=codex-task-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-task-watcher.js","sourceRoot":"","sources":["../../src/core/codex-task-watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** A pending Codex approval request (command exec or patch apply) in the
2
+ * trailing text of a live embedded terminal, or `null`. */
3
+ export declare function extractCodexApprovalPrompt(visibleText: string): string | null;
4
+ /** A Codex-reported structured error/turn-abort in the trailing text of a
5
+ * live embedded terminal, or `null`. */
6
+ export declare function extractCodexErrorText(visibleText: string): string | null;
7
+ //# sourceMappingURL=codex-terminal-signal-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-terminal-signal-detect.d.ts","sourceRoot":"","sources":["../../src/core/codex-terminal-signal-detect.ts"],"names":[],"mappings":"AAuFA;4DAC4D;AAC5D,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS7E;AAED;yCACyC;AACzC,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAaxE"}