@svenroth-ai/shipwright 0.28.0 → 0.29.1

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 (306) hide show
  1. package/client/dist/apple-touch-icon.png +0 -0
  2. package/client/dist/assets/{EmbeddedTerminal-4xgNUBUu.js → EmbeddedTerminal-BXosRYLy.js} +30 -30
  3. package/client/dist/assets/{abnfDiagram-VRR7QNED-BdCNbaqc.js → abnfDiagram-VCTEODGH-BGxuVEiU.js} +1 -1
  4. package/client/dist/assets/arc-o82bcJs8.js +1 -0
  5. package/client/dist/assets/architectureDiagram-5GKGNRK7-CaeUIM7e.js +36 -0
  6. package/client/dist/assets/blockDiagram-I7D4REHJ-DtWpTjgT.js +129 -0
  7. package/client/dist/assets/c4Diagram-7LVT6UL2-sJULbaUv.js +38 -0
  8. package/client/dist/assets/channel-CLBQbfQb.js +1 -0
  9. package/client/dist/assets/{chunk-2Q5K7J3B-4N6AnmBJ.js → chunk-2Q5K7J3B-CPeH4xHb.js} +1 -1
  10. package/client/dist/assets/{chunk-5VM5RSS4-Bwd7rtD3.js → chunk-5VM5RSS4-DxiKB3qZ.js} +1 -1
  11. package/client/dist/assets/{chunk-32BRIVSS-Cs67LiCy.js → chunk-F27PBJKO-B8V1zhCX.js} +1 -1
  12. package/client/dist/assets/{chunk-EX3LRPZG-CQqGfptD.js → chunk-IMKFNOWR-BtXet829.js} +5 -5
  13. package/client/dist/assets/{chunk-JWPE2WC7-ClvKd4PN.js → chunk-JWPE2WC7-BaQYKssR.js} +1 -1
  14. package/client/dist/assets/chunk-POPQ4Y6H-I1x_vfH3.js +1 -0
  15. package/client/dist/assets/{chunk-MOJQB5TN-Cwvj8GE1.js → chunk-SVP7TREG-Bvt8jrSp.js} +1 -1
  16. package/client/dist/assets/{chunk-V7JOEXUC-CYFfa4PY.js → chunk-TICWLB2K--9ywNq1F.js} +1 -1
  17. package/client/dist/assets/{chunk-XXDRQBXY-BQAZ6Our.js → chunk-XXDRQBXY-DrIyrBs1.js} +1 -1
  18. package/client/dist/assets/classDiagram-ZZMXUADV-D8z-o3xu.js +1 -0
  19. package/client/dist/assets/classDiagram-v2-VYDZK3BY-D8z-o3xu.js +1 -0
  20. package/client/dist/assets/{cose-bilkent-JH36ORCC-C76Yia6h.js → cose-bilkent-JH36ORCC-DISm8_p0.js} +1 -1
  21. package/client/dist/assets/{cynefin-VYW2F7L2-pJe7rdTi.js → cynefin-OW5HDTMX-wyDjqucU.js} +3 -3
  22. package/client/dist/assets/{cynefinDiagram-TSTJHNR4-EeHQ7dYV.js → cynefinDiagram-5FMLGOSQ-CN-IKDQ6.js} +1 -1
  23. package/client/dist/assets/dagre-GXQ25YYZ-QY0m5eSL.js +4 -0
  24. package/client/dist/assets/diagram-S7CK7UJ4-DhjaAe2g.js +30 -0
  25. package/client/dist/assets/diagram-UQ7AKVKN-D-3R3axg.js +41 -0
  26. package/client/dist/assets/{diagram-FQU43EPY-DW_-leqw.js → diagram-VSXAHHWV-BxXEtjRu.js} +2 -2
  27. package/client/dist/assets/{diagram-G47NLZAW-C_hsLD4u.js → diagram-VX7I27RA-DkbXkJpd.js} +1 -1
  28. package/client/dist/assets/{diagram-NH7WQ7WH-CbeQuO_f.js → diagram-Z3DM3KII-DQGRD9gQ.js} +1 -1
  29. package/client/dist/assets/{ebnfDiagram-CCIWWBDH-B8Z8WHF6.js → ebnfDiagram-PWID7BFC-C_XxskCm.js} +1 -1
  30. package/client/dist/assets/erDiagram-RLTQ6QDP-BhBsYQ7c.js +99 -0
  31. package/client/dist/assets/flowDiagram-HODETNUW-D7fXEPrM.js +168 -0
  32. package/client/dist/assets/{ganttDiagram-NO4QXBWP-K3X0DYBa.js → ganttDiagram-EL5Y4UJY-Bwf8EtWr.js} +4 -4
  33. package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-B2SEx0xa.js → gitGraphDiagram-WWUBYQGX-C3_ixsOl.js} +1 -1
  34. package/client/dist/assets/index-DWrPE3aq.css +1 -0
  35. package/client/dist/assets/index-DwRlIUrK.js +924 -0
  36. package/client/dist/assets/infoDiagram-27XIBGKW-BpcHmgOL.js +2 -0
  37. package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-CrN7QJzt.js → ishikawaDiagram-5VMMS53U-DzSGmhT5.js} +4 -4
  38. package/client/dist/assets/{journeyDiagram-5HDEW3XC-XHIsl7rM.js → journeyDiagram-3NMN7TZE-CT1CrVQO.js} +2 -2
  39. package/client/dist/assets/{kanban-definition-HUTT4EX6-A6HJqHw7.js → kanban-definition-UXKFOSKX-N1CNMAOm.js} +8 -8
  40. package/client/dist/assets/katex-C5jXJg4s.js +257 -0
  41. package/client/dist/assets/layout-CR8gdfo4.js +1 -0
  42. package/client/dist/assets/{linear-D1vF9IQB.js → linear-CfLRjQgX.js} +1 -1
  43. package/client/dist/assets/mermaid.core-Bnqt31Q7.js +312 -0
  44. package/client/dist/assets/{mindmap-definition-LN4V7U3C-CxRkUj6Z.js → mindmap-definition-YA3MSWOX-Brc-v1M4.js} +2 -2
  45. package/client/dist/assets/{pegDiagram-2B236MQR-Bs9dp-8a.js → pegDiagram-XKGWAZYB-D8jUV01U.js} +1 -1
  46. package/client/dist/assets/{pieDiagram-ENE6RG2P-DBWILzB8.js → pieDiagram-E7YTZNPT-BiSkIsrz.js} +3 -3
  47. package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-DrCVJJx6.js → quadrantDiagram-AXDQQJYC-CJetqQxd.js} +1 -1
  48. package/client/dist/assets/{railroadDiagram-RFXS5EU6-BdPW2dNf.js → railroadDiagram-O6MQD6OU-DTTtZpGO.js} +1 -1
  49. package/client/dist/assets/{requirementDiagram-TGXJPOKE-Bj_g3tC5.js → requirementDiagram-BXWQKSXE-meFCoLtR.js} +5 -5
  50. package/client/dist/assets/{sankeyDiagram-HTMAVEWB-BGL9NnsS.js → sankeyDiagram-P5KCCOFB-BR9eN4Do.js} +4 -4
  51. package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-DEirxTZY.js → sequenceDiagram-WJ2MYXX4-BdVzFsCC.js} +1 -1
  52. package/client/dist/assets/{sizeCapture-X5ZJPWSS-BtLrvrea.js → sizeCapture-INFHLROL-CZoZ7r-1.js} +1 -1
  53. package/client/dist/assets/stateDiagram-D77RDMKH-Cmc-iYtm.js +1 -0
  54. package/client/dist/assets/stateDiagram-v2-MP3YSRHH-Cj-hQ4qB.js +1 -0
  55. package/client/dist/assets/swimlanes-42K2YHIH-DN4MssUX.js +1 -0
  56. package/client/dist/assets/swimlanesDiagram-VR7AAH4N-DFxrYFKF.js +8 -0
  57. package/client/dist/assets/{timeline-definition-FHXFAJF6-CnBKJtD_.js → timeline-definition-24CTP7MA-pxxqlxwt.js} +3 -3
  58. package/client/dist/assets/{vennDiagram-L72KCM5P-BYmiJYoh.js → vennDiagram-4TSXK5OY-DiItNcze.js} +5 -5
  59. package/client/dist/assets/{wardleyDiagram-EHGQE667-DU7vW8q3.js → wardleyDiagram-VM6X3IG4-Dfvub75z.js} +1 -1
  60. package/client/dist/assets/xychartDiagram-S5SC5T6Z-Bx83X515.js +7 -0
  61. package/client/dist/favicon-16.png +0 -0
  62. package/client/dist/favicon-32.png +0 -0
  63. package/client/dist/icon-192.png +0 -0
  64. package/client/dist/icon-512.png +0 -0
  65. package/client/dist/icon-maskable-512.png +0 -0
  66. package/client/dist/index.html +11 -2
  67. package/client/dist/manifest.json +13 -0
  68. package/package.json +2 -2
  69. package/server/dist/config.d.ts.map +1 -1
  70. package/server/dist/config.js +7 -2
  71. package/server/dist/config.js.map +1 -1
  72. package/server/dist/core/adopt-scan-findings.d.ts +12 -0
  73. package/server/dist/core/adopt-scan-findings.d.ts.map +1 -0
  74. package/server/dist/core/adopt-scan-findings.js +96 -0
  75. package/server/dist/core/adopt-scan-findings.js.map +1 -0
  76. package/server/dist/core/adopt-scan.d.ts +49 -0
  77. package/server/dist/core/adopt-scan.d.ts.map +1 -0
  78. package/server/dist/core/adopt-scan.js +201 -0
  79. package/server/dist/core/adopt-scan.js.map +1 -0
  80. package/server/dist/core/custom-profile-command-policy.d.ts +6 -0
  81. package/server/dist/core/custom-profile-command-policy.d.ts.map +1 -0
  82. package/server/dist/core/custom-profile-command-policy.js +110 -0
  83. package/server/dist/core/custom-profile-command-policy.js.map +1 -0
  84. package/server/dist/core/custom-profile-loader.d.ts +34 -0
  85. package/server/dist/core/custom-profile-loader.d.ts.map +1 -0
  86. package/server/dist/core/custom-profile-loader.js +225 -0
  87. package/server/dist/core/custom-profile-loader.js.map +1 -0
  88. package/server/dist/core/preview-child-lifecycle.d.ts +7 -2
  89. package/server/dist/core/preview-child-lifecycle.d.ts.map +1 -1
  90. package/server/dist/core/preview-child-lifecycle.js +17 -5
  91. package/server/dist/core/preview-child-lifecycle.js.map +1 -1
  92. package/server/dist/core/preview-session-manager.d.ts +1 -0
  93. package/server/dist/core/preview-session-manager.d.ts.map +1 -1
  94. package/server/dist/core/preview-session-manager.js +2 -2
  95. package/server/dist/core/preview-session-manager.js.map +1 -1
  96. package/server/dist/core/project-actions-loader.d.ts +13 -0
  97. package/server/dist/core/project-actions-loader.d.ts.map +1 -1
  98. package/server/dist/core/project-actions-loader.js +28 -6
  99. package/server/dist/core/project-actions-loader.js.map +1 -1
  100. package/server/dist/core/project-data-dir.d.ts +41 -0
  101. package/server/dist/core/project-data-dir.d.ts.map +1 -0
  102. package/server/dist/core/project-data-dir.js +64 -0
  103. package/server/dist/core/project-data-dir.js.map +1 -0
  104. package/server/dist/core/project-data-migrate.d.ts +14 -0
  105. package/server/dist/core/project-data-migrate.d.ts.map +1 -0
  106. package/server/dist/core/project-data-migrate.js +94 -0
  107. package/server/dist/core/project-data-migrate.js.map +1 -0
  108. package/server/dist/core/project-manager.d.ts.map +1 -1
  109. package/server/dist/core/project-manager.js +9 -10
  110. package/server/dist/core/project-manager.js.map +1 -1
  111. package/server/dist/core/session-file/access.d.ts +26 -0
  112. package/server/dist/core/session-file/access.d.ts.map +1 -0
  113. package/server/dist/core/session-file/access.js +143 -0
  114. package/server/dist/core/session-file/access.js.map +1 -0
  115. package/server/dist/core/session-file/asset-access.d.ts +15 -0
  116. package/server/dist/core/session-file/asset-access.d.ts.map +1 -0
  117. package/server/dist/core/session-file/asset-access.js +141 -0
  118. package/server/dist/core/session-file/asset-access.js.map +1 -0
  119. package/server/dist/core/session-file/evidence.d.ts +25 -0
  120. package/server/dist/core/session-file/evidence.d.ts.map +1 -0
  121. package/server/dist/core/session-file/evidence.js +201 -0
  122. package/server/dist/core/session-file/evidence.js.map +1 -0
  123. package/server/dist/core/session-file/probe.d.ts +16 -0
  124. package/server/dist/core/session-file/probe.d.ts.map +1 -0
  125. package/server/dist/core/session-file/probe.js +63 -0
  126. package/server/dist/core/session-file/probe.js.map +1 -0
  127. package/server/dist/core/session-file/safe-read.d.ts +33 -0
  128. package/server/dist/core/session-file/safe-read.d.ts.map +1 -0
  129. package/server/dist/core/session-file/safe-read.js +103 -0
  130. package/server/dist/core/session-file/safe-read.js.map +1 -0
  131. package/server/dist/core/session-file/sensitive.d.ts +5 -0
  132. package/server/dist/core/session-file/sensitive.d.ts.map +1 -0
  133. package/server/dist/core/session-file/sensitive.js +52 -0
  134. package/server/dist/core/session-file/sensitive.js.map +1 -0
  135. package/server/dist/core/session-info/collect.d.ts +70 -0
  136. package/server/dist/core/session-info/collect.d.ts.map +1 -0
  137. package/server/dist/core/session-info/collect.js +248 -0
  138. package/server/dist/core/session-info/collect.js.map +1 -0
  139. package/server/dist/core/session-info/line-scan.d.ts +20 -0
  140. package/server/dist/core/session-info/line-scan.d.ts.map +1 -0
  141. package/server/dist/core/session-info/line-scan.js +109 -0
  142. package/server/dist/core/session-info/line-scan.js.map +1 -0
  143. package/server/dist/core/session-info/remote-control.d.ts +9 -0
  144. package/server/dist/core/session-info/remote-control.d.ts.map +1 -0
  145. package/server/dist/core/session-info/remote-control.js +64 -0
  146. package/server/dist/core/session-info/remote-control.js.map +1 -0
  147. package/server/dist/core/session-info/session-info.d.ts +18 -0
  148. package/server/dist/core/session-info/session-info.d.ts.map +1 -0
  149. package/server/dist/core/session-info/session-info.js +170 -0
  150. package/server/dist/core/session-info/session-info.js.map +1 -0
  151. package/server/dist/core/session-info/small-file.d.ts +2 -0
  152. package/server/dist/core/session-info/small-file.d.ts.map +1 -0
  153. package/server/dist/core/session-info/small-file.js +42 -0
  154. package/server/dist/core/session-info/small-file.js.map +1 -0
  155. package/server/dist/core/session-info/subagent-transcript.d.ts +12 -0
  156. package/server/dist/core/session-info/subagent-transcript.d.ts.map +1 -0
  157. package/server/dist/core/session-info/subagent-transcript.js +78 -0
  158. package/server/dist/core/session-info/subagent-transcript.js.map +1 -0
  159. package/server/dist/core/session-info/subagents.d.ts +14 -0
  160. package/server/dist/core/session-info/subagents.d.ts.map +1 -0
  161. package/server/dist/core/session-info/subagents.js +92 -0
  162. package/server/dist/core/session-info/subagents.js.map +1 -0
  163. package/server/dist/core/session-info/test-fixtures.d.ts +50 -0
  164. package/server/dist/core/session-info/test-fixtures.d.ts.map +1 -0
  165. package/server/dist/core/session-info/test-fixtures.js +43 -0
  166. package/server/dist/core/session-info/test-fixtures.js.map +1 -0
  167. package/server/dist/core/session-info/types.d.ts +77 -0
  168. package/server/dist/core/session-info/types.d.ts.map +1 -0
  169. package/server/dist/core/session-info/types.js +14 -0
  170. package/server/dist/core/session-info/types.js.map +1 -0
  171. package/server/dist/core/stack-profiles-create.d.ts +31 -0
  172. package/server/dist/core/stack-profiles-create.d.ts.map +1 -0
  173. package/server/dist/core/stack-profiles-create.js +128 -0
  174. package/server/dist/core/stack-profiles-create.js.map +1 -0
  175. package/server/dist/core/stack-profiles.d.ts +49 -0
  176. package/server/dist/core/stack-profiles.d.ts.map +1 -0
  177. package/server/dist/core/stack-profiles.js +142 -0
  178. package/server/dist/core/stack-profiles.js.map +1 -0
  179. package/server/dist/external/_shared/helpers.d.ts +2 -0
  180. package/server/dist/external/_shared/helpers.d.ts.map +1 -1
  181. package/server/dist/external/_shared/helpers.js.map +1 -1
  182. package/server/dist/external/actions/get.d.ts +3 -1
  183. package/server/dist/external/actions/get.d.ts.map +1 -1
  184. package/server/dist/external/actions/get.js +15 -4
  185. package/server/dist/external/actions/get.js.map +1 -1
  186. package/server/dist/external/actions/routes.d.ts +3 -1
  187. package/server/dist/external/actions/routes.d.ts.map +1 -1
  188. package/server/dist/external/actions/routes.js.map +1 -1
  189. package/server/dist/external/actions/stub.d.ts.map +1 -1
  190. package/server/dist/external/actions/stub.js +15 -4
  191. package/server/dist/external/actions/stub.js.map +1 -1
  192. package/server/dist/external/actions/upload-delete.d.ts.map +1 -1
  193. package/server/dist/external/actions/upload-delete.js +30 -20
  194. package/server/dist/external/actions/upload-delete.js.map +1 -1
  195. package/server/dist/external/actions/upload.d.ts.map +1 -1
  196. package/server/dist/external/actions/upload.js +5 -4
  197. package/server/dist/external/actions/upload.js.map +1 -1
  198. package/server/dist/external/create-external-routes-args.d.ts +3 -1
  199. package/server/dist/external/create-external-routes-args.d.ts.map +1 -1
  200. package/server/dist/external/inbox/_phase-gate.d.ts +9 -0
  201. package/server/dist/external/inbox/_phase-gate.d.ts.map +1 -0
  202. package/server/dist/external/inbox/_phase-gate.js +87 -0
  203. package/server/dist/external/inbox/_phase-gate.js.map +1 -0
  204. package/server/dist/external/inbox/_types.d.ts +7 -0
  205. package/server/dist/external/inbox/_types.d.ts.map +1 -1
  206. package/server/dist/external/inbox/routes.d.ts.map +1 -1
  207. package/server/dist/external/inbox/routes.js +2 -0
  208. package/server/dist/external/inbox/routes.js.map +1 -1
  209. package/server/dist/external/launch/action-substitution-branch.js +2 -2
  210. package/server/dist/external/launch/action-substitution-branch.js.map +1 -1
  211. package/server/dist/external/mission-context/facts.js +2 -2
  212. package/server/dist/external/mission-context/facts.js.map +1 -1
  213. package/server/dist/external/preview/routes.d.ts +3 -1
  214. package/server/dist/external/preview/routes.d.ts.map +1 -1
  215. package/server/dist/external/preview/routes.js +8 -1
  216. package/server/dist/external/preview/routes.js.map +1 -1
  217. package/server/dist/external/routes.d.ts.map +1 -1
  218. package/server/dist/external/routes.js +2 -2
  219. package/server/dist/external/routes.js.map +1 -1
  220. package/server/dist/external/session-file/probe-route.d.ts +4 -0
  221. package/server/dist/external/session-file/probe-route.d.ts.map +1 -0
  222. package/server/dist/external/session-file/probe-route.js +66 -0
  223. package/server/dist/external/session-file/probe-route.js.map +1 -0
  224. package/server/dist/external/session-file/routes.d.ts +12 -0
  225. package/server/dist/external/session-file/routes.d.ts.map +1 -0
  226. package/server/dist/external/session-file/routes.js +90 -0
  227. package/server/dist/external/session-file/routes.js.map +1 -0
  228. package/server/dist/external/session-file/session-file.fixture.d.ts +45 -0
  229. package/server/dist/external/session-file/session-file.fixture.d.ts.map +1 -0
  230. package/server/dist/external/session-file/session-file.fixture.js +41 -0
  231. package/server/dist/external/session-file/session-file.fixture.js.map +1 -0
  232. package/server/dist/external/session-info/routes.d.ts +15 -0
  233. package/server/dist/external/session-info/routes.d.ts.map +1 -0
  234. package/server/dist/external/session-info/routes.js +57 -0
  235. package/server/dist/external/session-info/routes.js.map +1 -0
  236. package/server/dist/external/tasks/_phase-helpers.js +2 -2
  237. package/server/dist/external/tasks/_phase-helpers.js.map +1 -1
  238. package/server/dist/external/tasks/create.js +2 -2
  239. package/server/dist/external/tasks/create.js.map +1 -1
  240. package/server/dist/external-routes-wiring.d.ts.map +1 -1
  241. package/server/dist/external-routes-wiring.js +10 -1
  242. package/server/dist/external-routes-wiring.js.map +1 -1
  243. package/server/dist/index.d.ts.map +1 -1
  244. package/server/dist/index.js +6 -8
  245. package/server/dist/index.js.map +1 -1
  246. package/server/dist/routes/adopt-scan.d.ts +4 -0
  247. package/server/dist/routes/adopt-scan.d.ts.map +1 -0
  248. package/server/dist/routes/adopt-scan.js +27 -0
  249. package/server/dist/routes/adopt-scan.js.map +1 -0
  250. package/server/dist/routes/profiles.d.ts +7 -0
  251. package/server/dist/routes/profiles.d.ts.map +1 -1
  252. package/server/dist/routes/profiles.js +13 -0
  253. package/server/dist/routes/profiles.js.map +1 -1
  254. package/server/dist/routes/projects.d.ts.map +1 -1
  255. package/server/dist/routes/projects.js +58 -16
  256. package/server/dist/routes/projects.js.map +1 -1
  257. package/server/dist/routes/stack-profiles.d.ts +10 -0
  258. package/server/dist/routes/stack-profiles.d.ts.map +1 -0
  259. package/server/dist/routes/stack-profiles.js +65 -0
  260. package/server/dist/routes/stack-profiles.js.map +1 -0
  261. package/server/dist/terminal/data-target.d.ts +17 -0
  262. package/server/dist/terminal/data-target.d.ts.map +1 -0
  263. package/server/dist/terminal/data-target.js +56 -0
  264. package/server/dist/terminal/data-target.js.map +1 -0
  265. package/server/dist/terminal/image-paste.d.ts +2 -0
  266. package/server/dist/terminal/image-paste.d.ts.map +1 -1
  267. package/server/dist/terminal/image-paste.js +11 -12
  268. package/server/dist/terminal/image-paste.js.map +1 -1
  269. package/server/dist/terminal/routes.d.ts +5 -0
  270. package/server/dist/terminal/routes.d.ts.map +1 -1
  271. package/server/dist/terminal/routes.js +11 -13
  272. package/server/dist/terminal/routes.js.map +1 -1
  273. package/server/dist/types/project.d.ts +9 -0
  274. package/server/dist/types/project.d.ts.map +1 -1
  275. package/server/dist/types/stack-profile-contract.d.ts +33 -0
  276. package/server/dist/types/stack-profile-contract.d.ts.map +1 -0
  277. package/server/dist/types/stack-profile-contract.js +11 -0
  278. package/server/dist/types/stack-profile-contract.js.map +1 -0
  279. package/server/package.json +3 -3
  280. package/client/dist/assets/arc-DoZTTE1N.js +0 -1
  281. package/client/dist/assets/architectureDiagram-ZJ3FMSHR-DFTG4KtO.js +0 -36
  282. package/client/dist/assets/blockDiagram-677ZJIJ3-C34UBjOB.js +0 -132
  283. package/client/dist/assets/c4Diagram-LMCZKHZV-CbqAB1Ou.js +0 -10
  284. package/client/dist/assets/channel-DBcZw7Kn.js +0 -1
  285. package/client/dist/assets/chunk-RYQCIY6F-DrWMx37d.js +0 -1
  286. package/client/dist/assets/chunk-VR4S4FIN-B5eWtesm.js +0 -1
  287. package/client/dist/assets/classDiagram-OUVF2IWQ-C3Q1V9DU.js +0 -1
  288. package/client/dist/assets/classDiagram-v2-EOCWNBFH-C3Q1V9DU.js +0 -1
  289. package/client/dist/assets/dagre-VKFMJZFB-VXOY6IHR.js +0 -4
  290. package/client/dist/assets/diagram-OA4YK3LP-DRHY5d_c.js +0 -30
  291. package/client/dist/assets/diagram-WEI45ONY-B87OYR_S.js +0 -41
  292. package/client/dist/assets/erDiagram-Q63AITRT-DaD7oa9H.js +0 -85
  293. package/client/dist/assets/flowDiagram-23GEKE2U-GrMVpsea.js +0 -156
  294. package/client/dist/assets/graph-C9eacEi8.js +0 -1
  295. package/client/dist/assets/index-CIpLt0ie.js +0 -863
  296. package/client/dist/assets/index-DGtnTeFd.css +0 -1
  297. package/client/dist/assets/infoDiagram-FWYZ7A6U-Fi8fQ95G.js +0 -2
  298. package/client/dist/assets/katex-DkKDou_j.js +0 -257
  299. package/client/dist/assets/layout-DEXfKzaS.js +0 -1
  300. package/client/dist/assets/map-Czzmt4hB.js +0 -1
  301. package/client/dist/assets/mermaid.core-D6w9zlA0.js +0 -314
  302. package/client/dist/assets/stateDiagram-2N3HPSRC-D3GXIouX.js +0 -1
  303. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-D3lXe_mJ.js +0 -1
  304. package/client/dist/assets/swimlanes-5IMT3BWC-PMRQzNhU.js +0 -2
  305. package/client/dist/assets/swimlanesDiagram-G3AALYLV-DMLbRFiO.js +0 -8
  306. package/client/dist/assets/xychartDiagram-FW5EYKEG-BEtPvBSU.js +0 -7
