@intentius/chant 0.7.0 → 0.8.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 (424) hide show
  1. package/dist/attrref.d.ts +35 -0
  2. package/dist/attrref.d.ts.map +1 -0
  3. package/dist/audit/catalog.d.ts +65 -0
  4. package/dist/audit/catalog.d.ts.map +1 -0
  5. package/dist/audit/core.d.ts +76 -0
  6. package/dist/audit/core.d.ts.map +1 -0
  7. package/dist/audit/discover.d.ts +76 -0
  8. package/dist/audit/discover.d.ts.map +1 -0
  9. package/dist/audit/fetch.d.ts +90 -0
  10. package/dist/audit/fetch.d.ts.map +1 -0
  11. package/dist/audit/proof.d.ts +53 -0
  12. package/dist/audit/proof.d.ts.map +1 -0
  13. package/dist/audit/report-html.d.ts +32 -0
  14. package/dist/audit/report-html.d.ts.map +1 -0
  15. package/dist/audit/report-model.d.ts +119 -0
  16. package/dist/audit/report-model.d.ts.map +1 -0
  17. package/dist/audit/report.d.ts +31 -0
  18. package/dist/audit/report.d.ts.map +1 -0
  19. package/dist/audit/rules-doc.d.ts +11 -0
  20. package/dist/audit/rules-doc.d.ts.map +1 -0
  21. package/dist/build.d.ts +120 -0
  22. package/dist/build.d.ts.map +1 -0
  23. package/dist/builder.d.ts +56 -0
  24. package/dist/builder.d.ts.map +1 -0
  25. package/dist/child-project.d.ts +34 -0
  26. package/dist/child-project.d.ts.map +1 -0
  27. package/dist/cli/commands/audit.d.ts +60 -0
  28. package/dist/cli/commands/audit.d.ts.map +1 -0
  29. package/dist/cli/commands/build.d.ts +70 -0
  30. package/dist/cli/commands/build.d.ts.map +1 -0
  31. package/dist/cli/commands/check-lexicon.d.ts +19 -0
  32. package/dist/cli/commands/check-lexicon.d.ts.map +1 -0
  33. package/dist/cli/commands/describe.d.ts +39 -0
  34. package/dist/cli/commands/describe.d.ts.map +1 -0
  35. package/dist/cli/commands/diff.d.ts +32 -0
  36. package/dist/cli/commands/diff.d.ts.map +1 -0
  37. package/dist/cli/commands/doctor.d.ts +11 -0
  38. package/dist/cli/commands/doctor.d.ts.map +1 -0
  39. package/dist/cli/commands/import.d.ts +68 -0
  40. package/dist/cli/commands/import.d.ts.map +1 -0
  41. package/dist/cli/commands/init-lexicon/templates/codegen.d.ts +9 -0
  42. package/dist/cli/commands/init-lexicon/templates/codegen.d.ts.map +1 -0
  43. package/dist/cli/commands/init-lexicon/templates/docs.d.ts +9 -0
  44. package/dist/cli/commands/init-lexicon/templates/docs.d.ts.map +1 -0
  45. package/dist/cli/commands/init-lexicon/templates/examples.d.ts +8 -0
  46. package/dist/cli/commands/init-lexicon/templates/examples.d.ts.map +1 -0
  47. package/dist/cli/commands/init-lexicon/templates/lint.d.ts +8 -0
  48. package/dist/cli/commands/init-lexicon/templates/lint.d.ts.map +1 -0
  49. package/dist/cli/commands/init-lexicon/templates/lsp.d.ts +6 -0
  50. package/dist/cli/commands/init-lexicon/templates/lsp.d.ts.map +1 -0
  51. package/dist/cli/commands/init-lexicon/templates/plugin.d.ts +12 -0
  52. package/dist/cli/commands/init-lexicon/templates/plugin.d.ts.map +1 -0
  53. package/dist/cli/commands/init-lexicon/templates/project.d.ts +19 -0
  54. package/dist/cli/commands/init-lexicon/templates/project.d.ts.map +1 -0
  55. package/dist/cli/commands/init-lexicon/templates/spec.d.ts +6 -0
  56. package/dist/cli/commands/init-lexicon/templates/spec.d.ts.map +1 -0
  57. package/dist/cli/commands/init-lexicon/templates/tests.d.ts +12 -0
  58. package/dist/cli/commands/init-lexicon/templates/tests.d.ts.map +1 -0
  59. package/dist/cli/commands/init-lexicon.d.ts +37 -0
  60. package/dist/cli/commands/init-lexicon.d.ts.map +1 -0
  61. package/dist/cli/commands/init.d.ts +48 -0
  62. package/dist/cli/commands/init.d.ts.map +1 -0
  63. package/dist/cli/commands/licenses.d.ts +23 -0
  64. package/dist/cli/commands/licenses.d.ts.map +1 -0
  65. package/dist/cli/commands/lint.d.ts +52 -0
  66. package/dist/cli/commands/lint.d.ts.map +1 -0
  67. package/dist/cli/commands/list.d.ts +38 -0
  68. package/dist/cli/commands/list.d.ts.map +1 -0
  69. package/dist/cli/commands/migrate.d.ts +51 -0
  70. package/dist/cli/commands/migrate.d.ts.map +1 -0
  71. package/dist/cli/commands/onboard.d.ts +19 -0
  72. package/dist/cli/commands/onboard.d.ts.map +1 -0
  73. package/dist/cli/commands/update.d.ts +29 -0
  74. package/dist/cli/commands/update.d.ts.map +1 -0
  75. package/dist/cli/commands/vendor.d.ts +84 -0
  76. package/dist/cli/commands/vendor.d.ts.map +1 -0
  77. package/dist/cli/conflict-check.d.ts +18 -0
  78. package/dist/cli/conflict-check.d.ts.map +1 -0
  79. package/dist/cli/debug.d.ts +5 -0
  80. package/dist/cli/debug.d.ts.map +1 -0
  81. package/dist/cli/format.d.ts +36 -0
  82. package/dist/cli/format.d.ts.map +1 -0
  83. package/dist/cli/handlers/build.d.ts +3 -0
  84. package/dist/cli/handlers/build.d.ts.map +1 -0
  85. package/dist/cli/handlers/dev.d.ts +7 -0
  86. package/dist/cli/handlers/dev.d.ts.map +1 -0
  87. package/dist/cli/handlers/graph.d.ts +8 -0
  88. package/dist/cli/handlers/graph.d.ts.map +1 -0
  89. package/dist/cli/handlers/init.d.ts +4 -0
  90. package/dist/cli/handlers/init.d.ts.map +1 -0
  91. package/dist/cli/handlers/lifecycle.d.ts +39 -0
  92. package/dist/cli/handlers/lifecycle.d.ts.map +1 -0
  93. package/dist/cli/handlers/lint.d.ts +3 -0
  94. package/dist/cli/handlers/lint.d.ts.map +1 -0
  95. package/dist/cli/handlers/migrate.d.ts +3 -0
  96. package/dist/cli/handlers/migrate.d.ts.map +1 -0
  97. package/dist/cli/handlers/misc.d.ts +8 -0
  98. package/dist/cli/handlers/misc.d.ts.map +1 -0
  99. package/dist/cli/handlers/run-client.d.ts +107 -0
  100. package/dist/cli/handlers/run-client.d.ts.map +1 -0
  101. package/dist/cli/handlers/run-report.d.ts +5 -0
  102. package/dist/cli/handlers/run-report.d.ts.map +1 -0
  103. package/dist/cli/handlers/run.d.ts +27 -0
  104. package/dist/cli/handlers/run.d.ts.map +1 -0
  105. package/dist/cli/handlers/serve.d.ts +5 -0
  106. package/dist/cli/handlers/serve.d.ts.map +1 -0
  107. package/dist/cli/handlers/vendor.d.ts +9 -0
  108. package/dist/cli/handlers/vendor.d.ts.map +1 -0
  109. package/dist/cli/index.d.ts +4 -0
  110. package/dist/cli/index.d.ts.map +1 -0
  111. package/dist/cli/lsp/capabilities.d.ts +21 -0
  112. package/dist/cli/lsp/capabilities.d.ts.map +1 -0
  113. package/dist/cli/lsp/diagnostics.d.ts +30 -0
  114. package/dist/cli/lsp/diagnostics.d.ts.map +1 -0
  115. package/dist/cli/lsp/server.d.ts +106 -0
  116. package/dist/cli/lsp/server.d.ts.map +1 -0
  117. package/dist/cli/main.d.ts +7 -0
  118. package/dist/cli/main.d.ts.map +1 -0
  119. package/dist/cli/mcp/lifecycle-tools.d.ts +15 -0
  120. package/dist/cli/mcp/lifecycle-tools.d.ts.map +1 -0
  121. package/dist/cli/mcp/op-tools.d.ts +7 -0
  122. package/dist/cli/mcp/op-tools.d.ts.map +1 -0
  123. package/dist/cli/mcp/resource-handlers.d.ts +28 -0
  124. package/dist/cli/mcp/resource-handlers.d.ts.map +1 -0
  125. package/dist/cli/mcp/resources/context.d.ts +6 -0
  126. package/dist/cli/mcp/resources/context.d.ts.map +1 -0
  127. package/dist/cli/mcp/server.d.ts +44 -0
  128. package/dist/cli/mcp/server.d.ts.map +1 -0
  129. package/dist/cli/mcp/tools/build.d.ts +31 -0
  130. package/dist/cli/mcp/tools/build.d.ts.map +1 -0
  131. package/dist/cli/mcp/tools/explain.d.ts +27 -0
  132. package/dist/cli/mcp/tools/explain.d.ts.map +1 -0
  133. package/dist/cli/mcp/tools/import.d.ts +26 -0
  134. package/dist/cli/mcp/tools/import.d.ts.map +1 -0
  135. package/dist/cli/mcp/tools/lint.d.ts +26 -0
  136. package/dist/cli/mcp/tools/lint.d.ts.map +1 -0
  137. package/dist/cli/mcp/tools/scaffold.d.ts +31 -0
  138. package/dist/cli/mcp/tools/scaffold.d.ts.map +1 -0
  139. package/dist/cli/mcp/tools/search.d.ts +31 -0
  140. package/dist/cli/mcp/tools/search.d.ts.map +1 -0
  141. package/dist/cli/mcp/types.d.ts +42 -0
  142. package/dist/cli/mcp/types.d.ts.map +1 -0
  143. package/dist/cli/plugins.d.ts +21 -0
  144. package/dist/cli/plugins.d.ts.map +1 -0
  145. package/dist/cli/registry.d.ts +100 -0
  146. package/dist/cli/registry.d.ts.map +1 -0
  147. package/dist/cli/reporters/stylish.d.ts +26 -0
  148. package/dist/cli/reporters/stylish.d.ts.map +1 -0
  149. package/dist/cli/watch.d.ts +29 -0
  150. package/dist/cli/watch.d.ts.map +1 -0
  151. package/dist/codegen/bound-property-types.d.ts +38 -0
  152. package/dist/codegen/bound-property-types.d.ts.map +1 -0
  153. package/dist/codegen/coverage.d.ts +57 -0
  154. package/dist/codegen/coverage.d.ts.map +1 -0
  155. package/dist/codegen/docs-file-markers.d.ts +16 -0
  156. package/dist/codegen/docs-file-markers.d.ts.map +1 -0
  157. package/dist/codegen/docs-rule-scanning.d.ts +14 -0
  158. package/dist/codegen/docs-rule-scanning.d.ts.map +1 -0
  159. package/dist/codegen/docs-rules.d.ts +17 -0
  160. package/dist/codegen/docs-rules.d.ts.map +1 -0
  161. package/dist/codegen/docs-sections.d.ts +11 -0
  162. package/dist/codegen/docs-sections.d.ts.map +1 -0
  163. package/dist/codegen/docs-sidebar.d.ts +6 -0
  164. package/dist/codegen/docs-sidebar.d.ts.map +1 -0
  165. package/dist/codegen/docs-types.d.ts +84 -0
  166. package/dist/codegen/docs-types.d.ts.map +1 -0
  167. package/dist/codegen/docs.d.ts +28 -0
  168. package/dist/codegen/docs.d.ts.map +1 -0
  169. package/dist/codegen/fetch.d.ts +76 -0
  170. package/dist/codegen/fetch.d.ts.map +1 -0
  171. package/dist/codegen/generate-post-synth-barrel.d.ts +32 -0
  172. package/dist/codegen/generate-post-synth-barrel.d.ts.map +1 -0
  173. package/dist/codegen/generate-registry.d.ts +40 -0
  174. package/dist/codegen/generate-registry.d.ts.map +1 -0
  175. package/dist/codegen/generate-runtime-index.d.ts +40 -0
  176. package/dist/codegen/generate-runtime-index.d.ts.map +1 -0
  177. package/dist/codegen/generate-typescript.d.ts +48 -0
  178. package/dist/codegen/generate-typescript.d.ts.map +1 -0
  179. package/dist/codegen/generate.d.ts +92 -0
  180. package/dist/codegen/generate.d.ts.map +1 -0
  181. package/dist/codegen/json-patch.d.ts +12 -0
  182. package/dist/codegen/json-patch.d.ts.map +1 -0
  183. package/dist/codegen/json-schema.d.ts +82 -0
  184. package/dist/codegen/json-schema.d.ts.map +1 -0
  185. package/dist/codegen/naming.d.ts +64 -0
  186. package/dist/codegen/naming.d.ts.map +1 -0
  187. package/dist/codegen/package.d.ts +64 -0
  188. package/dist/codegen/package.d.ts.map +1 -0
  189. package/dist/codegen/topo-sort.d.ts +13 -0
  190. package/dist/codegen/topo-sort.d.ts.map +1 -0
  191. package/dist/codegen/typecheck.d.ts +10 -0
  192. package/dist/codegen/typecheck.d.ts.map +1 -0
  193. package/dist/codegen/validate.d.ts +45 -0
  194. package/dist/codegen/validate.d.ts.map +1 -0
  195. package/dist/composite.d.ts +116 -0
  196. package/dist/composite.d.ts.map +1 -0
  197. package/dist/config.d.ts +78 -0
  198. package/dist/config.d.ts.map +1 -0
  199. package/dist/declarable.d.ts +34 -0
  200. package/dist/declarable.d.ts.map +1 -0
  201. package/dist/detectLexicon.d.ts +10 -0
  202. package/dist/detectLexicon.d.ts.map +1 -0
  203. package/dist/discovery/cache.d.ts +36 -0
  204. package/dist/discovery/cache.d.ts.map +1 -0
  205. package/dist/discovery/collect.d.ts +17 -0
  206. package/dist/discovery/collect.d.ts.map +1 -0
  207. package/dist/discovery/cycles.d.ts +23 -0
  208. package/dist/discovery/cycles.d.ts.map +1 -0
  209. package/dist/discovery/files.d.ts +7 -0
  210. package/dist/discovery/files.d.ts.map +1 -0
  211. package/dist/discovery/graph.d.ts +8 -0
  212. package/dist/discovery/graph.d.ts.map +1 -0
  213. package/dist/discovery/import.d.ts +9 -0
  214. package/dist/discovery/import.d.ts.map +1 -0
  215. package/dist/discovery/index.d.ts +25 -0
  216. package/dist/discovery/index.d.ts.map +1 -0
  217. package/dist/discovery/resolve.d.ts +10 -0
  218. package/dist/discovery/resolve.d.ts.map +1 -0
  219. package/dist/errors.d.ts +49 -0
  220. package/dist/errors.d.ts.map +1 -0
  221. package/dist/import/base-parser.d.ts +19 -0
  222. package/dist/import/base-parser.d.ts.map +1 -0
  223. package/dist/import/generator.d.ts +20 -0
  224. package/dist/import/generator.d.ts.map +1 -0
  225. package/dist/import/ir-utils.d.ts +25 -0
  226. package/dist/import/ir-utils.d.ts.map +1 -0
  227. package/dist/import/parser.d.ts +39 -0
  228. package/dist/import/parser.d.ts.map +1 -0
  229. package/dist/index.d.ts +66 -0
  230. package/dist/index.d.ts.map +1 -0
  231. package/dist/intrinsic-interpolation.d.ts +24 -0
  232. package/dist/intrinsic-interpolation.d.ts.map +1 -0
  233. package/dist/intrinsic.d.ts +24 -0
  234. package/dist/intrinsic.d.ts.map +1 -0
  235. package/dist/lexicon-integrity.d.ts +25 -0
  236. package/dist/lexicon-integrity.d.ts.map +1 -0
  237. package/dist/lexicon-manifest.d.ts +9 -0
  238. package/dist/lexicon-manifest.d.ts.map +1 -0
  239. package/dist/lexicon-output.d.ts +66 -0
  240. package/dist/lexicon-output.d.ts.map +1 -0
  241. package/dist/lexicon-plugin-helpers.d.ts +59 -0
  242. package/dist/lexicon-plugin-helpers.d.ts.map +1 -0
  243. package/dist/lexicon-schema.d.ts +82 -0
  244. package/dist/lexicon-schema.d.ts.map +1 -0
  245. package/dist/lexicon.d.ts +383 -0
  246. package/dist/lexicon.d.ts.map +1 -0
  247. package/dist/lifecycle/affected.d.ts +57 -0
  248. package/dist/lifecycle/affected.d.ts.map +1 -0
  249. package/dist/lifecycle/change-set.d.ts +90 -0
  250. package/dist/lifecycle/change-set.d.ts.map +1 -0
  251. package/dist/lifecycle/digest.d.ts +21 -0
  252. package/dist/lifecycle/digest.d.ts.map +1 -0
  253. package/dist/lifecycle/git.d.ts +72 -0
  254. package/dist/lifecycle/git.d.ts.map +1 -0
  255. package/dist/lifecycle/index.d.ts +8 -0
  256. package/dist/lifecycle/index.d.ts.map +1 -0
  257. package/dist/lifecycle/live-diff.d.ts +67 -0
  258. package/dist/lifecycle/live-diff.d.ts.map +1 -0
  259. package/dist/lifecycle/snapshot.d.ts +20 -0
  260. package/dist/lifecycle/snapshot.d.ts.map +1 -0
  261. package/dist/lifecycle/types.d.ts +61 -0
  262. package/dist/lifecycle/types.d.ts.map +1 -0
  263. package/dist/lint/config.d.ts +100 -0
  264. package/dist/lint/config.d.ts.map +1 -0
  265. package/dist/lint/declarative.d.ts +56 -0
  266. package/dist/lint/declarative.d.ts.map +1 -0
  267. package/dist/lint/discover.d.ts +35 -0
  268. package/dist/lint/discover.d.ts.map +1 -0
  269. package/dist/lint/engine.d.ts +21 -0
  270. package/dist/lint/engine.d.ts.map +1 -0
  271. package/dist/lint/named-checks.d.ts +19 -0
  272. package/dist/lint/named-checks.d.ts.map +1 -0
  273. package/dist/lint/parser.d.ts +9 -0
  274. package/dist/lint/parser.d.ts.map +1 -0
  275. package/dist/lint/policy.d.ts +22 -0
  276. package/dist/lint/policy.d.ts.map +1 -0
  277. package/dist/lint/post-synth.d.ts +69 -0
  278. package/dist/lint/post-synth.d.ts.map +1 -0
  279. package/dist/lint/presets/strict.json +19 -0
  280. package/dist/lint/rule-loader.d.ts +16 -0
  281. package/dist/lint/rule-loader.d.ts.map +1 -0
  282. package/dist/lint/rule-registry.d.ts +37 -0
  283. package/dist/lint/rule-registry.d.ts.map +1 -0
  284. package/dist/lint/rule.d.ts +82 -0
  285. package/dist/lint/rule.d.ts.map +1 -0
  286. package/dist/lint/rules/composite-scope.d.ts +18 -0
  287. package/dist/lint/rules/composite-scope.d.ts.map +1 -0
  288. package/dist/lint/rules/cor017-composite-name-match.d.ts +3 -0
  289. package/dist/lint/rules/cor017-composite-name-match.d.ts.map +1 -0
  290. package/dist/lint/rules/cor018-composite-prefer-lexicon-type.d.ts +3 -0
  291. package/dist/lint/rules/cor018-composite-prefer-lexicon-type.d.ts.map +1 -0
  292. package/dist/lint/rules/declarable-naming-convention.d.ts +3 -0
  293. package/dist/lint/rules/declarable-naming-convention.d.ts.map +1 -0
  294. package/dist/lint/rules/evl001-non-literal-expression.d.ts +3 -0
  295. package/dist/lint/rules/evl001-non-literal-expression.d.ts.map +1 -0
  296. package/dist/lint/rules/evl002-control-flow-resource.d.ts +3 -0
  297. package/dist/lint/rules/evl002-control-flow-resource.d.ts.map +1 -0
  298. package/dist/lint/rules/evl003-dynamic-property-access.d.ts +3 -0
  299. package/dist/lint/rules/evl003-dynamic-property-access.d.ts.map +1 -0
  300. package/dist/lint/rules/evl004-spread-non-const.d.ts +3 -0
  301. package/dist/lint/rules/evl004-spread-non-const.d.ts.map +1 -0
  302. package/dist/lint/rules/evl005-resource-block-body.d.ts +3 -0
  303. package/dist/lint/rules/evl005-resource-block-body.d.ts.map +1 -0
  304. package/dist/lint/rules/evl007-invalid-siblings.d.ts +3 -0
  305. package/dist/lint/rules/evl007-invalid-siblings.d.ts.map +1 -0
  306. package/dist/lint/rules/evl009-composite-no-constant.d.ts +3 -0
  307. package/dist/lint/rules/evl009-composite-no-constant.d.ts.map +1 -0
  308. package/dist/lint/rules/evl010-composite-no-transform.d.ts +3 -0
  309. package/dist/lint/rules/evl010-composite-no-transform.d.ts.map +1 -0
  310. package/dist/lint/rules/export-required.d.ts +3 -0
  311. package/dist/lint/rules/export-required.d.ts.map +1 -0
  312. package/dist/lint/rules/file-declarable-limit.d.ts +3 -0
  313. package/dist/lint/rules/file-declarable-limit.d.ts.map +1 -0
  314. package/dist/lint/rules/flat-declarations.d.ts +3 -0
  315. package/dist/lint/rules/flat-declarations.d.ts.map +1 -0
  316. package/dist/lint/rules/index.d.ts +31 -0
  317. package/dist/lint/rules/index.d.ts.map +1 -0
  318. package/dist/lint/rules/no-cyclic-declarable-ref.d.ts +3 -0
  319. package/dist/lint/rules/no-cyclic-declarable-ref.d.ts.map +1 -0
  320. package/dist/lint/rules/no-redundant-type-import.d.ts +10 -0
  321. package/dist/lint/rules/no-redundant-type-import.d.ts.map +1 -0
  322. package/dist/lint/rules/no-redundant-value-cast.d.ts +3 -0
  323. package/dist/lint/rules/no-redundant-value-cast.d.ts.map +1 -0
  324. package/dist/lint/rules/no-string-ref.d.ts +3 -0
  325. package/dist/lint/rules/no-string-ref.d.ts.map +1 -0
  326. package/dist/lint/rules/no-unused-declarable-import.d.ts +3 -0
  327. package/dist/lint/rules/no-unused-declarable-import.d.ts.map +1 -0
  328. package/dist/lint/rules/no-unused-declarable.d.ts +3 -0
  329. package/dist/lint/rules/no-unused-declarable.d.ts.map +1 -0
  330. package/dist/lint/rules/single-concern-file.d.ts +3 -0
  331. package/dist/lint/rules/single-concern-file.d.ts.map +1 -0
  332. package/dist/lint/selectors.d.ts +21 -0
  333. package/dist/lint/selectors.d.ts.map +1 -0
  334. package/dist/lsp/lexicon-providers.d.ts +61 -0
  335. package/dist/lsp/lexicon-providers.d.ts.map +1 -0
  336. package/dist/lsp/types.d.ts +64 -0
  337. package/dist/lsp/types.d.ts.map +1 -0
  338. package/dist/mcp/types.d.ts +21 -0
  339. package/dist/mcp/types.d.ts.map +1 -0
  340. package/dist/op/activity-registry.d.ts +57 -0
  341. package/dist/op/activity-registry.d.ts.map +1 -0
  342. package/dist/op/builders.d.ts +69 -0
  343. package/dist/op/builders.d.ts.map +1 -0
  344. package/dist/op/discover.d.ts +16 -0
  345. package/dist/op/discover.d.ts.map +1 -0
  346. package/dist/op/index.d.ts +11 -0
  347. package/dist/op/index.d.ts.map +1 -0
  348. package/dist/op/local-executor.d.ts +54 -0
  349. package/dist/op/local-executor.d.ts.map +1 -0
  350. package/dist/op/local-output.d.ts +16 -0
  351. package/dist/op/local-output.d.ts.map +1 -0
  352. package/dist/op/resource.d.ts +7 -0
  353. package/dist/op/resource.d.ts.map +1 -0
  354. package/dist/op/types.d.ts +71 -0
  355. package/dist/op/types.d.ts.map +1 -0
  356. package/dist/ownership.d.ts +75 -0
  357. package/dist/ownership.d.ts.map +1 -0
  358. package/dist/project-validation.d.ts +28 -0
  359. package/dist/project-validation.d.ts.map +1 -0
  360. package/dist/provenance.d.ts +26 -0
  361. package/dist/provenance.d.ts.map +1 -0
  362. package/dist/pseudo-parameter.d.ts +32 -0
  363. package/dist/pseudo-parameter.d.ts.map +1 -0
  364. package/dist/resource-attributes.d.ts +17 -0
  365. package/dist/resource-attributes.d.ts.map +1 -0
  366. package/dist/runtime-adapter.d.ts +41 -0
  367. package/dist/runtime-adapter.d.ts.map +1 -0
  368. package/dist/runtime.d.ts +23 -0
  369. package/dist/runtime.d.ts.map +1 -0
  370. package/dist/serializer-walker.d.ts +21 -0
  371. package/dist/serializer-walker.d.ts.map +1 -0
  372. package/dist/serializer.d.ts +64 -0
  373. package/dist/serializer.d.ts.map +1 -0
  374. package/dist/sort.d.ts +8 -0
  375. package/dist/sort.d.ts.map +1 -0
  376. package/dist/stack-output.d.ts +52 -0
  377. package/dist/stack-output.d.ts.map +1 -0
  378. package/dist/toml-emit.d.ts +22 -0
  379. package/dist/toml-emit.d.ts.map +1 -0
  380. package/dist/toml-parse.d.ts +14 -0
  381. package/dist/toml-parse.d.ts.map +1 -0
  382. package/dist/toml-utils.d.ts +20 -0
  383. package/dist/toml-utils.d.ts.map +1 -0
  384. package/dist/toml.d.ts +9 -0
  385. package/dist/toml.d.ts.map +1 -0
  386. package/dist/types.d.ts +47 -0
  387. package/dist/types.d.ts.map +1 -0
  388. package/dist/utils.d.ts +30 -0
  389. package/dist/utils.d.ts.map +1 -0
  390. package/dist/validation.d.ts +42 -0
  391. package/dist/validation.d.ts.map +1 -0
  392. package/dist/yaml.d.ts +42 -0
  393. package/dist/yaml.d.ts.map +1 -0
  394. package/package.json +31 -6
  395. package/src/audit/bundle-decoupling.test.ts +56 -0
  396. package/src/audit/catalog.test.ts +16 -1
  397. package/src/audit/catalog.ts +244 -4
  398. package/src/audit/core.test.ts +15 -0
  399. package/src/audit/core.ts +0 -0
  400. package/src/audit/detect-bundle.test.ts +35 -0
  401. package/src/audit/discover.test.ts +72 -0
  402. package/src/audit/discover.ts +329 -0
  403. package/src/audit/edge-init-safety.test.ts +43 -0
  404. package/src/audit/fetch.test.ts +86 -55
  405. package/src/audit/fetch.ts +118 -87
  406. package/src/audit/remote-discovery.test.ts +80 -0
  407. package/src/audit/report-html.ts +14 -6
  408. package/src/audit/report-model.ts +13 -1
  409. package/src/audit/report.test.ts +3 -1
  410. package/src/audit/report.ts +13 -5
  411. package/src/cli/commands/__fixtures__/audit-mixed/.github/workflows/ci.yml +5 -0
  412. package/src/cli/commands/__fixtures__/audit-mixed/Dockerfile +2 -0
  413. package/src/cli/commands/__fixtures__/audit-mixed/cfn/template.json +1 -0
  414. package/src/cli/commands/__fixtures__/audit-mixed/k8s/deploy.yaml +12 -0
  415. package/src/cli/commands/audit.test.ts +27 -19
  416. package/src/cli/commands/audit.ts +28 -272
  417. package/src/codegen/bound-property-types.test.ts +57 -0
  418. package/src/codegen/bound-property-types.ts +110 -0
  419. package/src/codegen/generate-post-synth-barrel.test.ts +37 -0
  420. package/src/codegen/generate-post-synth-barrel.ts +75 -0
  421. package/src/codegen/post-synth-barrel-guards.test.ts +63 -0
  422. package/src/codegen/validate.ts +13 -1
  423. package/src/lint/discover.ts +1 -1
  424. package/src/meta/peer-deps.test.ts +29 -0
