@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,151 @@
1
+ /*
2
+ * core/mission-context/scenario.ts — the §4 ORDERED decision table.
3
+ *
4
+ * First match wins, in this exact order. The ordering is the fix for
5
+ * external-review GPT #9: a title alone is not evidence, and a leftover
6
+ * pointer must not out-rank a project that is genuinely in custom-actions mode.
7
+ *
8
+ * 1. custom_actions — a VALIDATED custom-actions project → HIDE the Mission
9
+ * tab entirely (only Files & Terminal).
10
+ * 2. iterate — a VALIDATED `iterate_active` pointer, or the persisted
11
+ * association once that pointer has been pruned.
12
+ * 3. pipeline — phaseTaskId + runId (run-config v2 phase_tasks).
13
+ * 4. campaign — a `campaign:<slug>` title AND a real campaign record.
14
+ * 5. iterate — a CORROBORATED `Run-ID` footer in this session's own
15
+ * transcript (run-id-recovery.ts). Last resort, and deliberately ranked
16
+ * below pipeline/campaign — see `recoverTranscriptRunId`.
17
+ * 6. plain — everything else (scenarios 1/4): narration, no rail.
18
+ *
19
+ * Two DECIDED asymmetries, both "fail toward showing the tab":
20
+ * - A MALFORMED actions file or a DUAL-MODE project (custom actions sitting
21
+ * alongside the builtin SDLC actions) falls back to SHOWING Mission.
22
+ * Hiding a useful tab because of a stale or ambiguous file is the worse
23
+ * failure (Review-2 GPT #12).
24
+ * - A `campaign:` TITLE without a matching record is NOT a campaign. Titles
25
+ * are user-editable; a record is evidence.
26
+ */
27
+ /** The four builtin action ids. Anything else is a user-defined custom action. */
28
+ export const BUILTIN_ACTION_IDS = new Set([
29
+ "new-task",
30
+ "new-pipeline",
31
+ "new-iterate",
32
+ "new-plain",
33
+ ]);
34
+ /**
35
+ * Is this project VALIDLY in custom-actions mode?
36
+ *
37
+ * Every clause must hold — the conjunction is the point. Presence of an
38
+ * actions.json is explicitly NOT sufficient (§4 precedence 1).
39
+ *
40
+ * S3 — the `actionIds: readonly string[]` type is a CLAIM, not a guarantee: the
41
+ * values cross a JSON boundary (`.shipwright-webui/actions.json`) where nothing
42
+ * enforces it. MEASURED on the real loader + a real temp project (S3 probe):
43
+ * `{"schemaVersion":1,"actions":[{"foo":"bar"}]}` parses fine, the loader reports
44
+ * `fromUser: true` with ZERO diagnostics because `JSON.parse` succeeded and
45
+ * `checkContractVersion` only WARNS, and `facts.ts` maps `a.id` to `undefined`.
46
+ * That produced a one-element id list matching no builtin — and this function
47
+ * returned true, HIDING the Mission tab for a project whose actions file is
48
+ * simply the wrong shape. Malformed and truncated files were already safe (they
49
+ * throw, so the loader falls back to the bundled default); valid-JSON-wrong-shape
50
+ * was the hole between "parses" and "means anything".
51
+ *
52
+ * The asymmetry is deliberate and load-bearing: hiding a whole tab is
53
+ * irreversible from the user's side and gives no error and no cause, so EVERY
54
+ * ambiguous input must resolve to SHOWING (CONTRACT §4.1, Review-2 GPT #12).
55
+ */
56
+ export function isValidatedCustomActions(inputs) {
57
+ const a = inputs.actions;
58
+ if (!a)
59
+ return false;
60
+ if (!a.fromUser)
61
+ return false; // bundled default → an ordinary SDLC project
62
+ if (a.hasDiagnostics)
63
+ return false; // malformed / partially parsed → ambiguous
64
+ if (!Array.isArray(a.actionIds))
65
+ return false; // not even a list → ambiguous
66
+ if (a.actionIds.length === 0)
67
+ return false; // nothing resolved → ambiguous
68
+ // A file whose entries carry no usable id is the wrong SHAPE, not a catalog of
69
+ // custom actions. We cannot tell what it declares, so we must not act on it.
70
+ if (!a.actionIds.every((id) => typeof id === "string" && id.length > 0))
71
+ return false;
72
+ // Dual-mode: a builtin SDLC action survives alongside the custom ones.
73
+ if (a.actionIds.some((id) => BUILTIN_ACTION_IDS.has(id)))
74
+ return false;
75
+ // ONLY a definitively ABSENT run-config permits the hide. `ok` means the
76
+ // project runs the pipeline too (dual mode); `unreadable` means we could not
77
+ // find out, and "we could not read it" is not "it is not there" — the same
78
+ // rule the actions catalog above already follows, where every read failure
79
+ // short-circuits to false.
80
+ if (inputs.runConfigStatus !== "missing")
81
+ return false;
82
+ return true;
83
+ }
84
+ export function detectScenario(inputs) {
85
+ const base = { runId: null, runIdSource: null, pointerInvalidReason: null };
86
+ // 1 — custom-actions wins over a leftover pointer, but ONLY when validated.
87
+ if (isValidatedCustomActions(inputs)) {
88
+ return { ...base, scenario: "custom_actions", missionTabVisible: false };
89
+ }
90
+ // 2 — a validated iterate pointer.
91
+ if (inputs.pointer.status === "ok") {
92
+ return {
93
+ scenario: "iterate",
94
+ missionTabVisible: true,
95
+ runId: inputs.pointer.pointer.runId,
96
+ runIdSource: "pointer",
97
+ pointerInvalidReason: null,
98
+ };
99
+ }
100
+ // An INVALID pointer is remembered so the artifacts can say `unavailable`
101
+ // honestly — but it does NOT make this an iterate session. Fall through.
102
+ const pointerInvalidReason = inputs.pointer.status === "invalid" ? inputs.pointer.reason : null;
103
+ // 2b — the pointer is GONE (pruned at Finalize) but this task was validly
104
+ // observed running an iterate. The association is server-written and
105
+ // server-trusted, so it identifies the run when the bridge no longer can.
106
+ // Deliberately ranked BELOW a live pointer (fresher, carries the worktree)
107
+ // and BELOW custom-actions, but ABOVE pipeline/campaign — a task that ran an
108
+ // iterate is an iterate, whatever else it later looks like.
109
+ //
110
+ // An INVALID pointer does NOT get this fallback: a pointer that failed
111
+ // validation is a signal something is wrong, and quietly resolving via a
112
+ // stored id would mask it.
113
+ if (inputs.pointer.status === "absent" && inputs.association?.runId) {
114
+ return {
115
+ scenario: "iterate",
116
+ missionTabVisible: true,
117
+ runId: inputs.association.runId,
118
+ runIdSource: "association",
119
+ pointerInvalidReason: null,
120
+ };
121
+ }
122
+ // 3 — pipeline phase task. Behavior unchanged until its native slice.
123
+ if (inputs.phaseTaskId && inputs.taskRunId) {
124
+ return { ...base, scenario: "pipeline", missionTabVisible: true, pointerInvalidReason };
125
+ }
126
+ // 4 — campaign, only with a real record behind the title.
127
+ if (inputs.campaignSlug && inputs.hasCampaignRecord) {
128
+ return { ...base, scenario: "campaign", missionTabVisible: true, pointerInvalidReason };
129
+ }
130
+ // 5 — the session's own commit footer, corroborated by this project's records.
131
+ // Same asymmetry as 2b: an INVALID pointer gets no fallback, because a pointer
132
+ // that failed validation is a signal something is wrong and quietly resolving
133
+ // the run another way would mask it.
134
+ //
135
+ // THIS is where the transcript is finally read — nowhere earlier. Rules 1-4
136
+ // have all missed by the time control reaches this line, so the scan is paid
137
+ // by exactly the sessions whose identity depends on it.
138
+ const transcriptRunId = inputs.pointer.status === "absent" ? (inputs.recoverTranscriptRunId?.() ?? null) : null;
139
+ if (transcriptRunId) {
140
+ return {
141
+ scenario: "iterate",
142
+ missionTabVisible: true,
143
+ runId: transcriptRunId,
144
+ runIdSource: "transcript",
145
+ pointerInvalidReason: null,
146
+ };
147
+ }
148
+ // 6 — plain / pure.
149
+ return { ...base, scenario: "plain", missionTabVisible: true, pointerInvalidReason };
150
+ }
151
+ //# sourceMappingURL=scenario.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../src/core/mission-context/scenario.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { EventLookup } from "./iterate-record.js";
2
+ import type { DecisionsArtifact, ReviewArtifact, TestsArtifact } from "./types-slice2.js";
3
+ import { type GitRunner } from "./worktree-roots.js";
4
+ /**
5
+ * Every file the Slice-2 artifacts depend on, for `computeSourceRev`.
6
+ *
7
+ * The run's COMMIT is deliberately absent: a sha is immutable, so the diff it
8
+ * produces cannot change. The files below can and do.
9
+ */
10
+ export declare function slice2RevPaths(projectRoot: string, runId: string): string[];
11
+ export interface Slice2Input {
12
+ projectRoot: string;
13
+ runId: string;
14
+ events: EventLookup;
15
+ /** The run's recorded commit sha, when it recorded one. */
16
+ commit: string | null;
17
+ git?: GitRunner;
18
+ }
19
+ export interface Slice2Result {
20
+ /** Tests · Review · Decisions, in CONTRACT §6 order. */
21
+ artifacts: [TestsArtifact, ReviewArtifact, DecisionsArtifact];
22
+ /**
23
+ * False when the response must NOT be cached.
24
+ *
25
+ * git's answer is not a statted file, so it cannot participate in
26
+ * `sourceRev`. A TRANSIENT git failure (index.lock, a GC race, a briefly
27
+ * unreachable object) would therefore pin Tests at `unavailable` until some
28
+ * unrelated source file happened to change. It degrades toward a visible
29
+ * "currently unavailable" rather than a false "no tests", so this is
30
+ * staleness and not a safety break — but it is trivially avoidable
31
+ * (internal code review, FIX-IF-CHEAP).
32
+ *
33
+ * `bad_commit` deliberately stays CACHEABLE: "this run recorded no commit" is
34
+ * a stable fact about the run, not a transient fault.
35
+ */
36
+ cacheable: boolean;
37
+ }
38
+ /** Tests · Review · Decisions, in CONTRACT §6 order. */
39
+ export declare function buildSlice2Artifacts(input: Slice2Input): Promise<Slice2Result>;
40
+ //# sourceMappingURL=slice2-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice2-sources.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-sources.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAiB3E;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC9D;;;;;;;;;;;;;OAaG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wDAAwD;AACxD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BpF"}
@@ -0,0 +1,80 @@
1
+ /*
2
+ * core/mission-context/slice2-sources.ts — one entry point that reads the three
3
+ * Slice-2 sources and returns their descriptors
4
+ * (campaign 2026-07-18-mission-artifacts).
5
+ *
6
+ * Exists so `resolver.ts` grows by a handful of lines rather than by three
7
+ * source reads: that file sits at the 300-LOC ceiling and this slice must not
8
+ * ratchet it.
9
+ *
10
+ * `slice2RevPaths` is the OTHER half of this module and it is not optional
11
+ * bookkeeping — it is the fix for the exact bug S1's review caught. The resolver
12
+ * caches on a fingerprint of its source files, so any input NOT listed in the
13
+ * rev is frozen at whatever it was when the entry was first built. A review
14
+ * marker written minutes after the run finished, or a regenerated traceability
15
+ * manifest, would never appear. Every file read below is therefore listed there,
16
+ * including the ones that do not exist yet (they fingerprint as `absent`, so
17
+ * their later CREATION changes the rev and invalidates the entry).
18
+ */
19
+ import { buildDecisionsArtifact } from "./artifacts-decisions.js";
20
+ import { buildReviewArtifact } from "./artifacts-slice2.js";
21
+ import { buildTestsArtifact } from "./artifacts-tests.js";
22
+ import { decisionDropsDir, dropFilePaths } from "./decision-drops.js";
23
+ import { readRunDecisionRecord, decisionLogPath } from "./decisions.js";
24
+ import { readReviewState, reviewStatePaths } from "./review-state.js";
25
+ import { readChangedTestFiles } from "./tests-diff.js";
26
+ import { readTraceabilityIndex, traceabilityPath } from "./traceability.js";
27
+ import { readTestEvidence, testEvidencePath } from "./test-evidence.js";
28
+ import { defaultGit } from "./worktree-roots.js";
29
+ /**
30
+ * Every file the Slice-2 artifacts depend on, for `computeSourceRev`.
31
+ *
32
+ * The run's COMMIT is deliberately absent: a sha is immutable, so the diff it
33
+ * produces cannot change. The files below can and do.
34
+ */
35
+ export function slice2RevPaths(projectRoot, runId) {
36
+ return [
37
+ traceabilityPath(projectRoot),
38
+ decisionLogPath(projectRoot),
39
+ // The drops DIRECTORY, present or not. Registering it while it does not yet
40
+ // exist is the load-bearing half: it fingerprints `absent`, so the moment an
41
+ // iterate's F3 CREATES it the rev changes and the cache lets go. Omitting it
42
+ // would rebuild the exact bug S1 shipped — a cache that could never refresh
43
+ // because its input was outside the rev.
44
+ decisionDropsDir(projectRoot),
45
+ // …and each matching drop FILE. A directory's mtime moves when an entry is
46
+ // added or removed, but NOT when a file's content is rewritten, so the
47
+ // directory alone would freeze an edited drop.
48
+ ...dropFilePaths(projectRoot, runId),
49
+ ...reviewStatePaths(projectRoot, runId),
50
+ testEvidencePath(projectRoot, runId),
51
+ ];
52
+ }
53
+ /** Tests · Review · Decisions, in CONTRACT §6 order. */
54
+ export async function buildSlice2Artifacts(input) {
55
+ const { projectRoot, runId, events, commit } = input;
56
+ const git = input.git ?? defaultGit;
57
+ // Only diff once the run actually completed — a mid-run git call is waste,
58
+ // and `buildTestsArtifact` reports `not_yet_created` for that case anyway.
59
+ const diff = events.status === "found"
60
+ ? await readChangedTestFiles(projectRoot, commit, git)
61
+ : { status: "unavailable", reason: "bad_commit" };
62
+ // The manifest is only needed to ENRICH real diff rows, so skip the 0.9 MB
63
+ // read entirely when there are none.
64
+ const needsManifest = diff.status === "ok" && diff.files.length > 0;
65
+ const index = needsManifest
66
+ ? readTraceabilityIndex(projectRoot)
67
+ : { status: "unavailable", reason: "missing" };
68
+ return {
69
+ artifacts: [
70
+ buildTestsArtifact({ events, diff, index, evidence: readTestEvidence(projectRoot, runId) }),
71
+ buildReviewArtifact(readReviewState(projectRoot, runId)),
72
+ // drops ∪ decision_log, deduplicated by run_id (the log wins). A run's ADR
73
+ // exists ONLY as a drop between its F3 and the next release aggregation,
74
+ // which on this repo is the state of every unreleased run.
75
+ buildDecisionsArtifact(readRunDecisionRecord(projectRoot, runId), events),
76
+ ],
77
+ cacheable: !(diff.status === "unavailable" && diff.reason === "git_failed"),
78
+ };
79
+ }
80
+ //# sourceMappingURL=slice2-sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice2-sources.js","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAa;IAC/D,OAAO;QACL,gBAAgB,CAAC,WAAW,CAAC;QAC7B,eAAe,CAAC,WAAW,CAAC;QAC5B,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,yCAAyC;QACzC,gBAAgB,CAAC,WAAW,CAAC;QAC7B,2EAA2E;QAC3E,uEAAuE;QACvE,+CAA+C;QAC/C,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC;QACpC,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;QACvC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC;AA+BD,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAkB;IAC3D,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC;IAEpC,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,OAAO;QACvB,CAAC,CAAC,MAAM,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC;QACtD,CAAC,CAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAY,CAAC;IAEjE,2EAA2E;IAC3E,qCAAqC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,aAAa;QACzB,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC;QACpC,CAAC,CAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAY,CAAC;IAE5D,OAAO;QACL,SAAS,EAAE;YACT,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3F,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACxD,2EAA2E;YAC3E,yEAAyE;YACzE,2DAA2D;YAC3D,sBAAsB,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC;SAC1E;QACD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;KAC5E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { EventLookup } from "./iterate-record.js";
2
+ import type { TraceabilityIndex } from "./traceability.js";
3
+ import type { ReviewRow, TestFrRef } from "./types-slice2.js";
4
+ /** A completed run that recorded a commit — the post-Finalize happy path. */
5
+ export declare const FOUND: EventLookup;
6
+ /** The log is fine; this run is simply not in it yet (the normal mid-run state). */
7
+ export declare const ABSENT: EventLookup;
8
+ /** The log itself could not be read — an integrity fault, not an absence. */
9
+ export declare const UNREADABLE: EventLookup;
10
+ export declare const NO_INDEX: TraceabilityIndex;
11
+ export declare function indexWith(entries: Record<string, {
12
+ layers: string[];
13
+ frs: TestFrRef[];
14
+ }>): TraceabilityIndex;
15
+ /** A review row defaulting to `unavailable` — override only what a case pins. */
16
+ export declare function reviewRow(over: Partial<ReviewRow> & Pick<ReviewRow, "reviewType">): ReviewRow;
17
+ //# sourceMappingURL=slice2-test-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice2-test-fixtures.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-test-fixtures.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9D,6EAA6E;AAC7E,eAAO,MAAM,KAAK,EAAE,WAqBnB,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,MAAM,EAAE,WAA8C,CAAC;AAEpE,6EAA6E;AAC7E,eAAO,MAAM,UAAU,EAAE,WAAuC,CAAC;AAEjE,eAAO,MAAM,QAAQ,EAAE,iBAAgE,CAAC;AAExF,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,GAC9D,iBAAiB,CAOnB;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GACvD,SAAS,CAcX"}
@@ -0,0 +1,61 @@
1
+ /*
2
+ * slice2-test-fixtures.ts — shared fixtures for the Slice-2 artifact suites.
3
+ *
4
+ * Test-only helper (sibling of `external/mission-context/test-harness.ts`).
5
+ * Extracted when the combined suite crossed the 300-LOC rule; the Tests suite
6
+ * and the Review/Decisions suite both need the same `EventLookup` shapes and
7
+ * duplicating a 20-line projection in two files invites them to drift apart.
8
+ */
9
+ /** A completed run that recorded a commit — the post-Finalize happy path. */
10
+ export const FOUND = {
11
+ status: "found",
12
+ mtimeMs: 1,
13
+ run: {
14
+ runId: "iterate-x",
15
+ eventId: null,
16
+ ts: null,
17
+ source: "iterate",
18
+ intent: null,
19
+ changeType: null,
20
+ description: null,
21
+ summary: "Did the thing",
22
+ commit: "66e275ae",
23
+ specImpact: null,
24
+ affectedFrs: [],
25
+ newFrs: [],
26
+ tests: null,
27
+ phaseTimings: null,
28
+ campaign: null,
29
+ subIterateId: null,
30
+ },
31
+ };
32
+ /** The log is fine; this run is simply not in it yet (the normal mid-run state). */
33
+ export const ABSENT = { status: "absent", mtimeMs: 0 };
34
+ /** The log itself could not be read — an integrity fault, not an absence. */
35
+ export const UNREADABLE = { status: "unavailable" };
36
+ export const NO_INDEX = { status: "unavailable", reason: "missing" };
37
+ export function indexWith(entries) {
38
+ return {
39
+ status: "ok",
40
+ generatedAt: null,
41
+ truncated: false,
42
+ byFile: new Map(Object.entries(entries).map(([k, v]) => [k, { ...v, caseCount: 1 }])),
43
+ };
44
+ }
45
+ /** A review row defaulting to `unavailable` — override only what a case pins. */
46
+ export function reviewRow(over) {
47
+ return {
48
+ status: "unavailable",
49
+ findingsCount: null,
50
+ findings: [],
51
+ provider: null,
52
+ completedAt: null,
53
+ disposition: null,
54
+ note: null,
55
+ parseStatus: null,
56
+ source: "marker",
57
+ truncated: false,
58
+ ...over,
59
+ };
60
+ }
61
+ //# sourceMappingURL=slice2-test-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice2-test-fixtures.js","sourceRoot":"","sources":["../../../src/core/mission-context/slice2-test-fixtures.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,KAAK,GAAgB;IAChC,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,CAAC;IACV,GAAG,EAAE;QACH,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,MAAM,GAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,UAAU,GAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAsB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAExF,MAAM,UAAU,SAAS,CACvB,OAA+D;IAE/D,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACtF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CACvB,IAAwD;IAExD,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,KAAK;QAChB,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { type CampaignFact } from "./campaign-artifacts.js";
2
+ import { type PipelineFact } from "./pipeline-artifacts.js";
3
+ import type { ArtifactDescriptor, MissionContext, MissionScenario } from "./types.js";
4
+ interface MintCtx {
5
+ taskId: string;
6
+ sessionUuid: string;
7
+ projectRoot: string;
8
+ /** Binding value for the id — the pipeline runId or the campaign slug. */
9
+ ref: string;
10
+ rev: string;
11
+ }
12
+ /** Paths whose mtime a pipeline response depends on (absent ones included). */
13
+ export declare function pipelineRevPaths(projectRoot: string): string[];
14
+ export declare function buildPipelineArtifacts(ctx: Omit<MintCtx, "ref">, fact: PipelineFact): ArtifactDescriptor[];
15
+ /** Paths whose mtime a campaign response depends on (absent ones included). */
16
+ export declare function campaignRevPaths(projectRoot: string, slug: string | null): string[];
17
+ export declare function buildCampaignArtifacts(ctx: Omit<MintCtx, "ref">, slug: string, fact: CampaignFact): ArtifactDescriptor[];
18
+ export interface NonIterateInput {
19
+ taskId: string;
20
+ sessionUuid: string;
21
+ projectRoot: string;
22
+ scenario: MissionScenario;
23
+ missionTabVisible: boolean;
24
+ /** Sources every scenario shares (the adopted spec + the event log). */
25
+ baseRevPaths: string[];
26
+ pipeline: PipelineFact | null | undefined;
27
+ campaign: CampaignFact | null | undefined;
28
+ campaignSlug: string | null;
29
+ }
30
+ /**
31
+ * Build the context for every scenario that is NOT a resolved iterate.
32
+ *
33
+ * `pipeline` and `campaign` are scenarios 3 and 5; `plain` and `custom_actions`
34
+ * carry no artifact rail at all and return the empty context unchanged.
35
+ *
36
+ * An ABSENT fact (an older caller that never gathered one) is treated as
37
+ * `unavailable` rather than skipped — the artifacts then render "currently
38
+ * unavailable", which is the honest reading of "nobody told us", and keeps a
39
+ * wiring mistake visible instead of silently producing an empty rail.
40
+ */
41
+ export declare function buildNonIterateContext(input: NonIterateInput): MissionContext;
42
+ export {};
43
+ //# sourceMappingURL=slice3-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice3-sources.d.ts","sourceRoot":"","sources":["../../../src/core/mission-context/slice3-sources.ts"],"names":[],"mappings":"AA8BA,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAiD,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAItF,UAAU,OAAO;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAiDD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9D;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EACzB,IAAI,EAAE,YAAY,GACjB,kBAAkB,EAAE,CAatB;AAMD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAUnF;AAmCD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GACjB,kBAAkB,EAAE,CAmBtB;AAMD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAyC7E"}
@@ -0,0 +1,192 @@
1
+ /*
2
+ * core/mission-context/slice3-sources.ts — path resolution + document minting
3
+ * for the native pipeline and campaign artifacts (S3).
4
+ *
5
+ * Same discipline as the iterate path (§5.1c): every document path is built from
6
+ * the KNOWN LAYOUT, never from a producer- or title-supplied sub-path, every
7
+ * segment is re-checked against the strict slug grammar, and the read itself
8
+ * goes through `resolveFirstDoc` → `pathGuard` + `realPathGuard`. An id is
9
+ * minted ONLY for a document that actually resolved, which is what keeps AC3's
10
+ * "no dead links" true by construction rather than by inspection.
11
+ *
12
+ * The campaign SLUG used for path building comes from the matched campaign
13
+ * RECORD (a real directory name the server itself read), never from the task
14
+ * title the user can edit.
15
+ *
16
+ * Cache note: unlike the iterate path these contexts are NOT cached. The iterate
17
+ * cache exists because that path reads a 0.9 MB traceability manifest, a 0.6 MB
18
+ * decision log and shells out to git; a pipeline or campaign resolve reads a
19
+ * handful of small JSON/Markdown files. Not caching means run-config and
20
+ * `status.json` — both of which change DURING a run — can never be served stale,
21
+ * which is the failure mode this campaign has already had to fix once.
22
+ */
23
+ import path from "node:path";
24
+ import { mintDocId } from "./doc-ids.js";
25
+ import { isSafeSlug } from "./pointer.js";
26
+ import { docFingerprint } from "./resolver-parts.js";
27
+ import { resolveFirstDoc } from "./worktree-roots.js";
28
+ import { SPEC_REL_PARTS } from "./fold-map.js";
29
+ import { buildCampaignBriefArtifact, buildCampaignProgressArtifact, buildRunbookArtifact, buildSubIterateArtifact, selectActiveStep, } from "./campaign-artifacts.js";
30
+ import { buildPhaseArtifact, buildPipelineSpecArtifact } from "./pipeline-artifacts.js";
31
+ import { computeSourceRev, emptyContext } from "./resolver-parts.js";
32
+ const CAMPAIGNS_BASE = [".shipwright", "planning", "iterate", "campaigns"];
33
+ /**
34
+ * Resolve ONE known-layout document and mint its id.
35
+ *
36
+ * `denied` is kept SEPARATE from "not found": a guard refusal means the file is
37
+ * there and we would not read it, which is an integrity signal the rail must
38
+ * show, while a missing file is an ordinary absence that hides. Returning both
39
+ * from one call also keeps this to a single filesystem resolve.
40
+ */
41
+ function resolveDoc(ctx, constParts, varParts) {
42
+ // ONLY the variable segments are grammar-checked. The constant layout prefix
43
+ // is a literal in this file — and `.shipwright` would fail the check anyway,
44
+ // since the id grammar forbids a leading dot precisely so that no
45
+ // caller-supplied segment can ever be a dot-segment.
46
+ if (varParts.length === 0 || !varParts.every((p) => isSafeSlug(p))) {
47
+ return { doc: null, denied: false };
48
+ }
49
+ const relParts = [...constParts, ...varParts];
50
+ const found = resolveFirstDoc(ctx.projectRoot, [relParts]);
51
+ if (!found.ok)
52
+ return { doc: null, denied: found.reason === "denied" };
53
+ return {
54
+ doc: {
55
+ documentId: mintDocId({
56
+ t: ctx.taskId,
57
+ s: ctx.sessionUuid,
58
+ p: ctx.projectRoot,
59
+ r: ctx.ref,
60
+ root: ctx.projectRoot,
61
+ rel: relParts.join("/"),
62
+ rev: ctx.rev,
63
+ f: docFingerprint(path.join(ctx.projectRoot, ...relParts)),
64
+ }),
65
+ title: relParts[relParts.length - 1],
66
+ },
67
+ denied: false,
68
+ };
69
+ }
70
+ // ---------------------------------------------------------------------------
71
+ // Pipeline (scenario 3)
72
+ // ---------------------------------------------------------------------------
73
+ /** Paths whose mtime a pipeline response depends on (absent ones included). */
74
+ export function pipelineRevPaths(projectRoot) {
75
+ return [
76
+ path.join(projectRoot, "shipwright_run_config.json"),
77
+ path.join(projectRoot, ...SPEC_REL_PARTS),
78
+ ];
79
+ }
80
+ export function buildPipelineArtifacts(ctx, fact) {
81
+ const ref = fact.status === "unavailable" ? "pipeline" : fact.runId;
82
+ // The adopted spec is entirely constant layout — no variable segment at all.
83
+ const spec = resolveDoc({ ...ctx, ref }, SPEC_REL_PARTS.slice(0, -1), SPEC_REL_PARTS.slice(-1));
84
+ return [
85
+ buildPhaseArtifact(fact),
86
+ buildPipelineSpecArtifact({
87
+ documentId: spec.doc?.documentId ?? null,
88
+ title: spec.doc?.title ?? null,
89
+ denied: spec.denied,
90
+ }),
91
+ ];
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // Campaign (scenario 5)
95
+ // ---------------------------------------------------------------------------
96
+ /** Paths whose mtime a campaign response depends on (absent ones included). */
97
+ export function campaignRevPaths(projectRoot, slug) {
98
+ if (!slug || !isSafeSlug(slug))
99
+ return [];
100
+ const dir = path.join(projectRoot, ...CAMPAIGNS_BASE, slug);
101
+ return [
102
+ path.join(dir, "campaign.md"),
103
+ path.join(dir, "RUNBOOK.md"),
104
+ // status.json changes on EVERY unit transition. Registering it — present or
105
+ // not — is what lets a live campaign's progress actually move.
106
+ path.join(dir, "status.json"),
107
+ ];
108
+ }
109
+ /**
110
+ * Take a campaign-store `specPath` (project-root-relative, POSIX) and return the
111
+ * segments BELOW the constant campaigns prefix, or null if it is unusable.
112
+ *
113
+ * The path must land at `campaigns/<thisSlug>/sub-iterates/<file>` EXACTLY.
114
+ *
115
+ * Pinning it to `thisSlug` is the load-bearing part (external code review,
116
+ * openai MEDIUM). A prefix check that only required "somewhere under
117
+ * `campaigns/`" would let one campaign's record point THIS campaign's "current
118
+ * unit spec" at ANOTHER campaign's document — precisely the campaign-level /
119
+ * unit-level confusion this slice exists to prevent, and it would look entirely
120
+ * normal on screen. Requiring `sub-iterates` likewise stops a record from
121
+ * dressing the RUNBOOK up as a unit's brief.
122
+ *
123
+ * The store already existence- and containment-checked the value; re-checking
124
+ * here matters because a guard that only runs at the producer stops running the
125
+ * day someone adds a second producer.
126
+ */
127
+ function specPathParts(specPath, slug) {
128
+ if (typeof specPath !== "string" || specPath.length === 0)
129
+ return null;
130
+ const parts = specPath.replace(/\\/g, "/").split("/").filter((p) => p.length > 0);
131
+ const expected = [...CAMPAIGNS_BASE, slug, "sub-iterates"];
132
+ // Exactly one segment (the filename) may follow the fixed prefix.
133
+ if (parts.length !== expected.length + 1)
134
+ return null;
135
+ for (let i = 0; i < expected.length; i++) {
136
+ if (parts[i] !== expected[i])
137
+ return null;
138
+ }
139
+ const rest = parts.slice(CAMPAIGNS_BASE.length);
140
+ return rest.every((p) => isSafeSlug(p)) ? rest : null;
141
+ }
142
+ export function buildCampaignArtifacts(ctx, slug, fact) {
143
+ const mint = { ...ctx, ref: slug };
144
+ const safeSlug = isSafeSlug(slug) ? slug : null;
145
+ const brief = safeSlug ? resolveDoc(mint, CAMPAIGNS_BASE, [safeSlug, "campaign.md"]).doc : null;
146
+ const runbook = safeSlug ? resolveDoc(mint, CAMPAIGNS_BASE, [safeSlug, "RUNBOOK.md"]).doc : null;
147
+ const picked = fact.status === "ok" ? selectActiveStep(fact.campaign.steps) : null;
148
+ // Pinned to `safeSlug`, not the raw slug: an unusable slug must not fall back
149
+ // to matching whatever the record happens to name.
150
+ const subParts = picked && safeSlug ? specPathParts(picked.step.specPath, safeSlug) : null;
151
+ const subDoc = subParts ? resolveDoc(mint, CAMPAIGNS_BASE, subParts).doc : null;
152
+ return [
153
+ buildCampaignBriefArtifact(fact, brief),
154
+ buildRunbookArtifact(fact, runbook),
155
+ buildCampaignProgressArtifact(fact, picked?.step.id ?? null),
156
+ buildSubIterateArtifact(fact, subDoc),
157
+ ];
158
+ }
159
+ /**
160
+ * Build the context for every scenario that is NOT a resolved iterate.
161
+ *
162
+ * `pipeline` and `campaign` are scenarios 3 and 5; `plain` and `custom_actions`
163
+ * carry no artifact rail at all and return the empty context unchanged.
164
+ *
165
+ * An ABSENT fact (an older caller that never gathered one) is treated as
166
+ * `unavailable` rather than skipped — the artifacts then render "currently
167
+ * unavailable", which is the honest reading of "nobody told us", and keeps a
168
+ * wiring mistake visible instead of silently producing an empty rail.
169
+ */
170
+ export function buildNonIterateContext(input) {
171
+ const { scenario, projectRoot, missionTabVisible } = input;
172
+ if (scenario === "pipeline") {
173
+ const fact = input.pipeline ?? { status: "unavailable" };
174
+ const rev = computeSourceRev([...input.baseRevPaths, ...pipelineRevPaths(projectRoot)], [scenario, fact.status, input.taskId]);
175
+ return {
176
+ ...emptyContext(scenario, missionTabVisible, rev),
177
+ runId: fact.status === "unavailable" ? null : fact.runId,
178
+ artifacts: buildPipelineArtifacts({ taskId: input.taskId, sessionUuid: input.sessionUuid, projectRoot, rev }, fact),
179
+ };
180
+ }
181
+ if (scenario === "campaign" && input.campaignSlug) {
182
+ const fact = input.campaign ?? { status: "unavailable" };
183
+ const rev = computeSourceRev([...input.baseRevPaths, ...campaignRevPaths(projectRoot, input.campaignSlug)], [scenario, fact.status, input.taskId]);
184
+ return {
185
+ ...emptyContext(scenario, missionTabVisible, rev),
186
+ artifacts: buildCampaignArtifacts({ taskId: input.taskId, sessionUuid: input.sessionUuid, projectRoot, rev }, input.campaignSlug, fact),
187
+ };
188
+ }
189
+ // plain / pure / custom_actions — narration + stage only, no rail (§4.5).
190
+ return emptyContext(scenario, missionTabVisible, computeSourceRev(input.baseRevPaths, [scenario]));
191
+ }
192
+ //# sourceMappingURL=slice3-sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice3-sources.js","sourceRoot":"","sources":["../../../src/core/mission-context/slice3-sources.ts"],"names":[],"mappings":"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"}