@intentius/chant 0.56.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/dist/audit/catalog.d.ts +51 -1
  2. package/dist/audit/catalog.d.ts.map +1 -1
  3. package/dist/audit/core.d.ts +20 -1
  4. package/dist/audit/core.d.ts.map +1 -1
  5. package/dist/audit/discover.d.ts +14 -8
  6. package/dist/audit/discover.d.ts.map +1 -1
  7. package/dist/audit/lineage.d.ts +10 -0
  8. package/dist/audit/lineage.d.ts.map +1 -0
  9. package/dist/audit/prior-art.d.ts +385 -0
  10. package/dist/audit/prior-art.d.ts.map +1 -0
  11. package/dist/audit/proof.d.ts +16 -0
  12. package/dist/audit/proof.d.ts.map +1 -1
  13. package/dist/audit/report-html.d.ts.map +1 -1
  14. package/dist/audit/report-model.d.ts +8 -1
  15. package/dist/audit/report-model.d.ts.map +1 -1
  16. package/dist/audit/report.d.ts.map +1 -1
  17. package/dist/audit/rules-doc.d.ts +3 -0
  18. package/dist/audit/rules-doc.d.ts.map +1 -1
  19. package/dist/audit/secrets.d.ts +15 -0
  20. package/dist/audit/secrets.d.ts.map +1 -1
  21. package/dist/audit/terraform-state.d.ts +46 -0
  22. package/dist/audit/terraform-state.d.ts.map +1 -0
  23. package/dist/build.d.ts +17 -1
  24. package/dist/build.d.ts.map +1 -1
  25. package/dist/claimed-fields.d.ts +161 -0
  26. package/dist/claimed-fields.d.ts.map +1 -0
  27. package/dist/cli/build-params-cli.d.ts +2 -2
  28. package/dist/cli/command-group.d.ts +14 -0
  29. package/dist/cli/command-group.d.ts.map +1 -1
  30. package/dist/cli/commands/audit.d.ts +17 -1
  31. package/dist/cli/commands/audit.d.ts.map +1 -1
  32. package/dist/cli/commands/build.d.ts.map +1 -1
  33. package/dist/cli/commands/check-lexicon-docs.d.ts +1 -1
  34. package/dist/cli/commands/check-lexicon-examples.d.ts +16 -6
  35. package/dist/cli/commands/check-lexicon-examples.d.ts.map +1 -1
  36. package/dist/cli/commands/import.d.ts.map +1 -1
  37. package/dist/cli/commands/init-lexicon/templates/codegen.d.ts +1 -0
  38. package/dist/cli/commands/init-lexicon/templates/codegen.d.ts.map +1 -1
  39. package/dist/cli/commands/init-lexicon/templates/project.d.ts +7 -0
  40. package/dist/cli/commands/init-lexicon/templates/project.d.ts.map +1 -1
  41. package/dist/cli/commands/init-lexicon.d.ts.map +1 -1
  42. package/dist/cli/commands/init.d.ts.map +1 -1
  43. package/dist/cli/commands/lint.d.ts.map +1 -1
  44. package/dist/cli/commands/onboard.d.ts +2 -0
  45. package/dist/cli/commands/onboard.d.ts.map +1 -1
  46. package/dist/cli/handlers/build.d.ts.map +1 -1
  47. package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
  48. package/dist/cli/handlers/operator.d.ts +82 -16
  49. package/dist/cli/handlers/operator.d.ts.map +1 -1
  50. package/dist/cli/handlers/run.d.ts +49 -42
  51. package/dist/cli/handlers/run.d.ts.map +1 -1
  52. package/dist/cli/main.d.ts +28 -1
  53. package/dist/cli/main.d.ts.map +1 -1
  54. package/dist/cli/mcp/op-tools.d.ts +16 -1
  55. package/dist/cli/mcp/op-tools.d.ts.map +1 -1
  56. package/dist/cli/mcp/resource-handlers.d.ts.map +1 -1
  57. package/dist/cli/mcp/resources/context.d.ts.map +1 -1
  58. package/dist/cli/registry.d.ts +26 -9
  59. package/dist/cli/registry.d.ts.map +1 -1
  60. package/dist/codegen/generate-post-synth-barrel.d.ts +1 -1
  61. package/dist/components/auto-release.d.ts +10 -20
  62. package/dist/components/auto-release.d.ts.map +1 -1
  63. package/dist/components/capability.d.ts +4 -4
  64. package/dist/components/cli-support.d.ts +20 -21
  65. package/dist/components/cli-support.d.ts.map +1 -1
  66. package/dist/components/component.d.ts +3 -3
  67. package/dist/components/component.d.ts.map +1 -1
  68. package/dist/components/driver-output.d.ts.map +1 -1
  69. package/dist/components/driver.d.ts +66 -36
  70. package/dist/components/driver.d.ts.map +1 -1
  71. package/dist/components/index.d.ts +1 -2
  72. package/dist/components/index.d.ts.map +1 -1
  73. package/dist/components/manifest-persistence.d.ts +1 -9
  74. package/dist/components/manifest-persistence.d.ts.map +1 -1
  75. package/dist/components/run-progress.d.ts +6 -6
  76. package/dist/components/run-progress.d.ts.map +1 -1
  77. package/dist/components/verbs/run-agent.d.ts +9 -15
  78. package/dist/components/verbs/run-agent.d.ts.map +1 -1
  79. package/dist/components/verbs/verify.d.ts +2 -2
  80. package/dist/deep-observation.d.ts +17 -0
  81. package/dist/deep-observation.d.ts.map +1 -1
  82. package/dist/discovery/files.d.ts +4 -4
  83. package/dist/discovery/fold-import.d.ts.map +1 -1
  84. package/dist/discovery/param-deps.d.ts +33 -0
  85. package/dist/discovery/param-deps.d.ts.map +1 -1
  86. package/dist/discovery/sandbox/bundle.d.ts.map +1 -1
  87. package/dist/discovery/sandbox/config-wire.d.ts +2 -2
  88. package/dist/fold/foldable-helpers.d.ts +5 -1
  89. package/dist/fold/foldable-helpers.d.ts.map +1 -1
  90. package/dist/fold-provenance.d.ts +236 -0
  91. package/dist/fold-provenance.d.ts.map +1 -0
  92. package/dist/graph-ops.d.ts +1 -1
  93. package/dist/held-elsewhere.d.ts +85 -0
  94. package/dist/held-elsewhere.d.ts.map +1 -0
  95. package/dist/import/ir-utils.d.ts +1 -1
  96. package/dist/import/ir-utils.d.ts.map +1 -1
  97. package/dist/import/parser.d.ts +33 -0
  98. package/dist/import/parser.d.ts.map +1 -1
  99. package/dist/index.d.ts +3 -0
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/kubectl-context.d.ts +3 -3
  102. package/dist/lexicon-config.d.ts +4 -4
  103. package/dist/lexicon-plugin-helpers.d.ts +1 -1
  104. package/dist/lexicon.d.ts +104 -14
  105. package/dist/lexicon.d.ts.map +1 -1
  106. package/dist/lifecycle/change-set.d.ts +13 -0
  107. package/dist/lifecycle/change-set.d.ts.map +1 -1
  108. package/dist/lifecycle/deep-diff.d.ts +133 -6
  109. package/dist/lifecycle/deep-diff.d.ts.map +1 -1
  110. package/dist/lifecycle/deep-observe.d.ts.map +1 -1
  111. package/dist/lifecycle/gate-ledger.d.ts +71 -3
  112. package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
  113. package/dist/lifecycle/index.d.ts +1 -0
  114. package/dist/lifecycle/index.d.ts.map +1 -1
  115. package/dist/lifecycle/release-ledger.d.ts +2 -2
  116. package/dist/lifecycle/run-ledger.d.ts +53 -0
  117. package/dist/lifecycle/run-ledger.d.ts.map +1 -0
  118. package/dist/lifecycle/symptoms.d.ts +3 -3
  119. package/dist/lifecycle/symptoms.d.ts.map +1 -1
  120. package/dist/lint/config.d.ts +81 -2
  121. package/dist/lint/config.d.ts.map +1 -1
  122. package/dist/lint/post-synth.d.ts +55 -2
  123. package/dist/lint/post-synth.d.ts.map +1 -1
  124. package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.d.ts +1 -1
  125. package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.d.ts.map +1 -1
  126. package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.d.ts +1 -1
  127. package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.d.ts.map +1 -1
  128. package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.d.ts +44 -0
  129. package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.d.ts.map +1 -0
  130. package/dist/lint/rules/comp/index.d.ts +1 -1
  131. package/dist/lint/rules/comp/index.d.ts.map +1 -1
  132. package/dist/lint/rules/op/index.d.ts +16 -0
  133. package/dist/lint/rules/op/index.d.ts.map +1 -0
  134. package/dist/lint/rules/op/ops012-activity-contract.d.ts +27 -0
  135. package/dist/lint/rules/op/ops012-activity-contract.d.ts.map +1 -0
  136. package/dist/lint/rules/op/ops013-step-output-ref.d.ts +61 -0
  137. package/dist/lint/rules/op/ops013-step-output-ref.d.ts.map +1 -0
  138. package/dist/lint/rules/op/ops014-converge-rule-refusals.d.ts +55 -0
  139. package/dist/lint/rules/op/ops014-converge-rule-refusals.d.ts.map +1 -0
  140. package/dist/lint/rules/op/support.d.ts +12 -0
  141. package/dist/lint/rules/op/support.d.ts.map +1 -0
  142. package/dist/lint/suppressions.d.ts +108 -0
  143. package/dist/lint/suppressions.d.ts.map +1 -0
  144. package/dist/live-endpoint.d.ts +1 -1
  145. package/dist/op/activities/activity-contracts.d.ts +54 -0
  146. package/dist/op/activities/activity-contracts.d.ts.map +1 -0
  147. package/dist/op/activities/apply.d.ts +262 -0
  148. package/dist/op/activities/apply.d.ts.map +1 -0
  149. package/dist/op/activities/build.d.ts +13 -0
  150. package/dist/op/activities/build.d.ts.map +1 -0
  151. package/dist/op/activities/converge.d.ts +110 -0
  152. package/dist/op/activities/converge.d.ts.map +1 -0
  153. package/dist/op/activities/env-teardown.d.ts +76 -0
  154. package/dist/op/activities/env-teardown.d.ts.map +1 -0
  155. package/dist/op/activities/guard-validate.d.ts +64 -0
  156. package/dist/op/activities/guard-validate.d.ts.map +1 -0
  157. package/dist/op/activities/http-check.d.ts +34 -0
  158. package/dist/op/activities/http-check.d.ts.map +1 -0
  159. package/dist/op/activities/index.d.ts +31 -0
  160. package/dist/op/activities/index.d.ts.map +1 -0
  161. package/dist/op/activities/lexicon-upgrade.d.ts +182 -0
  162. package/dist/op/activities/lexicon-upgrade.d.ts.map +1 -0
  163. package/dist/op/activities/lifecycle.d.ts +42 -0
  164. package/dist/op/activities/lifecycle.d.ts.map +1 -0
  165. package/dist/op/activities/pipeline-audit.d.ts +84 -0
  166. package/dist/op/activities/pipeline-audit.d.ts.map +1 -0
  167. package/dist/op/activities/policy.d.ts +17 -0
  168. package/dist/op/activities/policy.d.ts.map +1 -0
  169. package/dist/op/activities/reconcile.d.ts +89 -0
  170. package/dist/op/activities/reconcile.d.ts.map +1 -0
  171. package/dist/op/activities/shell.d.ts +13 -0
  172. package/dist/op/activities/shell.d.ts.map +1 -0
  173. package/dist/op/activities/teardown.d.ts +10 -0
  174. package/dist/op/activities/teardown.d.ts.map +1 -0
  175. package/dist/op/activities/util.d.ts +7 -0
  176. package/dist/op/activities/util.d.ts.map +1 -0
  177. package/dist/op/activities/wait.d.ts +28 -0
  178. package/dist/op/activities/wait.d.ts.map +1 -0
  179. package/dist/op/activities/workflow-audit.d.ts +92 -0
  180. package/dist/op/activities/workflow-audit.d.ts.map +1 -0
  181. package/dist/op/activity-contract-registry.d.ts +76 -0
  182. package/dist/op/activity-contract-registry.d.ts.map +1 -0
  183. package/dist/op/activity-contract.d.ts +25 -18
  184. package/dist/op/activity-contract.d.ts.map +1 -1
  185. package/dist/op/activity-failure.d.ts +28 -0
  186. package/dist/op/activity-failure.d.ts.map +1 -0
  187. package/dist/op/activity-profiles.d.ts +118 -0
  188. package/dist/op/activity-profiles.d.ts.map +1 -0
  189. package/dist/op/activity-registry.d.ts +22 -38
  190. package/dist/op/activity-registry.d.ts.map +1 -1
  191. package/dist/op/activity-runtime.d.ts +3 -14
  192. package/dist/op/activity-runtime.d.ts.map +1 -1
  193. package/dist/op/builders.d.ts +84 -29
  194. package/dist/op/builders.d.ts.map +1 -1
  195. package/dist/op/composites/apply-op.d.ts +113 -0
  196. package/dist/op/composites/apply-op.d.ts.map +1 -0
  197. package/dist/op/composites/converge-op.d.ts +120 -0
  198. package/dist/op/composites/converge-op.d.ts.map +1 -0
  199. package/dist/op/composites/index.d.ts +26 -0
  200. package/dist/op/composites/index.d.ts.map +1 -0
  201. package/dist/op/composites/lexicon-upgrade-op.d.ts +78 -0
  202. package/dist/op/composites/lexicon-upgrade-op.d.ts.map +1 -0
  203. package/dist/op/composites/pipeline-audit-op.d.ts +50 -0
  204. package/dist/op/composites/pipeline-audit-op.d.ts.map +1 -0
  205. package/dist/op/composites/reconcile-op.d.ts +57 -0
  206. package/dist/op/composites/reconcile-op.d.ts.map +1 -0
  207. package/dist/op/composites/watch-op.d.ts +60 -0
  208. package/dist/op/composites/watch-op.d.ts.map +1 -0
  209. package/dist/op/composites/workflow-audit-op.d.ts +57 -0
  210. package/dist/op/composites/workflow-audit-op.d.ts.map +1 -0
  211. package/dist/op/converge-rule.d.ts +12 -10
  212. package/dist/op/converge-rule.d.ts.map +1 -1
  213. package/dist/op/cron.d.ts +51 -0
  214. package/dist/op/cron.d.ts.map +1 -0
  215. package/dist/op/discover.d.ts +9 -0
  216. package/dist/op/discover.d.ts.map +1 -1
  217. package/dist/op/duration.d.ts +11 -0
  218. package/dist/op/duration.d.ts.map +1 -0
  219. package/dist/op/emulator-lifecycle.d.ts.map +1 -1
  220. package/dist/op/gate.d.ts +90 -0
  221. package/dist/op/gate.d.ts.map +1 -0
  222. package/dist/op/generate-pipeline.d.ts +9 -0
  223. package/dist/op/generate-pipeline.d.ts.map +1 -1
  224. package/dist/op/index.d.ts +23 -7
  225. package/dist/op/index.d.ts.map +1 -1
  226. package/dist/op/local-executor.d.ts +114 -28
  227. package/dist/op/local-executor.d.ts.map +1 -1
  228. package/dist/op/local-output.d.ts +11 -1
  229. package/dist/op/local-output.d.ts.map +1 -1
  230. package/dist/op/op-ir.d.ts +184 -0
  231. package/dist/op/op-ir.d.ts.map +1 -0
  232. package/dist/op/op-verb-class.d.ts +10 -2
  233. package/dist/op/op-verb-class.d.ts.map +1 -1
  234. package/dist/op/operator.d.ts +30 -5
  235. package/dist/op/operator.d.ts.map +1 -1
  236. package/dist/op/receipt-store.d.ts +1 -1
  237. package/dist/op/receipt-store.d.ts.map +1 -1
  238. package/dist/op/resource.d.ts +15 -1
  239. package/dist/op/resource.d.ts.map +1 -1
  240. package/dist/op/runtime.d.ts +200 -0
  241. package/dist/op/runtime.d.ts.map +1 -0
  242. package/dist/op/runtimes/local.d.ts +29 -0
  243. package/dist/op/runtimes/local.d.ts.map +1 -0
  244. package/dist/op/step-output-ref.d.ts +15 -13
  245. package/dist/op/step-output-ref.d.ts.map +1 -1
  246. package/dist/op/types.d.ts +79 -27
  247. package/dist/op/types.d.ts.map +1 -1
  248. package/dist/ownership.d.ts +1 -1
  249. package/dist/provenance.d.ts +21 -0
  250. package/dist/provenance.d.ts.map +1 -1
  251. package/dist/serializer-walker.d.ts.map +1 -1
  252. package/dist/stack-output.d.ts +5 -0
  253. package/dist/stack-output.d.ts.map +1 -1
  254. package/package.json +6 -1
  255. package/src/audit/catalog.test.ts +79 -3
  256. package/src/audit/catalog.ts +111 -13
  257. package/src/audit/core.test.ts +26 -0
  258. package/src/audit/core.ts +61 -17
  259. package/src/audit/discover.test.ts +39 -0
  260. package/src/audit/discover.ts +91 -15
  261. package/src/audit/lineage.ts +100 -0
  262. package/src/audit/prior-art.ts +153 -0
  263. package/src/audit/proof.test.ts +67 -0
  264. package/src/audit/proof.ts +70 -0
  265. package/src/audit/report-html.ts +9 -4
  266. package/src/audit/report-model.ts +16 -2
  267. package/src/audit/report.test.ts +33 -0
  268. package/src/audit/report.ts +5 -3
  269. package/src/audit/rules-doc.test.ts +34 -2
  270. package/src/audit/rules-doc.ts +82 -9
  271. package/src/audit/secrets.ts +15 -3
  272. package/src/audit/terraform-state.test.ts +144 -0
  273. package/src/audit/terraform-state.ts +131 -0
  274. package/src/build.ts +31 -1
  275. package/src/claimed-fields.test.ts +145 -0
  276. package/src/claimed-fields.ts +208 -0
  277. package/src/cli/build-params-cli.ts +2 -2
  278. package/src/cli/command-group.ts +14 -0
  279. package/src/cli/commands/__fixtures__/audit-terraform/infra/.terraform/providers/lock.txt +1 -0
  280. package/src/cli/commands/__fixtures__/audit-terraform/infra/main.tf +1 -0
  281. package/src/cli/commands/__fixtures__/audit-terraform/infra/modules/foo/main.tf +1 -0
  282. package/src/cli/commands/__fixtures__/audit-terraform/infra/variables.tf +3 -0
  283. package/src/cli/commands/__fixtures__/init-lexicon-output/package.json +13 -4
  284. package/src/cli/commands/__fixtures__/init-lexicon-output/src/codegen/docs-cli.ts +4 -0
  285. package/src/cli/commands/__fixtures__/init-lexicon-output/src/codegen/package.ts +1 -0
  286. package/src/cli/commands/__fixtures__/init-lexicon-output/src/package-cli.ts +21 -0
  287. package/src/cli/commands/__snapshots__/init-lexicon.test.ts.snap +1 -0
  288. package/src/cli/commands/audit.test.ts +189 -11
  289. package/src/cli/commands/audit.ts +73 -27
  290. package/src/cli/commands/build.test.ts +292 -9
  291. package/src/cli/commands/build.ts +156 -24
  292. package/src/cli/commands/check-lexicon-docs.ts +1 -1
  293. package/src/cli/commands/check-lexicon-examples.test.ts +29 -1
  294. package/src/cli/commands/check-lexicon-examples.ts +42 -10
  295. package/src/cli/commands/import.ts +6 -0
  296. package/src/cli/commands/init-lexicon/templates/codegen.ts +9 -0
  297. package/src/cli/commands/init-lexicon/templates/project.ts +44 -4
  298. package/src/cli/commands/init-lexicon.test.ts +97 -2
  299. package/src/cli/commands/init-lexicon.ts +4 -2
  300. package/src/cli/commands/init.test.ts +35 -1
  301. package/src/cli/commands/init.ts +14 -3
  302. package/src/cli/commands/lint.test.ts +48 -0
  303. package/src/cli/commands/lint.ts +123 -0
  304. package/src/cli/commands/onboard.test.ts +75 -0
  305. package/src/cli/commands/onboard.ts +54 -23
  306. package/src/cli/handlers/build.test.ts +81 -1
  307. package/src/cli/handlers/build.ts +15 -1
  308. package/src/cli/handlers/graph.test.ts +3 -3
  309. package/src/cli/handlers/lifecycle.test.ts +195 -12
  310. package/src/cli/handlers/lifecycle.ts +123 -6
  311. package/src/cli/handlers/misc.ts +1 -1
  312. package/src/cli/handlers/operator.test.ts +183 -11
  313. package/src/cli/handlers/operator.ts +260 -55
  314. package/src/cli/handlers/run.test.ts +431 -1287
  315. package/src/cli/handlers/run.ts +365 -915
  316. package/src/cli/main.test.ts +23 -15
  317. package/src/cli/main.ts +88 -33
  318. package/src/cli/mcp/op-tools.ts +147 -88
  319. package/src/cli/mcp/resource-handlers.ts +10 -37
  320. package/src/cli/mcp/resources/context.ts +11 -12
  321. package/src/cli/mcp/server.test.ts +25 -27
  322. package/src/cli/mcp/server.ts +2 -2
  323. package/src/cli/registry.ts +26 -9
  324. package/src/codegen/docs.ts +1 -1
  325. package/src/codegen/generate-post-synth-barrel.test.ts +1 -1
  326. package/src/codegen/generate-post-synth-barrel.ts +1 -1
  327. package/src/components/README.md +3 -2
  328. package/src/components/auto-release.test.ts +4 -20
  329. package/src/components/auto-release.ts +17 -42
  330. package/src/components/capability.ts +4 -4
  331. package/src/components/cli-support.test.ts +10 -5
  332. package/src/components/cli-support.ts +52 -44
  333. package/src/components/component.schema.json +2 -2
  334. package/src/components/component.ts +3 -3
  335. package/src/components/driver-output.ts +14 -2
  336. package/src/components/driver.test.ts +92 -22
  337. package/src/components/driver.ts +193 -83
  338. package/src/components/index.ts +1 -6
  339. package/src/components/manifest-persistence.test.ts +2 -20
  340. package/src/components/manifest-persistence.ts +4 -24
  341. package/src/components/pilots/pilots-lint-clean.test.ts +11 -10
  342. package/src/components/run-progress.ts +6 -6
  343. package/src/components/verbs/run-agent.ts +11 -17
  344. package/src/components/verbs/verify.ts +2 -2
  345. package/src/deep-observation.test.ts +75 -0
  346. package/src/deep-observation.ts +48 -0
  347. package/src/discovery/collect.test.ts +3 -3
  348. package/src/discovery/files.ts +4 -4
  349. package/src/discovery/fold-import.ts +105 -2
  350. package/src/discovery/param-deps.test.ts +112 -1
  351. package/src/discovery/param-deps.ts +193 -0
  352. package/src/discovery/sandbox/bundle.ts +15 -1
  353. package/src/discovery/sandbox/config-wire.test.ts +2 -2
  354. package/src/discovery/sandbox/config-wire.ts +2 -2
  355. package/src/fold/fold.test.ts +56 -0
  356. package/src/fold/foldable-helpers.ts +81 -1
  357. package/src/fold-provenance-exclusion.test.ts +186 -0
  358. package/src/fold-provenance.test.ts +495 -0
  359. package/src/fold-provenance.ts +441 -0
  360. package/src/graph-ops.test.ts +2 -2
  361. package/src/graph-ops.ts +1 -1
  362. package/src/held-elsewhere.test.ts +102 -0
  363. package/src/held-elsewhere.ts +114 -0
  364. package/src/import/ir-utils.ts +11 -1
  365. package/src/import/parser.ts +35 -0
  366. package/src/index.ts +3 -0
  367. package/src/kubectl-context.ts +3 -3
  368. package/src/lexicon-config.test.ts +5 -5
  369. package/src/lexicon-config.ts +4 -4
  370. package/src/lexicon-plugin-helpers.ts +1 -1
  371. package/src/lexicon.ts +120 -14
  372. package/src/lifecycle/change-set.test.ts +49 -0
  373. package/src/lifecycle/change-set.ts +67 -0
  374. package/src/lifecycle/converge-ledger.ts +1 -1
  375. package/src/lifecycle/deep-diff.test.ts +267 -14
  376. package/src/lifecycle/deep-diff.ts +217 -14
  377. package/src/lifecycle/deep-observe.test.ts +3 -1
  378. package/src/lifecycle/deep-observe.ts +16 -6
  379. package/src/lifecycle/gate-ledger.test.ts +74 -2
  380. package/src/lifecycle/gate-ledger.ts +143 -36
  381. package/src/lifecycle/index.ts +1 -0
  382. package/src/lifecycle/release-ledger.ts +2 -2
  383. package/src/lifecycle/run-ledger.test.ts +268 -0
  384. package/src/lifecycle/run-ledger.ts +201 -0
  385. package/src/lifecycle/symptoms.ts +3 -3
  386. package/src/lint/config.test.ts +82 -1
  387. package/src/lint/config.ts +112 -3
  388. package/src/lint/policy.test.ts +1 -1
  389. package/src/lint/post-synth.test.ts +31 -0
  390. package/src/lint/post-synth.ts +54 -1
  391. package/src/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.ts +2 -2
  392. package/src/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.ts +1 -1
  393. package/src/lint/rules/comp/comp.test.ts +1 -1
  394. package/src/lint/rules/comp/comp004-gate-needs-durable-runtime.ts +74 -0
  395. package/src/lint/rules/comp/index.ts +3 -3
  396. package/src/lint/rules/op/index.ts +23 -0
  397. package/src/lint/rules/op/ops012-activity-contract.test.ts +161 -0
  398. package/src/lint/rules/op/ops012-activity-contract.ts +64 -0
  399. package/src/lint/rules/op/ops013-step-output-ref.test.ts +237 -0
  400. package/src/lint/rules/op/ops013-step-output-ref.ts +98 -0
  401. package/src/lint/rules/op/ops014-converge-rule-refusals.test.ts +263 -0
  402. package/src/lint/rules/op/ops014-converge-rule-refusals.ts +179 -0
  403. package/src/lint/rules/op/support.ts +11 -0
  404. package/src/lint/suppressions.test.ts +163 -0
  405. package/src/lint/suppressions.ts +204 -0
  406. package/src/live-endpoint.ts +1 -1
  407. package/src/op/activities/activity-contracts.ts +66 -0
  408. package/src/op/activities/apply.test.ts +567 -0
  409. package/src/op/activities/apply.ts +662 -0
  410. package/src/op/activities/build.ts +26 -0
  411. package/src/op/activities/converge.test.ts +330 -0
  412. package/src/op/activities/converge.ts +449 -0
  413. package/src/op/activities/env-teardown.test.ts +187 -0
  414. package/src/op/activities/env-teardown.ts +171 -0
  415. package/src/op/activities/guard-validate.test.ts +139 -0
  416. package/src/op/activities/guard-validate.ts +223 -0
  417. package/src/op/activities/http-check.test.ts +48 -0
  418. package/src/op/activities/http-check.ts +55 -0
  419. package/src/op/activities/index.ts +119 -0
  420. package/src/op/activities/lexicon-upgrade.test.ts +492 -0
  421. package/src/op/activities/lexicon-upgrade.ts +673 -0
  422. package/src/op/activities/lifecycle.ts +85 -0
  423. package/src/op/activities/pipeline-audit.test.ts +67 -0
  424. package/src/op/activities/pipeline-audit.ts +201 -0
  425. package/src/op/activities/policy.test.ts +19 -0
  426. package/src/op/activities/policy.ts +37 -0
  427. package/src/op/activities/reconcile.test.ts +81 -0
  428. package/src/op/activities/reconcile.ts +187 -0
  429. package/src/op/activities/shell.ts +26 -0
  430. package/src/op/activities/teardown.ts +22 -0
  431. package/src/op/activities/util.ts +6 -0
  432. package/src/op/activities/wait.ts +69 -0
  433. package/src/op/activities/workflow-audit.test.ts +90 -0
  434. package/src/op/activities/workflow-audit.ts +203 -0
  435. package/src/op/activity-contract-registry.test.ts +98 -0
  436. package/src/op/activity-contract-registry.ts +114 -0
  437. package/src/op/activity-contract.test.ts +1 -1
  438. package/src/op/activity-contract.ts +37 -33
  439. package/src/op/activity-failure.ts +34 -0
  440. package/src/op/activity-profiles.test.ts +56 -0
  441. package/src/op/activity-profiles.ts +116 -0
  442. package/src/op/activity-registry.test.ts +37 -28
  443. package/src/op/activity-registry.ts +27 -56
  444. package/src/op/activity-runtime.ts +3 -47
  445. package/src/op/builders-exports.test.ts +0 -49
  446. package/src/op/builders-typed.test.ts +164 -0
  447. package/src/op/builders.ts +123 -39
  448. package/src/op/composites/apply-op.ts +208 -0
  449. package/src/op/composites/composites.test.ts +366 -0
  450. package/src/op/composites/converge-op.test.ts +168 -0
  451. package/src/op/composites/converge-op.ts +214 -0
  452. package/src/op/composites/index.ts +26 -0
  453. package/src/op/composites/lexicon-upgrade-op.test.ts +68 -0
  454. package/src/op/composites/lexicon-upgrade-op.ts +134 -0
  455. package/src/op/composites/pipeline-audit-op.test.ts +25 -0
  456. package/src/op/composites/pipeline-audit-op.ts +78 -0
  457. package/src/op/composites/reconcile-op.test.ts +51 -0
  458. package/src/op/composites/reconcile-op.ts +107 -0
  459. package/src/op/composites/watch-op.ts +108 -0
  460. package/src/op/composites/workflow-audit-op.test.ts +25 -0
  461. package/src/op/composites/workflow-audit-op.ts +88 -0
  462. package/src/op/converge-rule.ts +12 -10
  463. package/src/op/cron.test.ts +128 -0
  464. package/src/op/cron.ts +149 -0
  465. package/src/op/discover-root.test.ts +105 -1
  466. package/src/op/discover.test.ts +6 -2
  467. package/src/op/discover.ts +84 -16
  468. package/src/op/duration.ts +21 -0
  469. package/src/op/effect-step.test.ts +26 -11
  470. package/src/op/emulator-lifecycle.ts +1 -2
  471. package/src/op/gate.ts +155 -0
  472. package/src/op/generate-pipeline.test.ts +65 -3
  473. package/src/op/generate-pipeline.ts +19 -2
  474. package/src/op/index.ts +39 -6
  475. package/src/op/local-executor.test.ts +163 -34
  476. package/src/op/local-executor.ts +370 -102
  477. package/src/op/local-output.test.ts +95 -11
  478. package/src/op/local-output.ts +33 -4
  479. package/src/op/op-ir.test.ts +281 -0
  480. package/src/op/op-ir.ts +417 -0
  481. package/src/op/op-verb-class.ts +19 -5
  482. package/src/op/op.test.ts +26 -5
  483. package/src/op/operator.test.ts +175 -6
  484. package/src/op/operator.ts +63 -16
  485. package/src/op/receipt-store.ts +1 -1
  486. package/src/op/resource.ts +20 -2
  487. package/src/op/runtime.ts +203 -0
  488. package/src/op/runtimes/local.test.ts +181 -0
  489. package/src/op/runtimes/local.ts +212 -0
  490. package/src/op/step-output-ref.ts +15 -13
  491. package/src/op/types.ts +84 -24
  492. package/src/ownership.ts +1 -1
  493. package/src/provenance.test.ts +6 -0
  494. package/src/provenance.ts +21 -1
  495. package/src/serializer-walker.test.ts +42 -0
  496. package/src/serializer-walker.ts +21 -2
  497. package/src/stack-output.ts +6 -1
  498. package/dist/cli/handlers/op-progress.d.ts +0 -90
  499. package/dist/cli/handlers/op-progress.d.ts.map +0 -1
  500. package/dist/cli/handlers/run-client.d.ts +0 -127
  501. package/dist/cli/handlers/run-client.d.ts.map +0 -1
  502. package/dist/cli/handlers/run-report.d.ts +0 -5
  503. package/dist/cli/handlers/run-report.d.ts.map +0 -1
  504. package/dist/components/temporal-codegen-loader.d.ts +0 -27
  505. package/dist/components/temporal-codegen-loader.d.ts.map +0 -1
  506. package/dist/lint/rules/comp/comp004-gate-needs-temporal.d.ts +0 -37
  507. package/dist/lint/rules/comp/comp004-gate-needs-temporal.d.ts.map +0 -1
  508. package/src/cli/handlers/op-progress.test.ts +0 -268
  509. package/src/cli/handlers/op-progress.ts +0 -248
  510. package/src/cli/handlers/run-client.test.ts +0 -82
  511. package/src/cli/handlers/run-client.ts +0 -219
  512. package/src/cli/handlers/run-report.test.ts +0 -62
  513. package/src/cli/handlers/run-report.ts +0 -122
  514. package/src/components/temporal-codegen-loader.ts +0 -41
  515. package/src/lint/rules/comp/comp004-gate-needs-temporal.ts +0 -66
