@intentius/chant 0.124.30 → 0.124.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/bin/chant +7 -2
  2. package/dist/cli/commands/check-lexicon-plugin.d.ts +7 -4
  3. package/dist/cli/commands/check-lexicon-plugin.d.ts.map +1 -1
  4. package/dist/cli/commands/check-lexicon-plugin.js +10 -7
  5. package/dist/cli/commands/check-lexicon.d.ts.map +1 -1
  6. package/dist/cli/commands/check-lexicon.js +18 -12
  7. package/dist/cli/commands/import.d.ts +10 -0
  8. package/dist/cli/commands/import.d.ts.map +1 -1
  9. package/dist/cli/commands/import.js +37 -0
  10. package/dist/cli/commands/init-lexicon/templates/project.d.ts.map +1 -1
  11. package/dist/cli/commands/init-lexicon/templates/project.js +4 -3
  12. package/dist/cli/commands/onboard.d.ts.map +1 -1
  13. package/dist/cli/commands/onboard.js +8 -4
  14. package/dist/cli/commands/update.d.ts.map +1 -1
  15. package/dist/cli/commands/update.js +2 -1
  16. package/dist/cli/dependencies.d.ts +18 -0
  17. package/dist/cli/dependencies.d.ts.map +1 -0
  18. package/dist/cli/dependencies.js +120 -0
  19. package/dist/cli/handlers/build.d.ts.map +1 -1
  20. package/dist/cli/handlers/build.js +23 -4
  21. package/dist/cli/handlers/fan-out.d.ts.map +1 -1
  22. package/dist/cli/handlers/fan-out.js +12 -4
  23. package/dist/cli/handlers/graph.d.ts.map +1 -1
  24. package/dist/cli/handlers/graph.js +16 -6
  25. package/dist/cli/handlers/lint.d.ts.map +1 -1
  26. package/dist/cli/handlers/lint.js +6 -0
  27. package/dist/cli/handlers/operator.d.ts +2 -2
  28. package/dist/cli/handlers/operator.js +3 -3
  29. package/dist/cli/handlers/pr.d.ts +14 -0
  30. package/dist/cli/handlers/pr.d.ts.map +1 -1
  31. package/dist/cli/handlers/pr.js +488 -32
  32. package/dist/cli/handlers/promote.d.ts.map +1 -1
  33. package/dist/cli/handlers/promote.js +3 -1
  34. package/dist/cli/handlers/run.d.ts +13 -1
  35. package/dist/cli/handlers/run.d.ts.map +1 -1
  36. package/dist/cli/handlers/run.js +38 -15
  37. package/dist/cli/main.d.ts.map +1 -1
  38. package/dist/cli/main.js +74 -12
  39. package/dist/cli/parse-args.d.ts.map +1 -1
  40. package/dist/cli/parse-args.js +65 -0
  41. package/dist/cli/registry.d.ts +29 -2
  42. package/dist/cli/registry.d.ts.map +1 -1
  43. package/dist/cli/registry.js +6 -2
  44. package/dist/codegen/generate-post-synth-barrel.js +2 -2
  45. package/dist/codegen/lexicon-regen.d.ts +4 -0
  46. package/dist/codegen/lexicon-regen.d.ts.map +1 -1
  47. package/dist/codegen/lexicon-regen.js +1 -1
  48. package/dist/codegen/pinned-upgrade.js +2 -2
  49. package/dist/components/capability.d.ts +44 -3
  50. package/dist/components/capability.d.ts.map +1 -1
  51. package/dist/components/capability.js +21 -0
  52. package/dist/components/changed-files.d.ts +7 -1
  53. package/dist/components/changed-files.d.ts.map +1 -1
  54. package/dist/components/changed-files.js +9 -1
  55. package/dist/components/driver.d.ts +38 -0
  56. package/dist/components/driver.d.ts.map +1 -1
  57. package/dist/components/driver.js +47 -6
  58. package/dist/components/fan-out-record.d.ts +6 -1
  59. package/dist/components/fan-out-record.d.ts.map +1 -1
  60. package/dist/components/fan-out-record.js +24 -0
  61. package/dist/components/fan-out-run.d.ts +20 -0
  62. package/dist/components/fan-out-run.d.ts.map +1 -1
  63. package/dist/components/fan-out-run.js +21 -1
  64. package/dist/components/pr-pipeline.d.ts +65 -2
  65. package/dist/components/pr-pipeline.d.ts.map +1 -1
  66. package/dist/components/pr-pipeline.js +107 -15
  67. package/dist/components/pr-run.d.ts +127 -29
  68. package/dist/components/pr-run.d.ts.map +1 -1
  69. package/dist/components/pr-run.js +290 -70
  70. package/dist/components/wave-plan.d.ts +5 -2
  71. package/dist/components/wave-plan.d.ts.map +1 -1
  72. package/dist/components/wave-plan.js +12 -1
  73. package/dist/discovery/fold-import.d.ts.map +1 -1
  74. package/dist/discovery/fold-import.js +16 -6
  75. package/dist/discovery/sandbox/bundle.d.ts.map +1 -1
  76. package/dist/discovery/sandbox/bundle.js +6 -0
  77. package/dist/discovery/specifier-resolve.d.ts.map +1 -1
  78. package/dist/discovery/specifier-resolve.js +8 -2
  79. package/dist/fold/fold.d.ts.map +1 -1
  80. package/dist/fold/fold.js +68 -1
  81. package/dist/fold/subset.d.ts +37 -0
  82. package/dist/fold/subset.d.ts.map +1 -1
  83. package/dist/fold/subset.js +88 -0
  84. package/dist/lexicon-module.d.ts +10 -0
  85. package/dist/lexicon-module.d.ts.map +1 -1
  86. package/dist/lexicon-module.js +53 -8
  87. package/dist/lexicon-plugin-helpers.d.ts.map +1 -1
  88. package/dist/lexicon-plugin-helpers.js +6 -4
  89. package/dist/lexicon.d.ts +2 -0
  90. package/dist/lexicon.d.ts.map +1 -1
  91. package/dist/lifecycle/affected.d.ts.map +1 -1
  92. package/dist/lifecycle/affected.js +7 -1
  93. package/dist/lifecycle/release-ledger.d.ts +21 -0
  94. package/dist/lifecycle/release-ledger.d.ts.map +1 -1
  95. package/dist/lifecycle/release-ledger.js +24 -0
  96. package/dist/lifecycle/work-dir.d.ts +45 -0
  97. package/dist/lifecycle/work-dir.d.ts.map +1 -0
  98. package/dist/lifecycle/work-dir.js +78 -0
  99. package/dist/lint/discover.d.ts +17 -9
  100. package/dist/lint/discover.d.ts.map +1 -1
  101. package/dist/lint/discover.js +62 -54
  102. package/dist/module-source.d.ts +57 -0
  103. package/dist/module-source.d.ts.map +1 -0
  104. package/dist/module-source.js +104 -0
  105. package/dist/op/activities/factory.js +1 -1
  106. package/dist/op/discover.d.ts.map +1 -1
  107. package/dist/op/discover.js +13 -3
  108. package/dist/op/gate.d.ts.map +1 -1
  109. package/dist/op/gate.js +3 -0
  110. package/dist/op/local-executor.d.ts +12 -0
  111. package/dist/op/local-executor.d.ts.map +1 -1
  112. package/dist/op/local-executor.js +22 -3
  113. package/dist/op/op-waves-run.d.ts.map +1 -1
  114. package/dist/op/op-waves-run.js +20 -5
  115. package/dist/op/operator.d.ts +2 -2
  116. package/dist/op/operator.js +2 -2
  117. package/dist/op/redact.d.ts +34 -0
  118. package/dist/op/redact.d.ts.map +1 -0
  119. package/dist/op/redact.js +94 -0
  120. package/dist/op/step-console.d.ts +2 -0
  121. package/dist/op/step-console.d.ts.map +1 -1
  122. package/dist/op/step-console.js +5 -2
  123. package/dist/op/steward.d.ts +6 -4
  124. package/dist/op/steward.d.ts.map +1 -1
  125. package/dist/op/steward.js +5 -3
  126. package/dist/op/work-lease-run.d.ts +20 -7
  127. package/dist/op/work-lease-run.d.ts.map +1 -1
  128. package/dist/op/work-lease-run.js +56 -12
  129. package/dist/pr-forge.d.ts +27 -0
  130. package/dist/pr-forge.d.ts.map +1 -1
  131. package/dist/pr-forge.js +51 -6
  132. package/dist/pr-loop.d.ts +141 -4
  133. package/dist/pr-loop.d.ts.map +1 -1
  134. package/dist/pr-loop.js +122 -6
  135. package/dist/pr-report-url.d.ts +10 -2
  136. package/dist/pr-report-url.d.ts.map +1 -1
  137. package/dist/pr-report-url.js +52 -6
  138. package/dist/ts-loader.d.ts +38 -4
  139. package/dist/ts-loader.d.ts.map +1 -1
  140. package/dist/ts-loader.js +190 -16
  141. package/dist/wave-runtime.mjs +208 -208
  142. package/dist/workspace/chant-migrations/fountain-retired-kinds.d.ts +34 -0
  143. package/dist/workspace/chant-migrations/fountain-retired-kinds.d.ts.map +1 -0
  144. package/dist/workspace/chant-migrations/fountain-retired-kinds.js +176 -0
  145. package/dist/workspace/chant-migrations.d.ts.map +1 -1
  146. package/dist/workspace/chant-migrations.js +2 -0
  147. package/dist/workspace/checks/boxes.d.ts +6 -6
  148. package/dist/workspace/checks/boxes.js +9 -9
  149. package/dist/workspace/ci-green-forge.d.ts +6 -4
  150. package/dist/workspace/ci-green-forge.d.ts.map +1 -1
  151. package/dist/workspace/ci-green.d.ts +28 -12
  152. package/dist/workspace/ci-green.d.ts.map +1 -1
  153. package/dist/workspace/ci-green.js +49 -21
  154. package/dist/workspace/ci-list.schema.json +12 -6
  155. package/dist/workspace/ci-report-url.d.ts +18 -0
  156. package/dist/workspace/ci-report-url.d.ts.map +1 -0
  157. package/dist/workspace/ci-report-url.js +33 -0
  158. package/dist/workspace/ci-run-index.d.ts +108 -0
  159. package/dist/workspace/ci-run-index.d.ts.map +1 -0
  160. package/dist/workspace/ci-run-index.js +164 -0
  161. package/dist/workspace/ci-run-index.schema.json +52 -0
  162. package/dist/workspace/ci-run.d.ts +159 -9
  163. package/dist/workspace/ci-run.d.ts.map +1 -1
  164. package/dist/workspace/ci-run.js +419 -50
  165. package/dist/workspace/ci-runner-key.d.ts +133 -0
  166. package/dist/workspace/ci-runner-key.d.ts.map +1 -0
  167. package/dist/workspace/ci-runner-key.js +237 -0
  168. package/dist/workspace/ci-secrets.d.ts +65 -0
  169. package/dist/workspace/ci-secrets.d.ts.map +1 -0
  170. package/dist/workspace/ci-secrets.js +211 -0
  171. package/dist/workspace/ci-serve.d.ts +67 -4
  172. package/dist/workspace/ci-serve.d.ts.map +1 -1
  173. package/dist/workspace/ci-serve.js +240 -35
  174. package/dist/workspace/declaration.d.ts +8 -0
  175. package/dist/workspace/declaration.d.ts.map +1 -1
  176. package/dist/workspace/declaration.js +11 -2
  177. package/dist/workspace/declaration.schema.json +7 -2
  178. package/dist/workspace/export.d.ts +1 -1
  179. package/dist/workspace/export.d.ts.map +1 -1
  180. package/dist/workspace/export.js +7 -3
  181. package/dist/workspace/ls.d.ts +6 -1
  182. package/dist/workspace/ls.d.ts.map +1 -1
  183. package/dist/workspace/ls.js +1 -0
  184. package/dist/workspace/ls.schema.json +7 -1
  185. package/dist/workspace/pin-integrity.d.ts.map +1 -1
  186. package/dist/workspace/pin-integrity.js +3 -2
  187. package/dist/workspace/pr-report.schema.json +74 -7
  188. package/dist/workspace/reason-codes.d.ts +7 -3
  189. package/dist/workspace/reason-codes.d.ts.map +1 -1
  190. package/dist/workspace/reason-codes.js +9 -4
  191. package/dist/workspace/run-event.schema.json +3 -1
  192. package/dist/workspace/status.schema.json +3 -1
  193. package/dist/workspace/trust/trust-write.d.ts +109 -0
  194. package/dist/workspace/trust/trust-write.d.ts.map +1 -0
  195. package/dist/workspace/trust/trust-write.js +320 -0
  196. package/dist/workspace/trust-write.schema.json +265 -0
  197. package/dist/workspace/write-scope.d.ts +9 -0
  198. package/dist/workspace/write-scope.d.ts.map +1 -1
  199. package/dist/workspace/write-scope.js +11 -1
  200. package/package.json +1 -1
  201. package/src/__fixtures__/pr-loop/pr-apply-wave-waiting.note.golden.md +48 -0
  202. package/src/cli/commands/__fixtures__/init-lexicon-output/package.json +3 -3
  203. package/src/cli/commands/audit.test.ts +2 -2
  204. package/src/cli/commands/check-lexicon-plugin.test.ts +9 -0
  205. package/src/cli/commands/check-lexicon-plugin.ts +11 -8
  206. package/src/cli/commands/check-lexicon.test.ts +1 -1
  207. package/src/cli/commands/check-lexicon.ts +16 -11
  208. package/src/cli/commands/import.ts +40 -0
  209. package/src/cli/commands/init-lexicon/templates/project.ts +4 -3
  210. package/src/cli/commands/init-lexicon.test.ts +8 -5
  211. package/src/cli/commands/onboard.test.ts +45 -0
  212. package/src/cli/commands/onboard.ts +8 -4
  213. package/src/cli/commands/update.test.ts +6 -0
  214. package/src/cli/commands/update.ts +4 -1
  215. package/src/cli/compiled-cli.e2e.test.ts +76 -11
  216. package/src/cli/dependencies.e2e.test.ts +101 -0
  217. package/src/cli/dependencies.test.ts +93 -0
  218. package/src/cli/dependencies.ts +122 -0
  219. package/src/cli/handlers/build.test.ts +69 -0
  220. package/src/cli/handlers/build.ts +20 -4
  221. package/src/cli/handlers/fan-out.test.ts +73 -0
  222. package/src/cli/handlers/fan-out.ts +11 -4
  223. package/src/cli/handlers/graph.test.ts +76 -0
  224. package/src/cli/handlers/graph.ts +19 -12
  225. package/src/cli/handlers/lint.test.ts +42 -0
  226. package/src/cli/handlers/lint.ts +6 -0
  227. package/src/cli/handlers/operator.ts +3 -3
  228. package/src/cli/handlers/pr-waves.test.ts +449 -0
  229. package/src/cli/handlers/pr.test.ts +134 -0
  230. package/src/cli/handlers/pr.ts +523 -31
  231. package/src/cli/handlers/promote.test.ts +26 -1
  232. package/src/cli/handlers/promote.ts +3 -2
  233. package/src/cli/handlers/run-components-exit.test.ts +99 -0
  234. package/src/cli/handlers/run-signer.test.ts +79 -0
  235. package/src/cli/handlers/run.ts +34 -16
  236. package/src/cli/main.test.ts +19 -0
  237. package/src/cli/main.ts +73 -12
  238. package/src/cli/parse-args.ts +48 -0
  239. package/src/cli/registry.ts +35 -4
  240. package/src/codegen/generate-post-synth-barrel.ts +2 -2
  241. package/src/codegen/lexicon-regen.ts +1 -1
  242. package/src/codegen/pinned-upgrade.ts +2 -2
  243. package/src/codegen/post-synth-barrel-guards.test.ts +6 -11
  244. package/src/components/capability.ts +51 -3
  245. package/src/components/changed-files.test.ts +16 -1
  246. package/src/components/changed-files.ts +9 -1
  247. package/src/components/driver.test.ts +36 -1
  248. package/src/components/driver.ts +76 -4
  249. package/src/components/fan-out-record.ts +29 -1
  250. package/src/components/fan-out-run.test.ts +35 -0
  251. package/src/components/fan-out-run.ts +40 -1
  252. package/src/components/pr-pipeline.test.ts +100 -0
  253. package/src/components/pr-pipeline.ts +132 -17
  254. package/src/components/pr-run.test.ts +323 -18
  255. package/src/components/pr-run.ts +354 -75
  256. package/src/components/wave-plan.ts +16 -4
  257. package/src/discovery/fold-host-method.test.ts +87 -0
  258. package/src/discovery/fold-import.ts +15 -5
  259. package/src/discovery/fold-package-composite.test.ts +27 -0
  260. package/src/discovery/fold-specifiers.test.ts +8 -0
  261. package/src/discovery/sandbox/bundle.ts +6 -0
  262. package/src/discovery/specifier-resolve.ts +8 -2
  263. package/src/fold/fold.test.ts +72 -0
  264. package/src/fold/fold.ts +71 -0
  265. package/src/fold/subset.test.ts +31 -0
  266. package/src/fold/subset.ts +99 -0
  267. package/src/lexicon-dist.e2e.test.ts +254 -0
  268. package/src/lexicon-module.test.ts +47 -0
  269. package/src/lexicon-module.ts +49 -7
  270. package/src/lexicon-plugin-helpers.ts +6 -4
  271. package/src/lexicon.ts +2 -0
  272. package/src/lifecycle/affected.test.ts +7 -0
  273. package/src/lifecycle/affected.ts +6 -1
  274. package/src/lifecycle/release-ledger.ts +34 -0
  275. package/src/lifecycle/work-dir.test.ts +77 -0
  276. package/src/lifecycle/work-dir.ts +82 -0
  277. package/src/lint/discover.test.ts +46 -2
  278. package/src/lint/discover.ts +55 -49
  279. package/src/module-source.test.ts +85 -0
  280. package/src/module-source.ts +112 -0
  281. package/src/op/activities/factory.ts +1 -1
  282. package/src/op/discover-root.test.ts +31 -2
  283. package/src/op/discover.ts +14 -4
  284. package/src/op/gate.test.ts +30 -0
  285. package/src/op/gate.ts +3 -0
  286. package/src/op/local-executor.ts +31 -3
  287. package/src/op/op-waves-run.ts +20 -5
  288. package/src/op/op-waves.test.ts +49 -0
  289. package/src/op/operator.ts +2 -2
  290. package/src/op/redact.ts +93 -0
  291. package/src/op/step-console.ts +7 -2
  292. package/src/op/steward.ts +6 -4
  293. package/src/op/work-lease-run.test.ts +88 -2
  294. package/src/op/work-lease-run.ts +52 -12
  295. package/src/pr-forge-bundle.test.ts +2 -2
  296. package/src/pr-forge.test.ts +71 -0
  297. package/src/pr-forge.ts +70 -6
  298. package/src/pr-loop-bundle.test.ts +2 -1
  299. package/src/pr-loop.test.ts +117 -1
  300. package/src/pr-loop.ts +252 -10
  301. package/src/pr-report-url.ts +58 -6
  302. package/src/terraform/__fixtures__/advise.test.ts +21 -2
  303. package/src/ts-loader.test.ts +89 -1
  304. package/src/ts-loader.ts +180 -13
  305. package/src/workspace/changes.test.ts +1 -1
  306. package/src/workspace/chant-migrations/fountain-retired-kinds.test.ts +33 -0
  307. package/src/workspace/chant-migrations/fountain-retired-kinds.ts +190 -0
  308. package/src/workspace/chant-migrations.e2e.test.ts +5 -0
  309. package/src/workspace/chant-migrations.ts +2 -0
  310. package/src/workspace/checks/boxes.ts +9 -9
  311. package/src/workspace/ci-green-forge.ts +6 -4
  312. package/src/workspace/ci-green-runs.test.ts +53 -11
  313. package/src/workspace/ci-green.test.ts +1 -1
  314. package/src/workspace/ci-green.ts +50 -22
  315. package/src/workspace/ci-list.schema.json +12 -6
  316. package/src/workspace/ci-report-url.test.ts +220 -0
  317. package/src/workspace/ci-report-url.ts +33 -0
  318. package/src/workspace/ci-run-index.schema.json +52 -0
  319. package/src/workspace/ci-run-index.test.ts +392 -0
  320. package/src/workspace/ci-run-index.ts +206 -0
  321. package/src/workspace/ci-run.test.ts +520 -42
  322. package/src/workspace/ci-run.ts +483 -51
  323. package/src/workspace/ci-runner-key.test.ts +204 -0
  324. package/src/workspace/ci-runner-key.ts +275 -0
  325. package/src/workspace/ci-secrets.test.ts +106 -0
  326. package/src/workspace/ci-secrets.ts +213 -0
  327. package/src/workspace/ci-serve.test.ts +282 -39
  328. package/src/workspace/ci-serve.ts +231 -34
  329. package/src/workspace/declaration.schema.json +7 -2
  330. package/src/workspace/declaration.test.ts +23 -0
  331. package/src/workspace/declaration.ts +19 -3
  332. package/src/workspace/export.ts +6 -3
  333. package/src/workspace/ls.schema.json +7 -1
  334. package/src/workspace/ls.ts +7 -2
  335. package/src/workspace/pin-integrity.test.ts +5 -0
  336. package/src/workspace/pin-integrity.ts +3 -2
  337. package/src/workspace/pr-report.schema.json +74 -7
  338. package/src/workspace/reason-codes.test.ts +2 -0
  339. package/src/workspace/reason-codes.ts +9 -4
  340. package/src/workspace/run-event.schema.json +3 -1
  341. package/src/workspace/status.schema.json +3 -1
  342. package/src/workspace/trust/trust-write.test.ts +179 -0
  343. package/src/workspace/trust/trust-write.ts +377 -0
  344. package/src/workspace/trust-write.schema.json +265 -0
  345. package/src/workspace/write-scope.test.ts +29 -1
  346. package/src/workspace/write-scope.ts +12 -1
