@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-chokepoint.d.ts","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,oBAAoB,GAAG,SAAS,GAClD,oBAAoB,GAAG,SAAS,CAElC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG5D;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAErE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,gBAAgB,EACxB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAGT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,gBAAgB,EACxB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAMT;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI/B,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC;;;uEAGmE;IACnE,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;yDACqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD;qEACiE;IACjE,8BAA8B,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;uEACmE;IACnE,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACnD;;uFAEmF;IACnF,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7F,GAAG,OAAO,CAAC,mBAAmB,GAAG,wBAAwB,CAAC,CA2F1D"}
@@ -0,0 +1,201 @@
1
+ /*
2
+ * external/launch/runtime-chokepoint.ts — Codex Light §2.1's ONE chokepoint
3
+ * for the main `/launch` route, plus §3.5/AC9's new-pipeline block.
4
+ *
5
+ * Called from `routes.ts` right after branch 4's fallback assigns
6
+ * `commands`/`taskUpdate` and BEFORE `commandsCarryPermissionPerimeter`.
7
+ * `task` (already loaded), `parsed` (the parsed launch body) and
8
+ * `getProjectById` are already in scope there.
9
+ *
10
+ * `POST /tasks/:id/fork` does NOT share this chokepoint — it calls
11
+ * `buildCopyCommands`/`buildCodexCommands`/`buildCodextenderCommands`
12
+ * directly in `external/tasks/fork.ts` (§2.1's correction). Both import
13
+ * `runtimeForTask` from here so the two insertion points agree on what
14
+ * "this task's runtime" means.
15
+ */
16
+ import { existsSync } from "node:fs";
17
+ import path from "node:path";
18
+ import { probeCodextenderLiveness, resolveCodextenderMaxContextTokens, } from "../../core/codextender-proxy-probe.js";
19
+ import { buildCodexCommands } from "../../core/launcher-codex.js";
20
+ import { resolveCodextenderAuthToken } from "../../core/launcher-codextender.js";
21
+ import { defaultRunShim } from "../../core/readiness-probe-run.js";
22
+ import { applyCodextenderChokepoint } from "./runtime-chokepoint-codextender.js";
23
+ import { codexCliNotFoundError } from "./runtime-chokepoint-errors.js";
24
+ /**
25
+ * Plan-review HIGH fix (iterate-2026-09-23) — pin to the task's OWN stamped
26
+ * mode once one exists, falling back to the live global setting only on a
27
+ * task's very first Codex-runtime launch. Without this, a Resume straddling
28
+ * a post-first-launch mode flip would silently switch mechanisms mid-session
29
+ * (e.g. discard a real `codex` thread's history for a Codextender relaunch).
30
+ * Pure/IO-free so `routes.ts` can unit-test the choice directly.
31
+ */
32
+ export function resolveCodexIntegrationModeForLaunch(task, liveGlobalSetting) {
33
+ return task.codexIntegrationMode ?? liveGlobalSetting;
34
+ }
35
+ /**
36
+ * AC8 — "a task launched with a runtime whose CLI isn't installed fails at
37
+ * launch time with one actionable message ... independent of the readiness
38
+ * probe's own gate" (Spec/codex-light-webui.md §5.9, lines 789-792). The
39
+ * per-task toggle means readiness can no longer treat either CLI as globally
40
+ * required (the readiness fix lives in readiness-probe.ts), so THIS is where
41
+ * an all-Claude machine actually gets stopped before a launch it can't run.
42
+ * Not cached like /api/readiness's 15s TTL — a launch is a low-frequency,
43
+ * user-initiated action, so a fresh check here is worth the one extra
44
+ * process spawn for correctness at the moment that matters.
45
+ *
46
+ * `defaultRunShim`, not `defaultRun` — on Windows Codex CLI installs as a
47
+ * `.cmd` shim (no `codex.exe`), which `defaultRun` cannot spawn under
48
+ * `shell:false` (ENOENT even when Codex is genuinely installed and working).
49
+ * See `defaultRunShim`'s own doc comment (iterate-2026-09-16-codex-probe-
50
+ * win32-shim) for why this is a sibling probe rather than a `defaultRun` fix.
51
+ */
52
+ export async function isCodexCliAvailable() {
53
+ const result = await defaultRunShim("codex", ["--version"]);
54
+ return result.ok;
55
+ }
56
+ /** §2.1 — a plain field read on an already-loaded task, not a fallback chain. */
57
+ export function runtimeForTask(task) {
58
+ return task.runtime;
59
+ }
60
+ /**
61
+ * ADR-309 generalized the `new-plain` JSONL-liveness special-case to every
62
+ * Codex-runtime task (a Codex Light task never writes a Claude `.jsonl`
63
+ * under any actionId). Codextender integration Part B.6 excludes
64
+ * Codextender mode from that generalization: it drives ordinary `claude`
65
+ * via the local proxy, so it DOES write a real `.jsonl` and the ordinary
66
+ * `!firstJsonlObservedAt` transcript-poll path is already authoritative for
67
+ * it, exactly like a plain Claude task. Shared by `ws-upgrade-handler.ts`
68
+ * and `external/transcript/routes.ts` — their own companion-fix comments
69
+ * point back here rather than re-typing the condition.
70
+ */
71
+ export function isCodexNonCodextenderTask(task) {
72
+ return task.runtime === "codex" && task.codexIntegrationMode !== "codextender";
73
+ }
74
+ /**
75
+ * AC9 — a multi-phase single thread's "done" has no oracle row (§1.8); a
76
+ * `new-pipeline` launch for a Codex task is blocked here, not silently
77
+ * downgraded. Keys on `actionId === "new-pipeline"` (never `phase`, which
78
+ * a pipeline launch never submits — `useNewIssueFormSubmit.ts`).
79
+ *
80
+ * Codextender integration Part B.6 — AC9's rationale (no thread/app-server
81
+ * resume machinery, `codex-light-webui.md` §1.8) is specific to the real
82
+ * `codex` CLI; a Codextender task drives ordinary `claude` underneath, so it
83
+ * has the SAME pipeline/resume machinery a Claude-runtime task does. Bypass
84
+ * keys on the FRESH `codexIntegrationMode` param (not `task.
85
+ * codexIntegrationMode`), which is unset on a task's very first Codextender
86
+ * launch — reading the stale/absent task field would wrongly block it.
87
+ */
88
+ export function isCodexNewPipelineBlocked(task, parsed, codexIntegrationMode) {
89
+ if (codexIntegrationMode === "codextender")
90
+ return false;
91
+ return parsed.actionId === "new-pipeline" && runtimeForTask(task) === "codex";
92
+ }
93
+ /**
94
+ * AC7 — "Campaign is 'Codex Light 2'" (deferred, still out of scope). The
95
+ * campaign/step/master-run branches each build their own fixed command
96
+ * server-side (`/shipwright-run`, `/shipwright-iterate "<specPath>"`, ...);
97
+ * without this check this chokepoint would silently DISCARD that command
98
+ * and override it with a generic `buildCodexCommands` resume/launch built
99
+ * from `phase`/`description` — a behavior mismatch, not the spec's
100
+ * required "block/explain". Keyed on the parsed body's own campaign-intent
101
+ * fields (never persisted on the task — parse-body.ts), so it fires
102
+ * exactly when a campaign launch surface (not an ordinary per-task
103
+ * Launch/Resume) is the caller, resume or fresh start alike.
104
+ *
105
+ * Codextender integration Part B.6 — same bypass rationale as
106
+ * `isCodexNewPipelineBlocked` above: AC7 is a real-`codex`-CLI limitation,
107
+ * not one Codextender (ordinary `claude` underneath) inherits.
108
+ */
109
+ export function isCodexCampaignBlocked(task, parsed, codexIntegrationMode) {
110
+ if (codexIntegrationMode === "codextender")
111
+ return false;
112
+ return (runtimeForTask(task) === "codex" &&
113
+ (Boolean(parsed.campaignSlug) || Boolean(parsed.campaignStep) || parsed.masterRun));
114
+ }
115
+ /**
116
+ * The main-route half of §2.1. Returns the ORIGINAL `commands`/`taskUpdate`
117
+ * unchanged for a Claude-runtime task (byte-identical to before this
118
+ * feature existed); overrides with `buildCodexCommands` for a
119
+ * Codex-runtime one; blocks per AC9 for a Codex `new-pipeline` launch.
120
+ */
121
+ export async function applyRuntimeChokepoint(args) {
122
+ const { task, parsed, project, commands, taskUpdate, codexIntegrationMode } = args;
123
+ const checkCodexCliAvailable = args.checkCodexCliAvailable ?? isCodexCliAvailable;
124
+ const codextenderPort = args.codextenderPort ?? 4000;
125
+ const checkCodextenderProxyAvailable = args.checkCodextenderProxyAvailable ??
126
+ (() => probeCodextenderLiveness(codextenderPort));
127
+ const getCodextenderAuthToken = args.getCodextenderAuthToken ?? resolveCodextenderAuthToken;
128
+ const getCodextenderMaxContextTokens = args.getCodextenderMaxContextTokens ??
129
+ ((model) => resolveCodextenderMaxContextTokens(codextenderPort, model));
130
+ if (isCodexNewPipelineBlocked(task, parsed, codexIntegrationMode)) {
131
+ return {
132
+ error: {
133
+ error: "codex_new_pipeline_unsupported",
134
+ detail: "Codex Light doesn't support multi-phase pipeline runs yet (\"Codex " +
135
+ "Light 2\"). Switch this task's runtime to Claude, or launch each " +
136
+ "phase as its own task.",
137
+ },
138
+ status: 400,
139
+ };
140
+ }
141
+ if (isCodexCampaignBlocked(task, parsed, codexIntegrationMode)) {
142
+ return {
143
+ error: {
144
+ error: "codex_campaign_unsupported",
145
+ detail: "Codex Light doesn't support campaign launches yet (\"Codex Light " +
146
+ "2\"). Switch this task's runtime to Claude to run it as part of a " +
147
+ "campaign.",
148
+ },
149
+ status: 400,
150
+ };
151
+ }
152
+ if (runtimeForTask(task) !== "codex") {
153
+ return { commands, taskUpdate };
154
+ }
155
+ // Codextender integration Part B.3/B.6 — split out to
156
+ // runtime-chokepoint-codextender.ts (bloat anti-ratchet, 2026-09-26).
157
+ if (codexIntegrationMode === "codextender") {
158
+ return applyCodextenderChokepoint({
159
+ task,
160
+ parsed,
161
+ commands,
162
+ taskUpdate,
163
+ codextenderPort,
164
+ checkCodextenderProxyAvailable,
165
+ getCodextenderAuthToken,
166
+ getCodextenderMaxContextTokens,
167
+ });
168
+ }
169
+ // AC8 — see isCodexCliAvailable's doc comment above.
170
+ if (!(await checkCodexCliAvailable())) {
171
+ return { error: codexCliNotFoundError(), status: 400 };
172
+ }
173
+ // §4 resume state machine — we only ever know a `threadId` once a prior
174
+ // launch has produced one, so its presence (not the client's `resume`
175
+ // flag, which is Claude-JSONL-shaped) is the honest fresh-vs-resume
176
+ // signal for a Codex task.
177
+ const resume = Boolean(task.threadId);
178
+ const hasAgentsMd = Boolean(project?.path && existsSync(path.join(project.path, "AGENTS.md")));
179
+ const codexCommands = buildCodexCommands({
180
+ cwd: task.cwd,
181
+ autonomy: parsed.autonomy ?? task.autonomy ?? "guided",
182
+ resume,
183
+ threadId: task.threadId,
184
+ phase: parsed.phase ?? task.phase,
185
+ description: parsed.description ?? task.description,
186
+ hasAgentsMd,
187
+ implementationModel: parsed.codexImplementationModel,
188
+ planReviewModel: parsed.codexPlanReviewModel,
189
+ reviewModel: parsed.codexReviewModel,
190
+ });
191
+ return {
192
+ commands: codexCommands,
193
+ taskUpdate: {
194
+ ...taskUpdate,
195
+ state: "awaiting_external_start",
196
+ launchedAt: new Date().toISOString(),
197
+ codexIntegrationMode: "light",
198
+ },
199
+ };
200
+ }
201
+ //# sourceMappingURL=runtime-chokepoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-chokepoint.js","sourceRoot":"","sources":["../../../src/external/launch/runtime-chokepoint.ts"],"names":[],"mappings":"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"}
@@ -8,36 +8,38 @@ export declare const TRANSCRIPT_TAIL_BYTES: number;
8
8
  * The larger bounded tail used ONLY while a task is still unidentified, so the
