@intentius/chant 0.57.0 → 0.59.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 (558) 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 +36 -1
  4. package/dist/audit/core.d.ts.map +1 -1
  5. package/dist/audit/discover.d.ts +26 -9
  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/carve-bridge.d.ts.map +1 -1
  34. package/dist/cli/commands/check-lexicon-docs.d.ts +1 -1
  35. package/dist/cli/commands/check-lexicon-examples.d.ts +16 -6
  36. package/dist/cli/commands/check-lexicon-examples.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 +13 -0
  44. package/dist/cli/commands/lint.d.ts.map +1 -1
  45. package/dist/cli/commands/onboard.d.ts +2 -0
  46. package/dist/cli/commands/onboard.d.ts.map +1 -1
  47. package/dist/cli/handlers/build.d.ts.map +1 -1
  48. package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
  49. package/dist/cli/handlers/operator.d.ts +82 -16
  50. package/dist/cli/handlers/operator.d.ts.map +1 -1
  51. package/dist/cli/handlers/run.d.ts +49 -42
  52. package/dist/cli/handlers/run.d.ts.map +1 -1
  53. package/dist/cli/main.d.ts +12 -1
  54. package/dist/cli/main.d.ts.map +1 -1
  55. package/dist/cli/mcp/op-tools.d.ts +16 -1
  56. package/dist/cli/mcp/op-tools.d.ts.map +1 -1
  57. package/dist/cli/mcp/resource-handlers.d.ts.map +1 -1
  58. package/dist/cli/mcp/resources/context.d.ts.map +1 -1
  59. package/dist/cli/plugins.d.ts +22 -0
  60. package/dist/cli/plugins.d.ts.map +1 -1
  61. package/dist/cli/registry.d.ts +40 -9
  62. package/dist/cli/registry.d.ts.map +1 -1
  63. package/dist/codegen/generate-post-synth-barrel.d.ts +1 -1
  64. package/dist/components/auto-release.d.ts +10 -20
  65. package/dist/components/auto-release.d.ts.map +1 -1
  66. package/dist/components/capability.d.ts +4 -4
  67. package/dist/components/cli-support.d.ts +24 -22
  68. package/dist/components/cli-support.d.ts.map +1 -1
  69. package/dist/components/component.d.ts +21 -6
  70. package/dist/components/component.d.ts.map +1 -1
  71. package/dist/components/driver-output.d.ts.map +1 -1
  72. package/dist/components/driver.d.ts +73 -37
  73. package/dist/components/driver.d.ts.map +1 -1
  74. package/dist/components/index.d.ts +1 -2
  75. package/dist/components/index.d.ts.map +1 -1
  76. package/dist/components/manifest-persistence.d.ts +1 -9
  77. package/dist/components/manifest-persistence.d.ts.map +1 -1
  78. package/dist/components/run-progress.d.ts +6 -6
  79. package/dist/components/run-progress.d.ts.map +1 -1
  80. package/dist/components/verbs/run-agent.d.ts +10 -22
  81. package/dist/components/verbs/run-agent.d.ts.map +1 -1
  82. package/dist/components/verbs/verify.d.ts +2 -2
  83. package/dist/deep-observation.d.ts +17 -0
  84. package/dist/deep-observation.d.ts.map +1 -1
  85. package/dist/detectLexicon.d.ts +13 -0
  86. package/dist/detectLexicon.d.ts.map +1 -1
  87. package/dist/discovery/files.d.ts +4 -4
  88. package/dist/discovery/fold-import.d.ts.map +1 -1
  89. package/dist/discovery/param-deps.d.ts +33 -0
  90. package/dist/discovery/param-deps.d.ts.map +1 -1
  91. package/dist/discovery/sandbox/bundle.d.ts.map +1 -1
  92. package/dist/discovery/sandbox/config-wire.d.ts +2 -2
  93. package/dist/fold/foldable-helpers.d.ts +5 -1
  94. package/dist/fold/foldable-helpers.d.ts.map +1 -1
  95. package/dist/fold-provenance.d.ts +236 -0
  96. package/dist/fold-provenance.d.ts.map +1 -0
  97. package/dist/graph-ops.d.ts +1 -1
  98. package/dist/held-elsewhere.d.ts +85 -0
  99. package/dist/held-elsewhere.d.ts.map +1 -0
  100. package/dist/index.d.ts +3 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/kubectl-context.d.ts +3 -3
  103. package/dist/lexicon-config.d.ts +4 -4
  104. package/dist/lexicon-plugin-helpers.d.ts +1 -1
  105. package/dist/lexicon.d.ts +273 -16
  106. package/dist/lexicon.d.ts.map +1 -1
  107. package/dist/lifecycle/change-set.d.ts +13 -0
  108. package/dist/lifecycle/change-set.d.ts.map +1 -1
  109. package/dist/lifecycle/deep-diff.d.ts +133 -6
  110. package/dist/lifecycle/deep-diff.d.ts.map +1 -1
  111. package/dist/lifecycle/deep-observe.d.ts.map +1 -1
  112. package/dist/lifecycle/gate-ledger.d.ts +79 -3
  113. package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
  114. package/dist/lifecycle/index.d.ts +1 -0
  115. package/dist/lifecycle/index.d.ts.map +1 -1
  116. package/dist/lifecycle/release-ledger.d.ts +2 -2
  117. package/dist/lifecycle/run-ledger.d.ts +53 -0
  118. package/dist/lifecycle/run-ledger.d.ts.map +1 -0
  119. package/dist/lifecycle/symptoms.d.ts +3 -3
  120. package/dist/lifecycle/symptoms.d.ts.map +1 -1
  121. package/dist/lint/config.d.ts +81 -2
  122. package/dist/lint/config.d.ts.map +1 -1
  123. package/dist/lint/post-synth.d.ts +55 -2
  124. package/dist/lint/post-synth.d.ts.map +1 -1
  125. package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.d.ts +1 -1
  126. package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.d.ts.map +1 -1
  127. package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.d.ts +1 -1
  128. package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.d.ts.map +1 -1
  129. package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.d.ts +44 -0
  130. package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.d.ts.map +1 -0
  131. package/dist/lint/rules/comp/index.d.ts +1 -1
  132. package/dist/lint/rules/comp/index.d.ts.map +1 -1
  133. package/dist/lint/rules/op/index.d.ts +16 -0
  134. package/dist/lint/rules/op/index.d.ts.map +1 -0
  135. package/dist/lint/rules/op/ops012-activity-contract.d.ts +27 -0
  136. package/dist/lint/rules/op/ops012-activity-contract.d.ts.map +1 -0
  137. package/dist/lint/rules/op/ops013-step-output-ref.d.ts +61 -0
  138. package/dist/lint/rules/op/ops013-step-output-ref.d.ts.map +1 -0
  139. package/dist/lint/rules/op/ops014-converge-rule-refusals.d.ts +55 -0
  140. package/dist/lint/rules/op/ops014-converge-rule-refusals.d.ts.map +1 -0
  141. package/dist/lint/rules/op/support.d.ts +12 -0
  142. package/dist/lint/rules/op/support.d.ts.map +1 -0
  143. package/dist/lint/suppressions.d.ts +108 -0
  144. package/dist/lint/suppressions.d.ts.map +1 -0
  145. package/dist/live-endpoint.d.ts +1 -1
  146. package/dist/op/activities/activity-contracts.d.ts +54 -0
  147. package/dist/op/activities/activity-contracts.d.ts.map +1 -0
  148. package/dist/op/activities/apply.d.ts +262 -0
  149. package/dist/op/activities/apply.d.ts.map +1 -0
  150. package/dist/op/activities/build.d.ts +13 -0
  151. package/dist/op/activities/build.d.ts.map +1 -0
  152. package/dist/op/activities/converge.d.ts +110 -0
  153. package/dist/op/activities/converge.d.ts.map +1 -0
  154. package/dist/op/activities/env-teardown.d.ts +76 -0
  155. package/dist/op/activities/env-teardown.d.ts.map +1 -0
  156. package/dist/op/activities/guard-validate.d.ts +64 -0
  157. package/dist/op/activities/guard-validate.d.ts.map +1 -0
  158. package/dist/op/activities/http-check.d.ts +34 -0
  159. package/dist/op/activities/http-check.d.ts.map +1 -0
  160. package/dist/op/activities/index.d.ts +31 -0
  161. package/dist/op/activities/index.d.ts.map +1 -0
  162. package/dist/op/activities/lexicon-upgrade.d.ts +182 -0
  163. package/dist/op/activities/lexicon-upgrade.d.ts.map +1 -0
  164. package/dist/op/activities/lifecycle.d.ts +42 -0
  165. package/dist/op/activities/lifecycle.d.ts.map +1 -0
  166. package/dist/op/activities/pipeline-audit.d.ts +84 -0
  167. package/dist/op/activities/pipeline-audit.d.ts.map +1 -0
  168. package/dist/op/activities/policy.d.ts +17 -0
  169. package/dist/op/activities/policy.d.ts.map +1 -0
  170. package/dist/op/activities/reconcile.d.ts +149 -0
  171. package/dist/op/activities/reconcile.d.ts.map +1 -0
  172. package/dist/op/activities/shell.d.ts +13 -0
  173. package/dist/op/activities/shell.d.ts.map +1 -0
  174. package/dist/op/activities/teardown.d.ts +10 -0
  175. package/dist/op/activities/teardown.d.ts.map +1 -0
  176. package/dist/op/activities/util.d.ts +7 -0
  177. package/dist/op/activities/util.d.ts.map +1 -0
  178. package/dist/op/activities/wait.d.ts +28 -0
  179. package/dist/op/activities/wait.d.ts.map +1 -0
  180. package/dist/op/activities/workflow-audit.d.ts +92 -0
  181. package/dist/op/activities/workflow-audit.d.ts.map +1 -0
  182. package/dist/op/activity-contract-registry.d.ts +76 -0
  183. package/dist/op/activity-contract-registry.d.ts.map +1 -0
  184. package/dist/op/activity-contract.d.ts +25 -18
  185. package/dist/op/activity-contract.d.ts.map +1 -1
  186. package/dist/op/activity-failure.d.ts +28 -0
  187. package/dist/op/activity-failure.d.ts.map +1 -0
  188. package/dist/op/activity-profiles.d.ts +118 -0
  189. package/dist/op/activity-profiles.d.ts.map +1 -0
  190. package/dist/op/activity-registry.d.ts +22 -38
  191. package/dist/op/activity-registry.d.ts.map +1 -1
  192. package/dist/op/activity-runtime.d.ts +3 -14
  193. package/dist/op/activity-runtime.d.ts.map +1 -1
  194. package/dist/op/builders.d.ts +85 -30
  195. package/dist/op/builders.d.ts.map +1 -1
  196. package/dist/op/change-signal.d.ts +91 -0
  197. package/dist/op/change-signal.d.ts.map +1 -0
  198. package/dist/op/composites/apply-op.d.ts +118 -0
  199. package/dist/op/composites/apply-op.d.ts.map +1 -0
  200. package/dist/op/composites/converge-op.d.ts +120 -0
  201. package/dist/op/composites/converge-op.d.ts.map +1 -0
  202. package/dist/op/composites/index.d.ts +26 -0
  203. package/dist/op/composites/index.d.ts.map +1 -0
  204. package/dist/op/composites/lexicon-upgrade-op.d.ts +78 -0
  205. package/dist/op/composites/lexicon-upgrade-op.d.ts.map +1 -0
  206. package/dist/op/composites/pipeline-audit-op.d.ts +50 -0
  207. package/dist/op/composites/pipeline-audit-op.d.ts.map +1 -0
  208. package/dist/op/composites/reconcile-op.d.ts +57 -0
  209. package/dist/op/composites/reconcile-op.d.ts.map +1 -0
  210. package/dist/op/composites/watch-op.d.ts +60 -0
  211. package/dist/op/composites/watch-op.d.ts.map +1 -0
  212. package/dist/op/composites/workflow-audit-op.d.ts +57 -0
  213. package/dist/op/composites/workflow-audit-op.d.ts.map +1 -0
  214. package/dist/op/converge-rule.d.ts +12 -10
  215. package/dist/op/converge-rule.d.ts.map +1 -1
  216. package/dist/op/cron.d.ts +51 -0
  217. package/dist/op/cron.d.ts.map +1 -0
  218. package/dist/op/discover.d.ts +9 -0
  219. package/dist/op/discover.d.ts.map +1 -1
  220. package/dist/op/duration.d.ts +11 -0
  221. package/dist/op/duration.d.ts.map +1 -0
  222. package/dist/op/emulator-lifecycle.d.ts.map +1 -1
  223. package/dist/op/gate-name.d.ts +40 -0
  224. package/dist/op/gate-name.d.ts.map +1 -0
  225. package/dist/op/gate-summary.d.ts +43 -0
  226. package/dist/op/gate-summary.d.ts.map +1 -0
  227. package/dist/op/gate.d.ts +90 -0
  228. package/dist/op/gate.d.ts.map +1 -0
  229. package/dist/op/generate-pipeline.d.ts +9 -0
  230. package/dist/op/generate-pipeline.d.ts.map +1 -1
  231. package/dist/op/index.d.ts +29 -9
  232. package/dist/op/index.d.ts.map +1 -1
  233. package/dist/op/local-executor.d.ts +114 -28
  234. package/dist/op/local-executor.d.ts.map +1 -1
  235. package/dist/op/local-output.d.ts +11 -1
  236. package/dist/op/local-output.d.ts.map +1 -1
  237. package/dist/op/op-ir.d.ts +185 -0
  238. package/dist/op/op-ir.d.ts.map +1 -0
  239. package/dist/op/op-verb-class.d.ts +10 -2
  240. package/dist/op/op-verb-class.d.ts.map +1 -1
  241. package/dist/op/operator.d.ts +93 -5
  242. package/dist/op/operator.d.ts.map +1 -1
  243. package/dist/op/receipt-store.d.ts +1 -1
  244. package/dist/op/receipt-store.d.ts.map +1 -1
  245. package/dist/op/resource.d.ts +15 -1
  246. package/dist/op/resource.d.ts.map +1 -1
  247. package/dist/op/runtime.d.ts +200 -0
  248. package/dist/op/runtime.d.ts.map +1 -0
  249. package/dist/op/runtimes/local.d.ts +29 -0
  250. package/dist/op/runtimes/local.d.ts.map +1 -0
  251. package/dist/op/step-output-ref.d.ts +15 -13
  252. package/dist/op/step-output-ref.d.ts.map +1 -1
  253. package/dist/op/types.d.ts +96 -29
  254. package/dist/op/types.d.ts.map +1 -1
  255. package/dist/ownership.d.ts +1 -1
  256. package/dist/provenance.d.ts +21 -0
  257. package/dist/provenance.d.ts.map +1 -1
  258. package/dist/serializer-walker.d.ts.map +1 -1
  259. package/dist/terraform/bridge.d.ts +26 -7
  260. package/dist/terraform/bridge.d.ts.map +1 -1
  261. package/dist/terraform/carve-provider.d.ts +28 -2
  262. package/dist/terraform/carve-provider.d.ts.map +1 -1
  263. package/dist/terraform/data-source-shape.d.ts +77 -0
  264. package/dist/terraform/data-source-shape.d.ts.map +1 -0
  265. package/dist/terraform/graph.d.ts.map +1 -1
  266. package/dist/terraform/providers/kubernetes.d.ts +5 -0
  267. package/dist/terraform/providers/kubernetes.d.ts.map +1 -1
  268. package/dist/terraform/tier-map.d.ts +16 -4
  269. package/dist/terraform/tier-map.d.ts.map +1 -1
  270. package/dist/terraform/types.d.ts +8 -0
  271. package/dist/terraform/types.d.ts.map +1 -1
  272. package/package.json +6 -1
  273. package/src/audit/catalog.test.ts +79 -3
  274. package/src/audit/catalog.ts +111 -13
  275. package/src/audit/core.test.ts +26 -0
  276. package/src/audit/core.ts +84 -18
  277. package/src/audit/discover.test.ts +39 -0
  278. package/src/audit/discover.ts +202 -18
  279. package/src/audit/lineage.ts +100 -0
  280. package/src/audit/prior-art.ts +153 -0
  281. package/src/audit/proof.test.ts +67 -0
  282. package/src/audit/proof.ts +70 -0
  283. package/src/audit/report-html.ts +9 -4
  284. package/src/audit/report-model.ts +16 -2
  285. package/src/audit/report.test.ts +33 -0
  286. package/src/audit/report.ts +5 -3
  287. package/src/audit/rules-doc.test.ts +34 -2
  288. package/src/audit/rules-doc.ts +82 -9
  289. package/src/audit/secrets.ts +15 -3
  290. package/src/audit/terraform-state.test.ts +144 -0
  291. package/src/audit/terraform-state.ts +131 -0
  292. package/src/build.ts +31 -1
  293. package/src/claimed-fields.test.ts +145 -0
  294. package/src/claimed-fields.ts +208 -0
  295. package/src/cli/build-params-cli.ts +2 -2
  296. package/src/cli/command-group.ts +14 -0
  297. package/src/cli/commands/__fixtures__/audit-terraform/infra/.terraform/providers/lock.txt +1 -0
  298. package/src/cli/commands/__fixtures__/audit-terraform/infra/main.tf +1 -0
  299. package/src/cli/commands/__fixtures__/audit-terraform/infra/modules/foo/main.tf +1 -0
  300. package/src/cli/commands/__fixtures__/audit-terraform/infra/variables.tf +3 -0
  301. package/src/cli/commands/__fixtures__/init-lexicon-output/package.json +13 -4
  302. package/src/cli/commands/__fixtures__/init-lexicon-output/src/codegen/docs-cli.ts +4 -0
  303. package/src/cli/commands/__fixtures__/init-lexicon-output/src/codegen/package.ts +1 -0
  304. package/src/cli/commands/__fixtures__/init-lexicon-output/src/package-cli.ts +21 -0
  305. package/src/cli/commands/__snapshots__/init-lexicon.test.ts.snap +1 -0
  306. package/src/cli/commands/audit.test.ts +191 -11
  307. package/src/cli/commands/audit.ts +78 -28
  308. package/src/cli/commands/build.test.ts +330 -9
  309. package/src/cli/commands/build.ts +170 -24
  310. package/src/cli/commands/carve-bridge.test.ts +237 -14
  311. package/src/cli/commands/carve-bridge.ts +21 -17
  312. package/src/cli/commands/carve-emit-k8s.test.ts +17 -10
  313. package/src/cli/commands/check-lexicon-docs.ts +1 -1
  314. package/src/cli/commands/check-lexicon-examples.test.ts +29 -1
  315. package/src/cli/commands/check-lexicon-examples.ts +42 -10
  316. package/src/cli/commands/init-lexicon/templates/codegen.ts +9 -0
  317. package/src/cli/commands/init-lexicon/templates/project.ts +44 -4
  318. package/src/cli/commands/init-lexicon.test.ts +97 -2
  319. package/src/cli/commands/init-lexicon.ts +4 -2
  320. package/src/cli/commands/init.test.ts +35 -1
  321. package/src/cli/commands/init.ts +14 -3
  322. package/src/cli/commands/lint.test.ts +194 -1
  323. package/src/cli/commands/lint.ts +205 -7
  324. package/src/cli/commands/onboard.test.ts +75 -0
  325. package/src/cli/commands/onboard.ts +54 -23
  326. package/src/cli/handlers/build.test.ts +81 -1
  327. package/src/cli/handlers/build.ts +15 -1
  328. package/src/cli/handlers/graph.test.ts +3 -3
  329. package/src/cli/handlers/lifecycle.test.ts +195 -12
  330. package/src/cli/handlers/lifecycle.ts +123 -6
  331. package/src/cli/handlers/misc.ts +1 -1
  332. package/src/cli/handlers/operator.test.ts +183 -11
  333. package/src/cli/handlers/operator.ts +341 -55
  334. package/src/cli/handlers/run.test.ts +568 -1295
  335. package/src/cli/handlers/run.ts +446 -912
  336. package/src/cli/main.test.ts +22 -16
  337. package/src/cli/main.ts +66 -33
  338. package/src/cli/mcp/op-tools.ts +147 -88
  339. package/src/cli/mcp/resource-handlers.ts +10 -37
  340. package/src/cli/mcp/resources/context.ts +11 -12
  341. package/src/cli/mcp/server.test.ts +25 -27
  342. package/src/cli/mcp/server.ts +2 -2
  343. package/src/cli/plugins.test.ts +68 -2
  344. package/src/cli/plugins.ts +39 -0
  345. package/src/cli/registry.ts +40 -9
  346. package/src/codegen/docs.ts +1 -1
  347. package/src/codegen/generate-post-synth-barrel.test.ts +1 -1
  348. package/src/codegen/generate-post-synth-barrel.ts +1 -1
  349. package/src/components/README.md +4 -3
  350. package/src/components/__fixtures__/neo4j-fanout.json +1 -1
  351. package/src/components/auto-release.test.ts +4 -20
  352. package/src/components/auto-release.ts +17 -42
  353. package/src/components/capability.ts +4 -4
  354. package/src/components/cli-support.test.ts +28 -12
  355. package/src/components/cli-support.ts +60 -47
  356. package/src/components/component-schema.test.ts +18 -2
  357. package/src/components/component.schema.json +18 -5
  358. package/src/components/component.test.ts +2 -2
  359. package/src/components/component.ts +27 -7
  360. package/src/components/config-defaults.test.ts +2 -2
  361. package/src/components/driver-output.ts +14 -2
  362. package/src/components/driver.test.ts +109 -20
  363. package/src/components/driver.ts +201 -84
  364. package/src/components/index.ts +1 -6
  365. package/src/components/manifest-persistence.test.ts +2 -20
  366. package/src/components/manifest-persistence.ts +4 -24
  367. package/src/components/pilots/neo4j-fanout.pilot.ts +3 -3
  368. package/src/components/pilots/pilots-lint-clean.test.ts +11 -10
  369. package/src/components/run-progress.ts +6 -6
  370. package/src/components/verbs/run-agent.test.ts +19 -0
  371. package/src/components/verbs/run-agent.ts +12 -24
  372. package/src/components/verbs/verify.ts +2 -2
  373. package/src/deep-observation.test.ts +75 -0
  374. package/src/deep-observation.ts +48 -0
  375. package/src/detectLexicon.ts +18 -1
  376. package/src/discovery/collect.test.ts +3 -3
  377. package/src/discovery/files.ts +4 -4
  378. package/src/discovery/fold-import.test.ts +1 -1
  379. package/src/discovery/fold-import.ts +105 -2
  380. package/src/discovery/param-deps.test.ts +112 -1
  381. package/src/discovery/param-deps.ts +193 -0
  382. package/src/discovery/sandbox/bundle.ts +15 -1
  383. package/src/discovery/sandbox/config-wire.test.ts +2 -2
  384. package/src/discovery/sandbox/config-wire.ts +2 -2
  385. package/src/fold/fold.test.ts +56 -0
  386. package/src/fold/foldable-helpers.ts +82 -2
  387. package/src/fold-provenance-exclusion.test.ts +186 -0
  388. package/src/fold-provenance.test.ts +495 -0
  389. package/src/fold-provenance.ts +441 -0
  390. package/src/graph-ops.test.ts +3 -3
  391. package/src/graph-ops.ts +1 -1
  392. package/src/held-elsewhere.test.ts +102 -0
  393. package/src/held-elsewhere.ts +114 -0
  394. package/src/index.ts +3 -0
  395. package/src/kubectl-context.ts +3 -3
  396. package/src/lexicon-config.test.ts +5 -5
  397. package/src/lexicon-config.ts +4 -4
  398. package/src/lexicon-plugin-helpers.ts +1 -1
  399. package/src/lexicon.ts +296 -16
  400. package/src/lifecycle/change-set.test.ts +49 -0
  401. package/src/lifecycle/change-set.ts +67 -0
  402. package/src/lifecycle/converge-ledger.ts +1 -1
  403. package/src/lifecycle/deep-diff.test.ts +267 -14
  404. package/src/lifecycle/deep-diff.ts +217 -14
  405. package/src/lifecycle/deep-observe.test.ts +3 -1
  406. package/src/lifecycle/deep-observe.ts +16 -6
  407. package/src/lifecycle/gate-ledger.test.ts +74 -2
  408. package/src/lifecycle/gate-ledger.ts +154 -36
  409. package/src/lifecycle/index.ts +1 -0
  410. package/src/lifecycle/release-ledger.ts +2 -2
  411. package/src/lifecycle/run-ledger.test.ts +268 -0
  412. package/src/lifecycle/run-ledger.ts +201 -0
  413. package/src/lifecycle/symptoms.ts +3 -3
  414. package/src/lint/config.test.ts +82 -1
  415. package/src/lint/config.ts +112 -3
  416. package/src/lint/pipeline-change-gate.test.ts +2 -2
  417. package/src/lint/policy.test.ts +1 -1
  418. package/src/lint/post-synth.test.ts +31 -0
  419. package/src/lint/post-synth.ts +54 -1
  420. package/src/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.ts +2 -2
  421. package/src/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.ts +1 -1
  422. package/src/lint/rules/comp/comp.test.ts +27 -1
  423. package/src/lint/rules/comp/comp004-gate-needs-durable-runtime.ts +76 -0
  424. package/src/lint/rules/comp/index.ts +3 -3
  425. package/src/lint/rules/op/index.ts +23 -0
  426. package/src/lint/rules/op/ops012-activity-contract.test.ts +161 -0
  427. package/src/lint/rules/op/ops012-activity-contract.ts +64 -0
  428. package/src/lint/rules/op/ops013-step-output-ref.test.ts +237 -0
  429. package/src/lint/rules/op/ops013-step-output-ref.ts +98 -0
  430. package/src/lint/rules/op/ops014-converge-rule-refusals.test.ts +263 -0
  431. package/src/lint/rules/op/ops014-converge-rule-refusals.ts +179 -0
  432. package/src/lint/rules/op/support.ts +11 -0
  433. package/src/lint/suppressions.test.ts +163 -0
  434. package/src/lint/suppressions.ts +204 -0
  435. package/src/live-endpoint.ts +1 -1
  436. package/src/op/activities/activity-contracts.ts +66 -0
  437. package/src/op/activities/apply.test.ts +567 -0
  438. package/src/op/activities/apply.ts +662 -0
  439. package/src/op/activities/build.ts +26 -0
  440. package/src/op/activities/converge.test.ts +330 -0
  441. package/src/op/activities/converge.ts +449 -0
  442. package/src/op/activities/env-teardown.test.ts +187 -0
  443. package/src/op/activities/env-teardown.ts +171 -0
  444. package/src/op/activities/guard-validate.test.ts +139 -0
  445. package/src/op/activities/guard-validate.ts +223 -0
  446. package/src/op/activities/http-check.test.ts +48 -0
  447. package/src/op/activities/http-check.ts +55 -0
  448. package/src/op/activities/index.ts +119 -0
  449. package/src/op/activities/lexicon-upgrade.test.ts +492 -0
  450. package/src/op/activities/lexicon-upgrade.ts +673 -0
  451. package/src/op/activities/lifecycle.ts +85 -0
  452. package/src/op/activities/pipeline-audit.test.ts +67 -0
  453. package/src/op/activities/pipeline-audit.ts +201 -0
  454. package/src/op/activities/policy.test.ts +19 -0
  455. package/src/op/activities/policy.ts +37 -0
  456. package/src/op/activities/reconcile.test.ts +161 -0
  457. package/src/op/activities/reconcile.ts +354 -0
  458. package/src/op/activities/shell.ts +26 -0
  459. package/src/op/activities/teardown.ts +22 -0
  460. package/src/op/activities/util.ts +6 -0
  461. package/src/op/activities/wait.ts +69 -0
  462. package/src/op/activities/workflow-audit.test.ts +90 -0
  463. package/src/op/activities/workflow-audit.ts +203 -0
  464. package/src/op/activity-contract-registry.test.ts +98 -0
  465. package/src/op/activity-contract-registry.ts +114 -0
  466. package/src/op/activity-contract.test.ts +1 -1
  467. package/src/op/activity-contract.ts +37 -33
  468. package/src/op/activity-failure.ts +34 -0
  469. package/src/op/activity-profiles.test.ts +56 -0
  470. package/src/op/activity-profiles.ts +116 -0
  471. package/src/op/activity-registry.test.ts +37 -28
  472. package/src/op/activity-registry.ts +27 -56
  473. package/src/op/activity-runtime.ts +3 -47
  474. package/src/op/builders-exports.test.ts +0 -49
  475. package/src/op/builders-typed.test.ts +164 -0
  476. package/src/op/builders.ts +125 -41
  477. package/src/op/change-signal.test.ts +117 -0
  478. package/src/op/change-signal.ts +169 -0
  479. package/src/op/composites/apply-op.ts +218 -0
  480. package/src/op/composites/composites.test.ts +379 -0
  481. package/src/op/composites/converge-op.test.ts +168 -0
  482. package/src/op/composites/converge-op.ts +214 -0
  483. package/src/op/composites/index.ts +26 -0
  484. package/src/op/composites/lexicon-upgrade-op.test.ts +68 -0
  485. package/src/op/composites/lexicon-upgrade-op.ts +134 -0
  486. package/src/op/composites/pipeline-audit-op.test.ts +25 -0
  487. package/src/op/composites/pipeline-audit-op.ts +78 -0
  488. package/src/op/composites/reconcile-op.test.ts +51 -0
  489. package/src/op/composites/reconcile-op.ts +110 -0
  490. package/src/op/composites/watch-op.ts +108 -0
  491. package/src/op/composites/workflow-audit-op.test.ts +25 -0
  492. package/src/op/composites/workflow-audit-op.ts +88 -0
  493. package/src/op/converge-rule.ts +12 -10
  494. package/src/op/cron.test.ts +128 -0
  495. package/src/op/cron.ts +149 -0
  496. package/src/op/discover-root.test.ts +105 -1
  497. package/src/op/discover.test.ts +6 -2
  498. package/src/op/discover.ts +84 -16
  499. package/src/op/duration.ts +21 -0
  500. package/src/op/effect-step.test.ts +29 -14
  501. package/src/op/emulator-lifecycle.ts +1 -2
  502. package/src/op/gate-name.test.ts +65 -0
  503. package/src/op/gate-name.ts +60 -0
  504. package/src/op/gate-summary.ts +84 -0
  505. package/src/op/gate.ts +155 -0
  506. package/src/op/generate-pipeline.test.ts +65 -3
  507. package/src/op/generate-pipeline.ts +19 -2
  508. package/src/op/index.ts +48 -8
  509. package/src/op/local-executor.test.ts +178 -34
  510. package/src/op/local-executor.ts +371 -102
  511. package/src/op/local-output.test.ts +95 -11
  512. package/src/op/local-output.ts +33 -4
  513. package/src/op/op-ir.test.ts +292 -0
  514. package/src/op/op-ir.ts +419 -0
  515. package/src/op/op-verb-class.test.ts +2 -2
  516. package/src/op/op-verb-class.ts +19 -5
  517. package/src/op/op.test.ts +28 -7
  518. package/src/op/operator.test.ts +543 -6
  519. package/src/op/operator.ts +203 -20
  520. package/src/op/receipt-store.ts +1 -1
  521. package/src/op/resource.ts +20 -2
  522. package/src/op/runtime.ts +203 -0
  523. package/src/op/runtimes/local.test.ts +181 -0
  524. package/src/op/runtimes/local.ts +212 -0
  525. package/src/op/step-output-ref.ts +15 -13
  526. package/src/op/types.ts +106 -26
  527. package/src/ownership.ts +1 -1
  528. package/src/provenance.test.ts +6 -0
  529. package/src/provenance.ts +21 -1
  530. package/src/serializer-walker.test.ts +42 -0
  531. package/src/serializer-walker.ts +21 -2
  532. package/src/terraform/aws-resources.test.ts +13 -4
  533. package/src/terraform/bridge.test.ts +22 -9
  534. package/src/terraform/bridge.ts +89 -28
  535. package/src/terraform/carve-provider.ts +38 -2
  536. package/src/terraform/data-source-shape.ts +95 -0
  537. package/src/terraform/graph.ts +35 -7
  538. package/src/terraform/providers/kubernetes.ts +48 -2
  539. package/src/terraform/tier-map.ts +21 -6
  540. package/src/terraform/types.ts +8 -0
  541. package/dist/cli/handlers/op-progress.d.ts +0 -90
  542. package/dist/cli/handlers/op-progress.d.ts.map +0 -1
  543. package/dist/cli/handlers/run-client.d.ts +0 -127
  544. package/dist/cli/handlers/run-client.d.ts.map +0 -1
  545. package/dist/cli/handlers/run-report.d.ts +0 -5
  546. package/dist/cli/handlers/run-report.d.ts.map +0 -1
  547. package/dist/components/temporal-codegen-loader.d.ts +0 -27
  548. package/dist/components/temporal-codegen-loader.d.ts.map +0 -1
  549. package/dist/lint/rules/comp/comp004-gate-needs-temporal.d.ts +0 -37
  550. package/dist/lint/rules/comp/comp004-gate-needs-temporal.d.ts.map +0 -1
  551. package/src/cli/handlers/op-progress.test.ts +0 -268
  552. package/src/cli/handlers/op-progress.ts +0 -248
  553. package/src/cli/handlers/run-client.test.ts +0 -82
  554. package/src/cli/handlers/run-client.ts +0 -219
  555. package/src/cli/handlers/run-report.test.ts +0 -62
  556. package/src/cli/handlers/run-report.ts +0 -122
  557. package/src/components/temporal-codegen-loader.ts +0 -41
  558. package/src/lint/rules/comp/comp004-gate-needs-temporal.ts +0 -66