@@ -0,0 +1,383 @@
1
+ import type { Serializer } from "./serializer.js";
2
+ import type { LintRule } from "./lint/rule.js";
3
+ import type { RuleSpec } from "./lint/declarative.js";
4
+ import type { PostSynthCheck } from "./lint/post-synth.js";
5
+ import type { TemplateParser, TemplateIR } from "./import/parser.js";
6
+ import type { TypeScriptGenerator } from "./import/generator.js";
7
+ import type { ArtifactIntegrity } from "./lexicon-integrity.js";
8
+ import type { CompletionContext, CompletionItem, HoverContext, HoverInfo, CodeActionContext, CodeAction } from "./lsp/types.js";
9
+ import type { McpToolContribution, McpResourceContribution } from "./mcp/types.js";
10
+ /**
11
+ * Manifest for a packaged lexicon — metadata embedded in the tarball.
12
+ */
13
+ export interface LexiconManifest {
14
+ name: string;
15
+ version: string;
16
+ chantVersion?: string;
17
+ namespace?: string;
18
+ intrinsics?: IntrinsicDef[];
19
+ pseudoParameters?: Record<string, string>;
20
+ }
21
+ /**
22
+ * Metadata about when and how a package was generated.
23
+ */
24
+ export interface PackageMetadata {
25
+ generatedAt: string;
26
+ chantVersion: string;
27
+ generatorVersion: string;
28
+ sourceSchemaCount: number;
29
+ }
30
+ /**
31
+ * Container for all artifacts in a lexicon bundle.
32
+ */
33
+ export interface BundleSpec {
34
+ manifest: LexiconManifest;
35
+ registry: string;
36
+ typesDTS: string;
37
+ rules: Map<string, string>;
38
+ skills: Map<string, string>;
39
+ integrity?: ArtifactIntegrity;
40
+ metadata?: PackageMetadata;
41
+ }
42
+ /**
43
+ * Trigger that determines when a skill should be suggested.
44
+ */
45
+ export interface SkillTrigger {
46
+ type: "command" | "file-pattern" | "context";
47
+ value: string;
48
+ }
49
+ /**
50
+ * Parameter definition for a skill.
51
+ */
52
+ export interface SkillParameter {
53
+ name: string;
54
+ description: string;
55
+ type: string;
56
+ required?: boolean;
57
+ default?: string;
58
+ }
59
+ /**
60
+ * Example showing how a skill is used.
61
+ */
62
+ export interface SkillExample {
63
+ title: string;
64
+ description?: string;
65
+ input?: string;
66
+ output?: string;
67
+ }
68
+ /**
69
+ * Definition of a skill provided by a lexicon plugin.
70
+ * Content is full markdown with optional YAML frontmatter.
71
+ */
72
+ export interface SkillDefinition {
73
+ readonly name: string;
74
+ readonly description: string;
75
+ readonly content: string;
76
+ readonly triggers?: SkillTrigger[];
77
+ readonly parameters?: SkillParameter[];
78
+ readonly examples?: SkillExample[];
79
+ readonly preConditions?: string[];
80
+ readonly postConditions?: string[];
81
+ }
82
+ /**
83
+ * Definition of a lexicon-specific intrinsic function
84
+ */
85
+ export interface IntrinsicDef {
86
+ readonly name: string;
87
+ readonly description?: string;
88
+ readonly outputKey?: string;
89
+ readonly isTag?: boolean;
90
+ }
91
+ /**
92
+ * Options passed to a MigrationSource by `chant migrate`.
93
+ */
94
+ export interface MigrateOptions {
95
+ /** Output format. */
96
+ emit?: "yaml" | "ts";
97
+ /** Recognise composite patterns when emitting. */
98
+ useComposites?: boolean;
99
+ /** Source file path (for provenance display only). */
100
+ sourceFile?: string;
101
+ /** Escalate needs-review diagnostics to errors. */
102
+ strict?: boolean;
103
+ /** Run security-aware migration analysis (classify property fates + run
104
+ * target security checks). Enabled by `chant migrate --validate`. */
105
+ security?: boolean;
106
+ }
107
+ /**
108
+ * Result of `MigrationSource.transform()`.
109
+ *
110
+ * Provenance is a generic side channel: each record is `{ sourceKey, rule,
111
+ * category, note?, ... }`. Diagnostics are SARIF-compatible records derived
112
+ * from provenance (concrete shape lives in `packages/core/src/lint/rule.ts`).
113
+ */
114
+ export interface MigrationResult {
115
+ /** Rendered output (YAML by default, TS when emit: "ts"). */
116
+ output: string;
117
+ /** Per-key provenance records (typed loosely at the core level). */
118
+ provenance: Array<Record<string, unknown>>;
119
+ /** SARIF-shaped diagnostics. */
120
+ diagnostics: Array<Record<string, unknown>>;
121
+ /** Markdown "Security posture" section, when security analysis ran (#306). */
122
+ securityPosture?: string;
123
+ }
124
+ /**
125
+ * Edge that translates one lexicon's source format into this lexicon's IR
126
+ * and output. Exposed via `LexiconPlugin.migrationSource(from)`.
127
+ */
128
+ export interface MigrationSource {
129
+ /** Lightweight detector: does this content look like the expected source? */
130
+ detect(content: string): boolean;
131
+ /** Run the translation. */
132
+ transform(content: string, opts: MigrateOptions): Promise<MigrationResult>;
133
+ }
134
+ /**
135
+ * Structured init template output from a lexicon plugin.
136
+ */
137
+ export interface InitTemplateSet {
138
+ /** Source files written to src/ */
139
+ src: Record<string, string>;
140
+ /** Application scaffold files written to project root */
141
+ root?: Record<string, string>;
142
+ /** Scripts merged into generated package.json */
143
+ scripts?: Record<string, string>;
144
+ }
145
+ /**
146
+ * Plugin interface for lexicon packages.
147
+ *
148
+ * Required lifecycle methods enforce consistency: every lexicon must support
149
+ * generate, validate, coverage, and package operations.
150
+ */
151
+ export interface LexiconPlugin {
152
+ /** Human-readable name (e.g. "aws", "gcp") */
153
+ readonly name: string;
154
+ /** Serializer for build output */
155
+ readonly serializer: Serializer;
156
+ /** Generate lexicon artifacts (types, lexicon JSON, runtime) from spec */
157
+ generate(options?: {
158
+ verbose?: boolean;
159
+ }): Promise<void>;
160
+ /** Validate generated lexicon artifacts */
161
+ validate(options?: {
162
+ verbose?: boolean;
163
+ }): Promise<void>;
164
+ /** Analyze lexicon coverage across resource dimensions */
165
+ coverage(options?: {
166
+ verbose?: boolean;
167
+ minOverall?: number;
168
+ }): Promise<void>;
169
+ /** Package lexicon into distributable tarball */
170
+ package(options?: {
171
+ verbose?: boolean;
172
+ force?: boolean;
173
+ }): Promise<void>;
174
+ /** Return lint rules provided by this lexicon */
175
+ lintRules?(): LintRule[];
176
+ /** Return declarative rule specs for compilation via rule() */
177
+ declarativeRules?(): RuleSpec[];
178
+ /** Return post-synthesis checks for build validation */
179
+ postSynthChecks?(): PostSynthCheck[];
180
+ /** Return intrinsic function definitions */
181
+ intrinsics?(): IntrinsicDef[];
182
+ /** Return pseudo-parameter names (e.g. "MyDomain::StackName") */
183
+ pseudoParameters?(): string[];
184
+ /**
185
+ * Detect whether raw template content belongs to this lexicon.
186
+ * @param data - Parsed JSON object from a template file
187
+ * @returns true if this plugin can handle the template
188
+ */
189
+ detectTemplate?(data: unknown): boolean;
190
+ /** Return a parser for importing external templates into IR */
191
+ templateParser?(): TemplateParser;
192
+ /** Return a generator for converting IR to TypeScript */
193
+ templateGenerator?(): TypeScriptGenerator;
194
+ /** Return skills provided by this lexicon */
195
+ skills?(): SkillDefinition[];
196
+ /** Return source file templates for `chant init` project scaffolding */
197
+ initTemplates?(template?: string): InitTemplateSet;
198
+ /** Optional initialization hook */
199
+ init?(): void | Promise<void>;
200
+ /** Provide completions for LSP */
201
+ completionProvider?(ctx: CompletionContext): CompletionItem[];
202
+ /** Provide hover information for LSP */
203
+ hoverProvider?(ctx: HoverContext): HoverInfo | undefined;
204
+ /** Provide code actions for LSP */
205
+ codeActionProvider?(ctx: CodeActionContext): CodeAction[];
206
+ /** Generate documentation pages */
207
+ docs?(options?: {
208
+ verbose?: boolean;
209
+ }): Promise<void>;
210
+ /** Return MCP tool contributions */
211
+ mcpTools?(): McpToolContribution[];
212
+ /** Return MCP resource contributions */
213
+ mcpResources?(): McpResourceContribution[];
214
+ /**
215
+ * Return a migration source for translating from another lexicon's
216
+ * format into this lexicon. Returns undefined if `from` is not supported.
217
+ *
218
+ * Example: the gitlab lexicon implements `migrationSource("github")` to
219
+ * translate `.github/workflows/*.yml` into `.gitlab-ci.yml`.
220
+ */
221
+ migrationSource?(from: string): MigrationSource | undefined;
222
+ /**
223
+ * Query deployed resources and return API metadata. Opt-in.
224
+ *
225
+ * Use this when each chant entity has a 1:1 cloud equivalent — e.g. an
226
+ * AWS CFN resource, a K8s object, an ARM resource, a Temporal namespace.
227
+ *
228
+ * `entities` carries the chant-side entity declarations for this lexicon,
229
+ * keyed by chant entity name (e.g. the export name from a `*.ts` file).
230
+ * Implementations that need to map cloud-side names back to chant entity
231
+ * names (e.g. Temporal — server-side namespace `prod` ↔ chant entity `ns`
232
+ * declared with `name: "prod"`) read this; implementations that already
233
+ * have name parity (e.g. AWS CloudFormation logical IDs == chant entity
234
+ * names) can ignore it.
235
+ *
236
+ * `entityNames` is preserved as a convenience for the simple case.
237
+ */
238
+ describeResources?(options: {
239
+ environment: string;
240
+ buildOutput: string;
241
+ entityNames: string[];
242
+ entities: Map<string, {
243
+ entityType: string;
244
+ props: Record<string, unknown>;
245
+ }>;
246
+ /**
247
+ * Restrict the result to chant-owned resources (those carrying the
248
+ * ownership marker, #119). Where a lexicon has no durable marker channel,
249
+ * it must log that ownership is unavailable rather than silently returning
250
+ * everything.
251
+ */
252
+ owned?: boolean;
253
+ }): Promise<Record<string, ResourceMetadata>>;
254
+ /**
255
+ * List runtime artifacts in the given environment. Opt-in.
256
+ *
257
+ * Use this for lexicons whose chant entities describe *authoring*
258
+ * primitives rather than 1:1 cloud resources — e.g. Helm (charts vs
259
+ * releases), Docker (Compose vs running containers). The contract is
260
+ * context-keyed: given an environment, list all artifacts visible there.
261
+ * There is no `declared` comparison axis — `state diff --live` reports
262
+ * added/removed/changed between snapshots, not vs. declared.
263
+ *
264
+ * `entities` is passed for cases where the lexicon needs to know what
265
+ * was declared in order to scope its enumeration (e.g. a per-tenant
266
+ * runtime where the declared entities name which tenants to query).
267
+ */
268
+ listArtifacts?(options: {
269
+ environment: string;
270
+ entities: Map<string, {
271
+ entityType: string;
272
+ props: Record<string, unknown>;
273
+ }>;
274
+ }): Promise<Record<string, ArtifactMetadata>>;
275
+ /**
276
+ * Export full-fidelity import IR from a live API — the cloud→code primitive
277
+ * that lets chant regenerate TypeScript from running cloud/cluster state.
278
+ *
279
+ * Deliberately separate from {@link describeResources}: that returns scrubbed
280
+ * *output* metadata for diffing, this returns full *input* config — enough to
281
+ * regenerate a resource, and therefore possibly containing secrets. The
282
+ * scrubbing boundary stays single-purpose; never overload one method for both.
283
+ *
284
+ * The return type {@link ExportedTemplate} is branded distinct from the
285
+ * observation types so a full-fidelity export can never flow into the
286
+ * observation/`state` code paths by accident.
287
+ *
288
+ * `owned` is accepted now but inert until ownership marking exists (#119/#120).
289
+ *
290
+ * `verbatim` controls fidelity: by default an implementation strips
291
+ * server-defaulted and server-managed fields to reach the declared shape
292
+ * (the form a user would have authored). `verbatim: true` keeps them. Targets
293
+ * whose live config is already the declared shape (e.g. a CloudFormation
294
+ * original template) may ignore it.
295
+ */
296
+ exportResources?(options: {
297
+ environment: string;
298
+ selector?: ResourceSelector;
299
+ owned?: boolean;
300
+ verbatim?: boolean;
301
+ }): Promise<ExportedTemplate>;
302
+ }
303
+ /**
304
+ * The observation view of a lexicon — every capability except live export.
305
+ *
306
+ * State/observation code (snapshots, `state diff --live`) consumes lexicons
307
+ * through this type so that `exportResources` is unreachable from those paths:
308
+ * a full-fidelity {@link ExportedTemplate} (which may carry secrets) must never
309
+ * be read where scrubbed {@link ResourceMetadata} is expected. A full
310
+ * {@link LexiconPlugin} is assignable to this type; accessing `exportResources`
311
+ * on it is a compile error.
312
+ */
313
+ export type ObservationLexicon = Omit<LexiconPlugin, "exportResources">;
314
+ /**
315
+ * Narrows which live resources {@link LexiconPlugin.exportResources} and the
316
+ * `owned` filter operate on. Both fields are optional; omit to export all.
317
+ */
318
+ export interface ResourceSelector {
319
+ /** Restrict to a single chant resource type (e.g. "AWS::S3::Bucket"). */
320
+ readonly type?: string;
321
+ /** Restrict to a single resource name. */
322
+ readonly name?: string;
323
+ }
324
+ /**
325
+ * Full-fidelity import IR read from a live API, branded distinct from the
326
+ * scrubbed observation metadata. It IS a {@link TemplateIR} — it feeds the
327
+ * existing `templateGenerator()` unchanged — but the phantom brand keeps it
328
+ * from being passed where observation metadata is expected, and keeps
329
+ * observation metadata from being passed where an export is expected.
330
+ *
331
+ * The brand is type-only; nothing is added at runtime.
332
+ */
333
+ export type ExportedTemplate = TemplateIR & {
334
+ /** Phantom marker — never present at runtime. */
335
+ readonly __fidelity?: "full-config";
336
+ };
337
+ /**
338
+ * Metadata about a deployed resource, returned by describeResources.
339
+ */
340
+ export interface ResourceMetadata {
341
+ /** Entity type (e.g. AWS::S3::Bucket, K8s::Apps::Deployment) */
342
+ type: string;
343
+ /** Provider-assigned physical ID (ARN, resource ID, pod name) */
344
+ physicalId?: string;
345
+ /** Provider-specific status string */
346
+ status: string;
347
+ /** ISO timestamp of last update */
348
+ lastUpdated?: string;
349
+ /** Cloud-assigned output properties */
350
+ attributes?: Record<string, unknown>;
351
+ /**
352
+ * Live ownership verdict from the resource's marker (#119/#120), when the
353
+ * lexicon could determine it. `owned` = carries chant's marker; `foreign` =
354
+ * no marker. Absent = the lexicon has no marker channel here. The change set
355
+ * reads this — never the snapshot — to decide whether an orphan is a delete.
356
+ */
357
+ ownership?: "owned" | "foreign";
358
+ }
359
+ /**
360
+ * Metadata about a runtime artifact, returned by listArtifacts. Same shape
361
+ * as ResourceMetadata; the conceptual distinction is whether the lexicon's
362
+ * chant entities have 1:1 runtime equivalents (resources) or whether the
363
+ * runtime artifacts are created by tooling outside chant's entity model
364
+ * (artifacts — e.g. Helm releases, Docker containers).
365
+ */
366
+ export interface ArtifactMetadata {
367
+ /** Artifact type (e.g. Helm::Release, Docker::Container) */
368
+ type: string;
369
+ /** Server-side identifier */
370
+ physicalId?: string;
371
+ /** Provider-specific status string */
372
+ status: string;
373
+ /** ISO timestamp of last update */
374
+ lastUpdated?: string;
375
+ /** Provider-specific properties */
376
+ attributes?: Record<string, unknown>;
377
+ }
378
+ /**
379
+ * Type guard to check if a value is a LexiconPlugin.
380
+ * Checks for required lifecycle methods in addition to name/serializer.
381
+ */
382
+ export declare function isLexiconPlugin(value: unknown): value is LexiconPlugin;
383
+ //# sourceMappingURL=lexicon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexicon.d.ts","sourceRoot":"","sources":["../src/lexicon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { type StackGraph } from "../build.js";
2
+ import type { Serializer } from "../serializer.js";
3
+ import type { Declarable } from "../declarable.js";
4
+ export interface AffectedResult {
5
+ /** Stacks whose built artifact differs between base and head. */
6
+ changed: string[];
7
+ /** Downstream consumers of changed stacks (only when `includeDependents`). */
8
+ dependents: string[];
9
+ /** Stacks with deploy-time inputs — cannot be confirmed from a source diff. */
10
+ indeterminate: string[];
11
+ }
12
+ /** Stacks whose serialized output differs between the two builds (added/removed count). */
13
+ export declare function changedStacks(base: Map<string, string>, head: Map<string, string>): string[];
14
+ /**
15
+ * Walk the cross-stack graph backwards from `changed` to find every stack that
16
+ * (transitively) consumes a changed stack. Edge `from → to` means `from`
17
+ * depends on `to`, so a changed `to` makes `from` a dependent.
18
+ */
19
+ export declare function dependentStacks(changed: string[], graph: StackGraph): string[];
20
+ /**
21
+ * Compute the affected set from two per-stack artifact maps and the cross-stack
22
+ * graph. Pure — no builds, no git — so the model is independently testable.
23
+ */
24
+ export declare function computeAffected(base: Map<string, string>, head: Map<string, string>, graph: StackGraph, opts?: {
25
+ includeDependents?: boolean;
26
+ externalInput?: string[];
27
+ }): AffectedResult;
28
+ /** A built BuildResult's per-stack (lexicon) primary output, keyed by stack. */
29
+ export declare function artifactMap(outputs: Map<string, string | {
30
+ primary: string;
31
+ }>): Map<string, string>;
32
+ /** Stacks (lexicons) that declare a deploy-time parameter — external input. */
33
+ export declare function externalInputStacks(entities: Map<string, Declarable>): string[];
34
+ export interface AffectedStacksOptions {
35
+ /** Project source directory to scope (the head/working-tree build root). */
36
+ projectPath: string;
37
+ serializers: Serializer[];
38
+ /** Base git ref to diff against (built in a throwaway worktree). */
39
+ baseRef?: string;
40
+ /** Head git ref. Defaults to the working tree (built in place — no worktree). */
41
+ headRef?: string;
42
+ /**
43
+ * Caller-supplied base source directory (already on disk). Takes precedence
44
+ * over `baseRef` — no worktree is created. Use for a build cache or two dist
45
+ * trees you already have.
46
+ */
47
+ baseDir?: string;
48
+ includeDependents?: boolean;
49
+ }
50
+ /**
51
+ * Compute the affected stacks for a change. Head is built in place (the working
52
+ * tree); base is built from `baseDir` if supplied, else from `baseRef` via a
53
+ * single throwaway worktree. Builds are deterministic, so a cached/supplied base
54
+ * is as trustworthy as a rebuild.
55
+ */
56
+ export declare function affectedStacks(opts: AffectedStacksOptions): Promise<AffectedResult>;
57
+ //# sourceMappingURL=affected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affected.d.ts","sourceRoot":"","sources":["../../src/lifecycle/affected.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAID,2FAA2F;AAC3F,wBAAgB,aAAa,CAC3B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,MAAM,EAAE,CAOV;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,CAkB9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACnE,cAAc,CAKhB;AAID,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAInG;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,EAAE,CAQ/E;AA2BD,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAoCzF"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Change set: a typed, read-only projection of a live diff.
3
+ *
4
+ * `chant lifecycle diff --live` computes a three-way comparison — declared now /
5
+ * last snapshot / live now — and prints it. `buildChangeSet` promotes that
6
+ * same signal into a classified create/update/delete/adopt/noop set that other
7
+ * tooling (reconcile, apply) can act on.
8
+ *
9
+ * Strictly read-only and pure: no I/O, no mutation. The classification reads
10
+ * ownership from the live marker only (populated downstream); until ownership
11
+ * exists, an undeclared live resource is `adopt`, never `delete`. The snapshot
12
+ * is evidence, never the basis for a mutation decision — it must never become
13
+ * load-bearing.
14
+ */
15
+ import { type AttributeChange, type DiffLiveInput } from "./live-diff.js";
16
+ /**
17
+ * What the projection proposes for a single resource.
18
+ *
19
+ * - `create` — declared in source, absent from live.
20
+ * - `update` — declared and live, but live config drifted.
21
+ * - `delete` — a chant-owned resource that is live but no longer declared.
22
+ * Only emitted once ownership is known (#121); never inferred from the
23
+ * snapshot.
24
+ * - `adopt` — live but undeclared, ownership not established → a candidate to
25
+ * pull back into source, never an auto-delete.
26
+ * - `noop` — declared and live with no drift, or already reconciled.
27
+ */
28
+ export type ChangeAction = "create" | "update" | "delete" | "adopt" | "noop";
29
+ /**
30
+ * Who answers "is this resource chant's?". `unknown` until a live ownership
31
+ * marker is queried (#120). The change set never escalates `unknown` to a
32
+ * delete.
33
+ */
34
+ export type Ownership = "owned" | "foreign" | "unknown";
35
+ export interface ChangeSetEntry {
36
+ /** chant entity name. */
37
+ name: string;
38
+ /** Resource type, when known from either side. */
39
+ type?: string;
40
+ action: ChangeAction;
41
+ /** The three-way evidence the classification was derived from. */
42
+ evidence: {
43
+ /** Present in the current build. */
44
+ declared: boolean;
45
+ /** Present in the last snapshot. */
46
+ inSnapshot: boolean;
47
+ /** Observed in the live system right now. */
48
+ live: boolean;
49
+ };
50
+ /** Attribute-level changes, for `update`. */
51
+ deltas?: AttributeChange[];
52
+ /** Live-marker ownership. Defaults to `unknown`. */
53
+ ownership: Ownership;
54
+ }
55
+ export interface ChangeSet {
56
+ env: string;
57
+ entries: ChangeSetEntry[];
58
+ }
59
+ /**
60
+ * Build a typed change set from the same inputs `diffLive` consumes.
61
+ *
62
+ * `create`/`update` are precise from declared-vs-live. `delete` is never
63
+ * emitted here — an undeclared live resource classifies as `adopt` until
64
+ * ownership is known.
65
+ */
66
+ export declare function buildChangeSet(env: string, input: DiffLiveInput): ChangeSet;
67
+ /** Count entries per action. */
68
+ export declare function summarize(cs: ChangeSet): Record<ChangeAction, number>;
69
+ /**
70
+ * GitLab MR plan widget report.
71
+ *
72
+ * GitLab renders an `artifacts:reports:terraform` artifact in the merge-request
73
+ * UI as "N to add, M to change, K to delete". The format is generic — any tool
74
+ * that emits this JSON gets the widget — and the chant plan maps onto it
75
+ * directly. Only the mutating actions count: `adopt` and `noop` are excluded,
76
+ * since the widget has no column for "live but undeclared" or "no change".
77
+ *
78
+ * The widget label reads "Terraform" regardless of producer; that is GitLab's
79
+ * fixed string, not a claim chant makes.
80
+ */
81
+ export interface GitlabMrReport {
82
+ create: number;
83
+ update: number;
84
+ delete: number;
85
+ }
86
+ /** Project a change set onto the GitLab MR plan widget shape. Pure. */
87
+ export declare function gitlabMrReport(cs: ChangeSet): GitlabMrReport;
88
+ /** Human-readable render of a change set. Pure — returns a string. */
89
+ export declare function renderChangeSet(cs: ChangeSet): string;
90
+ //# sourceMappingURL=change-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-set.d.ts","sourceRoot":"","sources":["../../src/lifecycle/change-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAY,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,kEAAkE;IAClE,QAAQ,EAAE;QACR,oCAAoC;QACpC,QAAQ,EAAE,OAAO,CAAC;QAClB,oCAAoC;QACpC,UAAU,EAAE,OAAO,CAAC;QACpB,6CAA6C;QAC7C,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,6CAA6C;IAC7C,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,oDAAoD;IACpD,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,SAAS,CAyD3E;AAID,gCAAgC;AAChC,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAUrE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,CAG5D;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAmBrD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Build digest: fingerprints of resource declarations + dependency graph.
3
+ *
4
+ * The digest captures *what was declared* at a point in time, enabling
5
+ * diff operations without re-parsing templates.
6
+ */
7
+ import type { BuildResult } from "../build.js";
8
+ import type { BuildDigest, DigestDiff } from "./types.js";
9
+ /**
10
+ * Hash an entity's props deterministically.
11
+ */
12
+ export declare function hashProps(props: unknown): string;
13
+ /**
14
+ * Compute a full build digest from a BuildResult.
15
+ */
16
+ export declare function computeBuildDigest(buildResult: BuildResult): BuildDigest;
17
+ /**
18
+ * Compare two digests and categorize resources.
19
+ */
20
+ export declare function diffDigests(current: BuildDigest, previous: BuildDigest | undefined): DigestDiff;
21
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/lifecycle/digest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAkB,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvE;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAwBxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,WAAW,GAAG,SAAS,GAChC,UAAU,CAgCZ"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Write a state snapshot JSON to the orphan branch.
3
+ *
4
+ * Pipeline: hash-object → mktree → commit-tree → update-ref
5
+ */
6
+ export declare function writeSnapshot(environment: string, lexicon: string, json: string, opts?: {
7
+ cwd?: string;
8
+ }): Promise<string>;
9
+ /**
10
+ * Read a snapshot from the orphan branch.
11
+ */
12
+ export declare function readSnapshot(environment: string, lexicon: string, opts?: {
13
+ cwd?: string;
14
+ }): Promise<string | null>;
15
+ /**
16
+ * Read all snapshots for an environment (all lexicons).
17
+ */
18
+ export declare function readEnvironmentSnapshots(environment: string, opts?: {
19
+ cwd?: string;
20
+ }): Promise<Map<string, string>>;
21
+ /**
22
+ * List snapshot history from the orphan branch.
23
+ */
24
+ export declare function listSnapshots(opts?: {
25
+ cwd?: string;
26
+ environment?: string;
27
+ }): Promise<Array<{
28
+ commit: string;
29
+ date: string;
30
+ message: string;
31
+ }>>;
32
+ /**
33
+ * Thrown by pushLifecycle when the remote chant/lifecycle branch has moved since
34
+ * the local snapshot was prepared — i.e. another snapshot for this or a
35
+ * different env was pushed concurrently. The caller should fetch and retry.
36
+ */
37
+ export declare class StaleLifecycleBranchError extends Error {
38
+ readonly expected: string | null;
39
+ constructor(expected: string | null, stderr: string);
40
+ }
41
+ /**
42
+ * Look up the remote-tracking SHA for chant/lifecycle, if any. Returns null when
43
+ * the remote ref doesn't exist locally yet (e.g. first-ever snapshot).
44
+ */
45
+ export declare function getRemoteLifecycleBranchSha(remote: string, opts?: {
46
+ cwd?: string;
47
+ }): Promise<string | null>;
48
+ /**
49
+ * Push the state branch to remote with --force-with-lease.
50
+ *
51
+ * If the remote chant/lifecycle ref has advanced past the local remote-tracking
52
+ * SHA captured at the start of this push, the push is rejected and we throw
53
+ * StaleLifecycleBranchError so the caller can surface a recovery hint.
54
+ *
55
+ * Returns false (without throwing) only when no remote is configured at all.
56
+ */
57
+ export declare function pushLifecycle(opts?: {
58
+ cwd?: string;
59
+ }): Promise<boolean>;
60
+ /**
61
+ * Fetch the state branch from remote.
62
+ */
63
+ export declare function fetchLifecycle(opts?: {
64
+ cwd?: string;
65
+ }): Promise<boolean>;
66
+ /**
67
+ * Get the current HEAD commit SHA of the main working branch.
68
+ */
69
+ export declare function getHeadCommit(opts?: {
70
+ cwd?: string;
71
+ }): Promise<string>;
72
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/lifecycle/git.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,MAAM,CAAC,CAoFjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqB9B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAgBnE;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;gBACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM;CASpD;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA8B7E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAW9E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5E"}
@@ -0,0 +1,8 @@
1
+ export * from "./types.js";
2
+ export * from "./git.js";
3
+ export * from "./digest.js";
4
+ export * from "./snapshot.js";
5
+ export * from "./live-diff.js";
6
+ export * from "./change-set.js";
7
+ export * from "./affected.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}