@intentius/chant 0.124.40 → 0.124.42

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 (346) hide show
  1. package/dist/__fixtures__/oidc-emulator.d.ts +49 -0
  2. package/dist/__fixtures__/oidc-emulator.d.ts.map +1 -0
  3. package/dist/__fixtures__/oidc-emulator.js +89 -0
  4. package/dist/ci-handover.d.ts +117 -0
  5. package/dist/ci-handover.d.ts.map +1 -0
  6. package/dist/ci-handover.js +217 -0
  7. package/dist/ci-identity.d.ts +190 -0
  8. package/dist/ci-identity.d.ts.map +1 -0
  9. package/dist/ci-identity.js +219 -0
  10. package/dist/cli/handlers/approve.d.ts +2 -1
  11. package/dist/cli/handlers/approve.d.ts.map +1 -1
  12. package/dist/cli/handlers/approve.js +20 -6
  13. package/dist/cli/handlers/build.d.ts.map +1 -1
  14. package/dist/cli/handlers/build.js +18 -1
  15. package/dist/cli/handlers/fan-out.d.ts.map +1 -1
  16. package/dist/cli/handlers/fan-out.js +42 -5
  17. package/dist/cli/handlers/gate-resume.d.ts +3 -0
  18. package/dist/cli/handlers/gate-resume.d.ts.map +1 -1
  19. package/dist/cli/handlers/gate-resume.js +15 -2
  20. package/dist/cli/handlers/lock.d.ts +8 -0
  21. package/dist/cli/handlers/lock.d.ts.map +1 -0
  22. package/dist/cli/handlers/lock.js +197 -0
  23. package/dist/cli/handlers/pr-env.d.ts +34 -0
  24. package/dist/cli/handlers/pr-env.d.ts.map +1 -0
  25. package/dist/cli/handlers/pr-env.js +436 -0
  26. package/dist/cli/handlers/pr.d.ts +76 -0
  27. package/dist/cli/handlers/pr.d.ts.map +1 -1
  28. package/dist/cli/handlers/pr.js +615 -55
  29. package/dist/cli/handlers/promote.d.ts.map +1 -1
  30. package/dist/cli/handlers/promote.js +9 -0
  31. package/dist/cli/handlers/query.d.ts +6 -0
  32. package/dist/cli/handlers/query.d.ts.map +1 -0
  33. package/dist/cli/handlers/query.js +80 -0
  34. package/dist/cli/handlers/run.d.ts.map +1 -1
  35. package/dist/cli/handlers/run.js +11 -0
  36. package/dist/cli/main.d.ts.map +1 -1
  37. package/dist/cli/main.js +49 -4
  38. package/dist/cli/parse-args.d.ts.map +1 -1
  39. package/dist/cli/parse-args.js +46 -2
  40. package/dist/cli/registry.d.ts +31 -2
  41. package/dist/cli/registry.d.ts.map +1 -1
  42. package/dist/components/capability.d.ts +47 -0
  43. package/dist/components/capability.d.ts.map +1 -1
  44. package/dist/components/capability.js +44 -0
  45. package/dist/components/cli-support.d.ts +6 -0
  46. package/dist/components/cli-support.d.ts.map +1 -1
  47. package/dist/components/cli-support.js +8 -1
  48. package/dist/components/driver.d.ts +10 -0
  49. package/dist/components/driver.d.ts.map +1 -1
  50. package/dist/components/driver.js +52 -2
  51. package/dist/components/fan-out-run.d.ts +37 -0
  52. package/dist/components/fan-out-run.d.ts.map +1 -1
  53. package/dist/components/fan-out-run.js +44 -4
  54. package/dist/components/gate-plan.d.ts +2 -0
  55. package/dist/components/gate-plan.d.ts.map +1 -1
  56. package/dist/components/gate-plan.js +1 -0
  57. package/dist/components/pr-environment.d.ts +298 -0
  58. package/dist/components/pr-environment.d.ts.map +1 -0
  59. package/dist/components/pr-environment.js +406 -0
  60. package/dist/components/pr-hooks.d.ts +66 -0
  61. package/dist/components/pr-hooks.d.ts.map +1 -0
  62. package/dist/components/pr-hooks.js +119 -0
  63. package/dist/components/pr-pipeline.d.ts +92 -2
  64. package/dist/components/pr-pipeline.d.ts.map +1 -1
  65. package/dist/components/pr-pipeline.js +150 -21
  66. package/dist/components/pr-policy.d.ts +109 -0
  67. package/dist/components/pr-policy.d.ts.map +1 -0
  68. package/dist/components/pr-policy.js +150 -0
  69. package/dist/components/pr-run.d.ts +6 -0
  70. package/dist/components/pr-run.d.ts.map +1 -1
  71. package/dist/components/pr-run.js +8 -3
  72. package/dist/components/wave-plan.d.ts +14 -1
  73. package/dist/components/wave-plan.d.ts.map +1 -1
  74. package/dist/components/wave-plan.js +34 -2
  75. package/dist/gate-decision.d.ts +15 -2
  76. package/dist/gate-decision.d.ts.map +1 -1
  77. package/dist/gate-decision.js +17 -2
  78. package/dist/gate-policy.d.ts +140 -0
  79. package/dist/gate-policy.d.ts.map +1 -0
  80. package/dist/gate-policy.js +242 -0
  81. package/dist/lifecycle/gate-checkpoint.d.ts +1 -1
  82. package/dist/lifecycle/gate-checkpoint.js +1 -1
  83. package/dist/{workspace/trust → lifecycle}/gate-seal.d.ts +1 -1
  84. package/dist/lifecycle/gate-seal.d.ts.map +1 -0
  85. package/dist/lifecycle/query.d.ts +68 -0
  86. package/dist/lifecycle/query.d.ts.map +1 -0
  87. package/dist/lifecycle/query.js +246 -0
  88. package/dist/lifecycle/run-ledger.d.ts +13 -0
  89. package/dist/lifecycle/run-ledger.d.ts.map +1 -1
  90. package/dist/lifecycle/run-ledger.js +16 -0
  91. package/dist/lifecycle/target-lock.d.ts +97 -0
  92. package/dist/lifecycle/target-lock.d.ts.map +1 -0
  93. package/dist/lifecycle/target-lock.js +286 -0
  94. package/dist/op/activities/activity-contracts.d.ts +30 -0
  95. package/dist/op/activities/activity-contracts.d.ts.map +1 -1
  96. package/dist/op/activities/activity-contracts.js +26 -0
  97. package/dist/op/activities/index.d.ts +2 -0
  98. package/dist/op/activities/index.d.ts.map +1 -1
  99. package/dist/op/activities/index.js +4 -0
  100. package/dist/op/activities/pr-refs.d.ts +10 -0
  101. package/dist/op/activities/pr-refs.d.ts.map +1 -0
  102. package/dist/op/activities/pr-refs.js +26 -0
  103. package/dist/op/activities/predict-behaviour.d.ts +2 -4
  104. package/dist/op/activities/predict-behaviour.d.ts.map +1 -1
  105. package/dist/op/activities/predict-behaviour.js +2 -21
  106. package/dist/op/activities/review-agent.d.ts +137 -0
  107. package/dist/op/activities/review-agent.d.ts.map +1 -0
  108. package/dist/op/activities/review-agent.js +266 -0
  109. package/dist/op/builders.d.ts +9 -0
  110. package/dist/op/builders.d.ts.map +1 -1
  111. package/dist/op/builders.js +11 -0
  112. package/dist/op/cron.d.ts +8 -0
  113. package/dist/op/cron.d.ts.map +1 -1
  114. package/dist/op/cron.js +51 -0
  115. package/dist/op/gate-approval.d.ts +20 -13
  116. package/dist/op/gate-approval.d.ts.map +1 -1
  117. package/dist/op/gate-approval.js +13 -18
  118. package/dist/op/gate-quorum.d.ts +131 -0
  119. package/dist/op/gate-quorum.d.ts.map +1 -0
  120. package/dist/op/gate-quorum.js +183 -0
  121. package/dist/op/gate-resume.d.ts +4 -2
  122. package/dist/op/gate-resume.d.ts.map +1 -1
  123. package/dist/op/gate-resume.js +5 -4
  124. package/dist/op/gate-review.js +1 -1
  125. package/dist/op/gate.d.ts +32 -4
  126. package/dist/op/gate.d.ts.map +1 -1
  127. package/dist/op/gate.js +40 -24
  128. package/dist/op/index.d.ts +6 -4
  129. package/dist/op/index.d.ts.map +1 -1
  130. package/dist/op/index.js +4 -3
  131. package/dist/op/local-executor.d.ts.map +1 -1
  132. package/dist/op/local-executor.js +9 -3
  133. package/dist/op/op-waves-run.d.ts +28 -43
  134. package/dist/op/op-waves-run.d.ts.map +1 -1
  135. package/dist/op/op-waves-run.js +170 -120
  136. package/dist/op/op-waves.d.ts +55 -3
  137. package/dist/op/op-waves.d.ts.map +1 -1
  138. package/dist/op/op-waves.js +63 -8
  139. package/dist/op/schedule-overdue.d.ts +57 -0
  140. package/dist/op/schedule-overdue.d.ts.map +1 -0
  141. package/dist/op/schedule-overdue.js +138 -0
  142. package/dist/op/stage-hooks.d.ts +132 -0
  143. package/dist/op/stage-hooks.d.ts.map +1 -0
  144. package/dist/op/stage-hooks.js +142 -0
  145. package/dist/override-gate.d.ts +2 -2
  146. package/dist/override-gate.d.ts.map +1 -1
  147. package/dist/override-gate.js +1 -1
  148. package/dist/pr-forge.d.ts +64 -0
  149. package/dist/pr-forge.d.ts.map +1 -1
  150. package/dist/pr-forge.js +331 -44
  151. package/dist/pr-loop.d.ts +107 -1
  152. package/dist/pr-loop.d.ts.map +1 -1
  153. package/dist/pr-loop.js +84 -3
  154. package/dist/pr-post.d.ts +72 -0
  155. package/dist/pr-post.d.ts.map +1 -0
  156. package/dist/pr-post.js +134 -0
  157. package/dist/pr-requires.d.ts +38 -0
  158. package/dist/pr-requires.d.ts.map +1 -0
  159. package/dist/pr-requires.js +48 -0
  160. package/dist/wave-blocked.d.ts +79 -0
  161. package/dist/wave-blocked.d.ts.map +1 -0
  162. package/dist/wave-blocked.js +245 -0
  163. package/dist/wave-engine.d.ts +6 -0
  164. package/dist/wave-engine.d.ts.map +1 -1
  165. package/dist/wave-engine.js +2 -0
  166. package/dist/wave-runtime.mjs +243 -243
  167. package/dist/workspace/__fixtures__/two-member-workspace.d.ts +1 -0
  168. package/dist/workspace/__fixtures__/two-member-workspace.d.ts.map +1 -1
  169. package/dist/workspace/__fixtures__/two-member-workspace.js +1 -1
  170. package/dist/workspace/checks/ci-workflow.d.ts.map +1 -1
  171. package/dist/workspace/checks/ci-workflow.js +19 -4
  172. package/dist/workspace/ci-branches.d.ts +51 -0
  173. package/dist/workspace/ci-branches.d.ts.map +1 -0
  174. package/dist/workspace/ci-branches.js +69 -0
  175. package/dist/workspace/ci-cloud-identity.d.ts +11 -0
  176. package/dist/workspace/ci-cloud-identity.d.ts.map +1 -0
  177. package/dist/workspace/ci-cloud-identity.js +24 -0
  178. package/dist/workspace/ci-init.d.ts.map +1 -1
  179. package/dist/workspace/ci-init.js +5 -4
  180. package/dist/workspace/ci-locks.d.ts +12 -0
  181. package/dist/workspace/ci-locks.d.ts.map +1 -0
  182. package/dist/workspace/ci-locks.js +6 -0
  183. package/dist/workspace/ci-run.d.ts +17 -1
  184. package/dist/workspace/ci-run.d.ts.map +1 -1
  185. package/dist/workspace/ci-run.js +66 -4
  186. package/dist/workspace/ci-workflow-at.d.ts +14 -0
  187. package/dist/workspace/ci-workflow-at.d.ts.map +1 -0
  188. package/dist/workspace/ci-workflow-at.js +17 -0
  189. package/dist/workspace/ci-workflow.d.ts +11 -3
  190. package/dist/workspace/ci-workflow.d.ts.map +1 -1
  191. package/dist/workspace/ci-workflow.js +10 -2
  192. package/dist/workspace/declaration.d.ts +69 -3
  193. package/dist/workspace/declaration.d.ts.map +1 -1
  194. package/dist/workspace/declaration.js +72 -1
  195. package/dist/workspace/declaration.schema.json +149 -2
  196. package/dist/workspace/identity-gate-rule.d.ts +1 -1
  197. package/dist/workspace/identity-gate-rule.d.ts.map +1 -1
  198. package/dist/workspace/identity-gate-rule.js +1 -1
  199. package/dist/workspace/identity.d.ts +1 -1
  200. package/dist/workspace/identity.d.ts.map +1 -1
  201. package/dist/workspace/lineage-upgrade.d.ts.map +1 -1
  202. package/dist/workspace/lineage-upgrade.js +8 -5
  203. package/dist/workspace/member-pipeline.d.ts +6 -0
  204. package/dist/workspace/member-pipeline.d.ts.map +1 -1
  205. package/dist/workspace/member-pipeline.js +23 -0
  206. package/dist/workspace/pr-report.schema.json +94 -3
  207. package/dist/workspace/reason-codes.d.ts +1 -1
  208. package/dist/workspace/reason-codes.d.ts.map +1 -1
  209. package/dist/workspace/reason-codes.js +1 -1
  210. package/dist/workspace/security.d.ts.map +1 -1
  211. package/dist/workspace/security.js +4 -0
  212. package/dist/workspace/status-gates.d.ts +3 -2
  213. package/dist/workspace/status-gates.d.ts.map +1 -1
  214. package/dist/workspace/status-gates.js +8 -7
  215. package/dist/workspace/status.d.ts.map +1 -1
  216. package/dist/workspace/status.js +4 -1
  217. package/dist/workspace/trust/seal.d.ts +2 -2
  218. package/dist/workspace/trust/seal.d.ts.map +1 -1
  219. package/dist/workspace/trust/seal.js +2 -2
  220. package/package.json +1 -1
  221. package/src/__fixtures__/oidc-emulator.ts +118 -0
  222. package/src/ci-handover.test.ts +209 -0
  223. package/src/ci-handover.ts +237 -0
  224. package/src/ci-identity.test.ts +201 -0
  225. package/src/ci-identity.ts +310 -0
  226. package/src/cli/handlers/approve.ts +18 -5
  227. package/src/cli/handlers/build.ts +18 -1
  228. package/src/cli/handlers/fan-out.ts +43 -6
  229. package/src/cli/handlers/gate-resume.ts +16 -2
  230. package/src/cli/handlers/lock.test.ts +98 -0
  231. package/src/cli/handlers/lock.ts +202 -0
  232. package/src/cli/handlers/operator.test.ts +3 -1
  233. package/src/cli/handlers/pr-before-merge.test.ts +276 -0
  234. package/src/cli/handlers/pr-env.ts +462 -0
  235. package/src/cli/handlers/pr-waves-blocked.test.ts +247 -0
  236. package/src/cli/handlers/pr.test.ts +184 -0
  237. package/src/cli/handlers/pr.ts +605 -61
  238. package/src/cli/handlers/promote.ts +9 -0
  239. package/src/cli/handlers/query.ts +78 -0
  240. package/src/cli/handlers/run.ts +10 -0
  241. package/src/cli/main.ts +49 -4
  242. package/src/cli/parse-args.ts +34 -2
  243. package/src/cli/registry.ts +31 -2
  244. package/src/components/capability-targets.test.ts +162 -0
  245. package/src/components/capability.ts +71 -0
  246. package/src/components/cli-support.ts +14 -1
  247. package/src/components/driver.ts +54 -3
  248. package/src/components/fan-out-run.ts +58 -3
  249. package/src/components/fan-out-waves.test.ts +45 -1
  250. package/src/components/gate-plan.ts +3 -0
  251. package/src/components/pr-environment.test.ts +249 -0
  252. package/src/components/pr-environment.ts +538 -0
  253. package/src/components/pr-hooks.test.ts +118 -0
  254. package/src/components/pr-hooks.ts +157 -0
  255. package/src/components/pr-pipeline.ts +194 -21
  256. package/src/components/pr-policy.test.ts +145 -0
  257. package/src/components/pr-policy.ts +211 -0
  258. package/src/components/pr-run.ts +14 -2
  259. package/src/components/wave-plan.ts +38 -3
  260. package/src/gate-decision-bundle.test.ts +4 -3
  261. package/src/gate-decision.ts +39 -2
  262. package/src/gate-policy-bundle.test.ts +28 -0
  263. package/src/gate-policy.test.ts +162 -0
  264. package/src/gate-policy.ts +298 -0
  265. package/src/lifecycle/gate-checkpoint.ts +1 -1
  266. package/src/{workspace/trust → lifecycle}/gate-seal.ts +1 -1
  267. package/src/lifecycle/query.test.ts +91 -0
  268. package/src/lifecycle/query.ts +315 -0
  269. package/src/lifecycle/run-ledger.ts +18 -0
  270. package/src/lifecycle/target-lock.test.ts +195 -0
  271. package/src/lifecycle/target-lock.ts +347 -0
  272. package/src/op/activities/activity-contracts.ts +31 -0
  273. package/src/op/activities/index.ts +6 -0
  274. package/src/op/activities/pr-refs.ts +28 -0
  275. package/src/op/activities/predict-behaviour.ts +3 -23
  276. package/src/op/activities/review-agent.test.ts +240 -0
  277. package/src/op/activities/review-agent.ts +355 -0
  278. package/src/op/builders.ts +13 -0
  279. package/src/op/cron.ts +44 -0
  280. package/src/op/gate-alias.test.ts +2 -2
  281. package/src/op/gate-approval.test.ts +30 -9
  282. package/src/op/gate-approval.ts +23 -26
  283. package/src/op/gate-quorum.test.ts +139 -0
  284. package/src/op/gate-quorum.ts +248 -0
  285. package/src/op/gate-resume.ts +6 -3
  286. package/src/op/gate-review.ts +1 -1
  287. package/src/op/gate.ts +64 -23
  288. package/src/op/index.ts +13 -1
  289. package/src/op/local-executor.ts +9 -2
  290. package/src/op/op-waves-hook-targets.test.ts +126 -0
  291. package/src/op/op-waves-policy-hold.test.ts +66 -0
  292. package/src/op/op-waves-quorum.test.ts +101 -0
  293. package/src/op/op-waves-run.ts +197 -183
  294. package/src/op/op-waves.ts +83 -10
  295. package/src/op/schedule-overdue.test.ts +220 -0
  296. package/src/op/schedule-overdue.ts +161 -0
  297. package/src/op/stage-hooks.ts +251 -0
  298. package/src/override-gate-bundle.test.ts +1 -1
  299. package/src/override-gate.ts +2 -2
  300. package/src/pr-forge-bundle.test.ts +2 -2
  301. package/src/pr-forge.test.ts +33 -0
  302. package/src/pr-forge.ts +347 -35
  303. package/src/pr-loop-bundle.test.ts +2 -2
  304. package/src/pr-loop.test.ts +58 -0
  305. package/src/pr-loop.ts +170 -4
  306. package/src/pr-post.test.ts +141 -0
  307. package/src/pr-post.ts +159 -0
  308. package/src/pr-requires.test.ts +184 -0
  309. package/src/pr-requires.ts +79 -0
  310. package/src/review-agent-bundle.test.ts +35 -0
  311. package/src/stage-hooks-bundle.test.ts +38 -0
  312. package/src/wave-blocked-bundle.test.ts +25 -0
  313. package/src/wave-blocked.test.ts +146 -0
  314. package/src/wave-blocked.ts +271 -0
  315. package/src/wave-engine.ts +8 -0
  316. package/src/workspace/__fixtures__/two-member-workspace.ts +2 -2
  317. package/src/workspace/checks/ci-workflow.test.ts +9 -0
  318. package/src/workspace/checks/ci-workflow.ts +18 -4
  319. package/src/workspace/ci-branches.test.ts +62 -0
  320. package/src/workspace/ci-branches.ts +79 -0
  321. package/src/workspace/ci-cloud-identity.test.ts +53 -0
  322. package/src/workspace/ci-cloud-identity.ts +23 -0
  323. package/src/workspace/ci-init.ts +5 -4
  324. package/src/workspace/ci-locks.ts +16 -0
  325. package/src/workspace/ci-run-index.test.ts +2 -1
  326. package/src/workspace/ci-run.test.ts +107 -8
  327. package/src/workspace/ci-run.ts +74 -5
  328. package/src/workspace/ci-workflow-at.ts +23 -0
  329. package/src/workspace/ci-workflow.ts +13 -2
  330. package/src/workspace/declaration.schema.json +149 -2
  331. package/src/workspace/declaration.test.ts +76 -0
  332. package/src/workspace/declaration.ts +140 -5
  333. package/src/workspace/identity-gate-rule.ts +1 -1
  334. package/src/workspace/identity.ts +1 -1
  335. package/src/workspace/lineage-upgrade.ts +11 -8
  336. package/src/workspace/member-pipeline.test.ts +29 -0
  337. package/src/workspace/member-pipeline.ts +30 -0
  338. package/src/workspace/pr-report.schema.json +94 -3
  339. package/src/workspace/reason-codes.ts +1 -1
  340. package/src/workspace/security.ts +4 -0
  341. package/src/workspace/status-gates.ts +9 -6
  342. package/src/workspace/status.ts +4 -1
  343. package/src/workspace/trust/gate-seal.test.ts +1 -1
  344. package/src/workspace/trust/seal.ts +2 -2
  345. package/dist/workspace/trust/gate-seal.d.ts.map +0 -1
  346. /package/dist/{workspace/trust → lifecycle}/gate-seal.js +0 -0