@@ -0,0 +1,262 @@
1
+ /**
2
+ * `nativeApply` — push declared source to the cloud through the target's own
3
+ * mechanism. Authority stays with the platform; chant hosts no state file.
4
+ *
5
+ * ## Where the shell went (chant #1075, #1448, #1449)
6
+ *
7
+ * This used to build a shell command for every target — `kubectl apply -f`,
8
+ * `az deployment group create`, `aws cloudformation deploy`. Two things were
9
+ * wrong with that. The shell commands carried product knowledge that belongs to
10
+ * each product's lexicon, against the one-lexicon-per-product rule that already
11
+ * moved `kubectlApply`, `k3dUp`/`k3dDown` and `waitForArgoSync` out (chant
12
+ * #809). And each CLI's semantics diverged from what the docblocks promised —
13
+ * `kubectl apply`'s client-side merge gave the diff engine nothing to key on
14
+ * (#1075), and ARM Complete mode deleted resources chant never applied (#1448).
15
+ *
16
+ * So each branch moved to its product's lexicon: `kubectl`/`kustomize` are a
17
+ * server-side apply over the k8s lexicon's typed client (#1075, #1548), `arm`
18
+ * is the azure lexicon's per-resource `azApply` (#1448), `cloudformation`
19
+ * is the aws lexicon's `awsApply` — the CloudFormation Query API directly, no
20
+ * CLI in the path (#1449) — and `gcp`/`fly` are the gcp lexicon's
21
+ * per-resource `gcpApply` and the fly lexicon's `flyApply`, which never had a
22
+ * CLI in the path to begin with: gcp maps each CNRM kind to its REST API
23
+ * itself, and fly speaks the Machines API (flaps) directly, no flyctl.
24
+ * **The dispatcher stayed here**, because "which
25
+ * mechanism applies this target" is not any one product's knowledge — and
26
+ * because the activity keeps its name, its arguments and its place in
27
+ * `ApplyOp`, so no existing Op changes shape.
28
+ *
29
+ * The lexicons are reached by dynamic import at call time, never by a static
30
+ * one: this package must not depend on them. A project applying a target
31
+ * already lists that lexicon in its config, so the module is there; when it is
32
+ * not, the failure names the package to install.
33
+ */
34
+ import { type ApplyResult } from "../../apply.js";
35
+ /** The native apply mechanism for a target. */
36
+ export type ApplyTarget = "cloudformation" | "kubectl" | "arm" | "kustomize" | "gcp" | "fly";
37
+ /**
38
+ * How apply treats resources no longer declared.
39
+ * - `never` — additive only; never deletes.
40
+ * - `owned-only` — enables the target's own delete path. What bounds that path
41
+ * differs per target, and all of them are genuinely owned-only: `kubectl`
42
+ * sweeps by the ownership marker, `arm` prunes by the ownership tag
43
+ * (`isChantOwned`, via the azure lexicon's `azApply`), `gcp` prunes by the
44
+ * ownership label (via the gcp lexicon's `gcpApply` — only kinds it can
45
+ * list; the rest are reported not-prunable), `fly` prunes machines by the
46
+ * metadata marker and the metadata-less types (volumes/ips/certs/secrets)
47
+ * app-scoped under a managed app (via the fly lexicon's `flyApply`), and
48
+ * `cloudformation` is bounded by the stack — which holds, because a
49
+ * resource CFN did not create is not in the stack.
50
+ * - `gated` — same delete scope as `owned-only`, but an approval gate precedes
51
+ * the destructive apply, so an unapproved run ends `gated` before deleting
52
+ * anything (the gate lives in the composite).
53
+ */
54
+ export type DeleteMode = "never" | "owned-only" | "gated";
55
+ export interface NativeApplyArgs {
56
+ /** Native mechanism to delegate to. */
57
+ target: ApplyTarget;
58
+ /** Environment. What it means is per target: the CFN stack name on
59
+ * `cloudformation`, the ARM resource group on `arm`, the chant environment
60
+ * on `kubectl`/`kustomize`. On `gcp` and `fly` it is a log label only — the
61
+ * gcp applier resolves the project (`GOOGLE_CLOUD_PROJECT` env / CNRM
62
+ * annotation) and endpoint (`GCP_ENDPOINT_URL` env) itself, and the fly
63
+ * applier resolves its endpoint (`FLY_FLAPS_BASE_URL` env) and token
64
+ * (`FLY_API_TOKEN` env) itself, with the app names coming from the plan. */
65
+ env: string;
66
+ /** Built manifest/template path. Default per target ({@link defaultOutput}):
67
+ * `dist` (a dir) for kubectl, `template.json` (a file) for
68
+ * CloudFormation/ARM, `dist/gcp.yaml` for gcp, `dist/fly.json` for fly. */
69
+ output?: string;
70
+ /** Delete handling. Default: never. */
71
+ deleteMode?: DeleteMode;
72
+ /**
73
+ * kubectl target only (chant #1075). Take ownership of fields another field
74
+ * manager owns instead of failing with a conflict that names them.
75
+ * **Opt-in, and never defaulted on**: transferring ownership of a live field
76
+ * is a decision, not a retry.
77
+ */
78
+ forceConflicts?: boolean;
79
+ }
80
+ /**
81
+ * What an apply did — one shape for every target: the count projection of
82
+ * core's `NormalizedApply` (#1446, collapsed here in #1449). The per-target
83
+ * shapes this used to carry (`fieldManager`, `stackName`/`status`/`action`,
84
+ * a separate `notPrunable`) belong to the appliers and stay in their lexicons;
85
+ * this activity's result is the shape every Op reads back regardless of
86
+ * target, and the target-specific detail still reaches the operator on the
87
+ * activity log.
88
+ */
89
+ export interface NativeApplyResult {
90
+ /** Resources the provider was called for and which converged — created,
91
+ * updated or unchanged. On `cloudformation` the unit is the stack, so a
92
+ * settled deploy is `1`. */
93
+ applied: number;
94
+ /** Owned, no-longer-declared resources deleted. */
95
+ pruned: number;
96
+ /** Declared resources no provider call was made for (#1447), including
97
+ * kinds an owned-only prune could not consider (`not-prunable`). Zero on a
98
+ * complete apply. */
99
+ notAttempted: number;
100
+ }
101
+ /**
102
+ * The k8s lexicon's server-side apply, as this module needs to call it.
103
+ * Structural, so nothing here imports the k8s lexicon's types.
104
+ */
105
+ export type K8sApplier = (args: {
106
+ manifest: string;
107
+ /** Already-rendered documents (#1548) — the kustomize target hands the
108
+ * render straight in; `manifest` is then only the log label. */
109
+ documents?: Array<Record<string, unknown>>;
110
+ environment?: string;
111
+ deleteMode?: DeleteMode;
112
+ force?: boolean;
113
+ }, signal?: AbortSignal) => Promise<{
114
+ applied: unknown[];
115
+ pruned: unknown[];
116
+ fieldManager: string;
117
+ }>;
118
+ /**
119
+ * The azure lexicon's per-resource ARM applier, as this module needs to call
120
+ * it: `azApply` composed with the lexicon's own `toApplyResult` projection, so
121
+ * what crosses this seam is core's versioned apply envelope (#1446) and
122
+ * nothing ARM-shaped.
123
+ */
124
+ export type AzureApplier = (args: {
125
+ templatePath: string;
126
+ resourceGroup: string;
127
+ endpoint?: string;
128
+ prune?: boolean;
129
+ }, signal?: AbortSignal) => Promise<ApplyResult>;
130
+ /**
131
+ * The gcp lexicon's per-resource applier, as this module needs to call it
132
+ * (#1449): `gcpApply` composed with the lexicon's own `toApplyResult`
133
+ * projection, so what crosses this seam is core's versioned apply envelope
134
+ * (#1446) — the skips of #1447 ride it as NOT-ATTEMPTED entries, and a kind
135
+ * the prune could not consider rides it as `not-prunable`.
136
+ *
137
+ * Deliberately narrow: no `endpoint`, because `gcpApply` resolves
138
+ * `GCP_ENDPOINT_URL` itself — the same variable gcp's read path honours, so an
139
+ * apply lands wherever `--live` is already looking (floci-gcp, or real GCP
140
+ * when unset); and no `project`, because `gcpApply` resolves
141
+ * `GOOGLE_CLOUD_PROJECT` / the CNRM project-id annotation itself.
142
+ */
143
+ export type GcpApplier = (args: {
144
+ manifestPath: string;
145
+ prune?: boolean;
146
+ }, signal?: AbortSignal) => Promise<ApplyResult>;
147
+ /**
148
+ * The fly lexicon's flaps applier, as this module needs to call it (#1449):
149
+ * `flyApply` composed with the lexicon's own `toApplyResult` projection. The
150
+ * eleven arrays flyApply returns — six entity classes applied, five pruned —
151
+ * are its own contract and stay in the fly lexicon; what crosses this seam is
152
+ * core's versioned apply envelope (#1446).
153
+ *
154
+ * Deliberately narrow: no `endpoint`, because `flyApply` resolves
155
+ * `FLY_FLAPS_BASE_URL` itself — mudflaps locally, real Fly when unset; and no
156
+ * `token`, because it resolves `FLY_API_TOKEN` itself.
157
+ */
158
+ export type FlyApplier = (args: {
159
+ planPath: string;
160
+ prune?: boolean;
161
+ }, signal?: AbortSignal) => Promise<ApplyResult>;
162
+ /**
163
+ * The aws lexicon's CloudFormation applier, as this module needs to call it
164
+ * (#1449). Structural, like {@link K8sApplier} and {@link AzureApplier}.
165
+ *
166
+ * Deliberately narrow: no `endpoint`, because `awsApply` resolves
167
+ * `AWS_ENDPOINT_URL_CLOUDFORMATION` then `AWS_ENDPOINT_URL` itself (#1694) —
168
+ * the rule that used to live here as `applyEndpoint` (#926); and no
169
+ * `capabilities`, because `awsApply` derives them from the template body
170
+ * (`CAPABILITY_NAMED_IAM`, plus `CAPABILITY_AUTO_EXPAND` for a top-level
171
+ * `Transform` — #980), the rule that used to live here as `cfnCapabilities`.
172
+ */
173
+ export type AwsApplier = (args: {
174
+ templatePath: string;
175
+ stackName: string;
176
+ }, signal?: AbortSignal) => Promise<{
177
+ stackName: string;
178
+ status: string;
179
+ action: "created" | "updated" | "unchanged";
180
+ }>;
181
+ /**
182
+ * The aws lexicon's CloudFormation rollback (saga compensation), as
183
+ * {@link compensateApply} needs to call it. Structural, like the appliers.
184
+ */
185
+ export type AwsRollback = (args: {
186
+ stackName: string;
187
+ }, signal?: AbortSignal) => Promise<{
188
+ stackName: string;
189
+ rolledBack: boolean;
190
+ status?: string;
191
+ }>;
192
+ /**
193
+ * Sensible default build output per target. kubectl takes a directory (all
194
+ * manifests), so `dist`; kustomize's "output" is the kustomization DIRECTORY
195
+ * the render reads. The file targets take the file their lexicon's build
196
+ * conventionally emits: `template.json` for CloudFormation/ARM, `dist/gcp.yaml`
197
+ * (the CNRM manifest) for gcp, `dist/fly.json` (the serialized plan) for fly.
198
+ * Pure — exported for testing.
199
+ */
200
+ export declare function defaultOutput(target: ApplyTarget): string;
201
+ /**
202
+ * Apply declared source to the cloud via the target's native mechanism.
203
+ * Deletes (when enabled) ride that mechanism's own delete path — marker-scoped
204
+ * on `kubectl`, tag-scoped on `arm`, label-scoped on `gcp`, marker- and
205
+ * app-scoped on `fly`, and stack-scoped on `cloudformation`, where the deploy
206
+ * itself removes resources dropped from the template and `deleteMode` changes
207
+ * nothing: a resource CFN did not create is not in the stack. See
208
+ * {@link DeleteMode}.
209
+ *
210
+ * The appliers are injectable so this dispatcher can be tested without the
211
+ * product lexicons present; production resolves them through
212
+ * {@link loadK8sApplier} / {@link loadAzureApplier} / {@link loadAwsApplier} /
213
+ * {@link loadGcpApplier} / {@link loadFlyApplier}.
214
+ */
215
+ export declare function nativeApply(args: NativeApplyArgs, signal?: AbortSignal, applier?: K8sApplier, azureApplier?: AzureApplier, renderer?: (dir: string) => Promise<Array<Record<string, unknown>>>, awsApplier?: AwsApplier, gcpApplier?: GcpApplier, flyApplier?: FlyApplier): Promise<NativeApplyResult>;
216
+ /**
217
+ * Whether a target has a mapped native rollback for {@link compensateApply} to
218
+ * run without an explicit `compensate.command`. `cloudformation` is the only
219
+ * one today — the aws lexicon's `rollbackStack`. This is the totality
220
+ * predicate `ApplyOp` checks at build time (#1449): a target outside it with
221
+ * no command has nothing a compensation could run, so the op refuses to build
222
+ * with compensation on rather than warn at rollback time.
223
+ */
224
+ export declare function hasNativeRollback(target: ApplyTarget): boolean;
225
+ export interface CompensateApplyArgs {
226
+ /** Native mechanism that was applied. */
227
+ target: ApplyTarget;
228
+ /** Environment — CFN stack name / ARM resource group. */
229
+ env: string;
230
+ /** Explicit rollback command, used in preference to the native default. */
231
+ command?: string;
232
+ }
233
+ /** What a compensation did. */
234
+ export interface CompensateApplyResult {
235
+ /** The explicit rollback command that ran, when one was supplied. */
236
+ command?: string;
237
+ /** The stack rolled back — cloudformation. */
238
+ stackName?: string;
239
+ /** Whether the native rollback actually ran — cloudformation. `false` when
240
+ * the stack was absent or the target does not implement RollbackStack (Floci). */
241
+ rolledBack?: boolean;
242
+ /** The settled post-rollback stack status — cloudformation. */
243
+ status?: string;
244
+ }
245
+ /**
246
+ * Compensation step (saga rollback) for a partial apply failure. Runs the
247
+ * explicit `command` if given; otherwise `cloudformation` rolls back natively
248
+ * through the aws lexicon's `rollbackStack` (#1449 — CloudFormation
249
+ * `RollbackStack` over the Query API, no CLI in the path).
250
+ *
251
+ * Compensation is total for built ops: `ApplyOp` refuses at build time to wire
252
+ * this activity for a target with neither a native rollback
253
+ * ({@link hasNativeRollback}) nor an explicit `command`, so the no-rollback
254
+ * branch below is unreachable from an op it built. It stays as a throw, not a
255
+ * warn — a hand-assembled op that reaches it must fail loudly, because partial
256
+ * state should never look reverted when it isn't.
257
+ *
258
+ * `rollback` is injectable for tests; production resolves it through
259
+ * {@link loadAwsRollback}.
260
+ */
261
+ export declare function compensateApply(args: CompensateApplyArgs, signal?: AbortSignal, rollback?: AwsRollback): Promise<CompensateApplyResult>;
262
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/op/activities/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/D,+CAA+C;AAC/C,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;;gFAM4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ;;+EAE2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC;;gCAE4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf;;yBAEqB;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB;oEACgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACjD,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAA;CAAE,CAAC,CAAC;AAEjG;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3B,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAgN1E;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAYzD;AAgCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,eAAe,EACrB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,UAAU,EACpB,YAAY,CAAC,EAAE,YAAY,EAC3B,QAAQ,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAuB,EACxF,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,iBAAiB,CAAC,CA0F5B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,MAAM,EAAE,WAAW,CAAC;IACpB,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+BAA+B;AAC/B,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;sFACkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,qBAAqB,CAAC,CA0BhC"}
@@ -0,0 +1,13 @@
1
+ export interface ChantBuildArgs {
2
+ path: string;
3
+ /** npm script to run. Default: `build`. Set e.g. `build:aws` to build one target. */
4
+ script?: string;
5
+ /** Optional extra env vars to pass to the build command. */
6
+ env?: Record<string, string>;
7
+ }
8
+ /**
9
+ * Run an npm build script (`build` by default) in the given project directory.
10
+ * Uses fastIdempotent profile — 5m timeout, 3 retries.
11
+ */
12
+ export declare function chantBuild(args: ChantBuildArgs, signal?: AbortSignal): Promise<void>;
13
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/op/activities/build.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1F"}
@@ -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, commentMarker, pullRequestContextFrom, resolvePullRequestContext } from "./reconcile.js";
16
+ export type { ReconcilePrArgs, ReconcileResult, ReconcileMode, ReconcileEntry, PullRequestContext } 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":"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"}