@@ -0,0 +1,142 @@
1
+ /*
2
+ * stack-profiles.ts — the READ-ONLY bridge to the monorepo's stack-profile
3
+ * resolver CLI (`shared/scripts/tools/resolve_profile.py list|validate --json`,
4
+ * cross-repo contract_version 1, mirrored in `types/stack-profile-contract.ts`).
5
+ * The WebUI never re-implements the lookup order (project → user → bundled) or
6
+ * the schema — it renders the resolver's verdict, exactly as the campaign DAG
7
+ * renders the scheduler's (`campaign-readiness.ts`, which this mirrors).
8
+ *
9
+ * Spawn discipline: `uv run --no-project --python ">=3.11"`, shell:false,
10
+ * fixed argv, honest engine-unavailable when uv / the script is absent — never
11
+ * a silent fallback to the bundled `server/profiles/` snapshot (that snapshot
12
+ * knows nothing of custom profiles, which is the point of this module).
13
+ */
14
+ import { existsSync } from "node:fs";
15
+ import os from "node:os";
16
+ import path from "node:path";
17
+ import { defaultCliChildSpawn } from "./cli-child-spawn.js";
18
+ import { READINESS_REPAIR_COMMAND, shipwrightCacheRoot } from "./readiness-probe.js";
19
+ import { resolveUv } from "./uv-runner.js";
20
+ import { SUPPORTED_STACK_PROFILE_CONTRACT, } from "../types/stack-profile-contract.js";
21
+ export const STACK_PROFILE_CLI_TIMEOUT_MS = 20_000;
22
+ /** Mirror of the resolver's NAME_RE + a filename-safe length cap. A name that
23
+ * fails this never reaches argv (a leading `-` would parse as an option). */
24
+ export const PROFILE_NAME_RE = /^[a-z0-9][a-z0-9-]*$/;
25
+ export const MAX_PROFILE_NAME_LENGTH = 64;
26
+ export function isProfileNameShape(name) {
27
+ return typeof name === "string" && name.length <= MAX_PROFILE_NAME_LENGTH && PROFILE_NAME_RE.test(name);
28
+ }
29
+ /** The cache-owned resolver CLI (`SHIPWRIGHT_RESOLVE_PROFILE_SCRIPT` overrides
30
+ * the location — isolated E2E stacks run with an ephemeral HOME). */
31
+ export function resolveProfileScript(deps = {}) {
32
+ const exists = deps.existsFn ?? existsSync;
33
+ const candidate = deps.scriptOverride ??
34
+ process.env.SHIPWRIGHT_RESOLVE_PROFILE_SCRIPT ??
35
+ path.join(shipwrightCacheRoot(deps.homeDir ?? os.homedir()), "shared", "scripts", "tools", "resolve_profile.py");
36
+ return exists(candidate) ? candidate : null;
37
+ }
38
+ function lastLine(text) {
39
+ const lines = text.split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
40
+ const err = [...lines].reverse().find((l) => l.startsWith("error:"));
41
+ return (err ?? lines.pop() ?? "").replace(/^error:\s*/, "");
42
+ }
43
+ function isEntryShape(e) {
44
+ return (isObject(e) &&
45
+ typeof e.name === "string" &&
46
+ typeof e.path === "string" &&
47
+ typeof e.valid === "boolean" &&
48
+ (e.source === "project" || e.source === "user" || e.source === "bundled"));
49
+ }
50
+ function isObject(v) {
51
+ return typeof v === "object" && v !== null && !Array.isArray(v);
52
+ }
53
+ /** Run one resolver subcommand. `cliArgs` positions are fixed; the only caller-supplied
54
+ * values are a shape-checked profile name (`--name=...`) and a registry-sourced path. */
55
+ async function runResolver(cliArgs, deps) {
56
+ const unavailable = (reason) => ({
57
+ status: "engine-unavailable",
58
+ reason,
59
+ repairCommand: READINESS_REPAIR_COMMAND,
60
+ });
61
+ const script = resolveProfileScript(deps);
62
+ if (!script)
63
+ return unavailable("The Shipwright profile resolver isn't installed.");
64
+ const uv = await resolveUv({ run: deps.run, homeDir: deps.homeDir, baseEnv: deps.baseEnv });
65
+ if (!uv)
66
+ return unavailable("uv isn't installed — profiles need it to run in a managed Python 3.11+.");
67
+ const spawn = deps.spawn ?? defaultCliChildSpawn;
68
+ const result = await spawn(uv.bin, ["run", "--no-project", "--python", ">=3.11", script, ...cliArgs], { timeoutMs: deps.timeoutMs ?? STACK_PROFILE_CLI_TIMEOUT_MS, env: uv.env });
69
+ if (result.code === -1)
70
+ return unavailable("uv couldn't start on this machine.");
71
+ if (result.spawnError === "timeout") {
72
+ return { status: "failed", reason: "Reading the profiles took too long and was stopped." };
73
+ }
74
+ return { stdout: result.stdout, code: result.code, stderr: result.stderr };
75
+ }
76
+ function isOutcome(v) {
77
+ return isObject(v) && typeof v.status === "string";
78
+ }
79
+ function parseJson(stdout) {
80
+ // `validate` prints a human line (`profile 'x': source=...`) before the JSON, so
81
+ // parse from the first line that STARTS with a brace - a brace inside that
82
+ // human line (a path, a name) must not be mistaken for the document.
83
+ const m = /^\{/m.exec(stdout);
84
+ if (!m)
85
+ return undefined;
86
+ try {
87
+ return JSON.parse(stdout.slice(m.index));
88
+ }
89
+ catch {
90
+ return undefined;
91
+ }
92
+ }
93
+ export async function listStackProfiles(input, deps = {}) {
94
+ const args = ["list", "--json", ...(input.projectRoot ? ["--project-root", input.projectRoot] : [])];
95
+ const ran = await runResolver(args, deps);
96
+ if (isOutcome(ran))
97
+ return ran;
98
+ if (ran.code !== 0)
99
+ return { status: "failed", reason: lastLine(ran.stderr) || "The profile resolver exited with an error." };
100
+ const parsed = parseJson(ran.stdout);
101
+ if (!isObject(parsed)) {
102
+ return { status: "failed", reason: "The profile resolver returned something unreadable." };
103
+ }
104
+ const version = parsed.contract_version;
105
+ if (version !== SUPPORTED_STACK_PROFILE_CONTRACT) {
106
+ return { status: "unsupported-contract", version: String(version) };
107
+ }
108
+ if (!Array.isArray(parsed.profiles) || !parsed.profiles.every(isEntryShape)) {
109
+ return { status: "failed", reason: "The profile resolver returned something unreadable." };
110
+ }
111
+ return { status: "ok", report: parsed };
112
+ }
113
+ /** Validate one profile by NAME (resolved through the normal lookup order). A
114
+ * profile the resolver rejects is `{valid:false}` data, not a transport failure. */
115
+ export async function validateStackProfile(input, deps = {}) {
116
+ if (!isProfileNameShape(input.name)) {
117
+ return { status: "ok", report: { valid: false, name: input.name, error: "That isn't a valid profile name." } };
118
+ }
119
+ const args = ["validate", "--json", `--name=${input.name}`, ...(input.projectRoot ? ["--project-root", input.projectRoot] : [])];
120
+ const ran = await runResolver(args, deps);
121
+ if (isOutcome(ran))
122
+ return ran;
123
+ if (ran.code !== 0) {
124
+ // 1/2/3 with the resolver's own "error:" line are verdicts (invalid / not found /
125
+ // bad JSON). Anything else (a crash traceback) is an outage, not "your profile is bad".
126
+ const verdict = [1, 2, 3].includes(ran.code) && /^error:/m.test(ran.stderr);
127
+ if (!verdict)
128
+ return { status: "failed", reason: lastLine(ran.stderr) || "The profile resolver crashed." };
129
+ return { status: "ok", report: { valid: false, name: input.name, error: lastLine(ran.stderr) || "The profile is not valid." } };
130
+ }
131
+ const parsed = parseJson(ran.stdout);
132
+ if (!isObject(parsed) || typeof parsed.valid !== "boolean") {
133
+ return { status: "failed", reason: "The profile resolver returned something unreadable." };
134
+ }
135
+ // `validate --json` carries no contract_version today; if upstream ever adds
136
+ // one, a different major must not be rendered as a green "valid".
137
+ if (parsed.contract_version !== undefined && parsed.contract_version !== SUPPORTED_STACK_PROFILE_CONTRACT) {
138
+ return { status: "unsupported-contract", version: String(parsed.contract_version) };
139
+ }
140
+ return { status: "ok", report: parsed };
141
+ }
142
+ //# sourceMappingURL=stack-profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-profiles.js","sourceRoot":"","sources":["../../src/core/stack-profiles.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export interface ExternalRouteProjectView {
32
32
  path: string;
33
33
  profile?: string;
34
34
  synthesized?: boolean;
35
+ /** Stored flag — see core/project-data-dir.ts. */
36
+ shared?: boolean;
35
37
  settings?: {
36
38
  color?: string;
37
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/external/_shared/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/external/_shared/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/external/_shared/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/external/_shared/helpers.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { PreviewProfile } from "../../core/preview-session-manager.js";
3
3
  import type { ExternalRouteProjectView } from "../_shared/helpers.js";
4
4
  export declare function registerActionsGet(app: Hono, deps: {
5
5
  getProjectById?: (id: string) => ExternalRouteProjectView | undefined;
6
- loadProfile: (profileName: string) => PreviewProfile | null;
6
+ loadProfile: (profileName: string, projectPath?: string, opts?: {
7
+ fresh?: boolean;
8
+ }) => Promise<PreviewProfile | null> | PreviewProfile | null;
7
9
  }): void;
8
10
  //# sourceMappingURL=get.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/external/actions/get.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAOjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;CAC7D,GACA,IAAI,CAsGN"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/external/actions/get.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KACnF,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC;CACxD,GACA,IAAI,CA8GN"}
@@ -6,18 +6,18 @@
6
6
  * when the user file exists but is malformed (O24 chip). Validates every
7
7
  * command_template via the substitute dry-run; unknown placeholder → 400.
8
8
  */
9
- import { loadActionsForProject } from "../../core/project-actions-loader.js";
9
+ import { loadActionsForProjectRecord } from "../../core/project-actions-loader.js";
10
10
  import { validateActionsSchema, } from "../../core/actions-schema-validator.js";
11
11
  import { dryRunTemplate } from "./_helpers.js";
12
12
  export function registerActionsGet(app, deps) {
13
13
  const { getProjectById, loadProfile } = deps;
14
- app.get("/api/external/projects/:projectId/actions", (c) => {
14
+ app.get("/api/external/projects/:projectId/actions", async (c) => {
15
15
  const projectId = c.req.param("projectId");
16
16
  const project = getProjectById?.(projectId);
17
17
  if (!project) {
18
18
  return c.json({ error: "project_not_found", projectId }, 404);
19
19
  }
20
- const loaded = loadActionsForProject(project.path || "");
20
+ const loaded = loadActionsForProjectRecord(project);
21
21
  const actions = loaded.actions;
22
22
  // Structural validation (5 O24 cases).
23
23
  const schemaErrors = validateActionsSchema(actions);
@@ -58,8 +58,19 @@ export function registerActionsGet(app, deps) {
58
58
  // "auto" → follow Step 1.
59
59
  // true → only honored if Step 1 also allowed it.
60
60
  // false → force off regardless.
61
+ // Awaited: custom (project / user) profiles are resolved by the shipwright
62
+ // resolver (async). Never throws - any failure just means "no Preview".
63
+ let loadedProfile = null;
64
+ if (project.profile) {
65
+ try {
66
+ loadedProfile = await loadProfile(project.profile, project.path);
67
+ }
68
+ catch {
69
+ loadedProfile = null;
70
+ }
71
+ }
61
72
  const profile = project.profile
62
- ? loadProfile(project.profile)
73
+ ? loadedProfile
63
74
  : null;
64
75
  const profileAllowsPreview = Boolean(profile?.stack?.frontend) &&
65
76
  Boolean(profile?.dev_server?.command);
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/external/actions/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/external/actions/get.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ import type { PreviewProfile } from "../../core/preview-session-manager.js";
3
3
  import type { ExternalRouteProjectView } from "../_shared/helpers.js";
4
4
  export interface ActionsRouterDeps {
5
5
  getProjectById?: (id: string) => ExternalRouteProjectView | undefined;
6
- loadProfile: (profileName: string) => PreviewProfile | null;
6
+ loadProfile: (profileName: string, projectPath?: string, opts?: {
7
+ fresh?: boolean;
8
+ }) => Promise<PreviewProfile | null> | PreviewProfile | null;
7
9
  }
8
10
  export declare function createActionsRouter(deps: ActionsRouterDeps): Hono;
9
11
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/actions/routes.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOtE,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;CAC7D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAOjE"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/actions/routes.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOtE,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KACjF,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC;CAC1D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAOjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/actions/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAOjE,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,mBAAmB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,qBAAqB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACpE,2BAA2B,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/actions/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAQjE,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,mBAAmB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,qBAAqB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACpE,2BAA2B,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../../src/external/actions/stub.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CACvE,GACA,IAAI,CA2CN"}
1
+ {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../../src/external/actions/stub.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAMjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CACvE,GACA,IAAI,CAkDN"}
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * external/actions/stub.ts — POST /api/projects/:id/actions-stub.
3
3
  *
4
- * Creates `<project.path>/.shipwright-webui/actions.json` as an empty structured stub.
4
+ * Creates `<projectDataDir>/actions.json` (central unless the project is `shared`) as an empty structured stub.
5
5
  * Only called from the wizard's "Custom" branch; idempotent (second call
6
6
  * is a no-op). This is the ONLY write webui performs inside a user's
7
7
  * project path that isn't gated by `realPathGuard`, because the
@@ -10,6 +10,8 @@
10
10
  */
11
11
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
12
12
  import { join } from "node:path";
13
+ import { clearActionsCacheForRecord } from "../../core/project-actions-loader.js";
14
+ import { projectActionsReadDir, projectDataDir } from "../../core/project-data-dir.js";
13
15
  export function registerActionsStub(app, deps) {
14
16
  const { getProjectById } = deps;
15
17
  app.post("/api/projects/:id/actions-stub", (c) => {
@@ -21,12 +23,13 @@ export function registerActionsStub(app, deps) {
21
23
  if (!project.path) {
22
24
  return c.json({ error: "project_path_unavailable", projectId: id }, 400);
23
25
  }
24
- const dir = join(project.path, ".shipwright-webui");
26
+ const dir = projectDataDir(project);
25
27
  const file = join(dir, "actions.json");
26
28
  try {
27
29
  if (!existsSync(dir))
28
30
  mkdirSync(dir, { recursive: true });
29
- if (!existsSync(file)) {
31
+ // Never shadow a legacy in-repo actions.json with an empty central stub.
32
+ if (!existsSync(join(projectActionsReadDir(project), "actions.json"))) {
30
33
  const stub = {
31
34
  $schema: "https://shipwright.dev/schemas/actions.v1.json (see docs/actions.md)",
32
35
  schemaVersion: 1,
@@ -35,8 +38,16 @@ export function registerActionsStub(app, deps) {
35
38
  phases: [],
36
39
  preview: { enabled: "auto" },
37
40
  };
38
- writeFileSync(file, JSON.stringify(stub, null, 2) + "\n", "utf-8");
41
+ try {
42
+ // "wx": create-only, so a concurrent create is EEXIST, not a check-then-write race.
43
+ writeFileSync(file, JSON.stringify(stub, null, 2) + "\n", { encoding: "utf-8", flag: "wx" });
44
+ }
45
+ catch (err) {
46
+ if (err.code !== "EEXIST")
47
+ throw err;
48
+ }
39
49
  }
50
+ clearActionsCacheForRecord(project);
40
51
  return c.json({ path: file, created: true });
41
52
  }
42
53
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../src/external/actions/stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,UAAU,mBAAmB,CACjC,GAAS,EACT,IAEC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEhC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,EAAE,EACpD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG;oBACX,OAAO,EACL,sEAAsE;oBACxE,aAAa,EAAE,CAAC;oBAChB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;oBAChC,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;iBAC7B,CAAC;gBACF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjC,IAAI,EAAE,IAAI;aACX,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../src/external/actions/stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGvF,MAAM,UAAU,mBAAmB,CACjC,GAAS,EACT,IAEC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEhC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,EAAE,EACpD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,yEAAyE;YACzE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,GAAG;oBACX,OAAO,EACL,sEAAsE;oBACxE,aAAa,EAAE,CAAC;oBAChB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;oBAChC,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;iBAC7B,CAAC;gBACF,IAAI,CAAC;oBACH,oFAAoF;oBACpF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;wBAAE,MAAM,GAAG,CAAC;gBAClE,CAAC;YACH,CAAC;YACD,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjC,IAAI,EAAE,IAAI;aACX,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-delete.d.ts","sourceRoot":"","sources":["../../../src/external/actions/upload-delete.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAMjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CACvE,GACA,IAAI,CA0CN"}
1
+ {"version":3,"file":"upload-delete.d.ts","sourceRoot":"","sources":["../../../src/external/actions/upload-delete.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAOjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CACvE,GACA,IAAI,CA+CN"}
@@ -1,14 +1,15 @@
1
1
  /*
2
2
  * external/actions/upload-delete.ts — DELETE /api/projects/:id/actions-upload.
3
3
  *
4
- * Reset the project to the bundled default by removing
5
- * `<project.path>/.shipwright-webui/actions.json`. Idempotent: returns
4
+ * Reset the project to the bundled default by removing its actions.json
5
+ * (central, plus a legacy in-repo copy). Idempotent: returns
6
6
  * `{removed: false}` when the file did not exist.
7
7
  */
8
8
  import { existsSync, unlinkSync } from "node:fs";
9
9
  import { join } from "node:path";
10
10
  import { realPathGuard } from "../../core/path-guard.js";
11
- import { clearActionsCacheForProject } from "../../core/project-actions-loader.js";
11
+ import { clearActionsCacheForRecord } from "../../core/project-actions-loader.js";
12
+ import { centralDataDir, legacyRepoDataDir, projectDataDir, projectDataGuardRoot } from "../../core/project-data-dir.js";
12
13
  export function registerActionsUploadDelete(app, deps) {
13
14
  const { getProjectById } = deps;
14
15
  app.delete("/api/projects/:id/actions-upload", (c) => {
@@ -20,27 +21,36 @@ export function registerActionsUploadDelete(app, deps) {
20
21
  if (!project.path) {
21
22
  return c.json({ error: "project_path_unavailable", projectId: id }, 400);
22
23
  }
23
- const file = join(project.path, ".shipwright-webui", "actions.json");
24
- if (!existsSync(file)) {
25
- clearActionsCacheForProject(project.path);
26
- return c.json({ path: file, removed: false });
27
- }
28
- const guard = realPathGuard(project.path, file);
29
- if (!guard.ok) {
30
- return c.json({ error: "path_unsafe", reason: guard.reason, path: file }, 400);
24
+ // Reset removes the central file AND a legacy in-repo one (otherwise the
25
+ // legacy read-fallback would resurrect the "reset" actions.json).
26
+ const central = projectDataDir(project);
27
+ const targets = [central, legacyRepoDataDir(project), project.shared === true ? centralDataDir(project) : null]
28
+ .filter((d) => !!d)
29
+ .map((d) => ({ dir: d, file: join(d, "actions.json") }))
30
+ .filter((t) => existsSync(t.file));
31
+ if (targets.length === 0) {
32
+ clearActionsCacheForRecord(project);
33
+ return c.json({ path: join(central, "actions.json"), removed: false });
31
34
  }
32
35
  try {
33
- unlinkSync(file);
36
+ for (const t of targets) {
37
+ const guardRoot = t.dir === central ? projectDataGuardRoot(project) : t.dir === legacyRepoDataDir(project) ? project.path : t.dir;
38
+ const guard = realPathGuard(guardRoot, t.file);
39
+ if (!guard.ok) {
40
+ return c.json({ error: "path_unsafe", reason: guard.reason, path: t.file }, 400);
41
+ }
42
+ try {
43
+ unlinkSync(t.file);
44
+ }
45
+ catch (err) {
46
+ return c.json({ error: "upload_unlink_failed", detail: String(err).slice(0, 200), path: t.file }, 500);
47
+ }
48
+ }
49
+ return c.json({ path: targets[0].file, removed: true });
34
50
  }
35
- catch (err) {
36
- return c.json({
37
- error: "upload_unlink_failed",
38
- detail: String(err).slice(0, 200),
39
- path: file,
40
- }, 500);
51
+ finally {
52
+ clearActionsCacheForRecord(project);
41
53
  }
42
- clearActionsCacheForProject(project.path);
43
- return c.json({ path: file, removed: true });
44
54
  });
45
55
  }
46
56
  //# sourceMappingURL=upload-delete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-delete.js","sourceRoot":"","sources":["../../../src/external/actions/upload-delete.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAGnF,MAAM,UAAU,2BAA2B,CACzC,GAAS,EACT,IAEC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEhC,GAAG,CAAC,MAAM,CAAC,kCAAkC,EAAE,CAAC,CAAC,EAAE,EAAE;QACnD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,EAAE,EACpD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAC1D,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjC,IAAI,EAAE,IAAI;aACX,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"upload-delete.js","sourceRoot":"","sources":["../../../src/external/actions/upload-delete.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/external/actions/upload.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAuBjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CACvE,GACA,IAAI,CAqJN"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/external/actions/upload.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAwBjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;CACvE,GACA,IAAI,CAqJN"}
@@ -22,9 +22,10 @@
22
22
  import { existsSync, mkdirSync, writeFileSync, unlinkSync, renameSync, } from "node:fs";
23
23
  import { join } from "node:path";
24
24
  import { realPathGuard } from "../../core/path-guard.js";
25
- import { clearActionsCacheForProject, } from "../../core/project-actions-loader.js";
25
+ import { clearActionsCacheForRecord, } from "../../core/project-actions-loader.js";
26
26
  import { validateActionsSchema, } from "../../core/actions-schema-validator.js";
27
27
  import { checkContractVersion, ACTIONS_SCHEMA_VERSION, } from "../../core/contract-version.js";
28
+ import { projectDataDir, projectDataGuardRoot } from "../../core/project-data-dir.js";
28
29
  import { ACTIONS_UPLOAD_MAX_BYTES, dryRunTemplate } from "./_helpers.js";
29
30
  export function registerActionsUpload(app, deps) {
30
31
  const { getProjectById } = deps;
@@ -107,12 +108,12 @@ export function registerActionsUpload(app, deps) {
107
108
  return c.json({ error: "template_validation_failed", actionId: action.id }, 500);
108
109
  }
109
110
  }
110
- const dir = join(project.path, ".shipwright-webui");
111
+ const dir = projectDataDir(project);
111
112
  const file = join(dir, "actions.json");
112
113
  const tmp = join(dir, `actions.json.tmp-${process.pid}-${Date.now()}`);
113
114
  try {
114
115
  mkdirSync(dir, { recursive: true });
115
- const guard = realPathGuard(project.path, dir);
116
+ const guard = realPathGuard(projectDataGuardRoot(project), dir);
116
117
  if (!guard.ok) {
117
118
  return c.json({ error: "path_unsafe", reason: guard.reason, path: dir }, 400);
118
119
  }
@@ -134,7 +135,7 @@ export function registerActionsUpload(app, deps) {
134
135
  path: file,
135
136
  }, 500);
136
137
  }
137
- clearActionsCacheForProject(project.path);
138
+ clearActionsCacheForRecord(project);
138
139
  return c.json({ path: file, written: true });
139
140
  });
140
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/external/actions/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/external/actions/upload.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,9 @@ export interface CreateExternalRoutesArgs {
36
36
  * Section 03 — loads a profile by name. Defaults to the real
37
37
  * `core/profile-loader.ts` entry; tests inject a synthetic profile.
38
38
  */
39
- loadProfile?: (profileName: string) => PreviewProfile | null;
39
+ loadProfile?: (profileName: string, projectPath?: string, opts?: {
40
+ fresh?: boolean;
41
+ }) => Promise<PreviewProfile | null> | PreviewProfile | null;
40
42
  /**
41
43
  * iterate/multi-session-run-orchestrator-v2 — reads a project's
42
44
  * shipwright_run_config.json. Tests inject a stub so they don't
@@ -1 +1 @@
1
- {"version":3,"file":"create-external-routes-args.d.ts","sourceRoot":"","sources":["../../src/external/create-external-routes-args.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IAC7D;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxE;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,UAAU,EAAE;QACV,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B;;;;WAIG;QACH,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C;;;;;;WAMG;QACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAClD,CAAC;IACF;;mEAE+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;IAC7E,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACxD"}
1
+ {"version":3,"file":"create-external-routes-args.d.ts","sourceRoot":"","sources":["../../src/external/create-external-routes-args.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAClF,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC;IACzD;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxE;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,UAAU,EAAE;QACV,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B;;;;WAIG;QACH,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C;;;;;;WAMG;QACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAClD,CAAC;IACF;;mEAE+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;IAC7E,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACxD"}
@@ -0,0 +1,9 @@
1
+ import type { SdkSessionsStore } from "../../core/sdk-sessions-store.js";
2
+ import { type RunConfigReadResult } from "../../core/run-config-reader.js";
3
+ import type { AggregatedEntry } from "./_types.js";
4
+ export declare const PHASE_GATE_PROMPT_TEXT: string;
5
+ export declare function appendPhaseGates(entries: AggregatedEntry[], args: {
6
+ store: SdkSessionsStore;
7
+ readRunConfig?: (projectPath: string) => Promise<RunConfigReadResult>;
8
+ }): Promise<void>;
9
+ //# sourceMappingURL=_phase-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_phase-gate.d.ts","sourceRoot":"","sources":["../../../src/external/inbox/_phase-gate.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,sBAAsB,QAEmB,CAAC;AAcvD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EAAE,EAC1B,IAAI,EAAE;IACJ,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvE,GACA,OAAO,CAAC,IAAI,CAAC,CAwCf"}