@svenroth-ai/shipwright 0.24.1-next.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 (1014) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/bin/shipwright.mjs +187 -0
  4. package/client/dist/assets/EmbeddedTerminal-6GBZ9nXN.css +32 -0
  5. package/client/dist/assets/EmbeddedTerminal-CpeDvtzx.js +123 -0
  6. package/client/dist/assets/MarkdownEditorModal-Di9HN39z.js +212 -0
  7. package/client/dist/assets/abnfDiagram-VRR7QNED-BbSdq0X7.js +1 -0
  8. package/client/dist/assets/arc-BZT7vKjm.js +1 -0
  9. package/client/dist/assets/architectureDiagram-ZJ3FMSHR-BuRwoNgV.js +36 -0
  10. package/client/dist/assets/blockDiagram-677ZJIJ3-B2RNYWcr.js +132 -0
  11. package/client/dist/assets/c4Diagram-LMCZKHZV-fbXlt08K.js +10 -0
  12. package/client/dist/assets/channel-2-wkFEKK.js +1 -0
  13. package/client/dist/assets/chunk-2Q5K7J3B-NqMRUe5-.js +1 -0
  14. package/client/dist/assets/chunk-32BRIVSS-CIr9bFCd.js +1 -0
  15. package/client/dist/assets/chunk-5VM5RSS4-l0I6rbZN.js +15 -0
  16. package/client/dist/assets/chunk-EX3LRPZG-DXinoCxp.js +231 -0
  17. package/client/dist/assets/chunk-JWPE2WC7-BAcCano9.js +1 -0
  18. package/client/dist/assets/chunk-MOJQB5TN-DMVOqL7C.js +88 -0
  19. package/client/dist/assets/chunk-RYQCIY6F-CtNSAItH.js +1 -0
  20. package/client/dist/assets/chunk-V7JOEXUC-CufSmC93.js +206 -0
  21. package/client/dist/assets/chunk-VR4S4FIN-_BbUF9fa.js +1 -0
  22. package/client/dist/assets/chunk-XXDRQBXY-uQ35hUPB.js +1 -0
  23. package/client/dist/assets/classDiagram-OUVF2IWQ-A9SpDakb.js +1 -0
  24. package/client/dist/assets/classDiagram-v2-EOCWNBFH-A9SpDakb.js +1 -0
  25. package/client/dist/assets/cose-bilkent-JH36ORCC-B9q9uYCX.js +1 -0
  26. package/client/dist/assets/cynefin-VYW2F7L2-C2_bJyZA.js +178 -0
  27. package/client/dist/assets/cynefinDiagram-TSTJHNR4-0mzVmPv4.js +62 -0
  28. package/client/dist/assets/cytoscape.esm-DTSO7Bv0.js +331 -0
  29. package/client/dist/assets/dagre-VKFMJZFB-CIE9HMtr.js +4 -0
  30. package/client/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  31. package/client/dist/assets/diagram-FQU43EPY-DdkBaZrX.js +3 -0
  32. package/client/dist/assets/diagram-G47NLZAW-Cql4k2sg.js +24 -0
  33. package/client/dist/assets/diagram-NH7WQ7WH-FRAUyqEu.js +24 -0
  34. package/client/dist/assets/diagram-OA4YK3LP-DXo8GTB8.js +30 -0
  35. package/client/dist/assets/diagram-WEI45ONY-DqVtWGdt.js +41 -0
  36. package/client/dist/assets/ebnfDiagram-CCIWWBDH-B0La0RsO.js +1 -0
  37. package/client/dist/assets/erDiagram-Q63AITRT-DHbbqiY9.js +85 -0
  38. package/client/dist/assets/flowDiagram-23GEKE2U-I6vhJlCk.js +156 -0
  39. package/client/dist/assets/ganttDiagram-NO4QXBWP-CDYZHcsU.js +292 -0
  40. package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
  41. package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
  42. package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
  43. package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
  44. package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
  45. package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
  46. package/client/dist/assets/gitGraphDiagram-IHSO6WYX-dyf7caP8.js +106 -0
  47. package/client/dist/assets/graph-C9eacEi8.js +1 -0
  48. package/client/dist/assets/index-BYrVLOXw.js +609 -0
  49. package/client/dist/assets/index-BZvZ9izZ.css +1 -0
  50. package/client/dist/assets/infoDiagram-FWYZ7A6U-BlWH6vM3.js +2 -0
  51. package/client/dist/assets/init-Gi6I4Gst.js +1 -0
  52. package/client/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  53. package/client/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  54. package/client/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  55. package/client/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  56. package/client/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  57. package/client/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  58. package/client/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  59. package/client/dist/assets/ishikawaDiagram-FXEZZL3T-BEKH-_6E.js +70 -0
  60. package/client/dist/assets/journeyDiagram-5HDEW3XC-cn_mQ2U9.js +139 -0
  61. package/client/dist/assets/kanban-definition-HUTT4EX6-DGZiYhYV.js +89 -0
  62. package/client/dist/assets/katex-DkKDou_j.js +257 -0
  63. package/client/dist/assets/layout-DEXfKzaS.js +1 -0
  64. package/client/dist/assets/linear-CdtYl6qR.js +1 -0
  65. package/client/dist/assets/map-Czzmt4hB.js +1 -0
  66. package/client/dist/assets/mermaid.core-CrKi1642.js +314 -0
  67. package/client/dist/assets/mindmap-definition-LN4V7U3C-G_CA7V9L.js +96 -0
  68. package/client/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  69. package/client/dist/assets/pegDiagram-2B236MQR-6ZeO9kDM.js +1 -0
  70. package/client/dist/assets/pieDiagram-ENE6RG2P-Bd0InZSQ.js +39 -0
  71. package/client/dist/assets/quadrantDiagram-ABIIQ3AL-Bg1m9Csn.js +7 -0
  72. package/client/dist/assets/railroadDiagram-RFXS5EU6-CCzPP1JU.js +1 -0
  73. package/client/dist/assets/requirementDiagram-TGXJPOKE-iN7kyPgM.js +84 -0
  74. package/client/dist/assets/sankeyDiagram-HTMAVEWB-DN1v_DUJ.js +40 -0
  75. package/client/dist/assets/sequenceDiagram-DBY2YBRQ-C5LMp5Sa.js +162 -0
  76. package/client/dist/assets/sizeCapture-X5ZJPWSS-Bp9jVLhL.js +1 -0
  77. package/client/dist/assets/stateDiagram-2N3HPSRC-VbWBetTf.js +1 -0
  78. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-BuaUtNAG.js +1 -0
  79. package/client/dist/assets/swimlanes-5IMT3BWC-CrXokvQ-.js +2 -0
  80. package/client/dist/assets/swimlanesDiagram-G3AALYLV-C6hwc993.js +8 -0
  81. package/client/dist/assets/timeline-definition-FHXFAJF6-Cxx1NT9A.js +120 -0
  82. package/client/dist/assets/vennDiagram-L72KCM5P-C6DBgaEy.js +34 -0
  83. package/client/dist/assets/wardleyDiagram-EHGQE667-RV7xMg8g.js +78 -0
  84. package/client/dist/assets/xychartDiagram-FW5EYKEG-Llhe9pB1.js +7 -0
  85. package/client/dist/backdrops/deck-golden.jpg +0 -0
  86. package/client/dist/backdrops/lighthouse.jpg +0 -0
  87. package/client/dist/index.html +27 -0
  88. package/client/dist/shipwright-logo-white.png +0 -0
  89. package/lib/cache-runtime.mjs +72 -0
  90. package/lib/cache-sync.mjs +243 -0
  91. package/lib/claude-cli.mjs +173 -0
  92. package/lib/plugins.mjs +181 -0
  93. package/lib/preflight.mjs +208 -0
  94. package/lib/probes.mjs +53 -0
  95. package/lib/server.mjs +315 -0
  96. package/lib/util.mjs +83 -0
  97. package/lib/version-check.mjs +76 -0
  98. package/lib/win32-spawn.mjs +253 -0
  99. package/package.json +67 -0
  100. package/scripts/deploy-procs.mjs +208 -0
  101. package/scripts/deploy-swap.mjs +276 -0
  102. package/scripts/kill-targets.js +140 -0
  103. package/scripts/repair-claude-json.mjs +295 -0
  104. package/server/dist/config/default-actions.json +90 -0
  105. package/server/dist/config.d.ts +96 -0
  106. package/server/dist/config.d.ts.map +1 -0
  107. package/server/dist/config.js +68 -0
  108. package/server/dist/config.js.map +1 -0
  109. package/server/dist/core/actions-schema-validator.d.ts +8 -0
  110. package/server/dist/core/actions-schema-validator.d.ts.map +1 -0
  111. package/server/dist/core/actions-schema-validator.js +394 -0
  112. package/server/dist/core/actions-schema-validator.js.map +1 -0
  113. package/server/dist/core/actions-substitute.d.ts +115 -0
  114. package/server/dist/core/actions-substitute.d.ts.map +1 -0
  115. package/server/dist/core/actions-substitute.js +549 -0
  116. package/server/dist/core/actions-substitute.js.map +1 -0
  117. package/server/dist/core/board-column.d.ts +3 -0
  118. package/server/dist/core/board-column.d.ts.map +1 -0
  119. package/server/dist/core/board-column.js +4 -0
  120. package/server/dist/core/board-column.js.map +1 -0
  121. package/server/dist/core/campaign-events.d.ts +39 -0
  122. package/server/dist/core/campaign-events.d.ts.map +1 -0
  123. package/server/dist/core/campaign-events.js +192 -0
  124. package/server/dist/core/campaign-events.js.map +1 -0
  125. package/server/dist/core/campaign-loop-state.d.ts +31 -0
  126. package/server/dist/core/campaign-loop-state.d.ts.map +1 -0
  127. package/server/dist/core/campaign-loop-state.js +124 -0
  128. package/server/dist/core/campaign-loop-state.js.map +1 -0
  129. package/server/dist/core/campaign-parse.d.ts +28 -0
  130. package/server/dist/core/campaign-parse.d.ts.map +1 -0
  131. package/server/dist/core/campaign-parse.js +174 -0
  132. package/server/dist/core/campaign-parse.js.map +1 -0
  133. package/server/dist/core/campaign-paths.d.ts +24 -0
  134. package/server/dist/core/campaign-paths.d.ts.map +1 -0
  135. package/server/dist/core/campaign-paths.js +111 -0
  136. package/server/dist/core/campaign-paths.js.map +1 -0
  137. package/server/dist/core/campaign-route-helpers.d.ts +19 -0
  138. package/server/dist/core/campaign-route-helpers.d.ts.map +1 -0
  139. package/server/dist/core/campaign-route-helpers.js +51 -0
  140. package/server/dist/core/campaign-route-helpers.js.map +1 -0
  141. package/server/dist/core/campaign-status-json.d.ts +55 -0
  142. package/server/dist/core/campaign-status-json.d.ts.map +1 -0
  143. package/server/dist/core/campaign-status-json.js +57 -0
  144. package/server/dist/core/campaign-status-json.js.map +1 -0
  145. package/server/dist/core/campaign-store.d.ts +10 -0
  146. package/server/dist/core/campaign-store.d.ts.map +1 -0
  147. package/server/dist/core/campaign-store.js +245 -0
  148. package/server/dist/core/campaign-store.js.map +1 -0
  149. package/server/dist/core/campaign-types.d.ts +101 -0
  150. package/server/dist/core/campaign-types.d.ts.map +1 -0
  151. package/server/dist/core/campaign-types.js +10 -0
  152. package/server/dist/core/campaign-types.js.map +1 -0
  153. package/server/dist/core/campaign-write.d.ts +13 -0
  154. package/server/dist/core/campaign-write.d.ts.map +1 -0
  155. package/server/dist/core/campaign-write.js +128 -0
  156. package/server/dist/core/campaign-write.js.map +1 -0
  157. package/server/dist/core/cascade-delete-project-tasks.d.ts +14 -0
  158. package/server/dist/core/cascade-delete-project-tasks.d.ts.map +1 -0
  159. package/server/dist/core/cascade-delete-project-tasks.js +68 -0
  160. package/server/dist/core/cascade-delete-project-tasks.js.map +1 -0
  161. package/server/dist/core/claude-bin-resolver.d.ts +62 -0
  162. package/server/dist/core/claude-bin-resolver.d.ts.map +1 -0
  163. package/server/dist/core/claude-bin-resolver.js +208 -0
  164. package/server/dist/core/claude-bin-resolver.js.map +1 -0
  165. package/server/dist/core/claude-theme-reader.d.ts +15 -0
  166. package/server/dist/core/claude-theme-reader.d.ts.map +1 -0
  167. package/server/dist/core/claude-theme-reader.js +52 -0
  168. package/server/dist/core/claude-theme-reader.js.map +1 -0
  169. package/server/dist/core/cli-compat.d.ts +43 -0
  170. package/server/dist/core/cli-compat.d.ts.map +1 -0
  171. package/server/dist/core/cli-compat.js +88 -0
  172. package/server/dist/core/cli-compat.js.map +1 -0
  173. package/server/dist/core/compliance-dimensions.d.ts +20 -0
  174. package/server/dist/core/compliance-dimensions.d.ts.map +1 -0
  175. package/server/dist/core/compliance-dimensions.js +114 -0
  176. package/server/dist/core/compliance-dimensions.js.map +1 -0
  177. package/server/dist/core/compliance-reader.d.ts +49 -0
  178. package/server/dist/core/compliance-reader.d.ts.map +1 -0
  179. package/server/dist/core/compliance-reader.js +147 -0
  180. package/server/dist/core/compliance-reader.js.map +1 -0
  181. package/server/dist/core/contract-version.d.ts +72 -0
  182. package/server/dist/core/contract-version.d.ts.map +1 -0
  183. package/server/dist/core/contract-version.js +114 -0
  184. package/server/dist/core/contract-version.js.map +1 -0
  185. package/server/dist/core/design-feedback.d.ts +29 -0
  186. package/server/dist/core/design-feedback.d.ts.map +1 -0
  187. package/server/dist/core/design-feedback.js +80 -0
  188. package/server/dist/core/design-feedback.js.map +1 -0
  189. package/server/dist/core/dismissed-campaigns-store.d.ts +45 -0
  190. package/server/dist/core/dismissed-campaigns-store.d.ts.map +1 -0
  191. package/server/dist/core/dismissed-campaigns-store.js +147 -0
  192. package/server/dist/core/dismissed-campaigns-store.js.map +1 -0
  193. package/server/dist/core/event-log-reader.d.ts +19 -0
  194. package/server/dist/core/event-log-reader.d.ts.map +1 -0
  195. package/server/dist/core/event-log-reader.js +209 -0
  196. package/server/dist/core/event-log-reader.js.map +1 -0
  197. package/server/dist/core/event-log-types.d.ts +99 -0
  198. package/server/dist/core/event-log-types.d.ts.map +1 -0
  199. package/server/dist/core/event-log-types.js +14 -0
  200. package/server/dist/core/event-log-types.js.map +1 -0
  201. package/server/dist/core/gitignore-cache.d.ts +16 -0
  202. package/server/dist/core/gitignore-cache.d.ts.map +1 -0
  203. package/server/dist/core/gitignore-cache.js +103 -0
  204. package/server/dist/core/gitignore-cache.js.map +1 -0
  205. package/server/dist/core/grade-runner.d.ts +63 -0
  206. package/server/dist/core/grade-runner.d.ts.map +1 -0
  207. package/server/dist/core/grade-runner.js +176 -0
  208. package/server/dist/core/grade-runner.js.map +1 -0
  209. package/server/dist/core/grade-target.d.ts +43 -0
  210. package/server/dist/core/grade-target.d.ts.map +1 -0
  211. package/server/dist/core/grade-target.js +162 -0
  212. package/server/dist/core/grade-target.js.map +1 -0
  213. package/server/dist/core/inbox-derive.d.ts +56 -0
  214. package/server/dist/core/inbox-derive.d.ts.map +1 -0
  215. package/server/dist/core/inbox-derive.js +211 -0
  216. package/server/dist/core/inbox-derive.js.map +1 -0
  217. package/server/dist/core/jsonl-decode.d.ts +28 -0
  218. package/server/dist/core/jsonl-decode.d.ts.map +1 -0
  219. package/server/dist/core/jsonl-decode.js +96 -0
  220. package/server/dist/core/jsonl-decode.js.map +1 -0
  221. package/server/dist/core/jsonl-records.d.ts +104 -0
  222. package/server/dist/core/jsonl-records.d.ts.map +1 -0
  223. package/server/dist/core/jsonl-records.js +222 -0
  224. package/server/dist/core/jsonl-records.js.map +1 -0
  225. package/server/dist/core/launcher.d.ts +74 -0
  226. package/server/dist/core/launcher.d.ts.map +1 -0
  227. package/server/dist/core/launcher.js +192 -0
  228. package/server/dist/core/launcher.js.map +1 -0
  229. package/server/dist/core/mission-context/artifacts-commit.d.ts +28 -0
  230. package/server/dist/core/mission-context/artifacts-commit.d.ts.map +1 -0
  231. package/server/dist/core/mission-context/artifacts-commit.js +98 -0
  232. package/server/dist/core/mission-context/artifacts-commit.js.map +1 -0
  233. package/server/dist/core/mission-context/artifacts-decisions.d.ts +5 -0
  234. package/server/dist/core/mission-context/artifacts-decisions.d.ts.map +1 -0
  235. package/server/dist/core/mission-context/artifacts-decisions.js +114 -0
  236. package/server/dist/core/mission-context/artifacts-decisions.js.map +1 -0
  237. package/server/dist/core/mission-context/artifacts-slice2.d.ts +12 -0
  238. package/server/dist/core/mission-context/artifacts-slice2.d.ts.map +1 -0
  239. package/server/dist/core/mission-context/artifacts-slice2.js +125 -0
  240. package/server/dist/core/mission-context/artifacts-slice2.js.map +1 -0
  241. package/server/dist/core/mission-context/artifacts-tests.d.ts +34 -0
  242. package/server/dist/core/mission-context/artifacts-tests.d.ts.map +1 -0
  243. package/server/dist/core/mission-context/artifacts-tests.js +236 -0
  244. package/server/dist/core/mission-context/artifacts-tests.js.map +1 -0
  245. package/server/dist/core/mission-context/artifacts.d.ts +33 -0
  246. package/server/dist/core/mission-context/artifacts.d.ts.map +1 -0
  247. package/server/dist/core/mission-context/artifacts.js +186 -0
  248. package/server/dist/core/mission-context/artifacts.js.map +1 -0
  249. package/server/dist/core/mission-context/association.d.ts +27 -0
  250. package/server/dist/core/mission-context/association.d.ts.map +1 -0
  251. package/server/dist/core/mission-context/association.js +69 -0
  252. package/server/dist/core/mission-context/association.js.map +1 -0
  253. package/server/dist/core/mission-context/campaign-artifacts.d.ts +9 -0
  254. package/server/dist/core/mission-context/campaign-artifacts.d.ts.map +1 -0
  255. package/server/dist/core/mission-context/campaign-artifacts.js +195 -0
  256. package/server/dist/core/mission-context/campaign-artifacts.js.map +1 -0
  257. package/server/dist/core/mission-context/campaign-facts.d.ts +99 -0
  258. package/server/dist/core/mission-context/campaign-facts.d.ts.map +1 -0
  259. package/server/dist/core/mission-context/campaign-facts.js +111 -0
  260. package/server/dist/core/mission-context/campaign-facts.js.map +1 -0
  261. package/server/dist/core/mission-context/decision-drops.d.ts +46 -0
  262. package/server/dist/core/mission-context/decision-drops.d.ts.map +1 -0
  263. package/server/dist/core/mission-context/decision-drops.js +269 -0
  264. package/server/dist/core/mission-context/decision-drops.js.map +1 -0
  265. package/server/dist/core/mission-context/decisions.d.ts +91 -0
  266. package/server/dist/core/mission-context/decisions.d.ts.map +1 -0
  267. package/server/dist/core/mission-context/decisions.js +222 -0
  268. package/server/dist/core/mission-context/decisions.js.map +1 -0
  269. package/server/dist/core/mission-context/doc-ids.d.ts +35 -0
  270. package/server/dist/core/mission-context/doc-ids.d.ts.map +1 -0
  271. package/server/dist/core/mission-context/doc-ids.js +78 -0
  272. package/server/dist/core/mission-context/doc-ids.js.map +1 -0
  273. package/server/dist/core/mission-context/document-read.d.ts +14 -0
  274. package/server/dist/core/mission-context/document-read.d.ts.map +1 -0
  275. package/server/dist/core/mission-context/document-read.js +36 -0
  276. package/server/dist/core/mission-context/document-read.js.map +1 -0
  277. package/server/dist/core/mission-context/fold-map.d.ts +45 -0
  278. package/server/dist/core/mission-context/fold-map.d.ts.map +1 -0
  279. package/server/dist/core/mission-context/fold-map.js +168 -0
  280. package/server/dist/core/mission-context/fold-map.js.map +1 -0
  281. package/server/dist/core/mission-context/fs-read.d.ts +47 -0
  282. package/server/dist/core/mission-context/fs-read.d.ts.map +1 -0
  283. package/server/dist/core/mission-context/fs-read.js +104 -0
  284. package/server/dist/core/mission-context/fs-read.js.map +1 -0
  285. package/server/dist/core/mission-context/iterate-record.d.ts +52 -0
  286. package/server/dist/core/mission-context/iterate-record.d.ts.map +1 -0
  287. package/server/dist/core/mission-context/iterate-record.js +156 -0
  288. package/server/dist/core/mission-context/iterate-record.js.map +1 -0
  289. package/server/dist/core/mission-context/merge-check.d.ts +60 -0
  290. package/server/dist/core/mission-context/merge-check.d.ts.map +1 -0
  291. package/server/dist/core/mission-context/merge-check.js +217 -0
  292. package/server/dist/core/mission-context/merge-check.js.map +1 -0
  293. package/server/dist/core/mission-context/merge-refresh.d.ts +14 -0
  294. package/server/dist/core/mission-context/merge-refresh.d.ts.map +1 -0
  295. package/server/dist/core/mission-context/merge-refresh.js +53 -0
  296. package/server/dist/core/mission-context/merge-refresh.js.map +1 -0
  297. package/server/dist/core/mission-context/merged-events.d.ts +34 -0
  298. package/server/dist/core/mission-context/merged-events.d.ts.map +1 -0
  299. package/server/dist/core/mission-context/merged-events.js +120 -0
  300. package/server/dist/core/mission-context/merged-events.js.map +1 -0
  301. package/server/dist/core/mission-context/pipeline-artifacts.d.ts +53 -0
  302. package/server/dist/core/mission-context/pipeline-artifacts.d.ts.map +1 -0
  303. package/server/dist/core/mission-context/pipeline-artifacts.js +161 -0
  304. package/server/dist/core/mission-context/pipeline-artifacts.js.map +1 -0
  305. package/server/dist/core/mission-context/planned-impact.d.ts +28 -0
  306. package/server/dist/core/mission-context/planned-impact.d.ts.map +1 -0
  307. package/server/dist/core/mission-context/planned-impact.js +129 -0
  308. package/server/dist/core/mission-context/planned-impact.js.map +1 -0
  309. package/server/dist/core/mission-context/pointer.d.ts +44 -0
  310. package/server/dist/core/mission-context/pointer.d.ts.map +1 -0
  311. package/server/dist/core/mission-context/pointer.js +165 -0
  312. package/server/dist/core/mission-context/pointer.js.map +1 -0
  313. package/server/dist/core/mission-context/resolver-io.d.ts +47 -0
  314. package/server/dist/core/mission-context/resolver-io.d.ts.map +1 -0
  315. package/server/dist/core/mission-context/resolver-io.js +11 -0
  316. package/server/dist/core/mission-context/resolver-io.js.map +1 -0
  317. package/server/dist/core/mission-context/resolver-parts.d.ts +57 -0
  318. package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -0
  319. package/server/dist/core/mission-context/resolver-parts.js +136 -0
  320. package/server/dist/core/mission-context/resolver-parts.js.map +1 -0
  321. package/server/dist/core/mission-context/resolver.d.ts +11 -0
  322. package/server/dist/core/mission-context/resolver.d.ts.map +1 -0
  323. package/server/dist/core/mission-context/resolver.js +261 -0
  324. package/server/dist/core/mission-context/resolver.js.map +1 -0
  325. package/server/dist/core/mission-context/review-record-entry.d.ts +45 -0
  326. package/server/dist/core/mission-context/review-record-entry.d.ts.map +1 -0
  327. package/server/dist/core/mission-context/review-record-entry.js +214 -0
  328. package/server/dist/core/mission-context/review-record-entry.js.map +1 -0
  329. package/server/dist/core/mission-context/review-record.d.ts +35 -0
  330. package/server/dist/core/mission-context/review-record.d.ts.map +1 -0
  331. package/server/dist/core/mission-context/review-record.js +259 -0
  332. package/server/dist/core/mission-context/review-record.js.map +1 -0
  333. package/server/dist/core/mission-context/review-state.d.ts +33 -0
  334. package/server/dist/core/mission-context/review-state.d.ts.map +1 -0
  335. package/server/dist/core/mission-context/review-state.js +249 -0
  336. package/server/dist/core/mission-context/review-state.js.map +1 -0
  337. package/server/dist/core/mission-context/run-id-recovery.d.ts +44 -0
  338. package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -0
  339. package/server/dist/core/mission-context/run-id-recovery.js +175 -0
  340. package/server/dist/core/mission-context/run-id-recovery.js.map +1 -0
  341. package/server/dist/core/mission-context/scenario.d.ts +121 -0
  342. package/server/dist/core/mission-context/scenario.d.ts.map +1 -0
  343. package/server/dist/core/mission-context/scenario.js +151 -0
  344. package/server/dist/core/mission-context/scenario.js.map +1 -0
  345. package/server/dist/core/mission-context/slice2-sources.d.ts +40 -0
  346. package/server/dist/core/mission-context/slice2-sources.d.ts.map +1 -0
  347. package/server/dist/core/mission-context/slice2-sources.js +80 -0
  348. package/server/dist/core/mission-context/slice2-sources.js.map +1 -0
  349. package/server/dist/core/mission-context/slice2-test-fixtures.d.ts +17 -0
  350. package/server/dist/core/mission-context/slice2-test-fixtures.d.ts.map +1 -0
  351. package/server/dist/core/mission-context/slice2-test-fixtures.js +61 -0
  352. package/server/dist/core/mission-context/slice2-test-fixtures.js.map +1 -0
  353. package/server/dist/core/mission-context/slice3-sources.d.ts +43 -0
  354. package/server/dist/core/mission-context/slice3-sources.d.ts.map +1 -0
  355. package/server/dist/core/mission-context/slice3-sources.js +192 -0
  356. package/server/dist/core/mission-context/slice3-sources.js.map +1 -0
  357. package/server/dist/core/mission-context/spec-candidates.d.ts +66 -0
  358. package/server/dist/core/mission-context/spec-candidates.d.ts.map +1 -0
  359. package/server/dist/core/mission-context/spec-candidates.js +164 -0
  360. package/server/dist/core/mission-context/spec-candidates.js.map +1 -0
  361. package/server/dist/core/mission-context/test-evidence.d.ts +14 -0
  362. package/server/dist/core/mission-context/test-evidence.d.ts.map +1 -0
  363. package/server/dist/core/mission-context/test-evidence.js +53 -0
  364. package/server/dist/core/mission-context/test-evidence.js.map +1 -0
  365. package/server/dist/core/mission-context/tests-diff.d.ts +68 -0
  366. package/server/dist/core/mission-context/tests-diff.d.ts.map +1 -0
  367. package/server/dist/core/mission-context/tests-diff.js +151 -0
  368. package/server/dist/core/mission-context/tests-diff.js.map +1 -0
  369. package/server/dist/core/mission-context/traceability.d.ts +58 -0
  370. package/server/dist/core/mission-context/traceability.d.ts.map +1 -0
  371. package/server/dist/core/mission-context/traceability.js +168 -0
  372. package/server/dist/core/mission-context/traceability.js.map +1 -0
  373. package/server/dist/core/mission-context/types-slice2.d.ts +192 -0
  374. package/server/dist/core/mission-context/types-slice2.d.ts.map +1 -0
  375. package/server/dist/core/mission-context/types-slice2.js +15 -0
  376. package/server/dist/core/mission-context/types-slice2.js.map +1 -0
  377. package/server/dist/core/mission-context/types-slice3.d.ts +84 -0
  378. package/server/dist/core/mission-context/types-slice3.d.ts.map +1 -0
  379. package/server/dist/core/mission-context/types-slice3.js +24 -0
  380. package/server/dist/core/mission-context/types-slice3.js.map +1 -0
  381. package/server/dist/core/mission-context/types.d.ts +198 -0
  382. package/server/dist/core/mission-context/types.d.ts.map +1 -0
  383. package/server/dist/core/mission-context/types.js +44 -0
  384. package/server/dist/core/mission-context/types.js.map +1 -0
  385. package/server/dist/core/mission-context/worktree-roots.d.ts +103 -0
  386. package/server/dist/core/mission-context/worktree-roots.d.ts.map +1 -0
  387. package/server/dist/core/mission-context/worktree-roots.js +201 -0
  388. package/server/dist/core/mission-context/worktree-roots.js.map +1 -0
  389. package/server/dist/core/model-tier-config-reader.d.ts +16 -0
  390. package/server/dist/core/model-tier-config-reader.d.ts.map +1 -0
  391. package/server/dist/core/model-tier-config-reader.js +87 -0
  392. package/server/dist/core/model-tier-config-reader.js.map +1 -0
  393. package/server/dist/core/normalize-fs-path.d.ts +2 -0
  394. package/server/dist/core/normalize-fs-path.d.ts.map +1 -0
  395. package/server/dist/core/normalize-fs-path.js +31 -0
  396. package/server/dist/core/normalize-fs-path.js.map +1 -0
  397. package/server/dist/core/parameter-resolver.d.ts +32 -0
  398. package/server/dist/core/parameter-resolver.d.ts.map +1 -0
  399. package/server/dist/core/parameter-resolver.js +300 -0
  400. package/server/dist/core/parameter-resolver.js.map +1 -0
  401. package/server/dist/core/path-guard.d.ts +40 -0
  402. package/server/dist/core/path-guard.d.ts.map +1 -0
  403. package/server/dist/core/path-guard.js +147 -0
  404. package/server/dist/core/path-guard.js.map +1 -0
  405. package/server/dist/core/pr-status.d.ts +47 -0
  406. package/server/dist/core/pr-status.d.ts.map +1 -0
  407. package/server/dist/core/pr-status.js +157 -0
  408. package/server/dist/core/pr-status.js.map +1 -0
  409. package/server/dist/core/preview-child-lifecycle.d.ts +77 -0
  410. package/server/dist/core/preview-child-lifecycle.d.ts.map +1 -0
  411. package/server/dist/core/preview-child-lifecycle.js +223 -0
  412. package/server/dist/core/preview-child-lifecycle.js.map +1 -0
  413. package/server/dist/core/preview-coherence.d.ts +59 -0
  414. package/server/dist/core/preview-coherence.d.ts.map +1 -0
  415. package/server/dist/core/preview-coherence.js +66 -0
  416. package/server/dist/core/preview-coherence.js.map +1 -0
  417. package/server/dist/core/preview-session-manager.d.ts +86 -0
  418. package/server/dist/core/preview-session-manager.d.ts.map +1 -0
  419. package/server/dist/core/preview-session-manager.js +303 -0
  420. package/server/dist/core/preview-session-manager.js.map +1 -0
  421. package/server/dist/core/preview-win32-spawn.d.ts +11 -0
  422. package/server/dist/core/preview-win32-spawn.d.ts.map +1 -0
  423. package/server/dist/core/preview-win32-spawn.js +45 -0
  424. package/server/dist/core/preview-win32-spawn.js.map +1 -0
  425. package/server/dist/core/profile-loader.d.ts +65 -0
  426. package/server/dist/core/profile-loader.d.ts.map +1 -0
  427. package/server/dist/core/profile-loader.js +125 -0
  428. package/server/dist/core/profile-loader.js.map +1 -0
  429. package/server/dist/core/project-actions-loader.d.ts +103 -0
  430. package/server/dist/core/project-actions-loader.d.ts.map +1 -0
  431. package/server/dist/core/project-actions-loader.js +161 -0
  432. package/server/dist/core/project-actions-loader.js.map +1 -0
  433. package/server/dist/core/project-manager.d.ts +110 -0
  434. package/server/dist/core/project-manager.d.ts.map +1 -0
  435. package/server/dist/core/project-manager.js +339 -0
  436. package/server/dist/core/project-manager.js.map +1 -0
  437. package/server/dist/core/project-registry-io.d.ts +64 -0
  438. package/server/dist/core/project-registry-io.d.ts.map +1 -0
  439. package/server/dist/core/project-registry-io.js +194 -0
  440. package/server/dist/core/project-registry-io.js.map +1 -0
  441. package/server/dist/core/readiness-probe.d.ts +89 -0
  442. package/server/dist/core/readiness-probe.d.ts.map +1 -0
  443. package/server/dist/core/readiness-probe.js +216 -0
  444. package/server/dist/core/readiness-probe.js.map +1 -0
  445. package/server/dist/core/run-config-reader.d.ts +35 -0
  446. package/server/dist/core/run-config-reader.d.ts.map +1 -0
  447. package/server/dist/core/run-config-reader.js +362 -0
  448. package/server/dist/core/run-config-reader.js.map +1 -0
  449. package/server/dist/core/run-data-join.d.ts +60 -0
  450. package/server/dist/core/run-data-join.d.ts.map +1 -0
  451. package/server/dist/core/run-data-join.js +264 -0
  452. package/server/dist/core/run-data-join.js.map +1 -0
  453. package/server/dist/core/run-data-types.d.ts +126 -0
  454. package/server/dist/core/run-data-types.d.ts.map +1 -0
  455. package/server/dist/core/run-data-types.js +25 -0
  456. package/server/dist/core/run-data-types.js.map +1 -0
  457. package/server/dist/core/run-loop-state-reader.d.ts +27 -0
  458. package/server/dist/core/run-loop-state-reader.d.ts.map +1 -0
  459. package/server/dist/core/run-loop-state-reader.js +79 -0
  460. package/server/dist/core/run-loop-state-reader.js.map +1 -0
  461. package/server/dist/core/sdk-sessions-merge.d.ts +60 -0
  462. package/server/dist/core/sdk-sessions-merge.d.ts.map +1 -0
  463. package/server/dist/core/sdk-sessions-merge.js +220 -0
  464. package/server/dist/core/sdk-sessions-merge.js.map +1 -0
  465. package/server/dist/core/sdk-sessions-store.d.ts +261 -0
  466. package/server/dist/core/sdk-sessions-store.d.ts.map +1 -0
  467. package/server/dist/core/sdk-sessions-store.js +315 -0
  468. package/server/dist/core/sdk-sessions-store.js.map +1 -0
  469. package/server/dist/core/sdk-sessions-validate.d.ts +9 -0
  470. package/server/dist/core/sdk-sessions-validate.d.ts.map +1 -0
  471. package/server/dist/core/sdk-sessions-validate.js +237 -0
  472. package/server/dist/core/sdk-sessions-validate.js.map +1 -0
  473. package/server/dist/core/session-jsonl-io.d.ts +35 -0
  474. package/server/dist/core/session-jsonl-io.d.ts.map +1 -0
  475. package/server/dist/core/session-jsonl-io.js +128 -0
  476. package/server/dist/core/session-jsonl-io.js.map +1 -0
  477. package/server/dist/core/session-parser.d.ts +81 -0
  478. package/server/dist/core/session-parser.d.ts.map +1 -0
  479. package/server/dist/core/session-parser.js +168 -0
  480. package/server/dist/core/session-parser.js.map +1 -0
  481. package/server/dist/core/session-watcher-debug.d.ts +7 -0
  482. package/server/dist/core/session-watcher-debug.d.ts.map +1 -0
  483. package/server/dist/core/session-watcher-debug.js +31 -0
  484. package/server/dist/core/session-watcher-debug.js.map +1 -0
  485. package/server/dist/core/session-watcher.d.ts +101 -0
  486. package/server/dist/core/session-watcher.d.ts.map +1 -0
  487. package/server/dist/core/session-watcher.js +226 -0
  488. package/server/dist/core/session-watcher.js.map +1 -0
  489. package/server/dist/core/shell-quote.d.ts +5 -0
  490. package/server/dist/core/shell-quote.d.ts.map +1 -0
  491. package/server/dist/core/shell-quote.js +49 -0
  492. package/server/dist/core/shell-quote.js.map +1 -0
  493. package/server/dist/core/task-editability.d.ts +22 -0
  494. package/server/dist/core/task-editability.d.ts.map +1 -0
  495. package/server/dist/core/task-editability.js +34 -0
  496. package/server/dist/core/task-editability.js.map +1 -0
  497. package/server/dist/core/terminal-prompt-detect.d.ts +7 -0
  498. package/server/dist/core/terminal-prompt-detect.d.ts.map +1 -0
  499. package/server/dist/core/terminal-prompt-detect.js +128 -0
  500. package/server/dist/core/terminal-prompt-detect.js.map +1 -0
  501. package/server/dist/core/tests-gate.d.ts +23 -0
  502. package/server/dist/core/tests-gate.d.ts.map +1 -0
  503. package/server/dist/core/tests-gate.js +92 -0
  504. package/server/dist/core/tests-gate.js.map +1 -0
  505. package/server/dist/core/triage-amend.d.ts +33 -0
  506. package/server/dist/core/triage-amend.d.ts.map +1 -0
  507. package/server/dist/core/triage-amend.js +109 -0
  508. package/server/dist/core/triage-amend.js.map +1 -0
  509. package/server/dist/core/triage-board-read.d.ts +37 -0
  510. package/server/dist/core/triage-board-read.d.ts.map +1 -0
  511. package/server/dist/core/triage-board-read.js +148 -0
  512. package/server/dist/core/triage-board-read.js.map +1 -0
  513. package/server/dist/core/triage-cli-runner.d.ts +61 -0
  514. package/server/dist/core/triage-cli-runner.d.ts.map +1 -0
  515. package/server/dist/core/triage-cli-runner.js +92 -0
  516. package/server/dist/core/triage-cli-runner.js.map +1 -0
  517. package/server/dist/core/triage-compose.d.ts +33 -0
  518. package/server/dist/core/triage-compose.d.ts.map +1 -0
  519. package/server/dist/core/triage-compose.js +51 -0
  520. package/server/dist/core/triage-compose.js.map +1 -0
  521. package/server/dist/core/triage-contract.d.ts +18 -0
  522. package/server/dist/core/triage-contract.d.ts.map +1 -0
  523. package/server/dist/core/triage-contract.js +45 -0
  524. package/server/dist/core/triage-contract.js.map +1 -0
  525. package/server/dist/core/triage-defer.d.ts +36 -0
  526. package/server/dist/core/triage-defer.d.ts.map +1 -0
  527. package/server/dist/core/triage-defer.js +117 -0
  528. package/server/dist/core/triage-defer.js.map +1 -0
  529. package/server/dist/core/triage-enrich.d.ts +31 -0
  530. package/server/dist/core/triage-enrich.d.ts.map +1 -0
  531. package/server/dist/core/triage-enrich.js +127 -0
  532. package/server/dist/core/triage-enrich.js.map +1 -0
  533. package/server/dist/core/triage-lock.d.ts +12 -0
  534. package/server/dist/core/triage-lock.d.ts.map +1 -0
  535. package/server/dist/core/triage-lock.js +41 -0
  536. package/server/dist/core/triage-lock.js.map +1 -0
  537. package/server/dist/core/triage-origin.d.ts +52 -0
  538. package/server/dist/core/triage-origin.d.ts.map +1 -0
  539. package/server/dist/core/triage-origin.js +0 -0
  540. package/server/dist/core/triage-origin.js.map +1 -0
  541. package/server/dist/core/triage-paths.d.ts +25 -0
  542. package/server/dist/core/triage-paths.d.ts.map +1 -0
  543. package/server/dist/core/triage-paths.js +125 -0
  544. package/server/dist/core/triage-paths.js.map +1 -0
  545. package/server/dist/core/triage-raw.d.ts +33 -0
  546. package/server/dist/core/triage-raw.d.ts.map +1 -0
  547. package/server/dist/core/triage-raw.js +66 -0
  548. package/server/dist/core/triage-raw.js.map +1 -0
  549. package/server/dist/core/triage-store.d.ts +42 -0
  550. package/server/dist/core/triage-store.d.ts.map +1 -0
  551. package/server/dist/core/triage-store.js +268 -0
  552. package/server/dist/core/triage-store.js.map +1 -0
  553. package/server/dist/core/triage-validation.d.ts +58 -0
  554. package/server/dist/core/triage-validation.d.ts.map +1 -0
  555. package/server/dist/core/triage-validation.js +198 -0
  556. package/server/dist/core/triage-validation.js.map +1 -0
  557. package/server/dist/core/win32-spawn.d.ts +29 -0
  558. package/server/dist/core/win32-spawn.d.ts.map +1 -0
  559. package/server/dist/core/win32-spawn.js +271 -0
  560. package/server/dist/core/win32-spawn.js.map +1 -0
  561. package/server/dist/external/__tests__/api-contract-probes.d.ts +49 -0
  562. package/server/dist/external/__tests__/api-contract-probes.d.ts.map +1 -0
  563. package/server/dist/external/__tests__/api-contract-probes.js +295 -0
  564. package/server/dist/external/__tests__/api-contract-probes.js.map +1 -0
  565. package/server/dist/external/_lead-fields-tag-filter-harness.d.ts +7 -0
  566. package/server/dist/external/_lead-fields-tag-filter-harness.d.ts.map +1 -0
  567. package/server/dist/external/_lead-fields-tag-filter-harness.js +41 -0
  568. package/server/dist/external/_lead-fields-tag-filter-harness.js.map +1 -0
  569. package/server/dist/external/_routes-edit-fields-harness.d.ts +8 -0
  570. package/server/dist/external/_routes-edit-fields-harness.d.ts.map +1 -0
  571. package/server/dist/external/_routes-edit-fields-harness.js +49 -0
  572. package/server/dist/external/_routes-edit-fields-harness.js.map +1 -0
  573. package/server/dist/external/_shared/helpers.d.ts +143 -0
  574. package/server/dist/external/_shared/helpers.d.ts.map +1 -0
  575. package/server/dist/external/_shared/helpers.js +231 -0
  576. package/server/dist/external/_shared/helpers.js.map +1 -0
  577. package/server/dist/external/actions/_helpers.d.ts +15 -0
  578. package/server/dist/external/actions/_helpers.d.ts.map +1 -0
  579. package/server/dist/external/actions/_helpers.js +48 -0
  580. package/server/dist/external/actions/_helpers.js.map +1 -0
  581. package/server/dist/external/actions/get.d.ts +8 -0
  582. package/server/dist/external/actions/get.d.ts.map +1 -0
  583. package/server/dist/external/actions/get.js +96 -0
  584. package/server/dist/external/actions/get.js.map +1 -0
  585. package/server/dist/external/actions/routes.d.ts +9 -0
  586. package/server/dist/external/actions/routes.d.ts.map +1 -0
  587. package/server/dist/external/actions/routes.js +33 -0
  588. package/server/dist/external/actions/routes.js.map +1 -0
  589. package/server/dist/external/actions/stub.d.ts +6 -0
  590. package/server/dist/external/actions/stub.d.ts.map +1 -0
  591. package/server/dist/external/actions/stub.js +51 -0
  592. package/server/dist/external/actions/stub.js.map +1 -0
  593. package/server/dist/external/actions/upload-delete.d.ts +6 -0
  594. package/server/dist/external/actions/upload-delete.d.ts.map +1 -0
  595. package/server/dist/external/actions/upload-delete.js +46 -0
  596. package/server/dist/external/actions/upload-delete.js.map +1 -0
  597. package/server/dist/external/actions/upload.d.ts +6 -0
  598. package/server/dist/external/actions/upload.d.ts.map +1 -0
  599. package/server/dist/external/actions/upload.js +141 -0
  600. package/server/dist/external/actions/upload.js.map +1 -0
  601. package/server/dist/external/compliance/routes.d.ts +9 -0
  602. package/server/dist/external/compliance/routes.d.ts.map +1 -0
  603. package/server/dist/external/compliance/routes.js +46 -0
  604. package/server/dist/external/compliance/routes.js.map +1 -0
  605. package/server/dist/external/design-review/__tests__/_helpers.d.ts +16 -0
  606. package/server/dist/external/design-review/__tests__/_helpers.d.ts.map +1 -0
  607. package/server/dist/external/design-review/__tests__/_helpers.js +92 -0
  608. package/server/dist/external/design-review/__tests__/_helpers.js.map +1 -0
  609. package/server/dist/external/design-review/feedback-write.d.ts +7 -0
  610. package/server/dist/external/design-review/feedback-write.d.ts.map +1 -0
  611. package/server/dist/external/design-review/feedback-write.js +126 -0
  612. package/server/dist/external/design-review/feedback-write.js.map +1 -0
  613. package/server/dist/external/design-review/gate.d.ts +11 -0
  614. package/server/dist/external/design-review/gate.d.ts.map +1 -0
  615. package/server/dist/external/design-review/gate.js +39 -0
  616. package/server/dist/external/design-review/gate.js.map +1 -0
  617. package/server/dist/external/design-review/routes.d.ts +9 -0
  618. package/server/dist/external/design-review/routes.d.ts.map +1 -0
  619. package/server/dist/external/design-review/routes.js +25 -0
  620. package/server/dist/external/design-review/routes.js.map +1 -0
  621. package/server/dist/external/design-review/serve.d.ts +10 -0
  622. package/server/dist/external/design-review/serve.d.ts.map +1 -0
  623. package/server/dist/external/design-review/serve.js +184 -0
  624. package/server/dist/external/design-review/serve.js.map +1 -0
  625. package/server/dist/external/events/routes.d.ts +16 -0
  626. package/server/dist/external/events/routes.d.ts.map +1 -0
  627. package/server/dist/external/events/routes.js +46 -0
  628. package/server/dist/external/events/routes.js.map +1 -0
  629. package/server/dist/external/file/_helpers.d.ts +62 -0
  630. package/server/dist/external/file/_helpers.d.ts.map +1 -0
  631. package/server/dist/external/file/_helpers.js +146 -0
  632. package/server/dist/external/file/_helpers.js.map +1 -0
  633. package/server/dist/external/file/routes.d.ts +7 -0
  634. package/server/dist/external/file/routes.d.ts.map +1 -0
  635. package/server/dist/external/file/routes.js +122 -0
  636. package/server/dist/external/file/routes.js.map +1 -0
  637. package/server/dist/external/file/write.d.ts +20 -0
  638. package/server/dist/external/file/write.d.ts.map +1 -0
  639. package/server/dist/external/file/write.js +172 -0
  640. package/server/dist/external/file/write.js.map +1 -0
  641. package/server/dist/external/inbox/_cache.d.ts +48 -0
  642. package/server/dist/external/inbox/_cache.d.ts.map +1 -0
  643. package/server/dist/external/inbox/_cache.js +46 -0
  644. package/server/dist/external/inbox/_cache.js.map +1 -0
  645. package/server/dist/external/inbox/_derive.d.ts +56 -0
  646. package/server/dist/external/inbox/_derive.d.ts.map +1 -0
  647. package/server/dist/external/inbox/_derive.js +231 -0
  648. package/server/dist/external/inbox/_derive.js.map +1 -0
  649. package/server/dist/external/inbox/routes.d.ts +13 -0
  650. package/server/dist/external/inbox/routes.d.ts.map +1 -0
  651. package/server/dist/external/inbox/routes.js +59 -0
  652. package/server/dist/external/inbox/routes.js.map +1 -0
  653. package/server/dist/external/launch/_helpers.d.ts +17 -0
  654. package/server/dist/external/launch/_helpers.d.ts.map +1 -0
  655. package/server/dist/external/launch/_helpers.js +25 -0
  656. package/server/dist/external/launch/_helpers.js.map +1 -0
  657. package/server/dist/external/launch/action-substitution-branch.d.ts +11 -0
  658. package/server/dist/external/launch/action-substitution-branch.d.ts.map +1 -0
  659. package/server/dist/external/launch/action-substitution-branch.js +112 -0
  660. package/server/dist/external/launch/action-substitution-branch.js.map +1 -0
  661. package/server/dist/external/launch/campaign-branch.d.ts +12 -0
  662. package/server/dist/external/launch/campaign-branch.d.ts.map +1 -0
  663. package/server/dist/external/launch/campaign-branch.js +95 -0
  664. package/server/dist/external/launch/campaign-branch.js.map +1 -0
  665. package/server/dist/external/launch/campaign-step-branch.d.ts +12 -0
  666. package/server/dist/external/launch/campaign-step-branch.d.ts.map +1 -0
  667. package/server/dist/external/launch/campaign-step-branch.js +108 -0
  668. package/server/dist/external/launch/campaign-step-branch.js.map +1 -0
  669. package/server/dist/external/launch/legacy-fallback-branch.d.ts +12 -0
  670. package/server/dist/external/launch/legacy-fallback-branch.d.ts.map +1 -0
  671. package/server/dist/external/launch/legacy-fallback-branch.js +29 -0
  672. package/server/dist/external/launch/legacy-fallback-branch.js.map +1 -0
  673. package/server/dist/external/launch/master-run-branch.d.ts +24 -0
  674. package/server/dist/external/launch/master-run-branch.d.ts.map +1 -0
  675. package/server/dist/external/launch/master-run-branch.js +168 -0
  676. package/server/dist/external/launch/master-run-branch.js.map +1 -0
  677. package/server/dist/external/launch/parse-body.d.ts +46 -0
  678. package/server/dist/external/launch/parse-body.d.ts.map +1 -0
  679. package/server/dist/external/launch/parse-body.js +115 -0
  680. package/server/dist/external/launch/parse-body.js.map +1 -0
  681. package/server/dist/external/launch/phase-task-branch.d.ts +18 -0
  682. package/server/dist/external/launch/phase-task-branch.d.ts.map +1 -0
  683. package/server/dist/external/launch/phase-task-branch.js +170 -0
  684. package/server/dist/external/launch/phase-task-branch.js.map +1 -0
  685. package/server/dist/external/launch/routes.d.ts +23 -0
  686. package/server/dist/external/launch/routes.d.ts.map +1 -0
  687. package/server/dist/external/launch/routes.js +198 -0
  688. package/server/dist/external/launch/routes.js.map +1 -0
  689. package/server/dist/external/media/_helpers.d.ts +32 -0
  690. package/server/dist/external/media/_helpers.d.ts.map +1 -0
  691. package/server/dist/external/media/_helpers.js +77 -0
  692. package/server/dist/external/media/_helpers.js.map +1 -0
  693. package/server/dist/external/media/routes.d.ts +7 -0
  694. package/server/dist/external/media/routes.d.ts.map +1 -0
  695. package/server/dist/external/media/routes.js +120 -0
  696. package/server/dist/external/media/routes.js.map +1 -0
  697. package/server/dist/external/mission-context/facts-slice3.d.ts +22 -0
  698. package/server/dist/external/mission-context/facts-slice3.d.ts.map +1 -0
  699. package/server/dist/external/mission-context/facts-slice3.js +143 -0
  700. package/server/dist/external/mission-context/facts-slice3.js.map +1 -0
  701. package/server/dist/external/mission-context/facts.d.ts +44 -0
  702. package/server/dist/external/mission-context/facts.d.ts.map +1 -0
  703. package/server/dist/external/mission-context/facts.js +109 -0
  704. package/server/dist/external/mission-context/facts.js.map +1 -0
  705. package/server/dist/external/mission-context/routes.d.ts +83 -0
  706. package/server/dist/external/mission-context/routes.d.ts.map +1 -0
  707. package/server/dist/external/mission-context/routes.js +226 -0
  708. package/server/dist/external/mission-context/routes.js.map +1 -0
  709. package/server/dist/external/mission-context/test-harness.d.ts +62 -0
  710. package/server/dist/external/mission-context/test-harness.d.ts.map +1 -0
  711. package/server/dist/external/mission-context/test-harness.js +121 -0
  712. package/server/dist/external/mission-context/test-harness.js.map +1 -0
  713. package/server/dist/external/mission-context/wire.d.ts +12 -0
  714. package/server/dist/external/mission-context/wire.d.ts.map +1 -0
  715. package/server/dist/external/mission-context/wire.js +62 -0
  716. package/server/dist/external/mission-context/wire.js.map +1 -0
  717. package/server/dist/external/model-config/routes.d.ts +9 -0
  718. package/server/dist/external/model-config/routes.d.ts.map +1 -0
  719. package/server/dist/external/model-config/routes.js +18 -0
  720. package/server/dist/external/model-config/routes.js.map +1 -0
  721. package/server/dist/external/org/__tests__/fixtures/lock-race-worker.d.ts +2 -0
  722. package/server/dist/external/org/__tests__/fixtures/lock-race-worker.d.ts.map +1 -0
  723. package/server/dist/external/org/__tests__/fixtures/lock-race-worker.js +67 -0
  724. package/server/dist/external/org/__tests__/fixtures/lock-race-worker.js.map +1 -0
  725. package/server/dist/external/org/_helpers.d.ts +67 -0
  726. package/server/dist/external/org/_helpers.d.ts.map +1 -0
  727. package/server/dist/external/org/_helpers.js +146 -0
  728. package/server/dist/external/org/_helpers.js.map +1 -0
  729. package/server/dist/external/org/beat-register-release-audit.d.ts +17 -0
  730. package/server/dist/external/org/beat-register-release-audit.d.ts.map +1 -0
  731. package/server/dist/external/org/beat-register-release-audit.js +96 -0
  732. package/server/dist/external/org/beat-register-release-audit.js.map +1 -0
  733. package/server/dist/external/org/beat-register-release-core.d.ts +50 -0
  734. package/server/dist/external/org/beat-register-release-core.d.ts.map +1 -0
  735. package/server/dist/external/org/beat-register-release-core.js +183 -0
  736. package/server/dist/external/org/beat-register-release-core.js.map +1 -0
  737. package/server/dist/external/org/beat-register-release.d.ts +13 -0
  738. package/server/dist/external/org/beat-register-release.d.ts.map +1 -0
  739. package/server/dist/external/org/beat-register-release.js +81 -0
  740. package/server/dist/external/org/beat-register-release.js.map +1 -0
  741. package/server/dist/external/org/beat-register.d.ts +100 -0
  742. package/server/dist/external/org/beat-register.d.ts.map +1 -0
  743. package/server/dist/external/org/beat-register.js +198 -0
  744. package/server/dist/external/org/beat-register.js.map +1 -0
  745. package/server/dist/external/org/countersign.d.ts +8 -0
  746. package/server/dist/external/org/countersign.d.ts.map +1 -0
  747. package/server/dist/external/org/countersign.js +157 -0
  748. package/server/dist/external/org/countersign.js.map +1 -0
  749. package/server/dist/external/org/cron.d.ts +22 -0
  750. package/server/dist/external/org/cron.d.ts.map +1 -0
  751. package/server/dist/external/org/cron.js +59 -0
  752. package/server/dist/external/org/cron.js.map +1 -0
  753. package/server/dist/external/org/decisions-lock.d.ts +68 -0
  754. package/server/dist/external/org/decisions-lock.d.ts.map +1 -0
  755. package/server/dist/external/org/decisions-lock.js +209 -0
  756. package/server/dist/external/org/decisions-lock.js.map +1 -0
  757. package/server/dist/external/org/file-read.d.ts +14 -0
  758. package/server/dist/external/org/file-read.d.ts.map +1 -0
  759. package/server/dist/external/org/file-read.js +80 -0
  760. package/server/dist/external/org/file-read.js.map +1 -0
  761. package/server/dist/external/org/file-write.d.ts +14 -0
  762. package/server/dist/external/org/file-write.d.ts.map +1 -0
  763. package/server/dist/external/org/file-write.js +205 -0
  764. package/server/dist/external/org/file-write.js.map +1 -0
  765. package/server/dist/external/org/last-run.d.ts +28 -0
  766. package/server/dist/external/org/last-run.d.ts.map +1 -0
  767. package/server/dist/external/org/last-run.js +137 -0
  768. package/server/dist/external/org/last-run.js.map +1 -0
  769. package/server/dist/external/org/org-chart-lookup.d.ts +16 -0
  770. package/server/dist/external/org/org-chart-lookup.d.ts.map +1 -0
  771. package/server/dist/external/org/org-chart-lookup.js +100 -0
  772. package/server/dist/external/org/org-chart-lookup.js.map +1 -0
  773. package/server/dist/external/org/org-chart.d.ts +25 -0
  774. package/server/dist/external/org/org-chart.d.ts.map +1 -0
  775. package/server/dist/external/org/org-chart.js +110 -0
  776. package/server/dist/external/org/org-chart.js.map +1 -0
  777. package/server/dist/external/org/routes.d.ts +12 -0
  778. package/server/dist/external/org/routes.d.ts.map +1 -0
  779. package/server/dist/external/org/routes.js +90 -0
  780. package/server/dist/external/org/routes.js.map +1 -0
  781. package/server/dist/external/org/usage.d.ts +24 -0
  782. package/server/dist/external/org/usage.d.ts.map +1 -0
  783. package/server/dist/external/org/usage.js +110 -0
  784. package/server/dist/external/org/usage.js.map +1 -0
  785. package/server/dist/external/pr-status/routes.d.ts +7 -0
  786. package/server/dist/external/pr-status/routes.d.ts.map +1 -0
  787. package/server/dist/external/pr-status/routes.js +37 -0
  788. package/server/dist/external/pr-status/routes.js.map +1 -0
  789. package/server/dist/external/preview/routes.d.ts +10 -0
  790. package/server/dist/external/preview/routes.d.ts.map +1 -0
  791. package/server/dist/external/preview/routes.js +71 -0
  792. package/server/dist/external/preview/routes.js.map +1 -0
  793. package/server/dist/external/routes.d.ts +106 -0
  794. package/server/dist/external/routes.d.ts.map +1 -0
  795. package/server/dist/external/routes.js +162 -0
  796. package/server/dist/external/routes.js.map +1 -0
  797. package/server/dist/external/run-config/routes.d.ts +9 -0
  798. package/server/dist/external/run-config/routes.d.ts.map +1 -0
  799. package/server/dist/external/run-config/routes.js +55 -0
  800. package/server/dist/external/run-config/routes.js.map +1 -0
  801. package/server/dist/external/runs/routes.d.ts +16 -0
  802. package/server/dist/external/runs/routes.d.ts.map +1 -0
  803. package/server/dist/external/runs/routes.js +69 -0
  804. package/server/dist/external/runs/routes.js.map +1 -0
  805. package/server/dist/external/tasks/_phase-helpers.d.ts +37 -0
  806. package/server/dist/external/tasks/_phase-helpers.d.ts.map +1 -0
  807. package/server/dist/external/tasks/_phase-helpers.js +101 -0
  808. package/server/dist/external/tasks/_phase-helpers.js.map +1 -0
  809. package/server/dist/external/tasks/create.d.ts +12 -0
  810. package/server/dist/external/tasks/create.d.ts.map +1 -0
  811. package/server/dist/external/tasks/create.js +139 -0
  812. package/server/dist/external/tasks/create.js.map +1 -0
  813. package/server/dist/external/tasks/lifecycle.d.ts +12 -0
  814. package/server/dist/external/tasks/lifecycle.d.ts.map +1 -0
  815. package/server/dist/external/tasks/lifecycle.js +231 -0
  816. package/server/dist/external/tasks/lifecycle.js.map +1 -0
  817. package/server/dist/external/tasks/list-get.d.ts +11 -0
  818. package/server/dist/external/tasks/list-get.d.ts.map +1 -0
  819. package/server/dist/external/tasks/list-get.js +50 -0
  820. package/server/dist/external/tasks/list-get.js.map +1 -0
  821. package/server/dist/external/tasks/patch.d.ts +12 -0
  822. package/server/dist/external/tasks/patch.d.ts.map +1 -0
  823. package/server/dist/external/tasks/patch.js +192 -0
  824. package/server/dist/external/tasks/patch.js.map +1 -0
  825. package/server/dist/external/tasks/routes.d.ts +18 -0
  826. package/server/dist/external/tasks/routes.d.ts.map +1 -0
  827. package/server/dist/external/tasks/routes.js +49 -0
  828. package/server/dist/external/tasks/routes.js.map +1 -0
  829. package/server/dist/external/transcript/routes.d.ts +12 -0
  830. package/server/dist/external/transcript/routes.d.ts.map +1 -0
  831. package/server/dist/external/transcript/routes.js +160 -0
  832. package/server/dist/external/transcript/routes.js.map +1 -0
  833. package/server/dist/external/tree/routes.d.ts +7 -0
  834. package/server/dist/external/tree/routes.d.ts.map +1 -0
  835. package/server/dist/external/tree/routes.js +96 -0
  836. package/server/dist/external/tree/routes.js.map +1 -0
  837. package/server/dist/index.d.ts +3 -0
  838. package/server/dist/index.d.ts.map +1 -0
  839. package/server/dist/index.js +774 -0
  840. package/server/dist/index.js.map +1 -0
  841. package/server/dist/lib/bind-errors.d.ts +18 -0
  842. package/server/dist/lib/bind-errors.d.ts.map +1 -0
  843. package/server/dist/lib/bind-errors.js +43 -0
  844. package/server/dist/lib/bind-errors.js.map +1 -0
  845. package/server/dist/lib/resolveHonoHost.d.ts +3 -0
  846. package/server/dist/lib/resolveHonoHost.d.ts.map +1 -0
  847. package/server/dist/lib/resolveHonoHost.js +34 -0
  848. package/server/dist/lib/resolveHonoHost.js.map +1 -0
  849. package/server/dist/lib/resolveNetworkProfile.d.ts +28 -0
  850. package/server/dist/lib/resolveNetworkProfile.d.ts.map +1 -0
  851. package/server/dist/lib/resolveNetworkProfile.js +42 -0
  852. package/server/dist/lib/resolveNetworkProfile.js.map +1 -0
  853. package/server/dist/lib/resolveTailscaleIp.d.ts +26 -0
  854. package/server/dist/lib/resolveTailscaleIp.d.ts.map +1 -0
  855. package/server/dist/lib/resolveTailscaleIp.js +61 -0
  856. package/server/dist/lib/resolveTailscaleIp.js.map +1 -0
  857. package/server/dist/lib/resolveTrustedOrigins.d.ts +9 -0
  858. package/server/dist/lib/resolveTrustedOrigins.d.ts.map +1 -0
  859. package/server/dist/lib/resolveTrustedOrigins.js +154 -0
  860. package/server/dist/lib/resolveTrustedOrigins.js.map +1 -0
  861. package/server/dist/middleware/error-handler.d.ts +8 -0
  862. package/server/dist/middleware/error-handler.d.ts.map +1 -0
  863. package/server/dist/middleware/error-handler.js +75 -0
  864. package/server/dist/middleware/error-handler.js.map +1 -0
  865. package/server/dist/middleware/logger.d.ts +3 -0
  866. package/server/dist/middleware/logger.d.ts.map +1 -0
  867. package/server/dist/middleware/logger.js +13 -0
  868. package/server/dist/middleware/logger.js.map +1 -0
  869. package/server/dist/routes/_triage-api-harness.d.ts +16 -0
  870. package/server/dist/routes/_triage-api-harness.d.ts.map +1 -0
  871. package/server/dist/routes/_triage-api-harness.js +89 -0
  872. package/server/dist/routes/_triage-api-harness.js.map +1 -0
  873. package/server/dist/routes/campaigns.d.ts +26 -0
  874. package/server/dist/routes/campaigns.d.ts.map +1 -0
  875. package/server/dist/routes/campaigns.js +237 -0
  876. package/server/dist/routes/campaigns.js.map +1 -0
  877. package/server/dist/routes/diagnostics.d.ts +84 -0
  878. package/server/dist/routes/diagnostics.d.ts.map +1 -0
  879. package/server/dist/routes/diagnostics.js +143 -0
  880. package/server/dist/routes/diagnostics.js.map +1 -0
  881. package/server/dist/routes/grade.d.ts +13 -0
  882. package/server/dist/routes/grade.d.ts.map +1 -0
  883. package/server/dist/routes/grade.js +45 -0
  884. package/server/dist/routes/grade.js.map +1 -0
  885. package/server/dist/routes/profiles.d.ts +25 -0
  886. package/server/dist/routes/profiles.d.ts.map +1 -0
  887. package/server/dist/routes/profiles.js +58 -0
  888. package/server/dist/routes/profiles.js.map +1 -0
  889. package/server/dist/routes/projects.d.ts +20 -0
  890. package/server/dist/routes/projects.d.ts.map +1 -0
  891. package/server/dist/routes/projects.js +105 -0
  892. package/server/dist/routes/projects.js.map +1 -0
  893. package/server/dist/routes/readiness.d.ts +11 -0
  894. package/server/dist/routes/readiness.d.ts.map +1 -0
  895. package/server/dist/routes/readiness.js +52 -0
  896. package/server/dist/routes/readiness.js.map +1 -0
  897. package/server/dist/routes/settings.d.ts +13 -0
  898. package/server/dist/routes/settings.d.ts.map +1 -0
  899. package/server/dist/routes/settings.js +69 -0
  900. package/server/dist/routes/settings.js.map +1 -0
  901. package/server/dist/routes/terminal-appearance.d.ts +7 -0
  902. package/server/dist/routes/terminal-appearance.d.ts.map +1 -0
  903. package/server/dist/routes/terminal-appearance.js +28 -0
  904. package/server/dist/routes/terminal-appearance.js.map +1 -0
  905. package/server/dist/routes/triage.d.ts +35 -0
  906. package/server/dist/routes/triage.d.ts.map +1 -0
  907. package/server/dist/routes/triage.js +496 -0
  908. package/server/dist/routes/triage.js.map +1 -0
  909. package/server/dist/terminal/backpressure-telemetry.d.ts +86 -0
  910. package/server/dist/terminal/backpressure-telemetry.d.ts.map +1 -0
  911. package/server/dist/terminal/backpressure-telemetry.js +158 -0
  912. package/server/dist/terminal/backpressure-telemetry.js.map +1 -0
  913. package/server/dist/terminal/boot-wipe.d.ts +47 -0
  914. package/server/dist/terminal/boot-wipe.d.ts.map +1 -0
  915. package/server/dist/terminal/boot-wipe.js +122 -0
  916. package/server/dist/terminal/boot-wipe.js.map +1 -0
  917. package/server/dist/terminal/headless-mirror.d.ts +139 -0
  918. package/server/dist/terminal/headless-mirror.d.ts.map +1 -0
  919. package/server/dist/terminal/headless-mirror.js +389 -0
  920. package/server/dist/terminal/headless-mirror.js.map +1 -0
  921. package/server/dist/terminal/headless-probe.d.ts +26 -0
  922. package/server/dist/terminal/headless-probe.d.ts.map +1 -0
  923. package/server/dist/terminal/headless-probe.js +99 -0
  924. package/server/dist/terminal/headless-probe.js.map +1 -0
  925. package/server/dist/terminal/idle-reaper.d.ts +47 -0
  926. package/server/dist/terminal/idle-reaper.d.ts.map +1 -0
  927. package/server/dist/terminal/idle-reaper.js +95 -0
  928. package/server/dist/terminal/idle-reaper.js.map +1 -0
  929. package/server/dist/terminal/image-paste.d.ts +60 -0
  930. package/server/dist/terminal/image-paste.d.ts.map +1 -0
  931. package/server/dist/terminal/image-paste.js +260 -0
  932. package/server/dist/terminal/image-paste.js.map +1 -0
  933. package/server/dist/terminal/pty-manager.d.ts +452 -0
  934. package/server/dist/terminal/pty-manager.d.ts.map +1 -0
  935. package/server/dist/terminal/pty-manager.js +1014 -0
  936. package/server/dist/terminal/pty-manager.js.map +1 -0
  937. package/server/dist/terminal/replay-snapshot.d.ts +25 -0
  938. package/server/dist/terminal/replay-snapshot.d.ts.map +1 -0
  939. package/server/dist/terminal/replay-snapshot.js +124 -0
  940. package/server/dist/terminal/replay-snapshot.js.map +1 -0
  941. package/server/dist/terminal/resync-gate.d.ts +20 -0
  942. package/server/dist/terminal/resync-gate.d.ts.map +1 -0
  943. package/server/dist/terminal/resync-gate.js +58 -0
  944. package/server/dist/terminal/resync-gate.js.map +1 -0
  945. package/server/dist/terminal/routes.d.ts +67 -0
  946. package/server/dist/terminal/routes.d.ts.map +1 -0
  947. package/server/dist/terminal/routes.js +455 -0
  948. package/server/dist/terminal/routes.js.map +1 -0
  949. package/server/dist/terminal/scrollback-store.d.ts +120 -0
  950. package/server/dist/terminal/scrollback-store.d.ts.map +1 -0
  951. package/server/dist/terminal/scrollback-store.js +572 -0
  952. package/server/dist/terminal/scrollback-store.js.map +1 -0
  953. package/server/dist/terminal/snapshot-preserve.d.ts +63 -0
  954. package/server/dist/terminal/snapshot-preserve.d.ts.map +1 -0
  955. package/server/dist/terminal/snapshot-preserve.js +116 -0
  956. package/server/dist/terminal/snapshot-preserve.js.map +1 -0
  957. package/server/dist/terminal/snapshot-store.d.ts +147 -0
  958. package/server/dist/terminal/snapshot-store.d.ts.map +1 -0
  959. package/server/dist/terminal/snapshot-store.js +439 -0
  960. package/server/dist/terminal/snapshot-store.js.map +1 -0
  961. package/server/dist/terminal/snapshot-tmp-sweep.d.ts +48 -0
  962. package/server/dist/terminal/snapshot-tmp-sweep.d.ts.map +1 -0
  963. package/server/dist/terminal/snapshot-tmp-sweep.js +141 -0
  964. package/server/dist/terminal/snapshot-tmp-sweep.js.map +1 -0
  965. package/server/dist/terminal/spawn-env.d.ts +46 -0
  966. package/server/dist/terminal/spawn-env.d.ts.map +1 -0
  967. package/server/dist/terminal/spawn-env.js +232 -0
  968. package/server/dist/terminal/spawn-env.js.map +1 -0
  969. package/server/dist/terminal/terminal-reset.d.ts +31 -0
  970. package/server/dist/terminal/terminal-reset.d.ts.map +1 -0
  971. package/server/dist/terminal/terminal-reset.js +43 -0
  972. package/server/dist/terminal/terminal-reset.js.map +1 -0
  973. package/server/dist/terminal/ws-heartbeat.d.ts +78 -0
  974. package/server/dist/terminal/ws-heartbeat.d.ts.map +1 -0
  975. package/server/dist/terminal/ws-heartbeat.js +164 -0
  976. package/server/dist/terminal/ws-heartbeat.js.map +1 -0
  977. package/server/dist/terminal/ws-upgrade-handler.d.ts +96 -0
  978. package/server/dist/terminal/ws-upgrade-handler.d.ts.map +1 -0
  979. package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts +46 -0
  980. package/server/dist/terminal/ws-upgrade-handler.fixtures.d.ts.map +1 -0
  981. package/server/dist/terminal/ws-upgrade-handler.fixtures.js +126 -0
  982. package/server/dist/terminal/ws-upgrade-handler.fixtures.js.map +1 -0
  983. package/server/dist/terminal/ws-upgrade-handler.js +518 -0
  984. package/server/dist/terminal/ws-upgrade-handler.js.map +1 -0
  985. package/server/dist/types/action-schema.d.ts +75 -0
  986. package/server/dist/types/action-schema.d.ts.map +1 -0
  987. package/server/dist/types/action-schema.js +32 -0
  988. package/server/dist/types/action-schema.js.map +1 -0
  989. package/server/dist/types/project.d.ts +72 -0
  990. package/server/dist/types/project.d.ts.map +1 -0
  991. package/server/dist/types/project.js +16 -0
  992. package/server/dist/types/project.js.map +1 -0
  993. package/server/dist/types/run-config-v2.d.ts +172 -0
  994. package/server/dist/types/run-config-v2.d.ts.map +1 -0
  995. package/server/dist/types/run-config-v2.js +169 -0
  996. package/server/dist/types/run-config-v2.js.map +1 -0
  997. package/server/dist/types/settings.d.ts +25 -0
  998. package/server/dist/types/settings.d.ts.map +1 -0
  999. package/server/dist/types/settings.js +12 -0
  1000. package/server/dist/types/settings.js.map +1 -0
  1001. package/server/dist/types/task.d.ts +55 -0
  1002. package/server/dist/types/task.d.ts.map +1 -0
  1003. package/server/dist/types/task.js +13 -0
  1004. package/server/dist/types/task.js.map +1 -0
  1005. package/server/dist/types/triage.d.ts +135 -0
  1006. package/server/dist/types/triage.d.ts.map +1 -0
  1007. package/server/dist/types/triage.js +15 -0
  1008. package/server/dist/types/triage.js.map +1 -0
  1009. package/server/package.json +43 -0
  1010. package/server/profiles/PROFILE_SCHEMA_VERSION +1 -0
  1011. package/server/profiles/README.md +27 -0
  1012. package/server/profiles/python-plugin-monorepo.json +35 -0
  1013. package/server/profiles/supabase-nextjs.json +253 -0
  1014. package/server/profiles/vite-hono.json +92 -0
