@intentius/chant 0.124.28 → 0.124.30

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 (449) hide show
  1. package/dist/build-params.d.ts +34 -1
  2. package/dist/build-params.d.ts.map +1 -1
  3. package/dist/build-params.js +31 -1
  4. package/dist/change-set-graph.d.ts +8 -1
  5. package/dist/change-set-graph.d.ts.map +1 -1
  6. package/dist/change-set-graph.js +4 -2
  7. package/dist/change-set.d.ts +10 -0
  8. package/dist/change-set.d.ts.map +1 -1
  9. package/dist/change-set.js +4 -3
  10. package/dist/cli/build-params-cli.d.ts +7 -1
  11. package/dist/cli/build-params-cli.d.ts.map +1 -1
  12. package/dist/cli/build-params-cli.js +17 -8
  13. package/dist/cli/commands/build.d.ts.map +1 -1
  14. package/dist/cli/commands/build.js +6 -3
  15. package/dist/cli/handlers/approve.d.ts.map +1 -1
  16. package/dist/cli/handlers/approve.js +45 -0
  17. package/dist/cli/handlers/build.d.ts.map +1 -1
  18. package/dist/cli/handlers/build.js +18 -4
  19. package/dist/cli/handlers/fan-out.d.ts +9 -0
  20. package/dist/cli/handlers/fan-out.d.ts.map +1 -1
  21. package/dist/cli/handlers/fan-out.js +67 -8
  22. package/dist/cli/handlers/lifecycle-gc.d.ts +19 -0
  23. package/dist/cli/handlers/lifecycle-gc.d.ts.map +1 -0
  24. package/dist/cli/handlers/lifecycle-gc.js +143 -0
  25. package/dist/cli/handlers/pr.d.ts +11 -3
  26. package/dist/cli/handlers/pr.d.ts.map +1 -1
  27. package/dist/cli/handlers/pr.js +134 -26
  28. package/dist/cli/handlers/promote.d.ts +7 -0
  29. package/dist/cli/handlers/promote.d.ts.map +1 -1
  30. package/dist/cli/handlers/promote.js +210 -33
  31. package/dist/cli/handlers/release.d.ts +62 -5
  32. package/dist/cli/handlers/release.d.ts.map +1 -1
  33. package/dist/cli/handlers/release.js +414 -28
  34. package/dist/cli/handlers/run.d.ts +11 -1
  35. package/dist/cli/handlers/run.d.ts.map +1 -1
  36. package/dist/cli/handlers/run.js +67 -6
  37. package/dist/cli/main.d.ts.map +1 -1
  38. package/dist/cli/main.js +91 -10
  39. package/dist/cli/parse-args.d.ts.map +1 -1
  40. package/dist/cli/parse-args.js +73 -2
  41. package/dist/cli/registry.d.ts +32 -4
  42. package/dist/cli/registry.d.ts.map +1 -1
  43. package/dist/cli/run-events.d.ts +3 -2
  44. package/dist/cli/run-events.d.ts.map +1 -1
  45. package/dist/cli/run-events.js +5 -3
  46. package/dist/components/auto-release.d.ts +2 -0
  47. package/dist/components/auto-release.d.ts.map +1 -1
  48. package/dist/components/auto-release.js +1 -0
  49. package/dist/components/capability.d.ts +9 -0
  50. package/dist/components/capability.d.ts.map +1 -1
  51. package/dist/components/driver.d.ts +8 -0
  52. package/dist/components/driver.d.ts.map +1 -1
  53. package/dist/components/driver.js +35 -0
  54. package/dist/components/fan-out-inputs.d.ts +69 -0
  55. package/dist/components/fan-out-inputs.d.ts.map +1 -0
  56. package/dist/components/fan-out-inputs.js +169 -0
  57. package/dist/components/fan-out-record.d.ts +13 -0
  58. package/dist/components/fan-out-record.d.ts.map +1 -1
  59. package/dist/components/fan-out-record.js +16 -0
  60. package/dist/components/fan-out-run.d.ts.map +1 -1
  61. package/dist/components/fan-out-run.js +50 -0
  62. package/dist/components/fan-out.d.ts +4 -0
  63. package/dist/components/fan-out.d.ts.map +1 -1
  64. package/dist/components/pr-pipeline.d.ts +49 -0
  65. package/dist/components/pr-pipeline.d.ts.map +1 -1
  66. package/dist/components/pr-pipeline.js +38 -4
  67. package/dist/components/pr-run.d.ts +20 -2
  68. package/dist/components/pr-run.d.ts.map +1 -1
  69. package/dist/components/pr-run.js +26 -13
  70. package/dist/components/promote.d.ts +23 -0
  71. package/dist/components/promote.d.ts.map +1 -1
  72. package/dist/components/promote.js +60 -2
  73. package/dist/components/release-compile.d.ts +9 -0
  74. package/dist/components/release-compile.d.ts.map +1 -1
  75. package/dist/components/release-compile.js +9 -3
  76. package/dist/components/release-gate.d.ts +11 -1
  77. package/dist/components/release-gate.d.ts.map +1 -1
  78. package/dist/components/release-gate.js +10 -4
  79. package/dist/components/wave-plan.d.ts +16 -0
  80. package/dist/components/wave-plan.d.ts.map +1 -1
  81. package/dist/components/wave-plan.js +36 -2
  82. package/dist/config.d.ts +38 -0
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +2 -0
  85. package/dist/flag-params.d.ts +54 -0
  86. package/dist/flag-params.d.ts.map +1 -0
  87. package/dist/flag-params.js +130 -0
  88. package/dist/lifecycle/__fixtures__/publish-fakes.d.ts +120 -0
  89. package/dist/lifecycle/__fixtures__/publish-fakes.d.ts.map +1 -0
  90. package/dist/lifecycle/__fixtures__/publish-fakes.js +304 -0
  91. package/dist/lifecycle/change-set-store.d.ts +2 -1
  92. package/dist/lifecycle/change-set-store.d.ts.map +1 -1
  93. package/dist/lifecycle/change-set-store.js +2 -1
  94. package/dist/lifecycle/delivery-metrics.d.ts +139 -0
  95. package/dist/lifecycle/delivery-metrics.d.ts.map +1 -0
  96. package/dist/lifecycle/delivery-metrics.js +145 -0
  97. package/dist/lifecycle/deploy-outcome.d.ts +81 -0
  98. package/dist/lifecycle/deploy-outcome.d.ts.map +1 -0
  99. package/dist/lifecycle/deploy-outcome.js +101 -0
  100. package/dist/lifecycle/gate-change-set.d.ts +10 -1
  101. package/dist/lifecycle/gate-change-set.d.ts.map +1 -1
  102. package/dist/lifecycle/gate-change-set.js +35 -3
  103. package/dist/lifecycle/gate-ledger.d.ts +2 -3
  104. package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
  105. package/dist/lifecycle/git.d.ts +30 -1
  106. package/dist/lifecycle/git.d.ts.map +1 -1
  107. package/dist/lifecycle/git.js +31 -5
  108. package/dist/lifecycle/index.d.ts +4 -0
  109. package/dist/lifecycle/index.d.ts.map +1 -1
  110. package/dist/lifecycle/index.js +4 -0
  111. package/dist/lifecycle/mixed-environment.d.ts +95 -0
  112. package/dist/lifecycle/mixed-environment.d.ts.map +1 -0
  113. package/dist/lifecycle/mixed-environment.js +154 -0
  114. package/dist/lifecycle/publish-attachments.d.ts +79 -0
  115. package/dist/lifecycle/publish-attachments.d.ts.map +1 -0
  116. package/dist/lifecycle/publish-attachments.js +179 -0
  117. package/dist/lifecycle/publish-credentials.d.ts +37 -0
  118. package/dist/lifecycle/publish-credentials.d.ts.map +1 -0
  119. package/dist/lifecycle/publish-credentials.js +69 -0
  120. package/dist/lifecycle/publish-declaration.d.ts +97 -0
  121. package/dist/lifecycle/publish-declaration.d.ts.map +1 -0
  122. package/dist/lifecycle/publish-declaration.js +83 -0
  123. package/dist/lifecycle/publish-forge.d.ts +53 -0
  124. package/dist/lifecycle/publish-forge.d.ts.map +1 -0
  125. package/dist/lifecycle/publish-forge.js +298 -0
  126. package/dist/lifecycle/publish-npm.d.ts +61 -0
  127. package/dist/lifecycle/publish-npm.d.ts.map +1 -0
  128. package/dist/lifecycle/publish-npm.js +242 -0
  129. package/dist/lifecycle/publish-oci.d.ts +64 -0
  130. package/dist/lifecycle/publish-oci.d.ts.map +1 -0
  131. package/dist/lifecycle/publish-oci.js +383 -0
  132. package/dist/lifecycle/publish-record.d.ts +66 -0
  133. package/dist/lifecycle/publish-record.d.ts.map +1 -0
  134. package/dist/lifecycle/publish-record.js +84 -0
  135. package/dist/lifecycle/publish-targets.d.ts +45 -0
  136. package/dist/lifecycle/publish-targets.d.ts.map +1 -0
  137. package/dist/lifecycle/publish-targets.js +85 -0
  138. package/dist/lifecycle/release-cut.d.ts +48 -1
  139. package/dist/lifecycle/release-cut.d.ts.map +1 -1
  140. package/dist/lifecycle/release-cut.js +116 -23
  141. package/dist/lifecycle/release-join.d.ts +95 -0
  142. package/dist/lifecycle/release-join.d.ts.map +1 -0
  143. package/dist/lifecycle/release-join.js +139 -0
  144. package/dist/lifecycle/release-ledger.d.ts +8 -3
  145. package/dist/lifecycle/release-ledger.d.ts.map +1 -1
  146. package/dist/lifecycle/release-ledger.js +2 -0
  147. package/dist/lifecycle/release-publish.d.ts +312 -0
  148. package/dist/lifecycle/release-publish.d.ts.map +1 -0
  149. package/dist/lifecycle/release-publish.js +335 -0
  150. package/dist/lifecycle/release-revocation.d.ts +80 -0
  151. package/dist/lifecycle/release-revocation.d.ts.map +1 -0
  152. package/dist/lifecycle/release-revocation.js +123 -0
  153. package/dist/lifecycle/release-store.d.ts +12 -2
  154. package/dist/lifecycle/release-store.d.ts.map +1 -1
  155. package/dist/lifecycle/release-store.js +4 -2
  156. package/dist/lifecycle/release-verify.d.ts +61 -0
  157. package/dist/lifecycle/release-verify.d.ts.map +1 -0
  158. package/dist/lifecycle/release-verify.js +92 -0
  159. package/dist/lifecycle/release-workstation.d.ts +91 -0
  160. package/dist/lifecycle/release-workstation.d.ts.map +1 -0
  161. package/dist/lifecycle/release-workstation.js +180 -0
  162. package/dist/lifecycle/retention-policy.d.ts +45 -0
  163. package/dist/lifecycle/retention-policy.d.ts.map +1 -0
  164. package/dist/lifecycle/retention-policy.js +43 -0
  165. package/dist/lifecycle/retention.d.ts +185 -0
  166. package/dist/lifecycle/retention.d.ts.map +1 -0
  167. package/dist/lifecycle/retention.js +400 -0
  168. package/dist/lifecycle/run-ledger.d.ts +1 -1
  169. package/dist/lifecycle/run-ledger.d.ts.map +1 -1
  170. package/dist/lifecycle/run-ledger.js +9 -0
  171. package/dist/op/activities/activity-contracts.d.ts +1 -0
  172. package/dist/op/activities/activity-contracts.d.ts.map +1 -1
  173. package/dist/op/activities/activity-contracts.js +1 -0
  174. package/dist/op/activities/shell.d.ts +6 -0
  175. package/dist/op/activities/shell.d.ts.map +1 -1
  176. package/dist/op/activities/shell.js +1 -1
  177. package/dist/op/local-executor.d.ts +23 -1
  178. package/dist/op/local-executor.d.ts.map +1 -1
  179. package/dist/op/local-executor.js +9 -3
  180. package/dist/op/runtime.d.ts +27 -0
  181. package/dist/op/runtime.d.ts.map +1 -1
  182. package/dist/op/runtime.js +20 -0
  183. package/dist/plan-summary.d.ts.map +1 -1
  184. package/dist/plan-summary.js +8 -2
  185. package/dist/pr-forge.d.ts +23 -0
  186. package/dist/pr-forge.d.ts.map +1 -1
  187. package/dist/pr-forge.js +44 -0
  188. package/dist/pr-loop.d.ts +17 -0
  189. package/dist/pr-loop.d.ts.map +1 -1
  190. package/dist/pr-loop.js +30 -4
  191. package/dist/pr-report-url.d.ts +82 -0
  192. package/dist/pr-report-url.d.ts.map +1 -0
  193. package/dist/pr-report-url.js +174 -0
  194. package/dist/provenance.d.ts +2 -2
  195. package/dist/provenance.d.ts.map +1 -1
  196. package/dist/run-event-store.d.ts +29 -2
  197. package/dist/run-event-store.d.ts.map +1 -1
  198. package/dist/run-event-store.js +50 -3
  199. package/dist/run-event-stream.d.ts +4 -3
  200. package/dist/run-event-stream.d.ts.map +1 -1
  201. package/dist/run-event-stream.js +7 -3
  202. package/dist/run-event.d.ts +34 -1
  203. package/dist/run-event.d.ts.map +1 -1
  204. package/dist/run-event.js +4 -0
  205. package/dist/wave-runtime.mjs +260 -229
  206. package/dist/workspace/__fixtures__/flag-workspace.d.ts +31 -0
  207. package/dist/workspace/__fixtures__/flag-workspace.d.ts.map +1 -0
  208. package/dist/workspace/__fixtures__/flag-workspace.js +114 -0
  209. package/dist/workspace/change-set.schema.json +5 -1
  210. package/dist/workspace/check.schema.json +4 -2
  211. package/dist/workspace/checks/records.d.ts +9 -1
  212. package/dist/workspace/checks/records.d.ts.map +1 -1
  213. package/dist/workspace/checks/records.js +35 -1
  214. package/dist/workspace/checks.d.ts +1 -0
  215. package/dist/workspace/checks.d.ts.map +1 -1
  216. package/dist/workspace/checks.js +2 -1
  217. package/dist/workspace/ci-green-forge.d.ts +2 -0
  218. package/dist/workspace/ci-green-forge.d.ts.map +1 -1
  219. package/dist/workspace/ci-green.d.ts +10 -0
  220. package/dist/workspace/ci-green.d.ts.map +1 -1
  221. package/dist/workspace/ci-green.js +14 -5
  222. package/dist/workspace/ci-run.d.ts +222 -0
  223. package/dist/workspace/ci-run.d.ts.map +1 -0
  224. package/dist/workspace/ci-run.js +464 -0
  225. package/dist/workspace/ci-serve.d.ts +214 -0
  226. package/dist/workspace/ci-serve.d.ts.map +1 -0
  227. package/dist/workspace/ci-serve.js +412 -0
  228. package/dist/workspace/declaration.d.ts +16 -0
  229. package/dist/workspace/declaration.d.ts.map +1 -1
  230. package/dist/workspace/declaration.js +26 -0
  231. package/dist/workspace/declaration.schema.json +64 -0
  232. package/dist/workspace/declared-kinds.d.ts +16 -0
  233. package/dist/workspace/declared-kinds.d.ts.map +1 -1
  234. package/dist/workspace/declared-kinds.js +25 -0
  235. package/dist/workspace/delivery-metrics.d.ts +91 -0
  236. package/dist/workspace/delivery-metrics.d.ts.map +1 -0
  237. package/dist/workspace/delivery-metrics.js +217 -0
  238. package/dist/workspace/delivery-metrics.schema.json +519 -0
  239. package/dist/workspace/flags-read.d.ts +37 -0
  240. package/dist/workspace/flags-read.d.ts.map +1 -0
  241. package/dist/workspace/flags-read.js +103 -0
  242. package/dist/workspace/flags.d.ts +100 -0
  243. package/dist/workspace/flags.d.ts.map +1 -0
  244. package/dist/workspace/flags.js +98 -0
  245. package/dist/workspace/graph-cli.js +1 -1
  246. package/dist/workspace/intent-cli.d.ts +11 -2
  247. package/dist/workspace/intent-cli.d.ts.map +1 -1
  248. package/dist/workspace/intent-cli.js +54 -5
  249. package/dist/workspace/intent-trace.d.ts +219 -0
  250. package/dist/workspace/intent-trace.d.ts.map +1 -0
  251. package/dist/workspace/intent-trace.js +314 -0
  252. package/dist/workspace/intent.d.ts +30 -6
  253. package/dist/workspace/intent.d.ts.map +1 -1
  254. package/dist/workspace/intent.js +141 -21
  255. package/dist/workspace/intent.schema.json +702 -6
  256. package/dist/workspace/overlap.d.ts +146 -0
  257. package/dist/workspace/overlap.d.ts.map +1 -0
  258. package/dist/workspace/overlap.js +276 -0
  259. package/dist/workspace/pr-report.schema.json +5 -0
  260. package/dist/workspace/reason-codes.d.ts +2 -0
  261. package/dist/workspace/reason-codes.d.ts.map +1 -1
  262. package/dist/workspace/reason-codes.js +3 -0
  263. package/dist/workspace/records.d.ts +15 -2
  264. package/dist/workspace/records.d.ts.map +1 -1
  265. package/dist/workspace/records.js +32 -0
  266. package/dist/workspace/records.schema.json +21 -2
  267. package/dist/workspace/reference-kinds/flag/flag.kind.mjs +32 -0
  268. package/dist/workspace/reference-kinds/flag/flag.schema.json +53 -0
  269. package/dist/workspace/releases.d.ts +9 -0
  270. package/dist/workspace/releases.d.ts.map +1 -1
  271. package/dist/workspace/releases.js +9 -0
  272. package/dist/workspace/releases.schema.json +123 -1
  273. package/dist/workspace/run-event.schema.json +24 -6
  274. package/dist/workspace/status-gates.d.ts +8 -0
  275. package/dist/workspace/status-gates.d.ts.map +1 -1
  276. package/dist/workspace/status-stewards.d.ts +2 -0
  277. package/dist/workspace/status-stewards.d.ts.map +1 -1
  278. package/dist/workspace/status-stewards.js +1 -0
  279. package/dist/workspace/status.d.ts +78 -0
  280. package/dist/workspace/status.d.ts.map +1 -1
  281. package/dist/workspace/status.js +170 -3
  282. package/dist/workspace/status.schema.json +210 -2
  283. package/dist/workspace/wip.d.ts.map +1 -1
  284. package/dist/workspace/wip.js +11 -3
  285. package/package.json +1 -1
  286. package/src/build-params.test.ts +46 -0
  287. package/src/build-params.ts +55 -1
  288. package/src/change-set-graph.ts +10 -2
  289. package/src/change-set.ts +14 -3
  290. package/src/cli/build-params-cli.ts +22 -9
  291. package/src/cli/commands/build.ts +6 -3
  292. package/src/cli/handlers/approve-release.test.ts +5 -1
  293. package/src/cli/handlers/approve-revoked.test.ts +155 -0
  294. package/src/cli/handlers/approve.ts +47 -0
  295. package/src/cli/handlers/build.test.ts +30 -0
  296. package/src/cli/handlers/build.ts +20 -4
  297. package/src/cli/handlers/fan-out.test.ts +262 -1
  298. package/src/cli/handlers/fan-out.ts +72 -8
  299. package/src/cli/handlers/intent-trace.e2e.test.ts +201 -0
  300. package/src/cli/handlers/lifecycle-gc.test.ts +126 -0
  301. package/src/cli/handlers/lifecycle-gc.ts +146 -0
  302. package/src/cli/handlers/pr.test.ts +148 -1
  303. package/src/cli/handlers/pr.ts +144 -28
  304. package/src/cli/handlers/promote.test.ts +280 -2
  305. package/src/cli/handlers/promote.ts +210 -34
  306. package/src/cli/handlers/release-implicit.e2e.test.ts +12 -4
  307. package/src/cli/handlers/release-join.e2e.test.ts +185 -0
  308. package/src/cli/handlers/release-publish-targets.e2e.test.ts +295 -0
  309. package/src/cli/handlers/release-verify.e2e.test.ts +117 -0
  310. package/src/cli/handlers/release-workstation-ci.e2e.test.ts +135 -0
  311. package/src/cli/handlers/release.e2e.test.ts +146 -32
  312. package/src/cli/handlers/release.ts +415 -28
  313. package/src/cli/handlers/run-auto-release.test.ts +9 -0
  314. package/src/cli/handlers/run-release.test.ts +55 -0
  315. package/src/cli/handlers/run.ts +69 -5
  316. package/src/cli/main.test.ts +1 -0
  317. package/src/cli/main.ts +91 -10
  318. package/src/cli/parse-args.ts +54 -2
  319. package/src/cli/registry.ts +32 -4
  320. package/src/cli/run-events.ts +5 -2
  321. package/src/components/auto-release.test.ts +9 -0
  322. package/src/components/auto-release.ts +3 -0
  323. package/src/components/capability.ts +9 -0
  324. package/src/components/driver.test.ts +24 -0
  325. package/src/components/driver.ts +36 -0
  326. package/src/components/fan-out-inputs.test.ts +85 -0
  327. package/src/components/fan-out-inputs.ts +192 -0
  328. package/src/components/fan-out-record.test.ts +10 -0
  329. package/src/components/fan-out-record.ts +19 -0
  330. package/src/components/fan-out-run.ts +48 -0
  331. package/src/components/fan-out.ts +4 -0
  332. package/src/components/pr-pipeline.ts +67 -4
  333. package/src/components/pr-run.test.ts +127 -0
  334. package/src/components/pr-run.ts +32 -12
  335. package/src/components/promote.ts +68 -2
  336. package/src/components/release-compile.ts +17 -3
  337. package/src/components/release-gate.ts +18 -4
  338. package/src/components/wave-plan.ts +45 -2
  339. package/src/config.ts +8 -0
  340. package/src/flag-params.test.ts +144 -0
  341. package/src/flag-params.ts +134 -0
  342. package/src/lifecycle/__fixtures__/publish-fakes.ts +351 -0
  343. package/src/lifecycle/change-set-store.ts +2 -1
  344. package/src/lifecycle/delivery-metrics.ts +263 -0
  345. package/src/lifecycle/deploy-outcome.ts +147 -0
  346. package/src/lifecycle/gate-change-set.ts +37 -6
  347. package/src/lifecycle/gate-ledger.ts +2 -2
  348. package/src/lifecycle/git.ts +61 -8
  349. package/src/lifecycle/index.ts +4 -0
  350. package/src/lifecycle/mixed-environment.test.ts +97 -0
  351. package/src/lifecycle/mixed-environment.ts +204 -0
  352. package/src/lifecycle/publish-attachments.ts +196 -0
  353. package/src/lifecycle/publish-credentials.ts +84 -0
  354. package/src/lifecycle/publish-declaration.ts +95 -0
  355. package/src/lifecycle/publish-forge.ts +325 -0
  356. package/src/lifecycle/publish-npm.ts +259 -0
  357. package/src/lifecycle/publish-oci.ts +396 -0
  358. package/src/lifecycle/publish-record.ts +113 -0
  359. package/src/lifecycle/publish-resume.test.ts +168 -0
  360. package/src/lifecycle/publish-targets.test.ts +494 -0
  361. package/src/lifecycle/publish-targets.ts +100 -0
  362. package/src/lifecycle/release-cut.test.ts +74 -2
  363. package/src/lifecycle/release-cut.ts +158 -22
  364. package/src/lifecycle/release-flag.test.ts +112 -0
  365. package/src/lifecycle/release-join.test.ts +68 -0
  366. package/src/lifecycle/release-join.ts +182 -0
  367. package/src/lifecycle/release-ledger.ts +9 -3
  368. package/src/lifecycle/release-publish.test.ts +225 -0
  369. package/src/lifecycle/release-publish.ts +568 -0
  370. package/src/lifecycle/release-revocation.ts +147 -0
  371. package/src/lifecycle/release-store.ts +15 -4
  372. package/src/lifecycle/release-verify.test.ts +110 -0
  373. package/src/lifecycle/release-verify.ts +120 -0
  374. package/src/lifecycle/release-workstation.test.ts +204 -0
  375. package/src/lifecycle/release-workstation.ts +216 -0
  376. package/src/lifecycle/retention-growth.e2e.test.ts +279 -0
  377. package/src/lifecycle/retention-policy.ts +63 -0
  378. package/src/lifecycle/retention.test.ts +363 -0
  379. package/src/lifecycle/retention.ts +508 -0
  380. package/src/lifecycle/run-ledger.ts +7 -1
  381. package/src/op/activities/activity-contracts.ts +1 -0
  382. package/src/op/activities/shell.ts +7 -1
  383. package/src/op/local-executor.ts +27 -4
  384. package/src/op/runtime.ts +42 -0
  385. package/src/plan-summary.test.ts +20 -0
  386. package/src/plan-summary.ts +8 -1
  387. package/src/pr-forge.test.ts +25 -0
  388. package/src/pr-forge.ts +62 -0
  389. package/src/pr-loop.test.ts +13 -1
  390. package/src/pr-loop.ts +41 -4
  391. package/src/pr-report-url.test.ts +131 -0
  392. package/src/pr-report-url.ts +209 -0
  393. package/src/provenance.ts +2 -2
  394. package/src/run-event-store.ts +63 -3
  395. package/src/run-event-stream.ts +8 -4
  396. package/src/run-event.ts +38 -1
  397. package/src/workspace/__fixtures__/flag-workspace.ts +132 -0
  398. package/src/workspace/__fixtures__/older-records/change-set-984534ea9.json +100 -0
  399. package/src/workspace/__fixtures__/older-records/older-records.json +326 -0
  400. package/src/workspace/change-set.schema.json +5 -1
  401. package/src/workspace/check.schema.json +4 -2
  402. package/src/workspace/checks/records.ts +35 -1
  403. package/src/workspace/checks.ts +2 -1
  404. package/src/workspace/ci-green-forge.ts +2 -0
  405. package/src/workspace/ci-green.ts +20 -5
  406. package/src/workspace/ci-run.test.ts +416 -0
  407. package/src/workspace/ci-run.ts +571 -0
  408. package/src/workspace/ci-serve.test.ts +268 -0
  409. package/src/workspace/ci-serve.ts +521 -0
  410. package/src/workspace/declaration.schema.json +64 -0
  411. package/src/workspace/declaration.test.ts +28 -0
  412. package/src/workspace/declaration.ts +38 -0
  413. package/src/workspace/declared-kinds.ts +40 -1
  414. package/src/workspace/delivery-metrics.schema.json +519 -0
  415. package/src/workspace/delivery-metrics.test.ts +236 -0
  416. package/src/workspace/delivery-metrics.ts +286 -0
  417. package/src/workspace/flags-read.ts +121 -0
  418. package/src/workspace/flags.test.ts +141 -0
  419. package/src/workspace/flags.ts +157 -0
  420. package/src/workspace/graph-cli.ts +1 -1
  421. package/src/workspace/intent-cli.ts +46 -5
  422. package/src/workspace/intent-trace.test.ts +173 -0
  423. package/src/workspace/intent-trace.ts +484 -0
  424. package/src/workspace/intent.schema.json +702 -6
  425. package/src/workspace/intent.ts +148 -25
  426. package/src/workspace/older-records.test.ts +412 -0
  427. package/src/workspace/overlap.test.ts +165 -0
  428. package/src/workspace/overlap.ts +340 -0
  429. package/src/workspace/pr-report.schema.json +5 -0
  430. package/src/workspace/read-contract.e2e.test.ts +2 -1
  431. package/src/workspace/reason-codes.test.ts +5 -0
  432. package/src/workspace/reason-codes.ts +3 -0
  433. package/src/workspace/record-assets.test.ts +2 -1
  434. package/src/workspace/records-contract.e2e.test.ts +2 -1
  435. package/src/workspace/records.schema.json +21 -2
  436. package/src/workspace/records.ts +36 -2
  437. package/src/workspace/reference-kinds/flag/flag.kind.mjs +32 -0
  438. package/src/workspace/reference-kinds/flag/flag.schema.json +53 -0
  439. package/src/workspace/releases.schema.json +123 -1
  440. package/src/workspace/releases.ts +11 -0
  441. package/src/workspace/run-event.schema.json +24 -6
  442. package/src/workspace/status-contract.test.ts +29 -0
  443. package/src/workspace/status-gates.ts +8 -0
  444. package/src/workspace/status-mixed.test.ts +152 -0
  445. package/src/workspace/status-revoked.test.ts +153 -0
  446. package/src/workspace/status-stewards.ts +3 -0
  447. package/src/workspace/status.schema.json +210 -2
  448. package/src/workspace/status.ts +254 -3
  449. package/src/workspace/wip.ts +11 -2