9
9
  * `Run-ID` footer recovery can reach it (run-id-recovery.ts).
10
10
  *
11
- * 1 MB is measured, not guessed: across this project's 65 real transcripts a
12
- * 512 KB tail recovers 42 sessions and MISSES 4 whose pointer proves the run
13
- * (the closest sits 526 KB from the end); 1 MB recovers 50 and misses none;
14
- * 2, 4 and 8 MB add nothing at all.
11
+ * RAISED from 1 MiB to 8 MiB (iterate-2026-09-28-mission-feed-completeness,
12
+ * AC2): a real, finished session's commit footer sat ~2.8 MB before EOF in a
13
+ * 4.9 MB transcript — outside the old 1 MB window — leaving its whole
14
+ * Mission artifact rail permanently empty. Re-measured fresh across this
15
+ * project's 91 real transcripts (supersedes the 65/203-transcript figures
16
+ * below, which this project's growing transcript population had already
17
+ * outgrown): of 71 carrying any footer, 512 KB recovers 38, 1 MB 53, 2 MB 63,
18
+ * 4 MB 67, **8 MB 70**, 16 MB no more than 8 MB. The one transcript 8 MB
19
+ * still misses has its footer ~28 MB before EOF — an extreme outlier no
20
+ * fixed cap short of "unbounded" reaches (see the mini-plan's "Alternative
21
+ * approach considered" for why unbounded was rejected). 8 MB recovers 70/71
22
+ * (98.6%) and is the practical ceiling.
15
23
  *
16
- * It is a REACH-BACK, not a standing subscription. The window exists to see
17
- * history; anything written later is appended at the END, inside
18
- * `TRANSCRIPT_TAIL_BYTES`. So it is requested once per task and then only when
19
- * the transcript has actually changed — see `wideWindows`. The earlier
20
- * "unidentified ⇒ always wide" rule was permanent for a genuinely plain session,
21
- * and MEASURED on this machine that is the common case: 412 of 419 tasks, over
22
- * transcripts of which 78 % exceed 1 MB (internal code review of PR #309, PERF).
24
+ * It is a REACH-BACK, not a standing subscription — requested once per task
25
+ * and again only once the transcript has moved (`wideWindows`). Raising this
26
+ * constant makes that existing, already-accepted per-poll cost larger (up to
27
+ * ~7.5 MB more decode+scan for a task that stays unidentified and keeps
28
+ * growing) rather than introducing a new one — accepted at this iterate's
29
+ * review against a session whose whole artifact rail was otherwise
30
+ * permanently wrong; a bounded incremental/backward-chunked rescan was
31
+ * considered and deferred as a separate, larger change.
23
32
  *
24
- * WHAT THIS SAVES: ~425 KB per poll of UTF-8 DECODE, string allocation and
25
- * downstream scanning — and, since
26
- * iterate-2026-07-21-transcript-positional-tail-read, of I/O as well. An earlier
27
- * revision of this comment recorded the opposite ("the tail budget bounds the
28
- * SLICE, not the read"), which was true then: `readChunk` loaded the whole file
29
- * before slicing. It now issues a POSITIONAL read, so the budget bounds the read
30
- * itself. Measured over this project's 203 real transcripts, a full sweep fell
31
- * from 919 MB / 253 ms to 102 MB / 44 ms; one poll of the largest (137.9 MB)
32
- * went from ~31 ms to 2.2 ms.
33
+ * Superseded (provenance only): 65 transcripts, 512 KB recovered 42/missed 4
34
+ * (closest miss 526 KB), 1 MB recovered all 50, 2/4/8 MB added nothing — that
35
+ * last claim did not survive this iterate's counter-example. Separately, 203
36
+ * transcripts showed the POSITIONAL-read I/O saving (919 MB/253 ms → 102
37
+ * MB/44 ms, iterate-2026-07-21-transcript-positional-tail-read) — orthogonal
38
+ * to the cap's size, unaffected here.
33
39
  *
34
40
  * The invariant is "a narrower window cannot lose a recovery", and it holds
35
- * UNLESS the transcript outruns the ordinary tail within one poll interval:
36
- * ~512 KB appended between two polls could carry a footer past the narrow window
37
- * before the next reach-back is earned. Such a session is in flight and so
38
- * pointer-identified in practice, which is why it never reaches this path — but
39
- * the invariant is CONDITIONAL, and claiming otherwise would be the same kind of
40
- * overstatement this run exists to correct.
41
+ * UNLESS the transcript outruns the ordinary tail within one poll interval —
42
+ * CONDITIONAL, not absolute.
41
43
  */
42
44
  export declare const RECOVERY_TAIL_BYTES: number;
43
45
  export interface MissionContextRouterDeps {
@@ -55,10 +57,14 @@ export interface MissionContextRouterDeps {
55
57
  * cannot supply one: an empty revision is never recorded, so a fault can never
56
58
  * suppress a recovery. Deliberately metadata and not a content digest — the
57
59
  * cache would otherwise retain transcript text well past the read.
58
- */
60
+ *
61
+ * `startedMidFile`: true when this read began after byte 0 (a leading
62
+ * partial line was dropped) — lets the resolver avoid keeping a byte-cut
63
+ * record as unparseable-therefore-safe (AC2). */
59
64
  readTranscriptTail: (sessionUuid: string, maxBytes?: number) => Promise<{
60
65
  text: string;
61
66
  revision: string;
67
+ startedMidFile?: boolean;
62
68
  }>;
63
69
  /** Scenario inputs the resolver cannot derive itself. */
64
70
  getScenarioFacts: (project: ExternalRouteProjectView, task: ExternalTask) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,mBAAmB,QAAc,CAAC;AAS/C,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE;;;;;;;;;;;;OAYG;IACH,kBAAkB,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,yDAAyD;IACzD,gBAAgB,EAAE,CAChB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,YAAY,KACf,OAAO,CAAC;QACX,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACnC,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACnD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,0EAA0E;QAC1E,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QACtC,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAuK/E"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,mBAAmB,QAAkB,CAAC;AASnD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE;;;;;;;;;;;;;;;qDAeiD;IACjD,kBAAkB,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E,yDAAyD;IACzD,gBAAgB,EAAE,CAChB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,YAAY,KACf,OAAO,CAAC;QACX,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACnC,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACnD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,0EAA0E;QAC1E,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QACtC,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAwK/E"}
@@ -30,38 +30,40 @@ export const TRANSCRIPT_TAIL_BYTES = 512 * 1024;
30
30
  * The larger bounded tail used ONLY while a task is still unidentified, so the
31
31
  * `Run-ID` footer recovery can reach it (run-id-recovery.ts).
32
32
  *
33
- * 1 MB is measured, not guessed: across this project's 65 real transcripts a
34
- * 512 KB tail recovers 42 sessions and MISSES 4 whose pointer proves the run
35
- * (the closest sits 526 KB from the end); 1 MB recovers 50 and misses none;
36
- * 2, 4 and 8 MB add nothing at all.
33
+ * RAISED from 1 MiB to 8 MiB (iterate-2026-09-28-mission-feed-completeness,
34
+ * AC2): a real, finished session's commit footer sat ~2.8 MB before EOF in a
35
+ * 4.9 MB transcript — outside the old 1 MB window — leaving its whole
36
+ * Mission artifact rail permanently empty. Re-measured fresh across this
37
+ * project's 91 real transcripts (supersedes the 65/203-transcript figures
38
+ * below, which this project's growing transcript population had already
39
+ * outgrown): of 71 carrying any footer, 512 KB recovers 38, 1 MB 53, 2 MB 63,
40
+ * 4 MB 67, **8 MB 70**, 16 MB no more than 8 MB. The one transcript 8 MB
41
+ * still misses has its footer ~28 MB before EOF — an extreme outlier no
42
+ * fixed cap short of "unbounded" reaches (see the mini-plan's "Alternative
43
+ * approach considered" for why unbounded was rejected). 8 MB recovers 70/71
44
+ * (98.6%) and is the practical ceiling.
37
45
  *
38
- * It is a REACH-BACK, not a standing subscription. The window exists to see
39
- * history; anything written later is appended at the END, inside
40
- * `TRANSCRIPT_TAIL_BYTES`. So it is requested once per task and then only when
41
- * the transcript has actually changed — see `wideWindows`. The earlier
42
- * "unidentified ⇒ always wide" rule was permanent for a genuinely plain session,
43
- * and MEASURED on this machine that is the common case: 412 of 419 tasks, over
44
- * transcripts of which 78 % exceed 1 MB (internal code review of PR #309, PERF).
46
+ * It is a REACH-BACK, not a standing subscription — requested once per task
47
+ * and again only once the transcript has moved (`wideWindows`). Raising this
48
+ * constant makes that existing, already-accepted per-poll cost larger (up to
49
+ * ~7.5 MB more decode+scan for a task that stays unidentified and keeps
50
+ * growing) rather than introducing a new one — accepted at this iterate's
51
+ * review against a session whose whole artifact rail was otherwise
52
+ * permanently wrong; a bounded incremental/backward-chunked rescan was
53
+ * considered and deferred as a separate, larger change.
45
54
  *
46
- * WHAT THIS SAVES: ~425 KB per poll of UTF-8 DECODE, string allocation and
47
- * downstream scanning — and, since
48
- * iterate-2026-07-21-transcript-positional-tail-read, of I/O as well. An earlier
49
- * revision of this comment recorded the opposite ("the tail budget bounds the
50
- * SLICE, not the read"), which was true then: `readChunk` loaded the whole file
51
- * before slicing. It now issues a POSITIONAL read, so the budget bounds the read
52
- * itself. Measured over this project's 203 real transcripts, a full sweep fell
53
- * from 919 MB / 253 ms to 102 MB / 44 ms; one poll of the largest (137.9 MB)
54
- * went from ~31 ms to 2.2 ms.
55
+ * Superseded (provenance only): 65 transcripts, 512 KB recovered 42/missed 4
56
+ * (closest miss 526 KB), 1 MB recovered all 50, 2/4/8 MB added nothing — that
57
+ * last claim did not survive this iterate's counter-example. Separately, 203
58
+ * transcripts showed the POSITIONAL-read I/O saving (919 MB/253 ms → 102
59
+ * MB/44 ms, iterate-2026-07-21-transcript-positional-tail-read) — orthogonal
60
+ * to the cap's size, unaffected here.
55
61
  *
56
62
  * The invariant is "a narrower window cannot lose a recovery", and it holds
57
- * UNLESS the transcript outruns the ordinary tail within one poll interval:
58
- * ~512 KB appended between two polls could carry a footer past the narrow window
59
- * before the next reach-back is earned. Such a session is in flight and so
60
- * pointer-identified in practice, which is why it never reaches this path — but
61
- * the invariant is CONDITIONAL, and claiming otherwise would be the same kind of
62
- * overstatement this run exists to correct.
63
+ * UNLESS the transcript outruns the ordinary tail within one poll interval —
64
+ * CONDITIONAL, not absolute.
63
65
  */
64
- export const RECOVERY_TAIL_BYTES = 1024 * 1024;
66
+ export const RECOVERY_TAIL_BYTES = 8 * 1024 * 1024;
65
67
  /**
66
68
  * How many tasks' reach-back state is remembered. Cleared wholesale at the cap —
67
69
  * the same bounded-Map discipline as the resolver cache and the recovery memo,
@@ -146,6 +148,7 @@ export function createMissionContextRouter(deps) {
146
148
  projectId: task.projectId,
147
149
  projectRoot: project.path,
148
150
  transcript,
151
+ transcriptStartedMidFile: read.startedMidFile ?? false,
149
152
  phaseTaskId: task.phaseTaskId ?? null,
150
153
  taskRunId: task.runId ?? null,
151
154
  taskTerminal: task.state === "done" || task.state === "launch_failed",
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,16 @@ export interface HarnessOptions {
21
21
  * no difference. Setting it models the case the wide window exists for: a
22
22
  * footer sitting further back than `TRANSCRIPT_TAIL_BYTES`, which only the
23
23
  * reach-back can read.
24
+ *
25
+ * `startedMidFile` models the real reader's own signal (wire.ts) that this
26
+ * read began after byte 0 — a route-level seam for AC2's end-to-end test,
27
+ * since the unit tests already cover `findRunIdFooter` itself directly.
24
28
  */
25
29
  reads?: {
26
30
  text: string;
27
31
  revision: string;
28
32
  narrowText?: string;
33
+ startedMidFile?: boolean;
29
34
  }[];
30
35
  }
31
36
  export declare function harness(root: string, task: ExternalTask | ExternalTask[], opts?: HarnessOptions): {
@@ -35,6 +40,7 @@ export declare function harness(root: string, task: ExternalTask | ExternalTask[
35
40
  readTranscriptTail: import("vitest").Mock<(_uuid: string, maxBytes?: number) => Promise<{
36
41
  text: string;
37
42
  revision: string;
43
+ startedMidFile: boolean | undefined;
38
44
  }>>;
39
45
  };
40
46
  interface ArtifactLike {
@@ -1 +1 @@
1
- {"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGrE,eAAO,MAAM,IAAI,yCAAyC,CAAC;AAC3D,eAAO,MAAM,UAAU,yCAAyC,CAAC;AACjE,eAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,eAAO,MAAM,QAAQ,sEAAwD,CAAC;AAE9E,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,CAoCpC;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CAavE;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnE;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,EACnC,IAAI,GAAE,cAAmB;;;;sDA+BsB,MAAM,aAAa,MAAM;;;;EAoBzE;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,EACtC,MAAM,SAAW,GAChB,OAAO,CAAC,WAAW,CAAC,CAItB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjF"}
1
+ {"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGrE,eAAO,MAAM,IAAI,yCAAyC,CAAC;AAC3D,eAAO,MAAM,UAAU,yCAAyC,CAAC;AACjE,eAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,eAAO,MAAM,QAAQ,sEAAwD,CAAC;AAE9E,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,CAoCpC;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CAcvE;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7F;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,EACnC,IAAI,GAAE,cAAmB;;;;sDA+BsB,MAAM,aAAa,MAAM;;;;;EAwBzE;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,EACtC,MAAM,SAAW,GAChB,OAAO,CAAC,WAAW,CAAC,CAItB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjF"}
@@ -56,6 +56,7 @@ export function makeTask(over = {}) {
56
56
  state: "active",
57
57
  title: "Demo iterate",
58
58
  projectId: "proj-1",
59
+ runtime: "claude",
59
60
  createdAt: "2026-07-18T09:00:00Z",
60
61
  inbox: { pendingToolUseIds: [], dismissedToolUseIds: [], lastProcessedByteOffset: 0 },
61
62
  ...over,
@@ -94,7 +95,11 @@ export function harness(root, task, opts = {}) {
94
95
  const readTranscriptTail = vi.fn(async (_uuid, maxBytes) => {
95
96
  const r = reads[Math.min(poll++, reads.length - 1)];
96
97
  const narrow = (maxBytes ?? TRANSCRIPT_TAIL_BYTES) < RECOVERY_TAIL_BYTES;
97
- return { text: narrow ? (r.narrowText ?? r.text) : r.text, revision: r.revision };
98
+ return {
99
+ text: narrow ? (r.narrowText ?? r.text) : r.text,
100
+ revision: r.revision,
101
+ startedMidFile: r.startedMidFile,
102
+ };
98
103
  });
99
104
  const app = createMissionContextRouter({
100
105
  store: store,
@@ -1 +1 @@
1
- {"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../../src/external/mission-context/test-harness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtE;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,uBAAuB,6FAyC5E"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACrE,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtE;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,uBAAuB,6FA+D5E"}
@@ -28,7 +28,18 @@ export function createWiredMissionContextRouter(deps) {
28
28
  if (!loc)
29
29
  return { text: "", revision: "" };
30
30
  const budget = Math.min(Math.max(maxBytes ?? TRANSCRIPT_TAIL_BYTES, TRANSCRIPT_TAIL_BYTES), RECOVERY_TAIL_BYTES);
31
- const fromByte = Math.max(0, loc.sizeBytes - budget);
31
+ const target = Math.max(0, loc.sizeBytes - budget);
32
+ // Read from ONE BYTE BEFORE `target` (when `target > 0`) and peek it,
33
+ // rather than assuming the leading line is partial whenever the read
34
+ // didn't start at byte 0 (external code review, openai, raised twice
35
+ // across two independent review passes — settled here with one extra
36
+ // byte instead of arguing probability a third time). The byte
37
+ // immediately before `target` PROVES the answer: `\n` means `target`
38
+ // is itself the first character of a real line (the read landed on
39
+ // an exact line boundary, however unlikely), anything else means it
40
+ // genuinely lands mid-line (a real byte cut). `peeked` is false only
41
+ // when `target` was already 0 — nothing precedes it to peek.
42
+ const fromByte = target > 0 ? target - 1 : 0;
32
43
  // `loc` is handed to the reader so it does not repeat the walk we just
33
44
  // did (iterate-2026-07-22-…-single-walk). Safe HERE specifically
34
45
  // because this caller passes `expectFingerprint: null` — a caller that
@@ -42,12 +53,23 @@ export function createWiredMissionContextRouter(deps) {
42
53
  });
43
54
  if (r.status !== "ok")
44
55
  return { text: "", revision: "" };
56
+ const raw = r.chunk.content;
57
+ const peeked = fromByte < target;
58
+ // Strip the peeked byte either way, so `text` always represents
59
+ // exactly `[target, EOF)` — the same contract this returned before
60
+ // the peek byte was added, independent of what it turned out to be.
61
+ const text = peeked ? raw.slice(1) : raw;
62
+ const startedMidFile = peeked && raw[0] !== "\n";
45
63
  // Already in hand from the SAME `findByUuid` walk, so scheduling the
46
64
  // wide reach-back costs no extra I/O. All three parts earn their place:
47
65
  // `path` catches a transcript REPLACED under the same session uuid,
48
66
  // `sizeBytes` the ordinary append, `mtimeMs` an in-place rewrite that
49
67
  // happens to preserve the length.
50
- return { text: r.chunk.content, revision: `${loc.path}:${loc.sizeBytes}:${loc.mtimeMs}` };
68
+ return {
69
+ text,
70
+ revision: `${loc.path}:${loc.sizeBytes}:${loc.mtimeMs}`,
71
+ startedMidFile,
72
+ };
51
73
  }
52
74
  catch {
53
75
  // A transcript fault degrades the PR marker (merge → "unknown"), and
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAa9C,MAAM,UAAU,+BAA+B,CAAC,IAA6B;IAC3E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC/D,OAAO,0BAA0B,CAAC;QAChC,KAAK;QACL,cAAc;QACd,kBAAkB,EAAE,KAAK,EAAE,WAAmB,EAAE,QAAiB,EAAE,EAAE;YACnE,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAClD,IAAI,CAAC,GAAG;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,qBAAqB,EAAE,qBAAqB,CAAC,EAClE,mBAAmB,CACpB,CAAC;gBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;gBACrD,uEAAuE;gBACvE,iEAAiE;gBACjE,uEAAuE;gBACvE,qEAAqE;gBACrE,uEAAuE;gBACvE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;oBAChC,WAAW;oBACX,QAAQ;oBACR,iBAAiB,EAAE,IAAI;oBACvB,QAAQ,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;oBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACzD,qEAAqE;gBACrE,wEAAwE;gBACxE,oEAAoE;gBACpE,sEAAsE;gBACtE,kCAAkC;gBAClC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;gBACrE,0EAA0E;gBAC1E,8CAA8C;gBAC9C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC;KACxF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/external/mission-context/wire.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,25 @@ export interface AuditLogParams {
22
22
  /** Page size, clamped to `[1, MAX_LIMIT]`. Default `DEFAULT_LIMIT`. */
23
23
  limit?: number;
24
24
  }
25
+ export type AuditLinesGuardedResult = {
26
+ status: 200;
27
+ linesNewestFirst: string[];
28
+ } | {
29
+ status: 400 | 403 | 404 | 500;
30
+ body: {
31
+ error: string;
32
+ detail?: string;
33
+ };
34
+ };
35
+ /**
36
+ * Guarded, single-read helper shared by `auditLogCore` (paginates the
37
+ * result for the Docs block's viewer) and `beat-effect-audit-read.ts`
38
+ * (wants every line in one pass, not a page at a time — see that file's
39
+ * header for why re-reading the file per page was a real cost, not just a
40
+ * style preference). Owns the open-first/`O_NOFOLLOW`/`fstat`/
41
+ * `realPathGuard`/`LEAD_ID_RE` chain exactly once.
42
+ */
43
+ export declare function readAuditLinesGuarded(deps: AuditLogDeps, leadId: string | undefined): AuditLinesGuardedResult;
25
44
  /** Pure core — reads and paginates `<leadsRoot>/<leadId>/audit.jsonl`. */
26
45
  export declare function auditLogCore(deps: AuditLogDeps, params: AuditLogParams): AuditLogCoreResult;
27
46
  //# sourceMappingURL=audit-log.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../src/external/org/audit-log.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkD,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAKjG,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMtE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB,CA2D3F"}
1
+ {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../src/external/org/audit-log.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkD,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAKjG,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMtE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEhF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CA4C7G;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAuB3F"}