@@ -0,0 +1,110 @@
1
+ import { type ConvergeRule } from "../converge-rule.js";
2
+ import { type OpVerbClass } from "../op-verb-class.js";
3
+ import { type ConvergeSymptom } from "../../lifecycle/symptoms.js";
4
+ import { sanitizeLedgerText, type ConvergeRuleOutcome, type ConvergeTickRecord } from "../../lifecycle/converge-ledger.js";
5
+ /** A `ConvergeRule<ConvergeSymptom>`, restated with `S = ConvergeSymptom` fixed — the JSON shape `ConvergeOp` bakes into the Op's `convergeTick` step args. */
6
+ export type SerializedConvergeRule = ConvergeRule<ConvergeSymptom>;
7
+ export interface ConvergeTickArgs {
8
+ /** Op name (`ConvergeOp`'s own `config.name`) — carried into the ledger record. */
9
+ opName: string;
10
+ env: string;
11
+ /**
12
+ * Authority level for this environment (the issue's dial × verb-class
13
+ * matrix): `"observe"` never dispatches a mutating/destructive op
14
+ * (report-only); `"reconcile"` free-runs a read-only op but never a
15
+ * mutating one — the issue's table answer for `reconcile` × mutating is
16
+ * "open PR", which v1 doesn't implement (epic #1487's onDrift-channel open
17
+ * question), so `reconcile` refuses that dispatch (`OPS014`, build time)
18
+ * rather than silently escalating it to "run directly"; `"apply"` is the
19
+ * only dial that free-runs a mutating op. A destructive op is refused
20
+ * under every dial, `"apply"` included, in v1 — see `OPS014`'s doc on why
21
+ * "destructive + apply + gated" can never actually dispatch.
22
+ */
23
+ dial: "observe" | "reconcile" | "apply";
24
+ /** Max number of `run` dispatches this tick may perform; remaining matched rules are recorded `skipped-budget`. */
25
+ budget: number;
26
+ /** The rule table, in authored order. */
27
+ rules: SerializedConvergeRule[];
28
+ /**
29
+ * `Observe` phase's quick drift signal, threaded in via a step-output
30
+ * reference rather than a search-attribute round-trip (#1290) — a
31
+ * diagnostic cross-check folded into the tick record, not a control input
32
+ * (this activity re-derives its own symptom independently).
33
+ */
34
+ preflightDrift?: boolean;
35
+ }
36
+ export interface ConvergeTickResult {
37
+ /** The ledger record's tick id (#2027) — what a caller correlates this tick's outcomes, gate facts and remediations against. */
38
+ id: string;
39
+ drifted: boolean;
40
+ remediated: number;
41
+ reported: number;
42
+ skippedBudget: number;
43
+ skippedFlap: number;
44
+ unobserved: number;
45
+ adopted: number;
46
+ /** Rules whose dispatch hit a gate this tick (#1485) — see `ConvergeRuleOutcome.action`'s doc. */
47
+ gated: number;
48
+ /** The one human-readable summary line this tick produced. */
49
+ log: string;
50
+ }
51
+ /**
52
+ * Cap a subprocess failure's raw output to one sanitized line — a ledger
53
+ * record (`converge-ledger.ts`'s `appendConvergeRecord`) is one line of JSON,
54
+ * and a multi-line/oversized `stderr` folded straight into `outcome.reason`
55
+ * would break that. Not a fix for the ledger-durability bug (#1936,
56
+ * `writeBlobToPath`'s corruption under concurrent writes — fixed at the root
57
+ * in a separate PR); this only keeps one dispatch failure's own message from
58
+ * corrupting the line it's written into.
59
+ *
60
+ * The rule now lives next to the record it protects (`sanitizeLedgerText`,
61
+ * #2027), since a component verdict's `detail` needs the same cap; this stays
62
+ * as the dispatch path's name for it.
63
+ */
64
+ export declare const sanitizeOneLine: typeof sanitizeLedgerText;
65
+ /**
66
+ * The gate a gated `chant run` stopped at, read off its JSON result (#2119) —
67
+ * pure, unit-tested directly rather than only through `dispatchOp`'s
68
+ * subprocess plumbing. `undefined` when the output says nothing about a gate.
69
+ */
70
+ export declare function classifyDispatchFailure(raw: string): {
71
+ gateName: string;
72
+ } | undefined;
73
+ /**
74
+ * Runtime backstop for issue #1484's Autonomy table (pre-merge review of
75
+ * #1954): `OPS014` already refuses, at build time, a rule table shaped to
76
+ * reach this point with a mutating dispatch outside `"apply"` or any
77
+ * destructive dispatch at all. This is the defense-in-depth check for a rule
78
+ * table that reached `convergeTick` without going through that build — the
79
+ * same "not authored through the checked path" concern
80
+ * `isWellFormedPredicate` already guards for a hand-assembled predicate (see
81
+ * `../../../../packages/core/src/op/converge-rule.ts`'s doc). Fail-closed:
82
+ * an unclassifiable target (`verbClass === undefined`, e.g. the target op
83
+ * couldn't be discovered/read) is never treated as safe to free-run — same
84
+ * fail-closed stance `classifyOpVerbClass` itself takes for an unrecognized
85
+ * activity `fn`.
86
+ */
87
+ export declare function verbClassAllowedToDispatch(dial: ConvergeTickArgs["dial"], verbClass: OpVerbClass | undefined): boolean;
88
+ /**
89
+ * Apply {@link verbClassAllowedToDispatch} to one planned "ran" outcome,
90
+ * downgrading it to "reported" (never silently dropped, never silently run)
91
+ * when the dial/verb-class pairing isn't one the tick may actually free-run.
92
+ * Pure — the impure part (discovering and classifying the target op) is
93
+ * {@link classifyDispatchTarget}, called by `convergeTick` before this.
94
+ */
95
+ export declare function enforceVerbClassAtDispatch(outcome: ConvergeRuleOutcome, dial: ConvergeTickArgs["dial"], verbClass: OpVerbClass | undefined): ConvergeRuleOutcome;
96
+ /**
97
+ * The pure planning core: given a symptom, a rule table, prior-tick fire
98
+ * history, the dial, and the remaining budget, decide what each rule does
99
+ * this tick. Exported and unit-tested directly — the activity function
100
+ * around it is the thin I/O shell (gather inputs, execute the plan, append
101
+ * the ledger record), matching `reconcilePr`'s split between its pure
102
+ * `reconcileSummary`/`entriesFromPlan` and its I/O body.
103
+ */
104
+ export interface ConvergeTickPlan {
105
+ firedRuleIds: string[];
106
+ outcomes: ConvergeRuleOutcome[];
107
+ }
108
+ export declare function planConvergeTick(symptom: ConvergeSymptom, rules: SerializedConvergeRule[], priorRecords: ConvergeTickRecord[], dial: ConvergeTickArgs["dial"], budget: number): ConvergeTickPlan;
109
+ export declare function convergeTick(args: ConvergeTickArgs, signal?: AbortSignal): Promise<ConvergeTickResult>;
110
+ //# sourceMappingURL=converge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converge.d.ts","sourceRoot":"","sources":["../../../src/op/activities/converge.ts"],"names":[],"mappings":"AAkCA,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAKL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAQzC,+JAA+J;AAC/J,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;OAWG;IACH,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACxC,mHAAmH;IACnH,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,gIAAgI;IAChI,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,kGAAkG;IAClG,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,2BAAqB,CAAC;AA0BlD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAerF;AA0CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAKtH;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,SAAS,EAAE,WAAW,GAAG,SAAS,GACjC,mBAAmB,CAWrB;AAaD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,sBAAsB,EAAE,EAC/B,YAAY,EAAE,kBAAkB,EAAE,EAClC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,gBAAgB,CAmDlB;AAoBD,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyF5G"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * `envTeardown` — the durable form of `chant lifecycle teardown <env> --yes`
3
+ * (#1222).
4
+ *
5
+ * Wraps core's {@link executeTeardown}: enumerate the live resources whose
6
+ * ownership marker carries this project's `ownership.stack` + the requested
7
+ * environment, delete them through each lexicon's `executeTeardown`
8
+ * capability, run core's one bounded retry pass, and fail the activity loudly
9
+ * when any candidate is still `failed` afterwards. Selection is marker-scoped
10
+ * by construction — the same engine the CLI verb drives, reached in-process
11
+ * rather than through a shell.
12
+ *
13
+ * The guards are the CLI's guards, unchanged:
14
+ * - an environment the project does not declare is refused;
15
+ * - a project with no `ownership.stack` is refused — teardown has nothing to
16
+ * select on;
17
+ * - a production-like environment name (`prod`, `production`, `prod-eu`, ...)
18
+ * is refused unless the step's args carry an explicit `confirmProd: true`.
19
+ * An Op is non-interactive, so there is no re-type-the-name prompt to fall
20
+ * back to — the confirmation must be authored into the Op.
21
+ *
22
+ * All three refusals throw before any live read, so a refused teardown
23
+ * touches nothing at all. They are configuration errors, not transient ones —
24
+ * no retry can make `prod` stop looking like production.
25
+ *
26
+ * Distinct from {@link chantTeardown} (`npm run teardown`), which runs
27
+ * whatever script a project wired under that name. This activity is
28
+ * product-agnostic: it imports core only, and core reaches each product
29
+ * through the lexicons the project configures.
30
+ */
31
+ import { type ChantConfig } from "../../config.js";
32
+ import { type TeardownReport } from "../../lifecycle/teardown.js";
33
+ import type { ObservationLexicon } from "../../lexicon.js";
34
+ export interface EnvTeardownArgs {
35
+ /** The environment to tear down — the marker env core selects on. */
36
+ env: string;
37
+ /**
38
+ * Required (as an explicit `true`) when `env` looks production-like.
39
+ * The Op's counterpart of the CLI's `--confirm-prod`: activities never
40
+ * prompt, so the confirmation is authored, reviewed, and versioned with
41
+ * the Op instead.
42
+ */
43
+ confirmProd?: boolean;
44
+ /** Path to the chant project (where chant.config.ts lives). Default: the chant process's cwd. */
45
+ path?: string;
46
+ }
47
+ /** What a completed (fully successful) teardown reports back to the run. */
48
+ export interface EnvTeardownResult {
49
+ environment: string;
50
+ /** The ownership stack everything was selected on. */
51
+ stack: string;
52
+ deleted: number;
53
+ /** Deliberately refused by a lexicon, with the reason in the report. */
54
+ notPrunable: number;
55
+ /** Planned candidates whose lexicon implements no execution yet. */
56
+ skipped: number;
57
+ /** Kinds that could not be read (#1089) — the plan was incomplete, not clean. */
58
+ holes: number;
59
+ /** The full per-candidate report core produced. */
60
+ report: TeardownReport;
61
+ }
62
+ /** Injectable seams for testing — production loads both from the project. */
63
+ export interface EnvTeardownDeps {
64
+ /** Pre-loaded project config (skips reading chant.config.ts). */
65
+ config?: ChantConfig;
66
+ /** Pre-loaded lexicon plugins (skips resolving + importing lexicon packages). */
67
+ plugins?: ObservationLexicon[];
68
+ }
69
+ /**
70
+ * Tear down one environment's marker-owned resources through the core
71
+ * teardown engine. Uses the `longInfra` profile — deletion waits on the
72
+ * target's own pace. Safe to retry: the engine re-plans from live markers on
73
+ * every run, and a resource already gone is simply no longer a candidate.
74
+ */
75
+ export declare function envTeardown(args: EnvTeardownArgs, _signal?: AbortSignal, deps?: EnvTeardownDeps): Promise<EnvTeardownResult>;
76
+ //# sourceMappingURL=env-teardown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-teardown.d.ts","sourceRoot":"","sources":["../../../src/op/activities/env-teardown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGxF,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iGAAiG;IACjG,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iFAAiF;IACjF,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAaD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,WAAW,EACrB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAyE5B"}
@@ -0,0 +1,64 @@
1
+ export interface GuardValidateArgs {
2
+ /**
3
+ * Path to a `.guard` rules file or directory, passed to `cfn-guard validate
4
+ * -r`. No chant-specific rule format — these are ordinary cfn-guard rules,
5
+ * the same ones CDK's `CfnGuardValidator` would run.
6
+ */
7
+ rules: string;
8
+ /**
9
+ * Path to the built CloudFormation template to validate. Default:
10
+ * `<path>/template.json` — the convention `chant build -o template.json`
11
+ * writes to (see the aws lexicon's own examples and the native-output
12
+ * policy docs).
13
+ */
14
+ template?: string;
15
+ /** Project directory `template` is resolved relative to, when `template` is not given. Default ".". */
16
+ path?: string;
17
+ /**
18
+ * What to produce on a finding. Only `"report"` runs today — it prints a
19
+ * summary and throws on any finding, no external service involved.
20
+ * `issue`/`pull-request` modes (reusing the audit-Op finding-mode
21
+ * plumbing) are left to a follow-up. Default: `"report"`.
22
+ */
23
+ onFinding?: "report";
24
+ /** Path to (or name of) the `cfn-guard` binary. Default: `"cfn-guard"`, resolved via `PATH`. */
25
+ binary?: string;
26
+ }
27
+ /** One cfn-guard rule violation, mapped to a chant-shaped diagnostic. */
28
+ export interface GuardFinding {
29
+ /** The cfn-guard rule name that failed. */
30
+ rule: string;
31
+ /** Always `"error"` today — a cfn-guard non-compliant result is a policy violation, the same weight `policyGate` gives a violation. */
32
+ severity: "error";
33
+ /** Human-readable violation message. */
34
+ message: string;
35
+ /** Best-effort CloudFormation logical id the violation is about, when cfn-guard's output names one. */
36
+ entity?: string;
37
+ }
38
+ export interface GuardValidateResult {
39
+ findings: GuardFinding[];
40
+ summary: string;
41
+ }
42
+ /**
43
+ * Map cfn-guard's `--output-format json` report to chant-shaped findings.
44
+ * Exported and tested directly (independent of `spawn`) — same split
45
+ * `collectPipelineRefs`/`pipelineSupplyChainAudit` (`./pipeline-audit.ts`)
46
+ * use between pure mapping and the orchestrating activity.
47
+ *
48
+ * Throws if `stdout` is not parseable JSON — a cfn-guard invocation that
49
+ * didn't run with `--output-format json` (a bad rules path, a version too
50
+ * old to support it) is a setup problem, not "zero violations"; reporting
51
+ * a clean run here would be a false negative.
52
+ */
53
+ export declare function parseGuardFindings(stdout: string): GuardFinding[];
54
+ /**
55
+ * Run an external CloudFormation Guard rules pack against the project's
56
+ * built CloudFormation template. `report` mode: prints a summary, and
57
+ * throws (non-retryable) when any rule is violated, so the local executor
58
+ * (`chant run`) exits non-zero and CI fails the pipeline — the same shape
59
+ * `policyGate` uses to block an apply. A clean run passes through.
60
+ *
61
+ * A plain activity on every runtime, not a `gate` step.
62
+ */
63
+ export declare function guardValidate(args: GuardValidateArgs, _signal?: AbortSignal): Promise<GuardValidateResult>;
64
+ //# sourceMappingURL=guard-validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard-validate.d.ts","sourceRoot":"","sources":["../../../src/op/activities/guard-validate.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uGAAuG;IACvG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,uIAAuI;IACvI,QAAQ,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AA2DD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CA2BjE;AAUD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuChH"}
@@ -0,0 +1,34 @@
1
+ export interface HttpCheckArgs {
2
+ /** URL to GET (or `method`). */
3
+ url: string;
4
+ /** HTTP method. Default: `GET`. */
5
+ method?: string;
6
+ /** Exact expected status. Default: any 2xx. */
7
+ status?: number;
8
+ /** Substring the response body must contain. */
9
+ contains?: string;
10
+ /** Retries before failing, for a resource that may lag. Default: `0`. */
11
+ retries?: number;
12
+ /** Delay between retries in ms. Default: `1000`. */
13
+ intervalMs?: number;
14
+ }
15
+ /** Injectable fetch — the response shape `httpCheck` needs. Defaults to global `fetch`. */
16
+ export type HttpFetch = (url: string, init?: {
17
+ method?: string;
18
+ signal?: AbortSignal;
19
+ }) => Promise<{
20
+ status: number;
21
+ text(): Promise<string>;
22
+ }>;
23
+ /** Whether a status satisfies the expectation (exact if given, else any 2xx). Pure. */
24
+ export declare function statusOk(status: number, expected?: number): boolean;
25
+ /**
26
+ * Assert an HTTP endpoint responds as expected — a typed verify step, the modeled
27
+ * replacement for `shell("curl -fs ...")`. Fails (throwing) if the status or body
28
+ * doesn't match after the allowed retries. `fetchFn` is injectable for tests.
29
+ * Uses fastIdempotent profile — 5m timeout.
30
+ */
31
+ export declare function httpCheck(args: HttpCheckArgs, signal?: AbortSignal, fetchFn?: HttpFetch): Promise<{
32
+ status: number;
33
+ }>;
34
+ //# sourceMappingURL=http-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-check.d.ts","sourceRoot":"","sources":["../../../src/op/activities/http-check.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2FAA2F;AAC3F,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAAC;AAEhJ,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,SAAiB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBlI"}
@@ -0,0 +1,31 @@
1
+ export { chantBuild } from "./build.js";
2
+ export type { ChantBuildArgs } from "./build.js";
3
+ export { waitForStack } from "./wait.js";
4
+ export type { WaitForStackArgs } from "./wait.js";
5
+ export { shellCmd } from "./shell.js";
6
+ export type { ShellCmdArgs } from "./shell.js";
7
+ export { httpCheck, statusOk } from "./http-check.js";
8
+ export type { HttpCheckArgs, HttpFetch } from "./http-check.js";
9
+ export { lifecycleSnapshot, lifecycleDiff } from "./lifecycle.js";
10
+ export type { LifecycleSnapshotArgs, LifecycleDiffArgs, LifecycleDiffResult } from "./lifecycle.js";
11
+ export { chantTeardown } from "./teardown.js";
12
+ export type { ChantTeardownArgs } from "./teardown.js";
13
+ export { envTeardown } from "./env-teardown.js";
14
+ export type { EnvTeardownArgs, EnvTeardownResult, EnvTeardownDeps } from "./env-teardown.js";
15
+ export { reconcilePr } from "./reconcile.js";
16
+ export type { ReconcilePrArgs, ReconcileResult, ReconcileMode, ReconcileEntry } from "./reconcile.js";
17
+ export { nativeApply, compensateApply, hasNativeRollback } from "./apply.js";
18
+ export type { NativeApplyArgs, NativeApplyResult, CompensateApplyArgs, CompensateApplyResult, ApplyTarget, DeleteMode, K8sApplier, AzureApplier, GcpApplier, FlyApplier, AwsApplier, AwsRollback, } from "./apply.js";
19
+ export { policyGate } from "./policy.js";
20
+ export type { PolicyGateArgs } from "./policy.js";
21
+ export { guardValidate, parseGuardFindings } from "./guard-validate.js";
22
+ export type { GuardValidateArgs, GuardValidateResult, GuardFinding } from "./guard-validate.js";
23
+ export { workflowSupplyChainAudit, collectAuditRefs, defaultActionRefResolver } from "./workflow-audit.js";
24
+ export type { WorkflowAuditArgs, WorkflowAuditResult, WorkflowAuditMode, WorkflowAuditFinding, WorkflowAuditFindingKind, ActionRefResolver, ActionRefResolution, } from "./workflow-audit.js";
25
+ export { pipelineSupplyChainAudit, collectPipelineRefs, defaultGitlabRefResolver } from "./pipeline-audit.js";
26
+ export type { PipelineAuditArgs, PipelineAuditResult, PipelineAuditMode, PipelineAuditFinding, PipelineAuditFindingKind, PipelineRefKind, GitlabRefResolver, PipelineRefResolution, } from "./pipeline-audit.js";
27
+ export { convergeTick, planConvergeTick } from "./converge.js";
28
+ export type { ConvergeTickArgs, ConvergeTickResult, ConvergeTickPlan, SerializedConvergeRule } from "./converge.js";
29
+ export { lexiconUpgrade, isPinned, isRolling, severityToLabel, upgradeBranchName, upgradePrTitle, buildUpgradeSummary, } from "./lexicon-upgrade.js";
30
+ export type { LexiconUpgradeArgs, LexiconUpgradeResult, LexiconUpgradeMode, SupportedLexicon, SemverLabel, CheckPinnedFn, CheckRollingFn, GhRunner, ApplyBumpFn, } from "./lexicon-upgrade.js";
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/op/activities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAK/C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiB1F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC1E,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACxG,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEjH,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,GACZ,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * lexiconUpgrade — the upgrade-detection and PR-automation activity for
3
+ * in-scope lexicons (k8s, gcp, docker, gitlab, aws, azure, github).
4
+ *
5
+ * Classifies the lexicon as pinned or rolling, calls the right check function,
6
+ * then surfaces the result in the requested mode: report (default), issue, or
7
+ * pull-request. In pull-request mode it maintains a long-lived branch per
8
+ * lexicon (`lexicon-upgrade/<lexicon>`), updates the PR in place when the delta
9
+ * changes, and applies a semver label derived from the surface severity.
10
+ *
11
+ * For pinned lexicons in pull-request mode, the PR also bumps the lexicon's
12
+ * own package.json version according to the semver label (minor → minor bump,
13
+ * breaking → major bump). Merging the PR carries the version change so
14
+ * publish-on-merge can ship just that lexicon without a full monorepo release.
15
+ *
16
+ * Rolling lexicons (aws, azure, github) drift on their own cadence and are not
17
+ * version-bumped here — they move to drift-issues per #546.
18
+ *
19
+ * Supply-chain note: this activity never executes spec-provided content.
20
+ * It only reads the artifacts produced by the lexicon's own generate step,
21
+ * which is called through the lexicon's npm prepack chain.
22
+ */
23
+ import type { UpgradeCheckResult, LexiconId } from "../../codegen/pinned-upgrade.js";
24
+ import type { RollingUpgradeResult, RollingLexicon } from "../../codegen/rolling-upgrade.js";
25
+ import { bumpPackageJsonVersion } from "../../codegen/version-bump.js";
26
+ export { bumpPackageJsonVersion };
27
+ /** Finding mode, mirrors ReconcileOp's mode. */
28
+ export type LexiconUpgradeMode = "report" | "issue" | "pull-request";
29
+ /** All lexicons supported by this activity. */
30
+ export type SupportedLexicon = LexiconId | RollingLexicon;
31
+ /** Semver label applied to upgrade PRs. */
32
+ export type SemverLabel = "minor" | "breaking";
33
+ export interface LexiconUpgradeArgs {
34
+ /**
35
+ * Which lexicon to check. Determines pinned vs rolling dispatch:
36
+ * PINNED: k8s, gcp, docker, gitlab, cedar
37
+ * ROLLING: aws, azure, github, fly
38
+ */
39
+ lexicon: SupportedLexicon;
40
+ /**
41
+ * Absolute path to the lexicon root directory.
42
+ * Defaults to `<cwd>/lexicons/<lexicon>`.
43
+ */
44
+ lexiconDir?: string;
45
+ /** What to produce. Default: "report". */
46
+ mode?: LexiconUpgradeMode;
47
+ /**
48
+ * Override the pinned check function — inject a mock in tests.
49
+ * The real implementation calls checkPinnedUpgrade from core.
50
+ */
51
+ _checkPinned?: CheckPinnedFn;
52
+ /**
53
+ * Override the rolling check function — inject a mock in tests.
54
+ * The real implementation calls checkRollingUpgrade from core.
55
+ */
56
+ _checkRolling?: CheckRollingFn;
57
+ /**
58
+ * Override the gh/git runner — inject a mock in tests.
59
+ */
60
+ _gh?: GhRunner;
61
+ /**
62
+ * Override the applyPinnedVersionBump function — inject a mock in tests.
63
+ */
64
+ _applyBump?: ApplyBumpFn;
65
+ /**
66
+ * Override the package.json version writer — inject a mock in tests.
67
+ * Defaults to bumpPackageJsonVersion.
68
+ */
69
+ _bumpPackageVersion?: BumpPackageVersionFn;
70
+ }
71
+ export interface LexiconUpgradeResult {
72
+ lexicon: SupportedLexicon;
73
+ mode: LexiconUpgradeMode;
74
+ /** True when an upgrade is available and validation passed. */
75
+ hasUpgrade: boolean;
76
+ /** Human-readable surface delta summary. Empty when no upgrade. */
77
+ deltaText: string;
78
+ /** Semver label applied to the PR. null when no upgrade or no change. */
79
+ semverLabel: SemverLabel | null;
80
+ /** URL of the opened/updated PR (pull-request mode). */
81
+ prUrl?: string;
82
+ /** URL of the opened issue (issue mode). */
83
+ issueUrl?: string;
84
+ /** Full markdown summary, used as PR/issue body or printed in report mode. */
85
+ summary: string;
86
+ /** Whether validation passed. False means a breakage report was produced. */
87
+ validationOk: boolean;
88
+ }
89
+ /** Matches checkPinnedUpgrade from core. */
90
+ export type CheckPinnedFn = (opts: {
91
+ lexiconDir: string;
92
+ lexicon: LexiconId;
93
+ force?: boolean;
94
+ verbose?: boolean;
95
+ }) => Promise<UpgradeCheckResult>;
96
+ /** Matches checkRollingUpgrade from core. */
97
+ export type CheckRollingFn = (opts: {
98
+ lexiconDir: string;
99
+ force?: boolean;
100
+ verbose?: boolean;
101
+ }) => Promise<RollingUpgradeResult>;
102
+ /** Minimal shell-exec interface for gh/git invocations. */
103
+ export type GhRunner = (cmd: string) => Promise<{
104
+ stdout: string;
105
+ stderr: string;
106
+ }>;
107
+ /** Applies a pinned version bump permanently (no revert). Async (core loads the lexicon's pin descriptor); a sync mock is also accepted. */
108
+ export type ApplyBumpFn = (lexicon: LexiconId, lexiconDir: string, newVersion: string) => {
109
+ filePath: string;
110
+ } | Promise<{
111
+ filePath: string;
112
+ }>;
113
+ /**
114
+ * Write a new version into a package.json, returning the file path.
115
+ * Injectable for tests via LexiconUpgradeArgs._bumpPackageVersion.
116
+ */
117
+ export type BumpPackageVersionFn = (packageJsonPath: string, newVersion: string) => void;
118
+ /**
119
+ * Compute a bumped semver string from a current version and a semver label.
120
+ *
121
+ * The mapping is 0.x-aware, because promoting to 1.0.0 should signal the
122
+ * lexicon's own API stability, not track an upstream spec's breaking change:
123
+ *
124
+ * - Pre-1.0 (major === 0): "breaking" bumps the minor (0.13.1 → 0.14.0),
125
+ * "minor" (additive) bumps the patch (0.13.1 → 0.13.2). Never auto-1.0.0.
126
+ * - >= 1.0.0: "minor" bumps the minor (1.2.3 → 1.3.0), "breaking" bumps the
127
+ * major (1.2.3 → 2.0.0).
128
+ *
129
+ * Handles the common "MAJOR.MINOR.PATCH" form. Returns null when the
130
+ * current version string cannot be parsed as M.m.p.
131
+ */
132
+ export declare function computeBumpedVersion(current: string, label: SemverLabel): string | null;
133
+ /** Return true when the lexicon uses a pinned version constant. */
134
+ export declare function isPinned(lexicon: SupportedLexicon): lexicon is LexiconId;
135
+ /** Return true when the lexicon follows a rolling spec (no pinned constant). */
136
+ export declare function isRolling(lexicon: SupportedLexicon): lexicon is RollingLexicon;
137
+ /**
138
+ * Map a surface severity to a semver label for the PR.
139
+ *
140
+ * "additive" → "minor" (new resources/properties added)
141
+ * "breaking" → "breaking" (removed or changed resources/properties)
142
+ * "none" → null (surface unchanged)
143
+ */
144
+ export declare function severityToLabel(severity: string): SemverLabel | null;
145
+ /** Long-lived branch name for a lexicon upgrade PR. */
146
+ export declare function upgradeBranchName(lexicon: SupportedLexicon): string;
147
+ /** PR title for an upgrade. */
148
+ export declare function upgradePrTitle(lexicon: SupportedLexicon, from?: string, to?: string | null): string;
149
+ /** Build the PR/issue/report body from the upgrade result data. */
150
+ export declare function buildUpgradeSummary(opts: {
151
+ lexicon: SupportedLexicon;
152
+ from?: string;
153
+ to?: string | null;
154
+ deltaText: string;
155
+ semverLabel: SemverLabel | null;
156
+ validationOk: boolean;
157
+ failures?: Array<{
158
+ step: string;
159
+ output: string;
160
+ }>;
161
+ }): string;
162
+ /**
163
+ * Run the lexicon upgrade check for one lexicon and surface the result.
164
+ *
165
+ * Pinned lexicons (k8s, gcp, docker, gitlab):
166
+ * Calls checkPinnedUpgrade. A PR is opened only when hasUpgrade=true AND
167
+ * validation passed. Validation failures produce a report or issue.
168
+ *
169
+ * Rolling lexicons (aws, azure, github):
170
+ * Calls checkRollingUpgrade. A PR is opened only when the surface changed
171
+ * AND validation passed. Surface unchanged = no action.
172
+ *
173
+ * In pull-request mode:
174
+ * - Branch: lexicon-upgrade/<lexicon> (long-lived, one per lexicon).
175
+ * - Idempotent: if the open PR body matches the new summary, skip re-push.
176
+ * - Semver label: "minor" (additive) or "breaking" (changed/removed).
177
+ * - Validation failure falls back to issue mode.
178
+ *
179
+ * Never auto-merges or auto-publishes.
180
+ */
181
+ export declare function lexiconUpgrade(args: LexiconUpgradeArgs): Promise<LexiconUpgradeResult>;
182
+ //# sourceMappingURL=lexicon-upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexicon-upgrade.d.ts","sourceRoot":"","sources":["../../../src/op/activities/lexicon-upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAmB,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAMlC,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;AAErE,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,cAAc,CAAC;AAE1D,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;CAC5C;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,+DAA+D;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,YAAY,EAAE,OAAO,CAAC;CACvB;AAID,4CAA4C;AAC5C,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAElC,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEpC,2DAA2D;AAC3D,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpF,4IAA4I;AAC5I,MAAM,MAAM,WAAW,GAAG,CACxB,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,KACf;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;AAIzF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,GACjB,MAAM,GAAG,IAAI,CAKf;AASD,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,IAAI,SAAS,CAExE;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,IAAI,cAAc,CAE9E;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAIpE;AAID,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEnE;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GACjB,MAAM,CAGR;AAID,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD,GAAG,MAAM,CAqDT;AA6FD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4R5F"}
@@ -0,0 +1,42 @@
1
+ export interface LifecycleSnapshotArgs {
2
+ /** Environment name (e.g. "dev", "staging", "prod"). */
3
+ env: string;
4
+ }
5
+ /**
6
+ * Take a chant lifecycle snapshot for the given environment.
7
+ * Uses fastIdempotent profile — 5m timeout, 3 retries.
8
+ */
9
+ export declare function lifecycleSnapshot(args: LifecycleSnapshotArgs, signal?: AbortSignal): Promise<void>;
10
+ export interface LifecycleDiffArgs {
11
+ /** Environment name (e.g. "dev", "staging", "prod"). */
12
+ env: string;
13
+ /**
14
+ * When true, run `chant lifecycle diff <env> --live` (queries cloud APIs).
15
+ * When false (default), run digest-only diff against the last snapshot.
16
+ */
17
+ live?: boolean;
18
+ }
19
+ export interface LifecycleDiffResult {
20
+ /** Combined stdout + stderr from the chant command. */
21
+ output: string;
22
+ /** Process exit code (0 = success). */
23
+ exitCode: number;
24
+ /**
25
+ * True when the diff output contains any drift indicators
26
+ * (MISSING / ORPHAN / DRIFTED / DISAPPEARED section headers from
27
+ * `chant lifecycle diff --live`).
28
+ */
29
+ drifted: boolean;
30
+ }
31
+ /**
32
+ * Run `chant lifecycle diff <env>` and return the output + structured drift
33
+ * flag. Read-only; intended for use inside watch/observation Ops.
34
+ * Uses fastIdempotent profile.
35
+ *
36
+ * The `drifted` field is computed by scanning the output for any of the
37
+ * MISSING / ORPHAN / DRIFTED / DISAPPEARED section headers documented in
38
+ * cli/state.mdx. Pair with `outcomeAttribute: { name: "Drift", from: "drifted" }`
39
+ * on a WatchOp activity step to surface drift as the run's `Drift` outcome.
40
+ */
41
+ export declare function lifecycleDiff(args: LifecycleDiffArgs, signal?: AbortSignal): Promise<LifecycleDiffResult>;
42
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/op/activities/lifecycle.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxG;AAED,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAoBD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAa/G"}