@@ -34,6 +34,15 @@
34
34
  * the plan before the gate is decided, and the digest is carried rather than
35
35
  * recomputed, so the approval still stands.
36
36
  *
37
+ * The approval and the progress are bound to different things (#4081). The
38
+ * approval is bound to the plan digest, the derivation: who runs, in what
39
+ * order, off which edges. The progress is bound to each component's input
40
+ * digest (../../components/fan-out-inputs.ts): a component the earlier
41
+ * attempt applied stays `already-applied` only while what it would apply is
42
+ * the same, and one whose template, step inputs or upstream moved runs again
43
+ * with a line saying so. The fix after a failure keeps the approval, and a
44
+ * different change of the same shape does not inherit the progress.
45
+ *
37
46
  * `--wave-gate <name>` (#3049) swaps the one gate for one per wave: the same
38
47
  * repeated command stops at each wave's gate in turn, each planned after the
39
48
  * wave before it applied, and `chant approve fan-out <name>-wave-<n>` answers
@@ -48,6 +57,7 @@ import { changedFilesBetween, lexiconChangedUnits } from "../../components/chang
48
57
  import { deriveFanOut, fanOutRegistry } from "../../components/fan-out-support.js";
49
58
  import { EarlierWaveNotAppliedError, runFanOut } from "../../components/fan-out-run.js";
50
59
  import { readFanOutAttempt, writeFanOutAttempt } from "../../components/fan-out-record.js";
60
+ import { componentInputDigests, progressThatCarries } from "../../components/fan-out-inputs.js";
51
61
  import { describeChangedWave, withWaveRecord } from "../../gated-waves.js";
52
62
  import { renderFanOutHuman, renderFanOutJson, renderFanOutPlan } from "../../components/fan-out-output.js";
53
63
  import { ndjsonProgressSink } from "../../components/run-progress.js";
@@ -56,6 +66,8 @@ import { summaryLedgerPrefix, writeGatedRunSummary } from "../../op/gate-summary
56
66
  import { approveCommand, gateIsSealed } from "../../op/gate.js";
57
67
  import { getHeadCommit } from "../../lifecycle/git.js";
58
68
  import { remainingFanOut } from "../../components/fan-out.js";
69
+ import { readDeployedOutputs } from "../../components/wave-plan.js";
70
+ import { deployContext } from "../../components/driver.js";
59
71
  import { resolveCliBuildParams, parseParamFlags } from "../build-params-cli.js";
60
72
  import { formatError, formatInfo, formatWarning } from "../format.js";
61
73
  import { FAN_OUT_GATE_OP } from "../../op/gate-name.js";
@@ -233,7 +245,12 @@ export async function runComponentsFanOut(ctx) {
233
245
  // real run happens inside `runFanOut`, before the gate is decided, so an
234
246
  // approval survives the resume rather than being re-asked for.
235
247
  const resumePath = args.resume ? resolve(args.resume) : undefined;
248
+ // What each component would apply now (#4081). The record keeps it for
249
+ // every component that applies, and a later attempt carries progress only
250
+ // where it is unchanged.
251
+ const inputsNow = resumePath ? componentInputDigests(derived.components, { projectRoot: projectPath, env: args.env ?? "local" }) : {};
236
252
  let priorCompleted = [];
253
+ let priorInputs = {};
237
254
  let priorOutputs = {};
238
255
  let priorWaves = [];
239
256
  let priorCarried = {};
@@ -259,9 +276,27 @@ export async function runComponentsFanOut(ctx) {
259
276
  // as progress would block their subtrees again on the very run that
260
277
  // exists to retry them — the operator repeated the command precisely
261
278
  // because the thing that failed is now expected to work.
262
- priorCompleted = attempt.completed;
263
- priorOutputs = Object.fromEntries(Object.entries(attempt.outputs).filter(([name]) => attempt.completed.includes(name)));
264
- progress = { completed: attempt.completed };
279
+ //
280
+ // And only the part of `completed` whose input is the same now (#4081).
281
+ // The plan digest identifies the derivation, which a different change
282
+ // of the same shape shares; the input digest says what was applied.
283
+ const split = progressThatCarries(attempt, inputsNow);
284
+ if (split.unrecorded && split.changed.length > 0) {
285
+ console.error(formatWarning({
286
+ message: `--resume: "${args.resume}" does not record what each component applied, so none of its progress carries`,
287
+ hint: "It was written before chant recorded component inputs. Everything selected will run.",
288
+ }));
289
+ }
290
+ else {
291
+ for (const name of split.changed) {
292
+ console.error(formatInfo(`${name}: changed since the earlier attempt, so it runs again`));
293
+ }
294
+ }
295
+ const carried = new Set(split.carried);
296
+ priorCompleted = split.carried;
297
+ priorInputs = Object.fromEntries(split.carried.map((name) => [name, inputsNow[name]]));
298
+ priorOutputs = Object.fromEntries(Object.entries(attempt.outputs).filter(([name]) => carried.has(name)));
299
+ progress = { completed: split.carried };
265
300
  priorWaves = attempt.waves ?? [];
266
301
  // What steps kept per member (#3459), such as a choudoufu root's wave
267
302
  // resume file. Each step decides whether what it kept still applies.
@@ -291,6 +326,29 @@ export async function runComponentsFanOut(ctx) {
291
326
  }
292
327
  }
293
328
  const registry = await fanOutRegistry(projectPath, config);
329
+ const env = args.env ?? "local";
330
+ // A completed component's recorded outputs win over a `--seed-outputs`
331
+ // entry for the same name, as a fresh apply's outputs merge over a seed in
332
+ // the driver: the record holds what this fan-out itself applied. A seed
333
+ // neither gives is read from the deployed estate (#4104), through its
334
+ // capability's `outputs`, as pr-plan reads a dependency outside the change.
335
+ // One that cannot be read leaves its dependents' references unresolved.
336
+ const componentOutputs = { ...seededOutputs, ...priorOutputs };
337
+ const seeds = (progress ? remainingFanOut(derived.plan, derived.components, progress) : derived.plan).seeds;
338
+ let deployedSeeds;
339
+ try {
340
+ deployedSeeds = await readDeployedOutputs(seeds, new Map(derived.components.map((c) => [c.name, c])), registry, (name) => deployContext({ env }, name), componentOutputs);
341
+ }
342
+ catch (err) {
343
+ console.error(formatError({
344
+ message: `could not read the deployed outputs of ${seeds.filter((s) => !(s in componentOutputs)).join(", ")}: ${err instanceof Error ? err.message : String(err)}`,
345
+ hint: "Nothing ran. --seed-outputs <file> gives a component's outputs instead of reading them.",
346
+ }));
347
+ return 1;
348
+ }
349
+ for (const [name, keys] of Object.entries(deployedSeeds)) {
350
+ console.error(formatInfo(`${name}: outputs read from the deployed estate (${keys.length > 0 ? keys.join(", ") : "none yet"})`));
351
+ }
294
352
  // #3061: the commit this run deploys, for the workloads' vcs.ref.head.revision.
295
353
  const revision = await getHeadCommit().catch(() => undefined);
296
354
  // The record is rewritten as each component settles, not only once the run
@@ -298,6 +356,7 @@ export async function runComponentsFanOut(ctx) {
298
356
  // runner, ctrl-c) then still knows that the first two applied, and the
299
357
  // repeated command picks up from there instead of redoing them.
300
358
  const completedSoFar = new Set(priorCompleted);
359
+ const inputsSoFar = { ...priorInputs };
301
360
  const failedSoFar = [];
302
361
  const outputsSoFar = { ...priorOutputs };
303
362
  let wavesSoFar = priorWaves;
@@ -310,6 +369,7 @@ export async function runComponentsFanOut(ctx) {
310
369
  completed: [...completedSoFar].sort(),
311
370
  failed: [...failedSoFar].sort(),
312
371
  outputs: outputsSoFar,
372
+ inputs: Object.fromEntries(Object.entries(inputsSoFar).sort(([a], [b]) => a.localeCompare(b))),
313
373
  ...(wavesSoFar.length > 0 ? { waves: wavesSoFar } : {}),
314
374
  ...(Object.keys(carriedSoFar).length > 0 ? { carried: carriedSoFar } : {}),
315
375
  };
@@ -322,12 +382,9 @@ export async function runComponentsFanOut(ctx) {
322
382
  let result;
323
383
  try {
324
384
  result = await runFanOut(derived.plan, derived.components, registry, {
325
- env: args.env ?? "local",
385
+ env,
326
386
  releaseIdentity: () => (revision ? { revision } : {}),
327
- // A completed component's recorded outputs win over a `--seed-outputs`
328
- // entry for the same name, as a fresh apply's outputs merge over a seed in
329
- // the driver: the record holds what this fan-out itself applied.
330
- componentOutputs: { ...seededOutputs, ...priorOutputs },
387
+ componentOutputs,
331
388
  ...(gate ? { gate } : {}),
332
389
  ...(waveGate ? { waveGate } : {}),
333
390
  ...(waveGate
@@ -355,6 +412,8 @@ export async function runComponentsFanOut(ctx) {
355
412
  onComponentSettled: (settled, outputs) => {
356
413
  if (settled.status === "ok") {
357
414
  completedSoFar.add(settled.component);
415
+ if (inputsNow[settled.component] !== undefined)
416
+ inputsSoFar[settled.component] = inputsNow[settled.component];
358
417
  if (outputs)
359
418
  outputsSoFar[settled.component] = outputs;
360
419
  }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `chant lifecycle gc [--yes] [--push] [--json] [--verbose]` (#4036): prune
3
+ * stored change sets, releases and their templates from `chant/lifecycle`, and
4
+ * run event files from this host, by the retention policy.
5
+ *
6
+ * Without `--yes` it is a dry run: it prints what it would remove and changes
7
+ * nothing. With `--yes` it writes one commit to the local `chant/lifecycle`
8
+ * that removes those files, and deletes the run event files. It pushes only
9
+ * with `--push`. History is never rewritten, so a pruned file stays in the
10
+ * branch's earlier commits. The rules are in ../../lifecycle/retention.ts.
11
+ *
12
+ * The policy is the defaults, overridden by the `retention` block of the
13
+ * workspace declaration at base when the checkout is a workspace. The prune
14
+ * covers the whole branch, every member, from wherever in the repository it
15
+ * runs.
16
+ */
17
+ import type { CommandContext } from "../registry.js";
18
+ export declare function runLifecycleGc(ctx: CommandContext): Promise<number>;
19
+ //# sourceMappingURL=lifecycle-gc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-gc.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/lifecycle-gc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAuClD,wBAAsB,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAqFzE"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * `chant lifecycle gc [--yes] [--push] [--json] [--verbose]` (#4036): prune
3
+ * stored change sets, releases and their templates from `chant/lifecycle`, and
4
+ * run event files from this host, by the retention policy.
5
+ *
6
+ * Without `--yes` it is a dry run: it prints what it would remove and changes
7
+ * nothing. With `--yes` it writes one commit to the local `chant/lifecycle`
8
+ * that removes those files, and deletes the run event files. It pushes only
9
+ * with `--push`. History is never rewritten, so a pruned file stays in the
10
+ * branch's earlier commits. The rules are in ../../lifecycle/retention.ts.
11
+ *
12
+ * The policy is the defaults, overridden by the `retention` block of the
13
+ * workspace declaration at base when the checkout is a workspace. The prune
14
+ * covers the whole branch, every member, from wherever in the repository it
15
+ * runs.
16
+ */
17
+ import { execFileSync } from "node:child_process";
18
+ import { existsSync } from "node:fs";
19
+ import { dirname, join, resolve } from "node:path";
20
+ import { formatError, formatSuccess, formatWarning } from "../format.js";
21
+ const USAGE = "chant lifecycle gc [--yes] [--push] [--json] [--verbose]";
22
+ function tryGit(cwd, args) {
23
+ try {
24
+ return execFileSync("git", args, { cwd, encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] }).trim();
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ /** Whether a workspace declaration sits in `cwd` or a directory above it, up to the repository's top. */
31
+ function inWorkspace(cwd, top) {
32
+ for (let dir = cwd;; dir = dirname(dir)) {
33
+ if (existsSync(join(dir, "chant.workspace.json")) || existsSync(join(dir, "chant.workspace.jsonc")))
34
+ return true;
35
+ if (dir === top || dirname(dir) === dir)
36
+ return false;
37
+ }
38
+ }
39
+ /** Every commit with a `ci/revoked/<sha>` tag, counted as `chant release cut` counts it. */
40
+ async function revokedCommits(cwd, top, green, workspace) {
41
+ if (workspace) {
42
+ const { readCiTags } = await import("../../workspace/ci-green.js");
43
+ const base = green
44
+ ? (tryGit(top, ["rev-parse", "--verify", "--quiet", `refs/remotes/origin/${green.branch}^{commit}`]) ??
45
+ tryGit(top, ["rev-parse", "--verify", "--quiet", `refs/heads/${green.branch}^{commit}`]) ??
46
+ tryGit(top, ["rev-parse", "HEAD"]))
47
+ : null;
48
+ return new Set(readCiTags(top, green, base).revoked.keys());
49
+ }
50
+ // With no declaration every tag counts, as readCiTags counts them without `ci.green`.
51
+ const out = tryGit(cwd, ["for-each-ref", "--format=%(refname:lstrip=4)", "refs/tags/ci/revoked/"]) ?? "";
52
+ return new Set(out.split("\n").filter((s) => /^[0-9a-f]{40,64}$/.test(s)));
53
+ }
54
+ const kb = (bytes) => (bytes >= 1024 * 1024 ? `${(bytes / 1024 / 1024).toFixed(1)} MB` : `${(bytes / 1024).toFixed(1)} KB`);
55
+ export async function runLifecycleGc(ctx) {
56
+ const { args } = ctx;
57
+ if (args.extraPositional) {
58
+ console.error(formatError({ message: `lifecycle gc takes no argument, and was given "${args.extraPositional}"`, hint: USAGE }));
59
+ return 1;
60
+ }
61
+ const cwd = resolve(".");
62
+ const top = tryGit(cwd, ["rev-parse", "--show-toplevel"]);
63
+ if (!top) {
64
+ console.error(formatError({ message: "lifecycle gc prunes the chant/lifecycle branch, and this directory is not in a git repository", hint: USAGE }));
65
+ return 1;
66
+ }
67
+ const dryRun = args.yes !== true;
68
+ const { resolveRetention } = await import("../../lifecycle/retention-policy.js");
69
+ let policy = resolveRetention(null);
70
+ let green = null;
71
+ const workspace = inWorkspace(cwd, top);
72
+ if (workspace) {
73
+ const { scopeSource } = await import("../../workspace/write-scope.js");
74
+ const source = scopeSource(cwd);
75
+ if (!source.declaration) {
76
+ console.error(formatError({ message: `the workspace declaration can't be read, so its retention policy is unknown and nothing is pruned: ${source.failure?.message ?? "no declaration"}` }));
77
+ return 1;
78
+ }
79
+ policy = resolveRetention(source.declaration.retention);
80
+ green = source.declaration.ci?.green ?? null;
81
+ }
82
+ // Read the remote's facts first: a prune planned on a stale branch could
83
+ // remove what a newer gate binds, and a forked branch must not be pushed over.
84
+ const { fetchLifecycleStatus } = await import("../../lifecycle/git.js");
85
+ const fetched = await fetchLifecycleStatus({ cwd });
86
+ if (fetched.status === "diverged" || fetched.status === "unreachable") {
87
+ const why = fetched.status === "diverged" ? `the local chant/lifecycle and ${fetched.remote}'s have forked` : `${fetched.remote} did not answer: ${fetched.stderr}`;
88
+ if (!dryRun) {
89
+ console.error(formatError({ message: `nothing was pruned: ${why}`, hint: "Bring chant/lifecycle up to date with its remote, then run again." }));
90
+ return 1;
91
+ }
92
+ if (!args.json)
93
+ console.error(formatWarning({ message: `planned on the local branch only: ${why}` }));
94
+ }
95
+ const { runLifecycleGc: run } = await import("../../lifecycle/retention.js");
96
+ const report = await run({
97
+ cwd,
98
+ policy,
99
+ now: new Date(),
100
+ revokedCommits: await revokedCommits(cwd, top, green, workspace),
101
+ dryRun,
102
+ push: args.push === true,
103
+ });
104
+ if (args.json) {
105
+ console.log(JSON.stringify(report, null, 2));
106
+ return 0;
107
+ }
108
+ const lc = report.lifecycle;
109
+ const count = (list, kind) => list.filter((f) => f.kind === kind).length;
110
+ const bytes = lc.remove.reduce((n, f) => n + f.bytes, 0);
111
+ const verb = dryRun ? "would remove" : "removed";
112
+ if (!lc.tip) {
113
+ console.error("No chant/lifecycle branch: nothing stored to prune.");
114
+ }
115
+ else {
116
+ console.log(`chant/lifecycle at ${lc.tip.slice(0, 12)}: ${verb} ${count(lc.remove, "change-set")} change set(s), ${count(lc.remove, "release")} release(s) and ${count(lc.remove, "template")} template(s), ${kb(bytes)}; ` +
117
+ `keeps ${count(lc.keep, "change-set")}, ${count(lc.keep, "release")} and ${count(lc.keep, "template")}`);
118
+ console.log(` tree at the tip: ${lc.before.files} file(s), ${kb(lc.before.bytes)} before; ${lc.after.files} file(s), ${kb(lc.after.bytes)} after. The ledgers (${kb(lc.before.ledgers.bytes)}) are never pruned, and history keeps every removed file.`);
119
+ if (args.verbose)
120
+ for (const f of lc.remove)
121
+ console.log(` - ${f.path}`);
122
+ }
123
+ const ev = report.runEvents;
124
+ if (ev.dir) {
125
+ console.log(` run events in ${ev.dir}: ${verb} ${ev.remove.length} file(s), ${kb(ev.remove.reduce((n, f) => n + f.bytes, 0))}; keeps ${ev.kept.files}`);
126
+ if (args.verbose)
127
+ for (const f of ev.remove)
128
+ console.log(` - ${f.file}`);
129
+ }
130
+ if (dryRun) {
131
+ console.error("Dry run: nothing was removed. Run again with --yes to prune.");
132
+ }
133
+ else if (lc.commit) {
134
+ console.error(formatSuccess(`Pruned in commit ${lc.commit.slice(0, 12)} on chant/lifecycle`));
135
+ if (lc.pushed)
136
+ console.error(" pushed");
137
+ else if (lc.pushWarning)
138
+ console.error(formatWarning({ message: lc.pushWarning }));
139
+ else
140
+ console.error(" not pushed: run with --push, or push chant/lifecycle yourself");
141
+ }
142
+ return 0;
143
+ }
@@ -33,7 +33,15 @@
33
33
  * one `run-event.schema.json` line each: the planning as a `plan` phase with
34
34
  * a step per component, the gate's decision as a `gate` phase, and on
35
35
  * pr-apply the apply's waves and components as `chant run --components`
36
- * streams them.
36
+ * streams them. A component the apply does not start settles too, `blocked`
37
+ * behind a failed dependency or `already-applied` on a resumed apply.
38
+ * With or without it, pr-apply prints a line on stderr as each wave starts
39
+ * and as each component settles, so a job log shows the waves in order.
40
+ *
41
+ * `--report-url <s3 or file URL>` (#4007) copies `pr-<stage>.json`,
42
+ * `change-set.json` and, with `--events-json`, the events to
43
+ * `<url>/<pr>/<commit>/`, the events again as each wave and component
44
+ * settles (`../../pr-report-url.ts`).
37
45
  *
38
46
  * `--member <name>` (#3465) runs a workspace member's loop: the member's
39
47
  * generated pipeline passes it from the member's directory. The gate is
@@ -44,8 +52,8 @@
44
52
  import type { CommandContext } from "../registry.js";
45
53
  /** Where the reports land unless `--output` says. */
46
54
  export declare const PR_REPORT_DIR = ".chant/pr";
47
- /** chant components pr-plan --base <ref> --pr <n> [--env <env>] [--gate <name>] [--forge <kind>] [--output <dir>] [--json] [--events-json] */
55
+ /** chant components pr-plan --base <ref> --pr <n> [--env <env>] [--gate <name>] [--forge <kind>] [--output <dir>] [--json] [--events-json] [--report-url <url>] */
48
56
  export declare function runComponentsPrPlan(ctx: CommandContext): Promise<number>;
49
- /** chant components pr-apply --base <ref> [--pr <n>] [--env <env>] [--gate <name>] [--forge <kind>] [--require-review] [--output <dir>] [--json] [--events-json] */
57
+ /** chant components pr-apply --base <ref> [--pr <n>] [--env <env>] [--gate <name>] [--forge <kind>] [--require-review] [--output <dir>] [--json] [--events-json] [--report-url <url>] */
50
58
  export declare function runComponentsPrApply(ctx: CommandContext): Promise<number>;
51
59
  //# sourceMappingURL=pr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/pr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AA4CH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,qDAAqD;AACrD,eAAO,MAAM,aAAa,cAAc,CAAC;AAoPzC,8IAA8I;AAC9I,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE;AAuDD,oKAAoK;AACpK,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE"}
1
+ {"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/pr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AA8CH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,qDAAqD;AACrD,eAAO,MAAM,aAAa,cAAc,CAAC;AA6RzC,mKAAmK;AACnK,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE;AAwDD,yLAAyL;AACzL,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE"}