@intentius/chant 0.6.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 (433) 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 +17 -2
  397. package/src/audit/catalog.ts +357 -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/audit/rules-doc.ts +4 -0
  412. package/src/cli/commands/__fixtures__/audit-aws/stack.yaml +11 -0
  413. package/src/cli/commands/__fixtures__/audit-aws/template.json +7 -0
  414. package/src/cli/commands/__fixtures__/audit-azure/azuredeploy.json +13 -0
  415. package/src/cli/commands/__fixtures__/audit-gcp/bucket.yaml +6 -0
  416. package/src/cli/commands/__fixtures__/audit-gcp/firewall.yaml +9 -0
  417. package/src/cli/commands/__fixtures__/audit-helm/mychart/Chart.yaml +3 -0
  418. package/src/cli/commands/__fixtures__/audit-helm/mychart/templates/deployment.yaml +12 -0
  419. package/src/cli/commands/__fixtures__/audit-helm/mychart/values.yaml +1 -0
  420. package/src/cli/commands/__fixtures__/audit-mixed/.github/workflows/ci.yml +5 -0
  421. package/src/cli/commands/__fixtures__/audit-mixed/Dockerfile +2 -0
  422. package/src/cli/commands/__fixtures__/audit-mixed/cfn/template.json +1 -0
  423. package/src/cli/commands/__fixtures__/audit-mixed/k8s/deploy.yaml +12 -0
  424. package/src/cli/commands/audit.test.ts +80 -14
  425. package/src/cli/commands/audit.ts +28 -126
  426. package/src/codegen/bound-property-types.test.ts +57 -0
  427. package/src/codegen/bound-property-types.ts +110 -0
  428. package/src/codegen/generate-post-synth-barrel.test.ts +37 -0
  429. package/src/codegen/generate-post-synth-barrel.ts +75 -0
  430. package/src/codegen/post-synth-barrel-guards.test.ts +63 -0
  431. package/src/codegen/validate.ts +13 -1
  432. package/src/lint/discover.ts +1 -1
  433. package/src/meta/peer-deps.test.ts +29 -0
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Live-state diff: compares declared vs observed-now vs observed-then.
3
+ *
4
+ * Produces structured drift signal — *what is in the cloud right now* against
5
+ * both *what was declared in source* and *what was observed at the last
6
+ * snapshot*. Pure function; all I/O happens in the caller.
7
+ *
8
+ * Two diff flavors:
9
+ * - diffLive — entity-keyed (declared ↔ observedNow ↔ observedThen)
10
+ * - diffLiveArtifacts — context-keyed (observedNow ↔ observedThen only;
11
+ * no `declared` axis since artifacts aren't declared
12
+ * as chant entities — they're created by tooling
13
+ * outside chant's entity model)
14
+ */
15
+ import type { ResourceMetadata, ArtifactMetadata } from "../lexicon.js";
16
+ export interface AttributeChange {
17
+ /** Attribute path (e.g. "status", "physicalId", "attributes.tags.env"). */
18
+ path: string;
19
+ oldValue: unknown;
20
+ newValue: unknown;
21
+ }
22
+ export interface ResourceDrift {
23
+ name: string;
24
+ type: string;
25
+ changes: AttributeChange[];
26
+ }
27
+ export interface LiveDiffResult {
28
+ /** Declared in current build, but not observed in cloud right now. */
29
+ missing: string[];
30
+ /** Observed in cloud right now, but not declared. */
31
+ orphan: string[];
32
+ /** Was in last snapshot but isn't observed now. */
33
+ disappeared: string[];
34
+ /** Observed now and declared, but not in the previous snapshot. */
35
+ newlyObserved: string[];
36
+ /** Observed both then and now; metadata changed. */
37
+ driftedSinceSnapshot: ResourceDrift[];
38
+ /** Observed both then and now; metadata identical. */
39
+ unchanged: string[];
40
+ }
41
+ export interface DiffLiveInput {
42
+ /** Entity names from the current build. */
43
+ declared: Set<string>;
44
+ /** Resources returned by `plugin.describeResources()` right now. */
45
+ observedNow: Record<string, ResourceMetadata>;
46
+ /** Resources captured by the previous snapshot, if any. */
47
+ observedThen: Record<string, ResourceMetadata> | undefined;
48
+ }
49
+ export declare function diffLive(input: DiffLiveInput): LiveDiffResult;
50
+ export interface LiveArtifactDiffResult {
51
+ /** Observed now, not in previous snapshot. */
52
+ added: string[];
53
+ /** In previous snapshot, not observed now. */
54
+ removed: string[];
55
+ /** In both; metadata changed. */
56
+ changed: ResourceDrift[];
57
+ /** In both; metadata identical. */
58
+ unchanged: string[];
59
+ }
60
+ export interface DiffLiveArtifactsInput {
61
+ /** Artifacts returned by `plugin.listArtifacts()` right now. */
62
+ observedNow: Record<string, ArtifactMetadata>;
63
+ /** Artifacts captured by the previous snapshot, if any. */
64
+ observedThen: Record<string, ArtifactMetadata> | undefined;
65
+ }
66
+ export declare function diffLiveArtifacts(input: DiffLiveArtifactsInput): LiveArtifactDiffResult;
67
+ //# sourceMappingURL=live-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-diff.d.ts","sourceRoot":"","sources":["../../src/lifecycle/live-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qDAAqD;IACrD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mDAAmD;IACnD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mEAAmE;IACnE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oDAAoD;IACpD,oBAAoB,EAAE,aAAa,EAAE,CAAC;IACtC,sDAAsD;IACtD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;CAC5D;AAyCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAiE7D;AAID,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iCAAiC;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAmCvF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Snapshot orchestration: queries plugins for deployed resource metadata,
3
+ * assembles LifecycleSnapshots, computes build digests, and writes to git.
4
+ */
5
+ import type { ObservationLexicon } from "../lexicon.js";
6
+ import type { BuildResult } from "../build.js";
7
+ import type { LifecycleSnapshot } from "./types.js";
8
+ export interface TakeSnapshotResult {
9
+ snapshots: LifecycleSnapshot[];
10
+ commit: string;
11
+ warnings: string[];
12
+ errors: string[];
13
+ }
14
+ /**
15
+ * Take state snapshots for all plugins that implement describeResources.
16
+ */
17
+ export declare function takeSnapshot(environment: string, plugins: ObservationLexicon[], buildResult: BuildResult, opts?: {
18
+ cwd?: string;
19
+ }): Promise<TakeSnapshotResult>;
20
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/lifecycle/snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAsC,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiEjD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA+G7B"}
@@ -0,0 +1,61 @@
1
+ import type { ResourceMetadata, ArtifactMetadata } from "../lexicon.js";
2
+ export type { ResourceMetadata, ArtifactMetadata } from "../lexicon.js";
3
+ /**
4
+ * State snapshot for a single lexicon in an environment.
5
+ */
6
+ export interface LifecycleSnapshot {
7
+ lexicon: string;
8
+ environment: string;
9
+ /** Main branch commit this corresponds to */
10
+ commit: string;
11
+ /** ISO timestamp when the snapshot was taken */
12
+ timestamp: string;
13
+ /** Resource metadata keyed by logical name */
14
+ resources: Record<string, ResourceMetadata>;
15
+ /** Artifact metadata keyed by server-side identifier (lexicon-specific). */
16
+ artifacts?: Record<string, ArtifactMetadata>;
17
+ /** Build digest at snapshot time — what was declared when this snapshot was taken */
18
+ digest?: BuildDigest;
19
+ }
20
+ /**
21
+ * Digest of a single resource declaration.
22
+ */
23
+ export interface ResourceDigest {
24
+ /** Entity type (e.g. AWS::S3::Bucket) */
25
+ type: string;
26
+ /** Which lexicon owns this resource */
27
+ lexicon: string;
28
+ /** Hash of deterministically-serialized declaration props */
29
+ propsHash: string;
30
+ }
31
+ /**
32
+ * Digest of the entire build at a point in time.
33
+ */
34
+ export interface BuildDigest {
35
+ /** Per-resource digest keyed by logical name */
36
+ resources: Record<string, ResourceDigest>;
37
+ /** Resource-level dependency graph */
38
+ dependencies: Record<string, string[]>;
39
+ /** Cross-lexicon output bridges from BuildManifest */
40
+ outputs: Record<string, {
41
+ source: string;
42
+ entity: string;
43
+ attribute: string;
44
+ }>;
45
+ /** Lexicon-level deploy order */
46
+ deployOrder: string[];
47
+ }
48
+ /**
49
+ * Result of comparing two build digests.
50
+ */
51
+ export interface DigestDiff {
52
+ /** Resources in current build but not in previous digest */
53
+ added: string[];
54
+ /** Resources in previous digest but not in current build */
55
+ removed: string[];
56
+ /** Resources where propsHash differs */
57
+ changed: string[];
58
+ /** Resources where propsHash matches */
59
+ unchanged: string[];
60
+ }
61
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5C,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,qFAAqF;IACrF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,iCAAiC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB"}
@@ -0,0 +1,100 @@
1
+ import { z } from "zod";
2
+ import type { Severity, RuleConfig } from "./rule.js";
3
+ export declare const LintConfigSchema: z.ZodObject<{
4
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
5
+ error: "error";
6
+ warning: "warning";
7
+ info: "info";
8
+ off: "off";
9
+ }>, z.ZodTuple<[z.ZodEnum<{
10
+ error: "error";
11
+ warning: "warning";
12
+ info: "info";
13
+ off: "off";
14
+ }>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>>;
15
+ extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
16
+ overrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
17
+ files: z.ZodArray<z.ZodString>;
18
+ rules: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
19
+ error: "error";
20
+ warning: "warning";
21
+ info: "info";
22
+ off: "off";
23
+ }>, z.ZodTuple<[z.ZodEnum<{
24
+ error: "error";
25
+ warning: "warning";
26
+ info: "info";
27
+ off: "off";
28
+ }>, z.ZodRecord<z.ZodString, z.ZodUnknown>], null>]>>;
29
+ }, z.core.$strip>>>;
30
+ plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ policies: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
+ }, z.core.$strip>;
33
+ /**
34
+ * Per-file rule override
35
+ */
36
+ export interface LintOverride {
37
+ /** Glob patterns to match file paths */
38
+ files: string[];
39
+ /** Rule overrides for matched files */
40
+ rules: Record<string, RuleConfig>;
41
+ }
42
+ /**
43
+ * Lint configuration
44
+ */
45
+ export interface LintConfig {
46
+ /** Rule configurations: rule ID -> severity string or [severity, options] tuple */
47
+ rules?: Record<string, RuleConfig>;
48
+ /** Array of config file paths to extend from */
49
+ extends?: string[];
50
+ /** Per-file rule overrides via glob patterns */
51
+ overrides?: LintOverride[];
52
+ /** Array of plugin file paths to load custom rules from (project-local, not inherited) */
53
+ plugins?: string[];
54
+ /**
55
+ * Array of file paths to load project-authored organizational policy checks
56
+ * from — each exporting one or more {@link PostSynthCheck} objects. They run
57
+ * during `chant build` over the resolved resources, with the current `env` in
58
+ * context. Distinct from `plugins` (declarative lint rules) by authorship and
59
+ * phase; same engine.
60
+ */
61
+ policies?: string[];
62
+ }
63
+ /**
64
+ * Parsed rule configuration with severity and optional options
65
+ */
66
+ export interface ParsedRuleConfig {
67
+ severity: "off" | Severity;
68
+ options?: Record<string, unknown>;
69
+ }
70
+ /**
71
+ * Parse a rule config value into severity and options
72
+ */
73
+ export declare function parseRuleConfig(value: RuleConfig): ParsedRuleConfig;
74
+ /**
75
+ * Default configuration with all rules enabled at strict preset severities
76
+ */
77
+ export declare const DEFAULT_CONFIG: LintConfig;
78
+ /**
79
+ * Load lint configuration from a directory.
80
+ *
81
+ * Tries `chant.config.ts` first (extracts `lint` property from ChantConfig),
82
+ * then falls back to `chant.config.json` (legacy LintConfig format).
83
+ * Returns default configuration if neither exists.
84
+ *
85
+ * @param dir - Directory path to search for config file
86
+ * @returns Loaded and merged configuration, or default config if not found
87
+ */
88
+ export declare function loadConfig(dir: string): LintConfig;
89
+ /**
90
+ * Resolve the effective rules for a specific file path by applying overrides.
91
+ *
92
+ * Starts with the base config rules, then iterates through overrides in order.
93
+ * For each override whose file globs match the given path, merges override rules on top.
94
+ *
95
+ * @param config - The loaded lint configuration
96
+ * @param filePath - The file path to resolve rules for (relative to project root)
97
+ * @returns Merged rule configuration with overrides applied
98
+ */
99
+ export declare function resolveRulesForFile(config: LintConfig, filePath: string): Record<string, RuleConfig>;
100
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAmBnD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS3B,CAAC;AAkGH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAsBnE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AA0HF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAoClD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAkBpG"}
@@ -0,0 +1,56 @@
1
+ import * as ts from "typescript";
2
+ import type { LintRule, LintContext, Severity, Category } from "./rule.js";
3
+ /**
4
+ * Condition for matching nodes within a selector result.
5
+ */
6
+ export interface MatchCondition {
7
+ /** RegExp pattern to match the node's text */
8
+ pattern?: RegExp;
9
+ /** Selector name — only match if node is within a parent matching this selector */
10
+ within?: string;
11
+ /** Require specific child selector(s) to be present */
12
+ require?: string | string[];
13
+ /** Named check to evaluate */
14
+ check?: string;
15
+ }
16
+ /**
17
+ * Declarative fix description.
18
+ */
19
+ export interface DeclarativeFix {
20
+ /** Kind of fix operation */
21
+ kind: "replace" | "insert-before" | "insert-after" | "delete";
22
+ /** Static replacement text */
23
+ text?: string;
24
+ /** Dynamic resolve function for the replacement text */
25
+ resolve?: (node: ts.Node, sf: ts.SourceFile) => string;
26
+ }
27
+ /**
28
+ * Specification for a declarative lint rule.
29
+ */
30
+ export interface RuleSpec {
31
+ /** Unique rule ID */
32
+ id: string;
33
+ /** Severity level */
34
+ severity: Severity;
35
+ /** Category for grouping */
36
+ category: Category;
37
+ /** Human-readable description of what this rule checks */
38
+ description?: string;
39
+ /** Link to rule documentation */
40
+ helpUri?: string;
41
+ /** Selector name (or compound) to find target nodes */
42
+ selector: string;
43
+ /** Optional match condition to further filter nodes */
44
+ match?: MatchCondition;
45
+ /** Message template. `{node}` is replaced with the node's text. */
46
+ message: string;
47
+ /** Optional fix to apply */
48
+ fix?: DeclarativeFix;
49
+ /** Optional custom validation function */
50
+ validate?: (node: ts.Node, context: LintContext) => boolean;
51
+ }
52
+ /**
53
+ * Build a standard LintRule from a declarative RuleSpec.
54
+ */
55
+ export declare function rule(spec: RuleSpec): LintRule;
56
+ //# sourceMappingURL=declarative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarative.d.ts","sourceRoot":"","sources":["../../src/lint/declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAA2B,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,SAAS,GAAG,eAAe,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC9D,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;CAC7D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAgD7C"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Auto-discovery for lint rules and post-synth checks.
3
+ *
4
+ * Scans directories for .ts files and loads exported rules/checks,
5
+ * eliminating the need to manually list every rule in plugin.ts.
6
+ */
7
+ import type { LintRule } from "./rule.js";
8
+ import type { PostSynthCheck } from "./post-synth.js";
9
+ /**
10
+ * Discover lint rules from a directory.
11
+ *
12
+ * Scans the directory for .ts files (excluding tests, helpers, and index files),
13
+ * loads each module, and collects any exported objects that look like a LintRule
14
+ * (has `id`, `severity`, `category`, and `check` function).
15
+ *
16
+ * @param dir - Absolute path to the rules directory
17
+ * @param importMetaUrl - The caller's import.meta.url (for createRequire)
18
+ */
19
+ export declare function discoverLintRules(dir: string, importMetaUrl: string): LintRule[];
20
+ /**
21
+ * Discover post-synth checks from a directory.
22
+ *
23
+ * Scans the directory for .ts files (excluding tests, helpers, and index files),
24
+ * loads each module, and collects any exported objects that look like a PostSynthCheck
25
+ * (has `id`, `description`, and `check` function).
26
+ *
27
+ * @param dir - Absolute path to the post-synth rules directory
28
+ * @param importMetaUrl - The caller's import.meta.url (for createRequire)
29
+ */
30
+ export declare function discoverPostSynthChecks(dir: string, importMetaUrl: string): PostSynthCheck[];
31
+ /**
32
+ * List rule files in a directory (excluding tests, helpers, index).
33
+ */
34
+ export declare function listRuleFiles(dir: string): string[];
35
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/lint/discover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAYnD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkBhF;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,cAAc,EAAE,CAkB5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAYnD"}
@@ -0,0 +1,21 @@
1
+ import type { LintRule, LintDiagnostic } from "./rule.js";
2
+ /**
3
+ * Result of a lint run, separating active diagnostics from suppressed ones.
4
+ */
5
+ export interface LintRunResult {
6
+ /** Diagnostics that were not suppressed by disable directives */
7
+ diagnostics: LintDiagnostic[];
8
+ /** Diagnostics that were suppressed by disable directives, with optional reason */
9
+ suppressed: Array<LintDiagnostic & {
10
+ reason?: string;
11
+ }>;
12
+ }
13
+ /**
14
+ * Execute lint rules on a set of files
15
+ * @param files - Array of file paths to lint
16
+ * @param rules - Array of lint rules to execute
17
+ * @param ruleOptions - Optional map of rule ID to options object
18
+ * @returns LintRunResult with diagnostics and suppressed items
19
+ */
20
+ export declare function runLint(files: string[], rules: LintRule[], ruleOptions?: Map<string, Record<string, unknown>>): Promise<LintRunResult>;
21
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAe,MAAM,QAAQ,CAAC;AAIpE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,mFAAmF;IACnF,UAAU,EAAE,KAAK,CAAC,cAAc,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAyKD;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACjD,OAAO,CAAC,aAAa,CAAC,CAqDxB"}
@@ -0,0 +1,19 @@
1
+ import type * as ts from "typescript";
2
+ import type { LintContext } from "./rule.js";
3
+ /**
4
+ * A named check function that evaluates a condition on a node.
5
+ */
6
+ export type NamedCheckFn = (node: ts.Node, context: LintContext) => boolean;
7
+ /**
8
+ * Register a named check function.
9
+ */
10
+ export declare function registerCheck(name: string, fn: NamedCheckFn): void;
11
+ /**
12
+ * Get a named check by name. Returns undefined if not found.
13
+ */
14
+ export declare function getNamedCheck(name: string): NamedCheckFn | undefined;
15
+ /**
16
+ * List all registered check names.
17
+ */
18
+ export declare function listChecks(): string[];
19
+ //# sourceMappingURL=named-checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-checks.d.ts","sourceRoot":"","sources":["../../src/lint/named-checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAO5E;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC"}
@@ -0,0 +1,9 @@
1
+ import * as ts from "typescript";
2
+ /**
3
+ * Parse a TypeScript file into an AST
4
+ * @param path - Absolute or relative path to the TypeScript file
5
+ * @returns Parsed TypeScript SourceFile
6
+ * @throws Error if the file cannot be read or parsed
7
+ */
8
+ export declare function parseFile(path: string): ts.SourceFile;
9
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/lint/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAgCrD"}
@@ -0,0 +1,22 @@
1
+ import type { PostSynthCheck, PostSynthDiagnostic } from "./post-synth.js";
2
+ /** Load project policy checks (one or more `PostSynthCheck` exports) from files. */
3
+ export declare function loadPolicyChecks(paths: string[], configDir: string): Promise<PostSynthCheck[]>;
4
+ export interface PolicyEvaluation {
5
+ /** All policy diagnostics (errors + warnings). */
6
+ diagnostics: PostSynthDiagnostic[];
7
+ /** The error-severity subset — these are policy *violations* that gate. */
8
+ violations: PostSynthDiagnostic[];
9
+ /** The environment policies were evaluated against (if any). */
10
+ env?: string;
11
+ }
12
+ /**
13
+ * Build a project and run its `lint.policies` over the resolved resources,
14
+ * standalone — used by the `policyGate` Op step to gate an apply on the same
15
+ * organizational policy `chant build` enforces. Loads the project's lexicons,
16
+ * builds, then runs the policy pack with `env` (explicit, else `ownership.env`).
17
+ */
18
+ export declare function evaluateProjectPolicies(opts: {
19
+ path: string;
20
+ env?: string;
21
+ }): Promise<PolicyEvaluation>;
22
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/lint/policy.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExE,oFAAoF;AACpF,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAiBpG;AAED,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,2EAA2E;IAC3E,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8B5B"}
@@ -0,0 +1,69 @@
1
+ import type { Declarable } from "../declarable.js";
2
+ import type { SerializerResult } from "../serializer.js";
3
+ import type { Severity } from "./rule.js";
4
+ /**
5
+ * Context provided to post-synthesis checks.
6
+ */
7
+ export interface PostSynthContext {
8
+ /** The build result outputs (lexicon name → serialized output) */
9
+ outputs: Map<string, string | SerializerResult>;
10
+ /** Map of entity name to Declarable entity */
11
+ entities: Map<string, Declarable>;
12
+ /**
13
+ * The environment/stack being built, if known (from `--env` or the project's
14
+ * `ownership.env`). Lets an organizational policy branch on environment —
15
+ * e.g. "no public buckets in prod". Undefined when no environment is set.
16
+ */
17
+ env?: string;
18
+ /** Raw build result object */
19
+ buildResult: {
20
+ outputs: Map<string, string | SerializerResult>;
21
+ entities: Map<string, Declarable>;
22
+ warnings: string[];
23
+ errors: Array<{
24
+ message: string;
25
+ name: string;
26
+ }>;
27
+ sourceFileCount: number;
28
+ };
29
+ }
30
+ /**
31
+ * Extract the primary content string from a serializer output.
32
+ */
33
+ export declare function getPrimaryOutput(output: string | SerializerResult): string;
34
+ /**
35
+ * A diagnostic from a post-synthesis check.
36
+ */
37
+ export interface PostSynthDiagnostic {
38
+ /** ID of the check that produced this diagnostic */
39
+ checkId: string;
40
+ /** Severity level */
41
+ severity: Severity;
42
+ /** Human-readable message */
43
+ message: string;
44
+ /** Optional entity name related to this diagnostic */
45
+ entity?: string;
46
+ /** Optional lexicon related to this diagnostic */
47
+ lexicon?: string;
48
+ }
49
+ /**
50
+ * A post-synthesis check that validates build output. Lexicons ship these as
51
+ * domain rules; projects author them as organizational policy (see the
52
+ * `lint.policies` config and the Organizational Policy guide).
53
+ */
54
+ export interface PostSynthCheck {
55
+ /** Unique identifier for this check */
56
+ id: string;
57
+ /** Human-readable description */
58
+ description: string;
59
+ /** Execute the check and return diagnostics */
60
+ check(ctx: PostSynthContext): PostSynthDiagnostic[];
61
+ }
62
+ /** Structural type guard — used to collect project-authored policy checks. */
63
+ export declare function isPostSynthCheck(value: unknown): value is PostSynthCheck;
64
+ /**
65
+ * Run a set of post-synthesis checks against a build result. `env` is threaded
66
+ * into the context so a check can branch on the current environment/stack.
67
+ */
68
+ export declare function runPostSynthChecks(checks: PostSynthCheck[], buildResult: PostSynthContext["buildResult"], env?: string): PostSynthDiagnostic[];
69
+ //# sourceMappingURL=post-synth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-synth.d.ts","sourceRoot":"","sources":["../../src/lint/post-synth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;IAChD,8CAA8C;IAC9C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,WAAW,EAAE;QACX,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;QAChD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,MAAM,CAE1E;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;CACrD;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAQxE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EAAE,EACxB,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,EAC5C,GAAG,CAAC,EAAE,MAAM,GACX,mBAAmB,EAAE,CAavB"}
@@ -0,0 +1,19 @@
1
+ {
2
+ "rules": {
3
+ "COR001": "error",
4
+ "COR002": "error",
5
+ "COR003": "warning",
6
+ "COR004": "warning",
7
+ "COR005": "warning",
8
+ "COR006": "error",
9
+ "COR007": "warning",
10
+ "COR008": "error",
11
+ "COR009": "warning",
12
+ "COR010": "warning",
13
+ "COR011": "error",
14
+ "COR012": "warning",
15
+ "COR013": "info",
16
+ "COR014": "warning",
17
+ "COR015": "warning"
18
+ }
19
+ }
@@ -0,0 +1,16 @@
1
+ import type { LintRule } from "./rule.js";
2
+ /**
3
+ * Load local lint rules from `.chant/rules/`.
4
+ *
5
+ * Scans for `.ts` files in the nearest `.chant/rules/` directory found by
6
+ * walking up from `projectDir` (stopping at the closest `package.json` to
7
+ * avoid leaking into unrelated parent projects). Dynamically imports each
8
+ * file and collects all exports that conform to the LintRule interface.
9
+ *
10
+ * @param projectDir - Directory the lint command was invoked against. May be
11
+ * a sub-stack of a larger project — the rules dir is
12
+ * resolved by walking up.
13
+ * @returns Array of LintRule objects found in the discovered `.chant/rules/`.
14
+ */
15
+ export declare function loadLocalRules(projectDir: string): Promise<LintRule[]>;
16
+ //# sourceMappingURL=rule-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-loader.d.ts","sourceRoot":"","sources":["../../src/lint/rule-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AA+CvC;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqC5E"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Rule registry — collects metadata from all rule sources into a flat, sortable array.
3
+ * Used for documentation generation and programmatic rule introspection.
4
+ */
5
+ import type { LintRule, Severity, Category } from "./rule.js";
6
+ import type { PostSynthCheck } from "./post-synth.js";
7
+ export interface RuleEntry {
8
+ /** Unique rule ID (e.g. "COR001", "WAW018") */
9
+ id: string;
10
+ /** Human-readable description of what this rule checks */
11
+ description: string;
12
+ /** Rule category */
13
+ category: Category;
14
+ /** Default severity level */
15
+ defaultSeverity: Severity;
16
+ /** Source of the rule ("core" or lexicon name) */
17
+ source: "core" | string;
18
+ /** Phase the rule runs in */
19
+ phase: "pre-synth" | "post-synth";
20
+ /** Whether this rule provides automatic fixes */
21
+ hasAutoFix: boolean;
22
+ /** Link to rule documentation */
23
+ helpUri?: string;
24
+ }
25
+ /**
26
+ * Build a rule registry from core rules and plugin-provided rules/checks.
27
+ *
28
+ * @param coreRules - Core LintRules (COR/EVL rules from packages/core)
29
+ * @param plugins - Array of plugin contributions with name, rules, and post-synth checks
30
+ * @returns Flat array of RuleEntry sorted by ID
31
+ */
32
+ export declare function buildRuleRegistry(coreRules: LintRule[], plugins?: Array<{
33
+ name: string;
34
+ rules?: LintRule[];
35
+ postSynthChecks?: PostSynthCheck[];
36
+ }>): RuleEntry[];
37
+ //# sourceMappingURL=rule-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/lint/rule-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,6BAA6B;IAC7B,eAAe,EAAE,QAAQ,CAAC;IAC1B,kDAAkD;IAClD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,6BAA6B;IAC7B,KAAK,EAAE,WAAW,GAAG,YAAY,CAAC;IAClC,iDAAiD;IACjD,UAAU,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,GAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACpC,CAAM,GACN,SAAS,EAAE,CAmDb"}