@@ -0,0 +1,222 @@
1
+ /*
2
+ * jsonl-records.ts — record-boundary + newline-termination primitives for the
3
+ * append-only logs (triage store + outbox, and the events log on the read side).
4
+ *
5
+ * A NEUTRAL LEAF, deliberately: reader and writer both need one agreed answer to
6
+ * "where does a record end?", and parking that in either would cycle them.
7
+ *
8
+ * WHY THIS EXISTS (iterate-2026-07-18-triage-jsonl-record-boundary)
9
+ * ----------------------------------------------------------------
10
+ * TS port of `shared/scripts/lib/jsonl_records.py` (monorepo PR #399). Writers
11
+ * appended a terminated line without checking the file they appended TO was
12
+ * terminated, so an unterminated predecessor put two records on one physical
13
+ * line; the reader then failed `JSON.parse` on the whole line and skipped it,
14
+ * discarding BOTH. On an append-only log, corruption must never read as absence.
15
+ *
16
+ * The two halves:
17
+ * - `endsWithoutNewline` — the writer-side probe (prevention).
18
+ * - `splitRecords` / `parseJsonlRecords` / `recordsFromLines` — recovery,
19
+ * PARTIAL by design: a valid record followed by an unrecoverable fragment
20
+ * yields the valid record AND the fragment. All-or-nothing recovery would
21
+ * reproduce the very bug it is meant to fix.
22
+ *
23
+ * This module NEVER logs. Corruption is returned as data; reporting belongs at
24
+ * the command boundary, so background callers, tests and routes all agree.
25
+ *
26
+ * This file is the PUBLIC face and answers "what records are on this line, and
27
+ * is the file safely appendable?". The primitives that answer "where does ONE
28
+ * JSON object end?" live in `jsonl-decode.ts` — extracted to keep both files
29
+ * inside the 300-line rule (iterate-2026-07-21-compliance-audit-reconcile).
30
+ * Nothing outside this pair imports them; consumers import from here.
31
+ *
32
+ * PORT DEVIATIONS from the Python leaf, all deliberate:
33
+ * 1. Python's `read_jsonl_records(path)` is path-based; this reader is
34
+ * STRING-based (it also serves the `git show` blob path in
35
+ * `triage-origin.ts`), so it is ported as `parseJsonlRecords(raw)`.
36
+ * `endsWithoutNewline` stays path-based — the writer probes a file.
37
+ * 2. Python's `JSONDecoder.raw_decode` has no `JSON.parse` equivalent, so the
38
+ * splitter is NEW code — see `splitRecords` for fast-path / slow-path.
39
+ * 3. Python reads with `errors="surrogateescape"`, round-tripping invalid
40
+ * UTF-8 so the monorepo repair CLI can quarantine a fragment byte-exact.
41
+ * TS uses `readFileSync(p, "utf-8")`, which substitutes U+FFFD and is
42
+ * LOSSY on a truncated multi-byte sequence. Safe ONLY because the WebUI
43
+ * never writes a recovered record back. If a WebUI repair path is ever
44
+ * added, this becomes a correctness bug and must be revisited.
45
+ *
46
+ * KNOWN CROSS-LANGUAGE BOUNDARY: Python's default `JSONDecoder` accepts `NaN` /
47
+ * `Infinity` / `-Infinity`; `JSON.parse` rejects them. Verified by probe. The
48
+ * triage record schema carries only strings and null (no float fields), so this
49
+ * is unreachable from the real producers — but it IS a divergence, so such a
50
+ * line degrades to a fragment (safe) rather than throwing.
51
+ */
52
+ import { closeSync, fstatSync, openSync, readSync } from "node:fs";
53
+ import { CH_LBRACE, CH_LF, decodeObjectAt, MAX_RECOVERY_LINE_BYTES, skipJsonWs, tryParseObject, } from "./jsonl-decode.js";
54
+ /**
55
+ * Split one physical `line` into records plus the unrecoverable remainder.
56
+ *
57
+ * `remainder` is `""` when the whole line decoded cleanly, otherwise the
58
+ * VERBATIM text from the first byte that could not be decoded to end of line.
59
+ *
60
+ * Contract (mirrors the Python leaf):
61
+ * - JSON whitespace between records is skipped (space/tab/CR/LF only).
62
+ * - A blank / whitespace-only line yields `([], "")` — formatting, not
63
+ * corruption.
64
+ * - Only JSON objects count as records; a bare scalar is a fragment.
65
+ * - Recovery is PARTIAL: records decoded before the bad byte are returned.
66
+ * - A malformed record does NOT resync — the entire rest of the line becomes
67
+ * the remainder, matching `raw_decode`.
68
+ *
69
+ * Cost: the fast path is a single native `JSON.parse` and covers essentially
70
+ * every real line. The candidate walk runs only on an already-corrupt line,
71
+ * where lines are short and correctness matters more than throughput.
72
+ */
73
+ export function splitRecords(line) {
74
+ const records = [];
75
+ const first = skipJsonWs(line, 0);
76
+ if (first >= line.length)
77
+ return { records, remainder: "" };
78
+ // Fast path — one clean record per line is the overwhelmingly common case.
79
+ const whole = tryParseObject(line.slice(first));
80
+ if (whole !== undefined) {
81
+ records.push(whole);
82
+ return { records, remainder: "" };
83
+ }
84
+ // Slow path — only reached on a concatenated or damaged line. A line this
85
+ // long is not a triage record by any reading; refuse the walk rather than
86
+ // parse megabytes of candidates on the request thread.
87
+ if (line.length - first > MAX_RECOVERY_LINE_BYTES) {
88
+ return { records, remainder: line.slice(first) };
89
+ }
90
+ let idx = first;
91
+ while (idx < line.length) {
92
+ idx = skipJsonWs(line, idx);
93
+ if (idx >= line.length)
94
+ break;
95
+ // Only `{` can start a record. Anything else (a bare scalar, an array, or
96
+ // outright garbage) is handed back verbatim.
97
+ if (line.charCodeAt(idx) !== CH_LBRACE)
98
+ return { records, remainder: line.slice(idx) };
99
+ const decoded = decodeObjectAt(line, idx);
100
+ if (decoded === null)
101
+ return { records, remainder: line.slice(idx) };
102
+ records.push(decoded.value);
103
+ idx = decoded.end;
104
+ }
105
+ return { records, remainder: "" };
106
+ }
107
+ /**
108
+ * Tolerantly parse a whole JSONL blob, recovering concatenated records and
109
+ * returning the rest as data.
110
+ *
111
+ * Order is preserved: records recovered from one physical line stay in wire
112
+ * order relative to each other and to surrounding lines, so the store's
113
+ * `(ts, file-order)` status resolution is unaffected.
114
+ *
115
+ * `trim()` here is intentionally the unicode-aware one — it absorbs a trailing
116
+ * CR (CRLF) and mirrors Python's `raw.strip()`, which is also unicode-aware.
117
+ * The strict JSON-whitespace rule applies BETWEEN records, inside
118
+ * `splitRecords`.
119
+ *
120
+ * Line NUMBERING can differ from Python on a file containing a bare CR: this
121
+ * splits on `\n` only, while Python iterates the handle in universal-newline
122
+ * mode and also breaks on a lone `\r`. Resolved RECORDS are unaffected (CR is
123
+ * JSON whitespace, so `splitRecords` skips an interior CR and recovers both
124
+ * sides either way) — only the `lineNo` reported on a `CorruptFragment` shifts.
125
+ * Noted so an operator correlating a WebUI warning against the monorepo repair
126
+ * CLI's output is not misled.
127
+ */
128
+ export function parseJsonlRecords(raw) {
129
+ const records = [];
130
+ const corrupt = [];
131
+ const lines = raw.split("\n");
132
+ for (let i = 0; i < lines.length; i += 1) {
133
+ const line = lines[i].trim();
134
+ if (!line)
135
+ continue;
136
+ const split = splitRecords(line);
137
+ for (const record of split.records)
138
+ records.push(record);
139
+ if (split.remainder) {
140
+ corrupt.push({ lineNo: i + 1, text: split.remainder });
141
+ }
142
+ }
143
+ return { records, corrupt };
144
+ }
145
+ /**
146
+ * Record-by-record view over ALREADY-SPLIT physical lines, recovering
147
+ * concatenated records (iterate-2026-07-19-events-reader-recovery).
148
+ *
149
+ * The events-log readers get `Iterable<string>` lines, not a raw blob, and each
150
+ * keeps its own running index for ordering. Yielding per RECORD lets them keep
151
+ * `idx++` unchanged: two records on one line take two consecutive indices,
152
+ * preserving the wire order last-wins projections depend on.
153
+ *
154
+ * `onLine` fires once per NON-BLANK PHYSICAL LINE, so a caller can keep
155
+ * line-based counters (`totalLines` / `skippedLines`) meaning what they always
156
+ * meant while record-based counters move to the yielded values. Blank lines are
157
+ * formatting and are reported to neither.
158
+ */
159
+ export function* recordsFromLines(lines, onLine) {
160
+ let lineNo = 0;
161
+ for (const rawLine of lines) {
162
+ lineNo += 1;
163
+ const line = rawLine.trim();
164
+ if (!line)
165
+ continue;
166
+ const split = splitRecords(line);
167
+ if (onLine)
168
+ onLine({ lineNo, corrupt: split.remainder.length > 0 });
169
+ for (const record of split.records)
170
+ yield record;
171
+ }
172
+ }
173
+ /**
174
+ * True iff `path` exists, is non-empty, and its final byte is not `\n`.
175
+ *
176
+ * A missing or zero-byte file is safely appendable and returns false. A file
177
+ * ending `\r\n` ends in `\n` and so counts as already terminated — prefixing
178
+ * another newline would inject a blank line.
179
+ *
180
+ * Reads exactly ONE byte at `size - 1` via a positional `readSync`; it never
181
+ * reads file contents. An O(N) read here would degrade every status flip as the
182
+ * log grows (external review R3).
183
+ *
184
+ * Any error (missing, unreadable, a directory, not seekable) is treated as
185
+ * "safely appendable". This mirrors the Python leaf, which catches OSError
186
+ * broadly and documents that "the append itself will surface any real I/O
187
+ * problem" — accurate here too: a swallowed EACCES is immediately re-raised by
188
+ * `appendFileSync` and mapped to a route-level write error by its caller, so
189
+ * no error is lost. Propagating early would diverge from the cross-language
190
+ * contract for no behavioural gain (external review R10, rejected with reason).
191
+ */
192
+ export function endsWithoutNewline(filePath) {
193
+ let fd;
194
+ try {
195
+ fd = openSync(filePath, "r");
196
+ // Size is taken from the OPEN handle, not a prior `statSync`, so the offset
197
+ // resolves against the same file state we are about to read. Python does
198
+ // `seek(-1, SEEK_END)`, which is inherently live-end-relative; a stat-then-
199
+ // read pair would seek to a STALE offset if a concurrent Python writer
200
+ // truncated or extended the file between the two calls — precisely the
201
+ // window this module documents as its known limitation.
202
+ const size = fstatSync(fd).size;
203
+ if (size === 0)
204
+ return false;
205
+ const buf = Buffer.alloc(1);
206
+ const bytesRead = readSync(fd, buf, 0, 1, size - 1);
207
+ // `Buffer.alloc` zero-fills, so a short read would leave `buf[0] === 0`,
208
+ // which is not CH_LF and would wrongly report "unterminated". Treat any
209
+ // short read as safely appendable instead.
210
+ if (bytesRead !== 1)
211
+ return false;
212
+ return buf[0] !== CH_LF;
213
+ }
214
+ catch {
215
+ return false;
216
+ }
217
+ finally {
218
+ if (fd !== undefined)
219
+ closeSync(fd);
220
+ }
221
+ }
222
+ //# sourceMappingURL=jsonl-records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-records.js","sourceRoot":"","sources":["../../src/core/jsonl-records.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export interface CopyCommandForms {
2
+ powershell: string;
3
+ cmd: string;
4
+ posix: string;
5
+ }
6
+ export interface LaunchArgs {
7
+ sessionUuid: string;
8
+ cwd: string;
9
+ resume?: boolean;
10
+ fork?: boolean;
11
+ parentSessionUuid?: string;
12
+ pluginDirs?: string[];
13
+ /**
14
+ * Optional task title forwarded to Claude as `-n, --name <title>`.
15
+ * Pre-seeds the session's display name (prompt box, /resume picker,
16
+ * terminal title). Empty / omitted → no `--name` flag emitted (Claude
17
+ * generates its own title).
18
+ *
19
+ * Embedded newlines are rejected with a thrown error — they break the
20
+ * single-line copy-paste flow and can hide injected commands inside
21
+ * the quoted string.
22
+ */
23
+ title?: string;
24
+ /**
25
+ * iterate/multi-session-run-orchestrator-v2 — Optional trailing slash
26
+ * command (e.g. `/shipwright-build`). Emitted as a quoted positional
27
+ * argument AFTER all flags, matching the framework's launch contract:
28
+ * claude --session-id <uuid> --add-dir <root> --name '...' '/shipwright-<phase>'
29
+ *
30
+ * Validated against SLASH_COMMAND_PATTERN at the route layer; the
31
+ * launcher itself just escapes per shell. Newlines / control chars
32
+ * are rejected here as defense-in-depth.
33
+ */
34
+ slashCommand?: string;
35
+ }
36
+ export interface LaunchResult {
37
+ /** Always populated; the user's fallback. */
38
+ commands: CopyCommandForms;
39
+ /** Future: terminal spawn pid, VSCode binding token, etc. */
40
+ launcherUsed: "copy";
41
+ }
42
+ export type LaunchAdapter = (args: LaunchArgs) => Promise<LaunchResult> | LaunchResult;
43
+ export declare function buildCopyCommands(args: LaunchArgs): CopyCommandForms;
44
+ /**
45
+ * 2026-04-23 — iterate-20260423-resume-cwd-prefix.
46
+ *
47
+ * Shared shell-specific cd-prefix helper, used by both the legacy
48
+ * `buildCopyCommands` path (Resume / Fork / plain Launch fallback) and
49
+ * the `substitutePlaceholders` `{cd.prefix}` placeholder in
50
+ * actions-substitute.ts. Both surfaces emit identical output so a user
51
+ * pasting a Resume link and a user pasting a Launch link both set cwd
52
+ * the same way before invoking claude.
53
+ *
54
+ * Per-shell expansion:
55
+ * PowerShell → `Set-Location <escaped> -ErrorAction Stop; ` (PS5 lacks
56
+ * `&&`; `-ErrorAction Stop` upgrades the otherwise
57
+ * non-terminating Set-Location error to a terminating one
58
+ * so a wrong path surfaces as a clean cd failure rather
59
+ * than a confusing missing-config error from the skill).
60
+ * cmd.exe → `cd /d <escaped> && ` (`/d` also changes drive letter).
61
+ * POSIX → `cd <escaped> && ` (standard short-circuit).
62
+ *
63
+ * Empty cwd → empty string. The pasted command degrades to current
64
+ * behaviour (runs in whatever cwd the terminal had) instead of producing
65
+ * a syntactically broken prefix.
66
+ *
67
+ * Security: uses the same `qPs/qCmd/qPosix` escapers as the rest of the
68
+ * module. Trailing-backslash-before-quote caveat from `qCmd` (line 185)
69
+ * still applies — directory-picker paths can't end on `\` in practice.
70
+ */
71
+ export declare function buildCdPrefix(shellForm: "powershell" | "cmd" | "posix", cwd: string): string;
72
+ export declare const copyLauncher: LaunchAdapter;
73
+ export { qPs, qCmd, qPosix, toPosixPath } from "./shell-quote.js";
74
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/core/launcher.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAEvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAOpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,YAAY,GAAG,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAS5F;AAED,eAAO,MAAM,YAAY,EAAE,aAGzB,CAAC;AAmJH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,192 @@
1
+ /*
2
+ * External-launch copy-command generator.
3
+ *
4
+ * Produces per-shell command strings for the user to paste. Webui does
5
+ * NOT spawn claude; the user runs it themselves so that subscription-auth,
6
+ * plugin-dir discovery, and terminal UX stay Anthropic's problem.
7
+ *
8
+ * Three forms are produced regardless of host OS so the UI can offer
9
+ * the right button set. PoC check G proved all three run cleanly across
10
+ * real PowerShell / cmd.exe / bash with a `"AI Backup - Documents"` path.
11
+ *
12
+ * Terminal / VSCode / Desktop launchers are explicitly deferred to v2+
13
+ * (variant-a narrow scope). The `LaunchAdapter` shape is kept so Sub-iterate
14
+ * 2 can plug implementations in without rewiring callers.
15
+ */
16
+ import { qPs, qCmd, qPosix, toPosixPath } from "./shell-quote.js";
17
+ export function buildCopyCommands(args) {
18
+ const parts = buildArgv(args);
19
+ return {
20
+ powershell: renderPowershell(parts),
21
+ cmd: renderCmd(parts),
22
+ posix: renderPosix(parts),
23
+ };
24
+ }
25
+ /**
26
+ * 2026-04-23 — iterate-20260423-resume-cwd-prefix.
27
+ *
28
+ * Shared shell-specific cd-prefix helper, used by both the legacy
29
+ * `buildCopyCommands` path (Resume / Fork / plain Launch fallback) and
30
+ * the `substitutePlaceholders` `{cd.prefix}` placeholder in
31
+ * actions-substitute.ts. Both surfaces emit identical output so a user
32
+ * pasting a Resume link and a user pasting a Launch link both set cwd
33
+ * the same way before invoking claude.
34
+ *
35
+ * Per-shell expansion:
36
+ * PowerShell → `Set-Location <escaped> -ErrorAction Stop; ` (PS5 lacks
37
+ * `&&`; `-ErrorAction Stop` upgrades the otherwise
38
+ * non-terminating Set-Location error to a terminating one
39
+ * so a wrong path surfaces as a clean cd failure rather
40
+ * than a confusing missing-config error from the skill).
41
+ * cmd.exe → `cd /d <escaped> && ` (`/d` also changes drive letter).
42
+ * POSIX → `cd <escaped> && ` (standard short-circuit).
43
+ *
44
+ * Empty cwd → empty string. The pasted command degrades to current
45
+ * behaviour (runs in whatever cwd the terminal had) instead of producing
46
+ * a syntactically broken prefix.
47
+ *
48
+ * Security: uses the same `qPs/qCmd/qPosix` escapers as the rest of the
49
+ * module. Trailing-backslash-before-quote caveat from `qCmd` (line 185)
50
+ * still applies — directory-picker paths can't end on `\` in practice.
51
+ */
52
+ export function buildCdPrefix(shellForm, cwd) {
53
+ if (!cwd)
54
+ return "";
55
+ if (shellForm === "powershell") {
56
+ return `Set-Location ${qPs(cwd)} -ErrorAction Stop; `;
57
+ }
58
+ if (shellForm === "cmd") {
59
+ return `cd /d ${qCmd(cwd)} && `;
60
+ }
61
+ return `cd ${qPosix(toPosixPath(cwd))} && `;
62
+ }
63
+ export const copyLauncher = (args) => ({
64
+ commands: buildCopyCommands(args),
65
+ launcherUsed: "copy",
66
+ });
67
+ function buildArgv(args) {
68
+ const title = normalizeTitle(args.title);
69
+ const slashCommand = normalizeSlashCommand(args.slashCommand);
70
+ return {
71
+ sessionUuid: args.sessionUuid,
72
+ cwd: args.cwd,
73
+ resume: Boolean(args.resume),
74
+ fork: Boolean(args.fork),
75
+ parentSessionUuid: args.parentSessionUuid,
76
+ pluginDirs: args.pluginDirs ?? [],
77
+ title,
78
+ slashCommand,
79
+ };
80
+ }
81
+ /**
82
+ * Trim outer whitespace and reject embedded newlines. Returns undefined
83
+ * for empty / whitespace-only input so callers can skip emitting `--name`.
84
+ */
85
+ function normalizeTitle(raw) {
86
+ if (typeof raw !== "string")
87
+ return undefined;
88
+ if (/[\r\n]/.test(raw)) {
89
+ throw new Error("Title cannot contain newlines (would break the single-line copy-paste flow).");
90
+ }
91
+ const trimmed = raw.trim();
92
+ return trimmed === "" ? undefined : trimmed;
93
+ }
94
+ /**
95
+ * Reject newlines / NUL / other control chars in slash commands; the route
96
+ * layer additionally validates against the strict
97
+ * `^/shipwright-(project|design|plan|build|test|security|changelog|deploy)$`
98
+ * regex. Belt-and-suspenders.
99
+ */
100
+ function normalizeSlashCommand(raw) {
101
+ if (typeof raw !== "string")
102
+ return undefined;
103
+ for (const ch of raw) {
104
+ const code = ch.charCodeAt(0);
105
+ if (code < 0x20 || code === 0x7f) {
106
+ throw new Error("slashCommand cannot contain control characters.");
107
+ }
108
+ }
109
+ const trimmed = raw.trim();
110
+ return trimmed === "" ? undefined : trimmed;
111
+ }
112
+ function renderPowershell(a) {
113
+ const parts = ["claude"];
114
+ appendSessionFlags(a, parts, qPs);
115
+ parts.push("--add-dir", qPs(a.cwd));
116
+ appendResumeFork(a, parts, qPs);
117
+ appendName(a, parts, qPs);
118
+ for (const d of a.pluginDirs) {
119
+ parts.push("--plugin-dir", qPs(d));
120
+ }
121
+ appendSlashCommand(a, parts, qPs);
122
+ return buildCdPrefix("powershell", a.cwd) + "& " + parts.join(" ");
123
+ }
124
+ function renderCmd(a) {
125
+ const parts = ["claude"];
126
+ appendSessionFlags(a, parts, qCmd);
127
+ parts.push("--add-dir", qCmd(a.cwd));
128
+ appendResumeFork(a, parts, qCmd);
129
+ appendName(a, parts, qCmd);
130
+ for (const d of a.pluginDirs) {
131
+ parts.push("--plugin-dir", qCmd(d));
132
+ }
133
+ appendSlashCommand(a, parts, qCmd);
134
+ return buildCdPrefix("cmd", a.cwd) + parts.join(" ");
135
+ }
136
+ function renderPosix(a) {
137
+ const cwd = toPosixPath(a.cwd);
138
+ const plugins = a.pluginDirs.map(toPosixPath);
139
+ const parts = ["claude"];
140
+ appendSessionFlags(a, parts, qPosix);
141
+ parts.push("--add-dir", qPosix(cwd));
142
+ appendResumeFork(a, parts, qPosix);
143
+ appendName(a, parts, qPosix);
144
+ for (const d of plugins) {
145
+ parts.push("--plugin-dir", qPosix(d));
146
+ }
147
+ appendSlashCommand(a, parts, qPosix);
148
+ // Prefix uses raw cwd; buildCdPrefix does its own toPosixPath conversion.
149
+ return buildCdPrefix("posix", a.cwd) + parts.join(" ");
150
+ }
151
+ /**
152
+ * Emit `--session-id <uuid>` only when the launch needs to PRE-BIND a new
153
+ * UUID — i.e. fresh starts and forks. The resume path identifies the
154
+ * session via `--resume <uuid>`; combining `--session-id` with `--resume`
155
+ * (without `--fork-session`) is rejected by Claude CLI 2.1.x with
156
+ * "--session-id can only be used with --continue or --resume if
157
+ * --fork-session is also specified."
158
+ */
159
+ function appendSessionFlags(a, parts, q) {
160
+ if (a.resume && !a.fork)
161
+ return;
162
+ parts.push("--session-id", q(a.sessionUuid));
163
+ }
164
+ function appendResumeFork(a, parts, q) {
165
+ if (a.fork) {
166
+ // fork-session starts a new session derived from a parent; requires a parent UUID.
167
+ if (!a.parentSessionUuid) {
168
+ throw new Error("fork=true requires parentSessionUuid");
169
+ }
170
+ parts.push("--resume", q(a.parentSessionUuid), "--fork-session");
171
+ }
172
+ else if (a.resume) {
173
+ parts.push("--resume", q(a.sessionUuid));
174
+ }
175
+ }
176
+ function appendName(a, parts, q) {
177
+ if (a.title)
178
+ parts.push("--name", q(a.title));
179
+ }
180
+ function appendSlashCommand(a, parts, q) {
181
+ if (a.slashCommand)
182
+ parts.push(q(a.slashCommand));
183
+ }
184
+ // --- shell-specific escaping ---
185
+ //
186
+ // The per-shell quoters (qPs / qCmd / qPosix / toPosixPath) live in
187
+ // `shell-quote.ts` (extracted to keep this file under the LOC limit). They are
188
+ // re-exported here so `actions-substitute.ts` and other callers keep importing
189
+ // them from `./launcher.js`. The shell-escape discipline is the security
190
+ // boundary for command-template substitution (plan.md § 2.2).
191
+ export { qPs, qCmd, qPosix, toPosixPath } from "./shell-quote.js";
192
+ //# sourceMappingURL=launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/core/launcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { CommitArtifact, MergeState } from "./types.js";
2
+ import type { EventLookup } from "./iterate-record.js";
3
+ export interface CommitInput {
4
+ events: EventLookup;
5
+ prNumber: number | null;
6
+ prUrl: string | null;
7
+ merge: MergeState;
8
+ }
9
+ /**
10
+ * Re-apply a freshly-checked merge state to an ALREADY-BUILT commit artifact.
11
+ *
12
+ * Why this exists (internal code review, HIGH): the resolver's read-through
13
+ * cache is keyed on source-file revisions, and after finalization every one of
14
+ * those files goes quiescent. Returning the whole cached context therefore
15
+ * froze `detail.merge` at whatever it was when the run finished — in practice
16
+ * "pending" forever — and made the asymmetric TTL in merge-check.ts
17
+ * unreachable dead code. The commit artifact is the ONLY time-varying part of
18
+ * the response, so it is refreshed on every call while it is non-terminal.
19
+ *
20
+ * Returns the SAME object when nothing changed, so a caller can cheaply detect
21
+ * a no-op and avoid rebuilding the context.
22
+ */
23
+ export declare function refreshCommitMerge(artifact: CommitArtifact, merge: MergeState, marker: {
24
+ number: number;
25
+ url: string;
26
+ } | null): CommitArtifact;
27
+ export declare function buildCommitArtifact(input: CommitInput): CommitArtifact;
28
+ //# sourceMappingURL=artifacts-commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts-commit.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-commit.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAiB,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAYvD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAC7C,cAAc,CAmBhB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CAkDtE"}
@@ -0,0 +1,98 @@
1
+ /*
2
+ * core/mission-context/artifacts-commit.ts — the Commit descriptor
3
+ * (CONTRACT §6 row 6 + §5.3 merge semantics).
4
+ *
5
+ * Split from artifacts.ts to keep both files within the size rule. This is the
6
+ * only artifact whose content varies with TIME rather than with a source file,
7
+ * which is why `refreshCommitMerge` lives here and is re-applied on every
8
+ * resolver cache hit (see merge-refresh.ts).
9
+ */
10
+ // ---------------------------------------------------------------------------
11
+ // Commit
12
+ // ---------------------------------------------------------------------------
13
+ function mergeSentence(merge, prNumber) {
14
+ if (merge === "merged")
15
+ return "Delivered — merged into the main line.";
16
+ if (merge === "pending" && prNumber != null)
17
+ return `Waiting to be merged (PR #${prNumber}).`;
18
+ return "Committed; delivery not confirmed yet.";
19
+ }
20
+ /**
21
+ * Re-apply a freshly-checked merge state to an ALREADY-BUILT commit artifact.
22
+ *
23
+ * Why this exists (internal code review, HIGH): the resolver's read-through
24
+ * cache is keyed on source-file revisions, and after finalization every one of
25
+ * those files goes quiescent. Returning the whole cached context therefore
26
+ * froze `detail.merge` at whatever it was when the run finished — in practice
27
+ * "pending" forever — and made the asymmetric TTL in merge-check.ts
28
+ * unreachable dead code. The commit artifact is the ONLY time-varying part of
29
+ * the response, so it is refreshed on every call while it is non-terminal.
30
+ *
31
+ * Returns the SAME object when nothing changed, so a caller can cheaply detect
32
+ * a no-op and avoid rebuilding the context.
33
+ */
34
+ export function refreshCommitMerge(artifact, merge, marker) {
35
+ if (artifact.state !== "available" || !artifact.detail)
36
+ return artifact;
37
+ const prNumber = marker?.number ?? artifact.detail.prNumber;
38
+ const prUrl = marker?.url ?? artifact.detail.prUrl;
39
+ if (artifact.detail.merge === merge &&
40
+ artifact.detail.prNumber === prNumber &&
41
+ artifact.detail.prUrl === prUrl) {
42
+ return artifact;
43
+ }
44
+ const message = artifact.detail.message;
45
+ return {
46
+ ...artifact,
47
+ summary: message
48
+ ? `${message} ${mergeSentence(merge, prNumber)}`
49
+ : mergeSentence(merge, prNumber),
50
+ detail: { ...artifact.detail, merge, prNumber, prUrl },
51
+ };
52
+ }
53
+ export function buildCommitArtifact(input) {
54
+ const { events, prNumber, prUrl, merge } = input;
55
+ if (events.status === "unavailable") {
56
+ return {
57
+ kind: "commit",
58
+ label: "Commit",
59
+ state: "unavailable",
60
+ summary: null,
61
+ receipt: null,
62
+ note: "The run record could not be read.",
63
+ detail: null,
64
+ };
65
+ }
66
+ const run = events.status === "found" ? events.run : null;
67
+ // MEASURED: only 49 of 210 iterate rows carry a non-empty `commit`. An empty
68
+ // string is NOT a commit — treat it as absent rather than rendering a blank sha.
69
+ const commit = run?.commit && run.commit.trim().length > 0 ? run.commit.trim() : null;
70
+ if (!run) {
71
+ return {
72
+ kind: "commit",
73
+ label: "Commit",
74
+ state: "not_yet_created",
75
+ summary: null,
76
+ receipt: null,
77
+ detail: null,
78
+ };
79
+ }
80
+ const message = run.summary ?? run.description ?? null;
81
+ const shortSha = commit ? commit.slice(0, 7) : null;
82
+ const receipt = shortSha ?? (prNumber != null ? `PR #${prNumber}` : null);
83
+ // The run completed, so this artifact EXISTS even when the sha was not
84
+ // recorded — the delivery story is still real (a PR link, a merge state).
85
+ const state = commit || prNumber != null ? "available" : "not_yet_created";
86
+ if (state === "not_yet_created") {
87
+ return { kind: "commit", label: "Commit", state, summary: null, receipt: null, detail: null };
88
+ }
89
+ return {
90
+ kind: "commit",
91
+ label: "Commit",
92
+ state: "available",
93
+ summary: message ? `${message} ${mergeSentence(merge, prNumber)}` : mergeSentence(merge, prNumber),
94
+ receipt,
95
+ detail: { type: "commit", commit, message, prNumber, prUrl, merge },
96
+ };
97
+ }
98
+ //# sourceMappingURL=artifacts-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts-commit.js","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { DecisionRecord } from "./decisions.js";
2
+ import type { EventLookup } from "./iterate-record.js";
3
+ import type { DecisionsArtifact } from "./types-slice2.js";
4
+ export declare function buildDecisionsArtifact(record: DecisionRecord, events: EventLookup): DecisionsArtifact;
5
+ //# sourceMappingURL=artifacts-decisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts-decisions.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/artifacts-decisions.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAc3D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,iBAAiB,CAuFnB"}