@@ -0,0 +1,298 @@
1
+ /**
2
+ * An environment per open pull request (#4298): `ci.prEnvironment` in the
3
+ * workspace declaration names a template environment, and each open pull
4
+ * request gets `pr-<number>`, derived from it.
5
+ *
6
+ * chant components pr-env up --base <ref> --pr <n>
7
+ * From the pull request's job. Plans the components the change reaches
8
+ * into `pr-<n>` and applies them once an approval stands for that plan
9
+ * (`chant approve pr-<n> pr-env --plan <digest>`). The environment
10
+ * takes the template's declared endpoint unless a `pr-*` entry declares
11
+ * its own. Every resource it creates carries the ownership marker
12
+ * `{ stack, env: "pr-<n>" }`, since the build parameter that
13
+ * `ownership.env` reads is set to the environment's name. The record
14
+ * of the apply goes to `_pr-envs/records.jsonl` on chant/lifecycle.
15
+ * chant components pr-env down --pr <n> [--reason closed|expired]
16
+ * From the job a closed pull request starts. Tears down what carries
17
+ * the marker the record names, and nothing else (the ownership check,
18
+ * {@link teardownRefusal} and {@link ownedEntries}).
19
+ * chant components pr-env sweep
20
+ * From a schedule. Tears down each live environment whose TTL passed,
21
+ * or whose pull request the forge says is closed or merged. GitLab
22
+ * starts no pipeline when a merge request closes, so there the sweep is
23
+ * how a closed merge request loses its environment.
24
+ *
25
+ * The settings are read from the declaration at base, never from the pull
26
+ * request, so a change cannot name another template or a longer TTL.
27
+ *
28
+ * A pull request's environment is not a release target (ws-104, ws-105):
29
+ * releases come from green commits, and `components promote` refuses to
30
+ * promote to or from one ({@link releaseTargetRefusal}). Its record says
31
+ * `releaseTarget: false`.
32
+ *
33
+ * terragucci's `ephemeral.ts` gives each copy a suffixed Terraform state key.
34
+ * That part is Terraform's own and stays there; chant keys ownership on the
35
+ * marker its lexicons stamp and read back (`../lifecycle/teardown.ts`).
36
+ */
37
+ import { type ChantConfig, type EnvironmentDeclaration } from "../config.js";
38
+ import type { OwnershipMarker } from "../ownership.js";
39
+ import { type TeardownPlan, type TeardownPlanEntry, type TeardownReport } from "../lifecycle/teardown.js";
40
+ import type { ObservationLexicon } from "../lexicon.js";
41
+ /** The gate a pull request's environment waits on, under the pull request's op `pr-<n>`. */
42
+ export declare const PR_ENV_GATE = "pr-env";
43
+ /** Where the records live on chant/lifecycle, under the member's ledger prefix. */
44
+ export declare const PR_ENV_LEDGER_DIR = "_pr-envs";
45
+ export declare const PR_ENV_LEDGER_FILE = "records.jsonl";
46
+ /** Where `pr-env` writes its report and note unless `--output` says. */
47
+ export { PR_ENV_REPORT_DIR } from "./pr-pipeline.js";
48
+ /** The file `pr-env up --no-push` writes its record to under `--output`, for `pr-env post` (#4295). */
49
+ export declare const PR_ENV_RECORD_FILE = "pr-env-record.json";
50
+ /** The commit status context the up and down jobs set. */
51
+ export declare const PR_ENV_STATUS_CONTEXT = "chant/pr-env";
52
+ /** The variable a component's build reads the template's name from. */
53
+ export declare const PR_ENV_TEMPLATE_VAR = "CHANT_ENV_TEMPLATE";
54
+ /** Exit codes: done, failed or refused, and waiting on an approval. */
55
+ export declare const PR_ENV_EXIT: {
56
+ readonly done: 0;
57
+ readonly failed: 1;
58
+ readonly waiting: 3;
59
+ };
60
+ /** The environment of pull request `pr`. */
61
+ export declare function prEnvironmentName(pr: number): string;
62
+ /** Whether `name` is a pull request's environment name, `pr-<n>`. */
63
+ export declare function isPrEnvironmentName(name: string): boolean;
64
+ /** The hidden line that marks the environment's note on the pull request. */
65
+ export declare function prEnvNoteMarker(env: string, member?: string): string;
66
+ /** The status context, per member in a workspace. */
67
+ export declare function prEnvStatusContext(member?: string): string;
68
+ /** The approve command for an environment's plan. */
69
+ export declare function prEnvApproveCommand(op: string, digest: string, approver?: string): string;
70
+ /**
71
+ * Why `env` cannot be a release's source or target, or undefined when it
72
+ * can. A pull request's environment never is (ws-104: releases come from
73
+ * green commits).
74
+ */
75
+ export declare function releaseTargetRefusal(env: string): string | undefined;
76
+ /** A TTL of the form `90m`, `72h` or `7d`, in milliseconds. Undefined for any other form. */
77
+ export declare function ttlMs(ttl: string): number | undefined;
78
+ /** What `pr-env up` derives from the template and the project's config, or why it cannot. */
79
+ export type PrEnvDerivation = {
80
+ env: string;
81
+ template: string;
82
+ stack: string;
83
+ /** The build parameter `ownership.env` reads, set to `env` for the build. */
84
+ param: string;
85
+ /** The config's environments with `env` declared outright, carrying the template's endpoint when it has none of its own. */
86
+ environments: EnvironmentDeclaration[] | undefined;
87
+ /** The endpoint the environment's plans and applies use, if any. */
88
+ endpoint?: string;
89
+ } | {
90
+ refusal: string;
91
+ };
92
+ /**
93
+ * Derive pull request `pr`'s environment from `template` and the project's
94
+ * config. Refused when the resources it creates could not be told apart
95
+ * from the template's: marking is off, or `ownership.env` is a literal (every
96
+ * resource would carry that literal) or unset. Refused too when the config
97
+ * would not take the name, or does not declare the template.
98
+ */
99
+ export declare function derivePrEnvironment(config: ChantConfig, template: string, pr: number): PrEnvDerivation;
100
+ /** One line of `_pr-envs/records.jsonl`: an apply, or a teardown. */
101
+ export interface PrEnvRecord {
102
+ version: 1;
103
+ kind: "up" | "down";
104
+ pr: number;
105
+ /** `pr-<n>`. */
106
+ env: string;
107
+ /** The workspace member whose environment it is, when in one. */
108
+ member?: string;
109
+ /** The template environment it was derived from. */
110
+ template: string;
111
+ /** The marker every resource of the environment carries. What teardown selects on. */
112
+ marker: {
113
+ stack: string;
114
+ env: string;
115
+ };
116
+ /** The commit applied, or the commit the teardown ran at. */
117
+ commit: string;
118
+ /** The components applied (up) or the lexicons torn down (down). */
119
+ components: string[];
120
+ /** The change-set digest applied; empty for a teardown. */
121
+ planDigest: string;
122
+ /** `incomplete`: a teardown that left something, so the environment stays live and the sweep tries again. */
123
+ result: "applied" | "failed" | "destroyed" | "incomplete";
124
+ by: string;
125
+ timestamp: string;
126
+ /** Up: when the sweep tears it down unless another apply comes first. */
127
+ expiresAt?: string;
128
+ approvedBy?: string[];
129
+ /** Down: why. */
130
+ reason?: "closed" | "expired";
131
+ /** Down: the teardown's outcome counts. */
132
+ outcomes?: {
133
+ deleted: number;
134
+ failed: number;
135
+ retained: number;
136
+ notPrunable: number;
137
+ skipped: number;
138
+ holes: number;
139
+ };
140
+ /** Always false: a pull request's environment is never a release target. */
141
+ releaseTarget: false;
142
+ runUrl?: string;
143
+ }
144
+ /** The records of a records.jsonl text, oldest first. Malformed lines are skipped. */
145
+ export declare function parsePrEnvRecords(text: string | null | undefined): PrEnvRecord[];
146
+ /** A pull request's environment as its records say it stands. */
147
+ export interface LivePrEnvironment {
148
+ pr: number;
149
+ env: string;
150
+ member?: string;
151
+ template: string;
152
+ marker: {
153
+ stack: string;
154
+ env: string;
155
+ };
156
+ /** The commit last applied. */
157
+ commit: string;
158
+ /** Every component an apply of it ever touched. */
159
+ components: string[];
160
+ applied: string;
161
+ expiresAt: string;
162
+ /** Its last teardown left something, so the sweep tries again. */
163
+ teardownIncomplete?: boolean;
164
+ }
165
+ /**
166
+ * The environments that stand, by name, from the records in order: an up
167
+ * (applied or failed part way) makes or refreshes one, a down that
168
+ * destroyed everything ends it, and any other down leaves it live.
169
+ */
170
+ export declare function livePrEnvironments(records: readonly PrEnvRecord[]): Map<string, LivePrEnvironment>;
171
+ /** Whether a live environment's TTL passed at `now`. */
172
+ export declare function expired(env: Pick<LivePrEnvironment, "expiresAt">, now: Date): boolean;
173
+ /**
174
+ * Why pull request `pr`'s environment must not be torn down as `live`
175
+ * says, or undefined when it may. The record must name `pr-<n>` for this
176
+ * pull request, its marker's env must be that name, and the config must not
177
+ * declare the name outright (a declared environment belongs to the project,
178
+ * not to a pull request).
179
+ */
180
+ export declare function teardownRefusal(pr: number, live: LivePrEnvironment, declared: EnvironmentDeclaration[] | undefined): string | undefined;
181
+ /**
182
+ * The entries of a teardown plan the environment owns: those whose marker
183
+ * is exactly `marker`. `planTeardown` already selects on the marker; this
184
+ * is the second check, so a lexicon that returned another's resources cannot
185
+ * widen what pr-env down deletes. `dropped` counts what was left out.
186
+ */
187
+ export declare function ownedEntries(plan: TeardownPlan, marker: OwnershipMarker): {
188
+ plan: TeardownPlan;
189
+ dropped: TeardownPlanEntry[];
190
+ };
191
+ /** What {@link tearDownPrEnvironment} needs. */
192
+ export interface PrEnvTeardownInput {
193
+ pr: number;
194
+ live: LivePrEnvironment;
195
+ config: ChantConfig;
196
+ plugins: ObservationLexicon[];
197
+ warn?: (message: string) => void;
198
+ }
199
+ /**
200
+ * Tear down pull request `pr`'s environment with the ownership check: refused
201
+ * before any read when {@link teardownRefusal} says so; otherwise the live
202
+ * resources under the record's marker are planned, every entry whose marker
203
+ * is not exactly `{ stack, env: "pr-<n>" }` is dropped ({@link ownedEntries}),
204
+ * and only the rest go to each lexicon's teardown. The endpoint is the one
205
+ * the environment was applied at: its own `pr-*` entry's, else the template's.
206
+ */
207
+ export declare function tearDownPrEnvironment(input: PrEnvTeardownInput): Promise<{
208
+ refusal: string;
209
+ } | {
210
+ report: TeardownReport;
211
+ dropped: number;
212
+ marker: {
213
+ stack: string;
214
+ env: string;
215
+ };
216
+ }>;
217
+ /** A teardown report's counts for the record. */
218
+ export declare function teardownCounts(report: TeardownReport): NonNullable<PrEnvRecord["outcomes"]>;
219
+ /**
220
+ * Whether a teardown left the environment clean: nothing failed, nothing was
221
+ * skipped for a lexicon with no teardown execution, and the plan had no
222
+ * holes. A retained resource (a lexicon's deliberate keep) does not count
223
+ * against it.
224
+ */
225
+ export declare function teardownComplete(report: TeardownReport): boolean;
226
+ /** What {@link acceptHandedRecord} checks a handed-on record against: the job's own values and the settings at its commit. */
227
+ export interface HandedRecordCheck {
228
+ pr: number;
229
+ member?: string;
230
+ /** The commit the up job checked out, from the forge, not from the record. */
231
+ head: string;
232
+ /** `ci.prEnvironment` at the commit the post job runs at. */
233
+ template: string;
234
+ ttlMs: number;
235
+ now: Date;
236
+ by: string;
237
+ runUrl?: string;
238
+ }
239
+ /**
240
+ * The record `pr-env up --no-push` handed on, checked as data: the up job ran
241
+ * the change's code, so what it wrote is the change's. It must be an `up`
242
+ * line for this pull request's `pr-<n>`, with that marker env, the template
243
+ * the base declares, and string components. The commit, the actor, the run
244
+ * and the expiry are the post job's own, so a change cannot keep its
245
+ * environment past the TTL its base set. Refused otherwise, and kept nowhere.
246
+ */
247
+ export declare function acceptHandedRecord(raw: unknown, check: HandedRecordCheck): {
248
+ record: PrEnvRecord;
249
+ } | {
250
+ refusal: string;
251
+ };
252
+ /**
253
+ * The report `pr-env up` handed on, checked as data before the post job
254
+ * renders a note from it: an `up` report for this pull request's `pr-<n>`.
255
+ * Its head is the post job's own.
256
+ */
257
+ export declare function handedPrEnvReport(raw: unknown, check: {
258
+ pr: number;
259
+ head: string;
260
+ member?: string;
261
+ }): {
262
+ report: PrEnvReport;
263
+ } | {
264
+ refusal: string;
265
+ };
266
+ /** What one `pr-env up` or `down` run came to, as `pr-env.json` holds it. */
267
+ export interface PrEnvReport {
268
+ stage: "up" | "down";
269
+ pr: number;
270
+ env: string;
271
+ member?: string;
272
+ template: string;
273
+ head: string;
274
+ op: string;
275
+ gate: string;
276
+ digest: string;
277
+ status: "applied" | "nothing" | "waiting" | "changed" | "plan-failed" | "failed" | "refused" | "destroyed" | "incomplete" | "absent";
278
+ message?: string;
279
+ endpoint?: string;
280
+ components: Array<{
281
+ component: string;
282
+ status: string;
283
+ create: number;
284
+ update: number;
285
+ replace: number;
286
+ delete: number;
287
+ }>;
288
+ approvedBy?: string[];
289
+ expiresAt?: string;
290
+ outcomes?: PrEnvRecord["outcomes"];
291
+ }
292
+ /** The environment's note on the pull request: one per environment, updated in place. */
293
+ export declare function renderPrEnvNote(r: PrEnvReport, approver?: string): string;
294
+ /** The commit status a report sets: success, failure, or pending while it waits on an approval. */
295
+ export declare function prEnvStatusState(r: Pick<PrEnvReport, "status">): "success" | "failure" | "pending";
296
+ /** A commit status description, at most 140 characters. */
297
+ export declare function prEnvStatusDescription(r: PrEnvReport): string;
298
+ //# sourceMappingURL=pr-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-environment.d.ts","sourceRoot":"","sources":["../../src/components/pr-environment.ts"],"names":[],"mappings":"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"}