@@ -0,0 +1,265 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://intentius.io/chant/schemas/workspace/trust-write/v1/trust-write.schema.json",
4
+ "title": "chant workspace trust runner add|remove output",
5
+ "description": "What `chant workspace trust runner add <principal> --key <key>` and `trust runner remove <principal>` print (#3510): the runner entry before and after the write, the digest of .chant/trust.json after it, or the reason it wrote nothing. Each write edits .chant/trust.json in the working tree in place and never commits. Readers ignore fields they do not know; a field is only ever added within a version. The error codes are a closed list, each in the one closed list of `reason-codes.ts`. Contract version 1 of this document is written by chant 0.124.31 and newer.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "#/$defs/result"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/failure"
12
+ }
13
+ ],
14
+ "$defs": {
15
+ "runner": {
16
+ "type": "object",
17
+ "required": [
18
+ "principal",
19
+ "class",
20
+ "key"
21
+ ],
22
+ "additionalProperties": false,
23
+ "properties": {
24
+ "principal": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "class": {
29
+ "enum": [
30
+ "runner",
31
+ "service"
32
+ ]
33
+ },
34
+ "key": {
35
+ "type": "string",
36
+ "pattern": "^ssh-ed25519 [A-Za-z0-9+/]+={0,2}$",
37
+ "description": "The runner's public key, as an ssh-ed25519 line with no comment."
38
+ }
39
+ }
40
+ },
41
+ "digest": {
42
+ "type": "string",
43
+ "pattern": "^[0-9a-f]{64}$",
44
+ "description": "A SHA-256 of the file's bytes, in lowercase hex. A file that is not there has the digest of empty text."
45
+ },
46
+ "result": {
47
+ "description": "The entry was written, or would be with --dry-run, or the file already held it (changed false). Exit code 0.",
48
+ "type": "object",
49
+ "required": [
50
+ "$schema",
51
+ "contract",
52
+ "chant",
53
+ "action",
54
+ "name",
55
+ "path",
56
+ "digest",
57
+ "previousDigest",
58
+ "paths",
59
+ "changed",
60
+ "dryRun",
61
+ "previous",
62
+ "entry",
63
+ "runnerRole"
64
+ ],
65
+ "properties": {
66
+ "$schema": {
67
+ "const": "https://intentius.io/chant/schemas/workspace/trust-write/v1/trust-write.schema.json"
68
+ },
69
+ "contract": {
70
+ "const": 1
71
+ },
72
+ "chant": {
73
+ "type": "string",
74
+ "description": "The chant that wrote it."
75
+ },
76
+ "action": {
77
+ "enum": [
78
+ "runner add",
79
+ "runner remove"
80
+ ]
81
+ },
82
+ "name": {
83
+ "type": "string",
84
+ "description": "The runner's principal."
85
+ },
86
+ "path": {
87
+ "const": ".chant/trust.json",
88
+ "description": "The trust config, relative to the repository root."
89
+ },
90
+ "digest": {
91
+ "$ref": "#/$defs/digest",
92
+ "description": "The file's digest after the write, or as it would be with --dry-run: what the caller passes as --expect to its next trust write."
93
+ },
94
+ "previousDigest": {
95
+ "$ref": "#/$defs/digest",
96
+ "description": "The file's digest before the write."
97
+ },
98
+ "paths": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "string"
102
+ },
103
+ "description": "The trust config when the write changed it or would with --dry-run; empty when it already held what was given."
104
+ },
105
+ "changed": {
106
+ "type": "boolean",
107
+ "description": "Whether the file changed: paths is not empty."
108
+ },
109
+ "dryRun": {
110
+ "type": "boolean",
111
+ "description": "True when --dry-run was given: nothing was written, and the document says what would have been."
112
+ },
113
+ "previous": {
114
+ "oneOf": [
115
+ {
116
+ "type": "null"
117
+ },
118
+ {
119
+ "$ref": "#/$defs/runner"
120
+ }
121
+ ],
122
+ "description": "The principal's runner entry before the write, or null when there was none."
123
+ },
124
+ "entry": {
125
+ "oneOf": [
126
+ {
127
+ "type": "null"
128
+ },
129
+ {
130
+ "$ref": "#/$defs/runner"
131
+ }
132
+ ],
133
+ "description": "The principal's runner entry after the write, or null after runner remove."
134
+ },
135
+ "runnerRole": {
136
+ "type": "boolean",
137
+ "description": "Whether the principal holds the runner role after the write. runner add grants it for class runner; runner remove takes it away."
138
+ }
139
+ }
140
+ },
141
+ "failure": {
142
+ "type": "object",
143
+ "description": "Nothing was written. Exit code 1.",
144
+ "required": [
145
+ "$schema",
146
+ "contract",
147
+ "chant",
148
+ "action",
149
+ "name",
150
+ "error"
151
+ ],
152
+ "properties": {
153
+ "$schema": {
154
+ "const": "https://intentius.io/chant/schemas/workspace/trust-write/v1/trust-write.schema.json"
155
+ },
156
+ "contract": {
157
+ "const": 1
158
+ },
159
+ "chant": {
160
+ "type": "string"
161
+ },
162
+ "action": {
163
+ "enum": [
164
+ "runner add",
165
+ "runner remove"
166
+ ]
167
+ },
168
+ "name": {
169
+ "type": [
170
+ "string",
171
+ "null"
172
+ ]
173
+ },
174
+ "error": {
175
+ "type": "object",
176
+ "required": [
177
+ "code",
178
+ "message"
179
+ ],
180
+ "properties": {
181
+ "code": {
182
+ "enum": [
183
+ "not-a-git-repository",
184
+ "write-usage-invalid",
185
+ "trust-config-invalid",
186
+ "trust-conflict",
187
+ "runner-key-invalid",
188
+ "runner-key-is-signer",
189
+ "runner-exists",
190
+ "runner-unknown",
191
+ "write-scope-member",
192
+ "write-scope-protected",
193
+ "write-scope-class-unknown",
194
+ "agent-unknown",
195
+ "principal-unidentified",
196
+ "write-lock-timeout",
197
+ "write-lock-not-held"
198
+ ]
199
+ },
200
+ "message": {
201
+ "type": "string"
202
+ }
203
+ }
204
+ },
205
+ "conflict": {
206
+ "type": "object",
207
+ "description": "With trust-conflict: the digest --expect named, the one the file has now, and its last chant write when the write journal knows it.",
208
+ "required": [
209
+ "path",
210
+ "expected",
211
+ "digest",
212
+ "lastWrite"
213
+ ],
214
+ "properties": {
215
+ "path": {
216
+ "type": "string"
217
+ },
218
+ "expected": {
219
+ "$ref": "#/$defs/digest"
220
+ },
221
+ "digest": {
222
+ "$ref": "#/$defs/digest"
223
+ },
224
+ "lastWrite": {
225
+ "oneOf": [
226
+ {
227
+ "type": "null"
228
+ },
229
+ {
230
+ "type": "object",
231
+ "required": [
232
+ "verb",
233
+ "by",
234
+ "agent",
235
+ "at"
236
+ ],
237
+ "properties": {
238
+ "verb": {
239
+ "type": "string"
240
+ },
241
+ "by": {
242
+ "type": [
243
+ "string",
244
+ "null"
245
+ ]
246
+ },
247
+ "agent": {
248
+ "type": [
249
+ "string",
250
+ "null"
251
+ ]
252
+ },
253
+ "at": {
254
+ "type": "string"
255
+ }
256
+ }
257
+ }
258
+ ]
259
+ }
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
@@ -144,6 +144,15 @@ export interface PathChange {
144
144
  before(): string | null;
145
145
  after(): string | null;
146
146
  }
147
+ /**
148
+ * The factory Op's check log, `.chant/factory/<item>/check.log` (#3512). The
149
+ * Check step writes it in the worktree (`../op/activities/factory.ts`,
150
+ * `factoryCheck`), attaches it as each criterion's evidence, and Record
151
+ * commits it with the build under the builder's Chant-Agent. It is chant's own
152
+ * output and in no member, so an agent's member scope would flag every build
153
+ * commit. The member check passes over it; a protected entry still covers it.
154
+ */
155
+ export declare const FACTORY_CHECK_LOG: RegExp;
147
156
  /**
148
157
  * Whether `writer` may write the file at `path`, from the workspace root:
149
158
  * the path is in a member the writer may write, and no protected entry of
@@ -1 +1 @@
1
- {"version":3,"file":"write-scope.d.ts","sourceRoot":"","sources":["../../src/workspace/write-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-scope.d.ts","sourceRoot":"","sources":["../../src/workspace/write-scope.ts"],"names":[],"mappings":"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"}
@@ -243,6 +243,15 @@ export function onlyKeysChanged(before, after, except) {
243
243
  const b = strip(after);
244
244
  return a !== null && b !== null && isDeepStrictEqual(a, b);
245
245
  }
246
+ /**
247
+ * The factory Op's check log, `.chant/factory/<item>/check.log` (#3512). The
248
+ * Check step writes it in the worktree (`../op/activities/factory.ts`,
249
+ * `factoryCheck`), attaches it as each criterion's evidence, and Record
250
+ * commits it with the build under the builder's Chant-Agent. It is chant's own
251
+ * output and in no member, so an agent's member scope would flag every build
252
+ * commit. The member check passes over it; a protected entry still covers it.
253
+ */
254
+ export const FACTORY_CHECK_LOG = /^\.chant\/factory\/[^/]+\/check\.log$/;
246
255
  /**
247
256
  * Whether `writer` may write the file at `path`, from the workspace root:
248
257
  * the path is in a member the writer may write, and no protected entry of
@@ -255,7 +264,8 @@ export function judgePath(declaration, writer, path, change) {
255
264
  if (scope === null)
256
265
  return OK;
257
266
  const member = memberHolding(path, declaration?.members ?? []);
258
- if (!memberAllowed(writer, scope, member)) {
267
+ const chantOutput = member === null && FACTORY_CHECK_LOG.test(path);
268
+ if (!chantOutput && !memberAllowed(writer, scope, member)) {
259
269
  const where = member === null ? "is in no member" : `is in member ${member}`;
260
270
  return {
261
271
  ok: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant",
3
- "version": "0.124.30",
3
+ "version": "0.124.32",
4
4
  "description": "Declarative infrastructure-as-code toolkit — TypeScript on Node.js",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -0,0 +1,48 @@
1
+ <!-- chant-pr:prod -->
2
+ ### chant apply for `prod`
3
+
4
+ Wave 2 waits at its gate `release-wave-2`; nothing in it applied. Head `222222222222`, measured from `111111111111`.
5
+
6
+ > Wave 2 was planned after the waves before it applied, and the pull request's approved plan does not cover it.
7
+
8
+ | Member | Component | Status | Create | Update | Replace | Delete |
9
+ |---|---|---|---:|---:|---:|---:|
10
+ | `a` | a | applied | 0 | 1 | 0 | 0 |
11
+ | `app` | app | planned | 0 | 0 | 0 | 0 |
12
+
13
+ | Wave | Components | Status | Approval |
14
+ |---:|---|---|---|
15
+ | 1 | `a` | applied | the pull request's `pr-apply` by `github:alice` |
16
+ | 2 | `app` | waiting | its own `release-wave-2`, not approved yet |
17
+
18
+ Wave 2 was planned after the waves before it applied, and the approved plan does not cover it:
19
+
20
+ - app now writes app.main.cidr to a different value than the approved plan
21
+
22
+ Read wave 2's plan, `jcs1-sha256:0000000000000000000000000000000000000000000000000000000000000007`, and approve it with:
23
+
24
+ ```
25
+ chant approve pr-12 release-wave-2 --plan jcs1-sha256:0000000000000000000000000000000000000000000000000000000000000007 --approver github:<your-login> --sign
26
+ ```
27
+
28
+ Then run the wave's apply job again.
29
+
30
+ Plan digest: `jcs1-sha256:7623a8677afb0bf98d77c602521a3abfa96f76cff25675d350a28c2e26a7bad0`
31
+
32
+ Approved by `github:alice` for this digest.
33
+
34
+ ### Plan summary
35
+
36
+ 2 members: 2 groups, 0 destroys or replacements.
37
+
38
+ #### Group e84467713bf6: 1 member (outlier), change
39
+
40
+ ```
41
+ ~ terraform_data.subnet: input
42
+ ```
43
+
44
+ Members: `a`
45
+
46
+ #### Group 49648f9475c7: 1 member (outlier), no changes
47
+
48
+ Members: `app`
@@ -11,12 +11,12 @@
11
11
  ".": {
12
12
  "development": "./src/index.ts",
13
13
  "types": "./dist/index.d.ts",
14
- "default": "./src/index.ts"
14
+ "default": "./dist/index.js"
15
15
  },
16
16
  "./*": {
17
17
  "development": "./src/*.ts",
18
18
  "types": "./dist/*.d.ts",
19
- "default": "./src/*.ts"
19
+ "default": "./dist/*.js"
20
20
  },
21
21
  "./manifest": "./dist/manifest.json",
22
22
  "./meta": "./dist/meta.json",
@@ -26,7 +26,7 @@
26
26
  "generate": "npx tsx src/codegen/generate-cli.ts",
27
27
  "validate": "npx tsx src/validate-cli.ts",
28
28
  "docs": "npx tsx src/codegen/docs-cli.ts",
29
- "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && find dist -type f \\( -name \"*.js\" -o -name \"*.js.map\" \\) -delete",
29
+ "build": "tsc -p tsconfig.build.json --sourceMap false && tsc-alias -p tsconfig.build.json",
30
30
  "prepack": "npm run generate && npm run bundle && npm run validate && npm run build",
31
31
  "bundle": "tsx src/package-cli.ts"
32
32
  },
@@ -153,13 +153,13 @@ describe("auditCommand", () => {
153
153
  const envelope = JSON.parse(json.output) as { findings: Array<{ checkId: string; authority: Array<{ url: string }>; severity: string }> };
154
154
  const ftn11 = envelope.findings.find((f) => f.checkId === "FTN011")!;
155
155
  expect(ftn11.authority.length).toBeGreaterThan(0);
156
- expect(ftn11.authority[0].url).toContain("fountain");
156
+ expect(ftn11.authority[0].url).toContain("managoat");
157
157
  expect(envelope.findings.find((f) => f.checkId === "FTN012")!.severity).toBe("error");
158
158
 
159
159
  const sarif = await auditCommand({ path: repo, format: "sarif" });
160
160
  const run = (JSON.parse(sarif.output) as { runs: Array<{ tool: { driver: { rules: Array<{ id: string; helpUri?: string }> } }; results: Array<{ ruleId: string }> }> }).runs[0];
161
161
  expect(run.results.some((r) => r.ruleId === "FTN011")).toBe(true);
162
- expect(run.tool.driver.rules.find((r) => r.id === "FTN011")!.helpUri).toContain("fountain");
162
+ expect(run.tool.driver.rules.find((r) => r.id === "FTN011")!.helpUri).toContain("managoat");
163
163
 
164
164
  const md = await auditCommand({ path: repo, format: "markdown" });
165
165
  expect(md.output).toContain("FTN011");
@@ -55,6 +55,15 @@ describe("pluginEntryFor", () => {
55
55
  expect(pluginEntryFor(dir)).toBe(join(dir, "src/plugin.ts"));
56
56
  });
57
57
 
58
+ test("prefers the development source over the compiled default (#3981)", () => {
59
+ const dir = lexiconDir({
60
+ "package.json": JSON.stringify({ exports: { ".": { development: "./src/index.ts", default: "./dist/index.js" } } }),
61
+ "src/index.ts": "",
62
+ "dist/index.js": "",
63
+ });
64
+ expect(pluginEntryFor(dir)).toBe(join(dir, "src/index.ts"));
65
+ });
66
+
58
67
  test("skips a declared entry that does not exist", () => {
59
68
  const dir = lexiconDir({
60
69
  "package.json": JSON.stringify({ exports: { ".": { default: "./dist/index.js" } } }),
@@ -23,7 +23,7 @@ import { existsSync, readFileSync } from "fs";
23
23
  import { isAbsolute, join, resolve } from "path";
24
24
  import { pathToFileURL } from "url";
25
25
  import { isLexiconPlugin, type LexiconPlugin } from "../../lexicon";
26
- import { ensureTypeScriptLoader } from "../../ts-loader";
26
+ import { ensureTypeScriptLoaderFor } from "../../ts-loader";
27
27
  import { esModuleNamespace } from "../../module-interop";
28
28
 
29
29
  export interface LoadedLexicon {
@@ -36,20 +36,23 @@ export interface LoadedLexicon {
36
36
  }
37
37
 
38
38
  /**
39
- * The module a lexicon package presents to consumers.
39
+ * The module a lexicon package presents to consumers, as its source.
40
40
  *
41
- * Tier 1 requires `exports["."].default` to be `./src/index.ts`, so that is the
42
- * first choice — it is the module core itself imports. The fallbacks keep this
43
- * usable on a lexicon that has not reached that check yet.
41
+ * Tier 1 requires `exports["."].development` to be `./src/index.ts` and
42
+ * `default` to be its compiled `./dist/index.js` (#3981). The check reads the
43
+ * lexicon's source, so `development` is the first choice: a `dist/` may be
44
+ * missing or older than the source. `default` and `main` come next, and the
45
+ * conventional paths keep this usable on a lexicon that has not reached that
46
+ * check yet.
44
47
  */
45
48
  export function pluginEntryFor(dir: string): string | undefined {
46
49
  const candidates: string[] = [];
47
50
  try {
48
51
  const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf-8")) as {
49
- exports?: { "."?: { default?: string } };
52
+ exports?: { "."?: { development?: string; default?: string } };
50
53
  main?: string;
51
54
  };
52
- for (const declared of [pkg.exports?.["."]?.default, pkg.main]) {
55
+ for (const declared of [pkg.exports?.["."]?.development, pkg.exports?.["."]?.default, pkg.main]) {
53
56
  if (typeof declared === "string") candidates.push(declared);
54
57
  }
55
58
  } catch {
@@ -78,7 +81,7 @@ export async function loadLexiconFromDir(dir: string): Promise<LoadedLexicon> {
78
81
 
79
82
  let mod: Record<string, unknown>;
80
83
  try {
81
- ensureTypeScriptLoader();
84
+ ensureTypeScriptLoaderFor(entry);
82
85
  mod = esModuleNamespace((await import(pathToFileURL(entry).href)) as Record<string, unknown>);
83
86
  } catch (error) {
84
87
  return { entry, error: `import failed: ${error instanceof Error ? error.message : String(error)}` };
@@ -25,7 +25,7 @@ describe("checkLexicon", () => {
25
25
  expect(names).toContain("Registered intrinsics are exported by the package");
26
26
  expect(names).toContain("Registered intrinsics' isTag matches how they're authored");
27
27
  expect(names).toContain("dist/manifest.json declares a chantVersion");
28
- expect(names).toContain('package.json routes exports["."].default at ./src/index.ts and deletes emitted JS in build');
28
+ expect(names).toContain('package.json routes exports["."] development at ./src/index.ts and default at ./dist/index.js, and build keeps emitted JS');
29
29
  });
30
30
 
31
31
  test("gitlab's own reference() intrinsic passes both the export and isTag audits", async () => {
@@ -310,27 +310,32 @@ export async function checkLexicon(dir: string): Promise<CheckResult> {
310
310
  detail: chantVersionDetail,
311
311
  });
312
312
 
313
- // chant #1067 — packaging shape ("all 11 lexicons route exports['.'].default
314
- // at ./src/index.ts and delete emitted JS in build") was real but
315
- // unenforced; a lexicon shipping differently would break consumers
316
- // silently. Cheap structural check on package.json, not a build execution.
313
+ // chant #1067 — packaging shape, real but unenforced before: a lexicon
314
+ // shipping differently would break consumers silently. Cheap structural
315
+ // check on package.json, not a build execution. #3981 — lexicons ship
316
+ // compiled JS: `default` is ./dist/index.js, `development` stays on
317
+ // ./src/index.ts for the repository's tools, and the build keeps the JS tsc
318
+ // emits (it used to delete it).
317
319
  const packageJsonRaw = readOr(join(dir, "package.json"));
318
320
  let packagingOk = false;
319
321
  let packagingDetail: string | undefined;
320
322
  if (packageJsonRaw) {
321
323
  try {
322
324
  const pkg = JSON.parse(packageJsonRaw) as {
323
- exports?: { "."?: { default?: string } };
325
+ exports?: { "."?: { development?: string; default?: string } };
324
326
  scripts?: { build?: string };
325
327
  };
328
+ const developmentExport = pkg.exports?.["."]?.development;
326
329
  const defaultExport = pkg.exports?.["."]?.default;
327
330
  const buildScript = pkg.scripts?.build ?? "";
328
- const exportOk = defaultExport === "./src/index.ts";
329
- const deletesEmittedJs = /-delete/.test(buildScript) && /\.js/.test(buildScript);
330
- packagingOk = exportOk && deletesEmittedJs;
331
+ const developmentOk = developmentExport === "./src/index.ts";
332
+ const defaultOk = defaultExport === "./dist/index.js";
333
+ const keepsEmittedJs = /tsconfig\.build\.json/.test(buildScript) && !/-delete/.test(buildScript);
334
+ packagingOk = developmentOk && defaultOk && keepsEmittedJs;
331
335
  const problems: string[] = [];
332
- if (!exportOk) problems.push(`exports["."].default is ${JSON.stringify(defaultExport)}, expected "./src/index.ts"`);
333
- if (!deletesEmittedJs) problems.push(`build script doesn't delete emitted .js from dist/: ${JSON.stringify(buildScript)}`);
336
+ if (!developmentOk) problems.push(`exports["."].development is ${JSON.stringify(developmentExport)}, expected "./src/index.ts"`);
337
+ if (!defaultOk) problems.push(`exports["."].default is ${JSON.stringify(defaultExport)}, expected "./dist/index.js"`);
338
+ if (!keepsEmittedJs) problems.push(`build script must compile tsconfig.build.json and keep the emitted .js in dist/: ${JSON.stringify(buildScript)}`);
334
339
  packagingDetail = problems.length > 0 ? problems.join("; ") : undefined;
335
340
  } catch {
336
341
  packagingDetail = "package.json is not valid JSON";
@@ -339,7 +344,7 @@ export async function checkLexicon(dir: string): Promise<CheckResult> {
339
344
  packagingDetail = "package.json missing or unreadable";
340
345
  }
341
346
  items.push({
342
- name: 'package.json routes exports["."].default at ./src/index.ts and deletes emitted JS in build',
347
+ name: 'package.json routes exports["."] development at ./src/index.ts and default at ./dist/index.js, and build keeps emitted JS',
343
348
  tier: 1,
344
349
  pass: packagingOk,
345
350
  detail: packagingDetail,
@@ -520,6 +520,43 @@ async function parseWithEmbedded(
520
520
  return { irs: parses.map((parse) => parse({ embedded })), embedded };
521
521
  }
522
522
 
523
+ /**
524
+ * Build the source import wrote and name each error-severity post-synth
525
+ * finding that would stop `chant build` (#3605). The findings go through the
526
+ * same `lint.presets` and `lint.rules` filtering build applies, against the
527
+ * project config above `outputDir`, so a check the project turns off is not
528
+ * named. When the source does not build here (the lexicon is not installed
529
+ * beside it, or embedded content needs another lexicon's serializer), nothing
530
+ * is said: import reports what build would refuse, not why it cannot run.
531
+ */
532
+ export async function buildErrorWarnings(plugin: LexiconPlugin, outputDir: string): Promise<string[]> {
533
+ try {
534
+ const checks = plugin.postSynthChecks?.() ?? [];
535
+ if (checks.length === 0) return [];
536
+ const [{ build }, { runPostSynthChecks }, { applyConfiguredPreset, applyConfiguredSeverity, resolvePresetIds }, { loadChantConfigUpward }] =
537
+ await Promise.all([import("../../build"), import("../../lint/post-synth"), import("../../lint/config"), import("../../config")]);
538
+ const result = await build(outputDir, [plugin.serializer]);
539
+ if (result.errors.length > 0) return [];
540
+ const { config } = await loadChantConfigUpward(outputDir);
541
+ const rules = config.lint?.rules;
542
+ // As build.ts runLexiconPostSynthChecks does: the plugin sees its own output only.
543
+ const output = result.outputs.get(plugin.serializer.name);
544
+ const outputs = new Map(output === undefined ? [] : [[plugin.serializer.name, output]]);
545
+ const diagnostics = runPostSynthChecks(checks, { ...result, outputs });
546
+ const presetIds = resolvePresetIds(plugin.lintPresets?.(), config.lint?.presets?.[plugin.name] ?? "recommended");
547
+ const afterPreset = applyConfiguredPreset(diagnostics, presetIds, rules).diagnostics;
548
+ return applyConfiguredSeverity(afterPreset, rules)
549
+ .diagnostics.filter((diag) => diag.severity === "error")
550
+ .map(
551
+ (diag) =>
552
+ `${diag.checkId}: ${diag.message.replace(/\.$/, "")}. chant build stops on this error; ` +
553
+ `change the generated source, or set lint.rules.${diag.checkId} to "off" in chant.config.ts.`,
554
+ );
555
+ } catch {
556
+ return [];
557
+ }
558
+ }
559
+
523
560
  /** The shared tail of every template import: parse → generate → write. */
524
561
  async function parseAndWrite(
525
562
  plugin: LexiconPlugin,
@@ -615,6 +652,9 @@ async function parseAndWrite(
615
652
  generatedFiles.push(file.path);
616
653
  }
617
654
 
655
+ // What `chant build` will refuse, said now rather than at the first build (#3605).
656
+ warnings.push(...(await buildErrorWarnings(plugin, outputDir)));
657
+
618
658
  return {
619
659
  success: true,
620
660
  generatedFiles,
@@ -13,12 +13,12 @@ export function generatePackageJson(name: string, names: { packageName: string }
13
13
  ".": {
14
14
  development: "./src/index.ts",
15
15
  types: "./dist/index.d.ts",
16
- default: "./src/index.ts",
16
+ default: "./dist/index.js",
17
17
  },
18
18
  "./*": {
19
19
  development: "./src/*.ts",
20
20
  types: "./dist/*.d.ts",
21
- default: "./src/*.ts",
21
+ default: "./dist/*.js",
22
22
  },
23
23
  "./manifest": "./dist/manifest.json",
24
24
  "./meta": "./dist/meta.json",
@@ -28,7 +28,8 @@ export function generatePackageJson(name: string, names: { packageName: string }
28
28
  generate: "npx tsx src/codegen/generate-cli.ts",
29
29
  validate: "npx tsx src/validate-cli.ts",
30
30
  docs: "npx tsx src/codegen/docs-cli.ts",
31
- build: 'tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && find dist -type f \\( -name "*.js" -o -name "*.js.map" \\) -delete',
31
+ // #3981 — the package ships the compiled dist/*.js its exports' `default` names.
32
+ build: "tsc -p tsconfig.build.json --sourceMap false && tsc-alias -p tsconfig.build.json",
32
33
  prepack: "npm run generate && npm run bundle && npm run validate && npm run build",
33
34
  bundle: "tsx src/package-cli.ts",
34
35
  },