@lumenflow/core 4.24.0 → 5.0.1

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 (430) hide show
  1. package/dist/arg-parser.d.ts.map +1 -1
  2. package/dist/arg-parser.js +16 -0
  3. package/dist/arg-parser.js.map +1 -1
  4. package/dist/atomic-merge.d.ts.map +1 -1
  5. package/dist/atomic-merge.js +25 -18
  6. package/dist/atomic-merge.js.map +1 -1
  7. package/dist/client-ids.d.ts +1 -15
  8. package/dist/client-ids.d.ts.map +1 -1
  9. package/dist/client-ids.js +4 -13
  10. package/dist/client-ids.js.map +1 -1
  11. package/dist/code-path-validator.d.ts.map +1 -1
  12. package/dist/code-path-validator.js +6 -3
  13. package/dist/code-path-validator.js.map +1 -1
  14. package/dist/config-contract.d.ts +1 -30
  15. package/dist/config-contract.d.ts.map +1 -1
  16. package/dist/config-contract.js +4 -60
  17. package/dist/config-contract.js.map +1 -1
  18. package/dist/constants/backlog-patterns.d.ts +1 -20
  19. package/dist/constants/backlog-patterns.d.ts.map +1 -1
  20. package/dist/constants/backlog-patterns.js +2 -23
  21. package/dist/constants/backlog-patterns.js.map +1 -1
  22. package/dist/constants/duration-constants.d.ts +1 -28
  23. package/dist/constants/duration-constants.d.ts.map +1 -1
  24. package/dist/constants/duration-constants.js +4 -28
  25. package/dist/constants/duration-constants.js.map +1 -1
  26. package/dist/constants/gate-constants.d.ts +1 -23
  27. package/dist/constants/gate-constants.d.ts.map +1 -1
  28. package/dist/constants/gate-constants.js +4 -23
  29. package/dist/constants/gate-constants.js.map +1 -1
  30. package/dist/constants/lock-constants.d.ts +1 -28
  31. package/dist/constants/lock-constants.d.ts.map +1 -1
  32. package/dist/constants/lock-constants.js +2 -28
  33. package/dist/constants/lock-constants.js.map +1 -1
  34. package/dist/core/tool.schemas.d.ts +11 -11
  35. package/dist/core/worktree-guard.js +2 -2
  36. package/dist/core/worktree-guard.js.map +1 -1
  37. package/dist/cycle-detector.d.ts +4 -48
  38. package/dist/cycle-detector.d.ts.map +1 -1
  39. package/dist/cycle-detector.js +4 -78
  40. package/dist/cycle-detector.js.map +1 -1
  41. package/dist/date-utils.d.ts +1 -65
  42. package/dist/date-utils.d.ts.map +1 -1
  43. package/dist/date-utils.js +4 -140
  44. package/dist/date-utils.js.map +1 -1
  45. package/dist/delegation-monitor.d.ts +2 -0
  46. package/dist/delegation-monitor.d.ts.map +1 -1
  47. package/dist/delegation-monitor.js +29 -2
  48. package/dist/delegation-monitor.js.map +1 -1
  49. package/dist/delegation-recovery.d.ts +36 -17
  50. package/dist/delegation-recovery.d.ts.map +1 -1
  51. package/dist/delegation-recovery.js +285 -82
  52. package/dist/delegation-recovery.js.map +1 -1
  53. package/dist/delegation-registry-schema.d.ts +257 -31
  54. package/dist/delegation-registry-schema.d.ts.map +1 -1
  55. package/dist/delegation-registry-schema.js +43 -34
  56. package/dist/delegation-registry-schema.js.map +1 -1
  57. package/dist/delegation-registry-store.d.ts +4 -128
  58. package/dist/delegation-registry-store.d.ts.map +1 -1
  59. package/dist/delegation-registry-store.js +39 -178
  60. package/dist/delegation-registry-store.js.map +1 -1
  61. package/dist/delegation-tree.d.ts +12 -20
  62. package/dist/delegation-tree.d.ts.map +1 -1
  63. package/dist/delegation-tree.js +40 -29
  64. package/dist/delegation-tree.js.map +1 -1
  65. package/dist/delivery-review-contract.d.ts +1 -1
  66. package/dist/delivery-review-contract.d.ts.map +1 -1
  67. package/dist/docs-layout-presets.d.ts +1 -30
  68. package/dist/docs-layout-presets.d.ts.map +1 -1
  69. package/dist/docs-layout-presets.js +4 -38
  70. package/dist/docs-layout-presets.js.map +1 -1
  71. package/dist/domain/context.schemas.d.ts +3 -3
  72. package/dist/domain/orchestration.constants.d.ts +1 -110
  73. package/dist/domain/orchestration.constants.d.ts.map +1 -1
  74. package/dist/domain/orchestration.constants.js +2 -127
  75. package/dist/domain/orchestration.constants.js.map +1 -1
  76. package/dist/domain/orchestration.schemas.d.ts +1 -306
  77. package/dist/domain/orchestration.schemas.d.ts.map +1 -1
  78. package/dist/domain/orchestration.schemas.js +2 -211
  79. package/dist/domain/orchestration.schemas.js.map +1 -1
  80. package/dist/domain/orchestration.types.d.ts +1 -133
  81. package/dist/domain/orchestration.types.d.ts.map +1 -1
  82. package/dist/domain/orchestration.types.js +2 -2
  83. package/dist/domain/orchestration.types.js.map +1 -1
  84. package/dist/domain/recovery.schemas.d.ts +3 -3
  85. package/dist/domain/validation.schemas.d.ts +4 -4
  86. package/dist/error-handler.d.ts +4 -173
  87. package/dist/error-handler.d.ts.map +1 -1
  88. package/dist/error-handler.js +4 -244
  89. package/dist/error-handler.js.map +1 -1
  90. package/dist/file-classifiers.d.ts.map +1 -1
  91. package/dist/file-classifiers.js +26 -0
  92. package/dist/file-classifiers.js.map +1 -1
  93. package/dist/git-adapter.d.ts +4 -448
  94. package/dist/git-adapter.d.ts.map +1 -1
  95. package/dist/git-adapter.js +4 -772
  96. package/dist/git-adapter.js.map +1 -1
  97. package/dist/git-context-extractor.d.ts +4 -98
  98. package/dist/git-context-extractor.d.ts.map +1 -1
  99. package/dist/git-context-extractor.js +4 -563
  100. package/dist/git-context-extractor.js.map +1 -1
  101. package/dist/git-staged-validator.d.ts +4 -29
  102. package/dist/git-staged-validator.d.ts.map +1 -1
  103. package/dist/git-staged-validator.js +4 -46
  104. package/dist/git-staged-validator.js.map +1 -1
  105. package/dist/incremental-lint.d.ts.map +1 -1
  106. package/dist/incremental-lint.js +3 -2
  107. package/dist/incremental-lint.js.map +1 -1
  108. package/dist/incremental-test.d.ts +1 -32
  109. package/dist/incremental-test.d.ts.map +1 -1
  110. package/dist/incremental-test.js +4 -61
  111. package/dist/incremental-test.js.map +1 -1
  112. package/dist/index.d.ts +3 -2
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +10 -2
  115. package/dist/index.js.map +1 -1
  116. package/dist/integration-target.d.ts +30 -0
  117. package/dist/integration-target.d.ts.map +1 -0
  118. package/dist/integration-target.js +51 -0
  119. package/dist/integration-target.js.map +1 -0
  120. package/dist/lane-checker.d.ts.map +1 -1
  121. package/dist/lane-checker.js +8 -0
  122. package/dist/lane-checker.js.map +1 -1
  123. package/dist/lumenflow-config-schema.d.ts +73 -29
  124. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  125. package/dist/lumenflow-config-schema.js +1 -1
  126. package/dist/lumenflow-config-schema.js.map +1 -1
  127. package/dist/lumenflow-config.d.ts +10 -34
  128. package/dist/lumenflow-config.d.ts.map +1 -1
  129. package/dist/lumenflow-config.js +32 -142
  130. package/dist/lumenflow-config.js.map +1 -1
  131. package/dist/manual-test-validator.d.ts +1 -96
  132. package/dist/manual-test-validator.d.ts.map +1 -1
  133. package/dist/manual-test-validator.js +4 -245
  134. package/dist/manual-test-validator.js.map +1 -1
  135. package/dist/micro-worktree-shared.d.ts.map +1 -1
  136. package/dist/micro-worktree-shared.js +10 -9
  137. package/dist/micro-worktree-shared.js.map +1 -1
  138. package/dist/micro-worktree.d.ts.map +1 -1
  139. package/dist/micro-worktree.js +26 -23
  140. package/dist/micro-worktree.js.map +1 -1
  141. package/dist/normalize-config-keys.d.ts +1 -10
  142. package/dist/normalize-config-keys.d.ts.map +1 -1
  143. package/dist/normalize-config-keys.js +7 -73
  144. package/dist/normalize-config-keys.js.map +1 -1
  145. package/dist/object-guards.d.ts +1 -10
  146. package/dist/object-guards.d.ts.map +1 -1
  147. package/dist/object-guards.js +7 -20
  148. package/dist/object-guards.js.map +1 -1
  149. package/dist/ports/config.ports.d.ts +1 -82
  150. package/dist/ports/config.ports.d.ts.map +1 -1
  151. package/dist/ports/config.ports.js +2 -1
  152. package/dist/ports/config.ports.js.map +1 -1
  153. package/dist/ports/dashboard-renderer.port.d.ts +1 -112
  154. package/dist/ports/dashboard-renderer.port.d.ts.map +1 -1
  155. package/dist/ports/dashboard-renderer.port.js +2 -1
  156. package/dist/ports/dashboard-renderer.port.js.map +1 -1
  157. package/dist/ports/git-validator.ports.d.ts +5 -110
  158. package/dist/ports/git-validator.ports.d.ts.map +1 -1
  159. package/dist/ports/git-validator.ports.js +8 -1
  160. package/dist/ports/git-validator.ports.js.map +1 -1
  161. package/dist/ports/sync-validator.ports.d.ts +1 -51
  162. package/dist/ports/sync-validator.ports.d.ts.map +1 -1
  163. package/dist/ports/sync-validator.ports.js +2 -1
  164. package/dist/ports/sync-validator.ports.js.map +1 -1
  165. package/dist/ports/wu-helpers.ports.d.ts +1 -156
  166. package/dist/ports/wu-helpers.ports.d.ts.map +1 -1
  167. package/dist/ports/wu-helpers.ports.js +2 -1
  168. package/dist/ports/wu-helpers.ports.js.map +1 -1
  169. package/dist/ports/wu-state.ports.d.ts +1 -208
  170. package/dist/ports/wu-state.ports.d.ts.map +1 -1
  171. package/dist/ports/wu-state.ports.js +2 -1
  172. package/dist/ports/wu-state.ports.js.map +1 -1
  173. package/dist/rebase-artifact-cleanup.d.ts.map +1 -1
  174. package/dist/rebase-artifact-cleanup.js +6 -3
  175. package/dist/rebase-artifact-cleanup.js.map +1 -1
  176. package/dist/sandbox-allowlist.d.ts +1 -15
  177. package/dist/sandbox-allowlist.d.ts.map +1 -1
  178. package/dist/sandbox-allowlist.js +4 -74
  179. package/dist/sandbox-allowlist.js.map +1 -1
  180. package/dist/sandbox-backend-linux.d.ts +1 -5
  181. package/dist/sandbox-backend-linux.d.ts.map +1 -1
  182. package/dist/sandbox-backend-linux.js +4 -64
  183. package/dist/sandbox-backend-linux.js.map +1 -1
  184. package/dist/sandbox-backend-macos.d.ts +1 -5
  185. package/dist/sandbox-backend-macos.d.ts.map +1 -1
  186. package/dist/sandbox-backend-macos.js +4 -109
  187. package/dist/sandbox-backend-macos.js.map +1 -1
  188. package/dist/sandbox-backend-windows.d.ts +1 -5
  189. package/dist/sandbox-backend-windows.d.ts.map +1 -1
  190. package/dist/sandbox-backend-windows.js +4 -27
  191. package/dist/sandbox-backend-windows.js.map +1 -1
  192. package/dist/sandbox-profile.d.ts +1 -57
  193. package/dist/sandbox-profile.d.ts.map +1 -1
  194. package/dist/sandbox-profile.js +4 -65
  195. package/dist/sandbox-profile.js.map +1 -1
  196. package/dist/schemas/agents-config.d.ts +47 -0
  197. package/dist/schemas/agents-config.d.ts.map +1 -1
  198. package/dist/schemas/agents-config.js +59 -0
  199. package/dist/schemas/agents-config.js.map +1 -1
  200. package/dist/schemas/command-schemas.d.ts +4 -4
  201. package/dist/schemas/flow-arg-validators.d.ts +2 -2
  202. package/dist/schemas/flow-schemas.d.ts +4 -4
  203. package/dist/schemas/gates-section-config.d.ts +32 -13
  204. package/dist/schemas/gates-section-config.d.ts.map +1 -1
  205. package/dist/schemas/gates-section-config.js +16 -1
  206. package/dist/schemas/gates-section-config.js.map +1 -1
  207. package/dist/schemas/initiative-arg-validators.d.ts +2 -2
  208. package/dist/schemas/initiative-schemas.d.ts +12 -12
  209. package/dist/schemas/lanes-config.d.ts +5 -5
  210. package/dist/schemas/memory-arg-validators.d.ts +6 -0
  211. package/dist/schemas/memory-arg-validators.d.ts.map +1 -1
  212. package/dist/schemas/memory-config.d.ts +4 -4
  213. package/dist/schemas/memory-schemas.d.ts +12 -0
  214. package/dist/schemas/memory-schemas.d.ts.map +1 -1
  215. package/dist/schemas/memory-schemas.js +12 -0
  216. package/dist/schemas/memory-schemas.js.map +1 -1
  217. package/dist/schemas/operational-config.d.ts +4 -4
  218. package/dist/schemas/setup-arg-validators.d.ts +3 -3
  219. package/dist/schemas/setup-schemas.d.ts +8 -8
  220. package/dist/schemas/wu-config.d.ts +3 -3
  221. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -2
  222. package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -4
  223. package/dist/section-headings.d.ts +1 -34
  224. package/dist/section-headings.d.ts.map +1 -1
  225. package/dist/section-headings.js +2 -51
  226. package/dist/section-headings.js.map +1 -1
  227. package/dist/spawn-constraints-generator.js +3 -3
  228. package/dist/spawn-constraints-generator.js.map +1 -1
  229. package/dist/spawn-guidance-generators.d.ts +1 -1
  230. package/dist/spawn-guidance-generators.d.ts.map +1 -1
  231. package/dist/spawn-policy-resolver.d.ts +1 -1
  232. package/dist/spawn-policy-resolver.d.ts.map +1 -1
  233. package/dist/spawn-task-builder.d.ts +17 -1
  234. package/dist/spawn-task-builder.d.ts.map +1 -1
  235. package/dist/spawn-task-builder.js +63 -1
  236. package/dist/spawn-task-builder.js.map +1 -1
  237. package/dist/spawn-template-assembler.d.ts +1 -1
  238. package/dist/spawn-template-assembler.d.ts.map +1 -1
  239. package/dist/state-machine.d.ts +1 -9
  240. package/dist/state-machine.d.ts.map +1 -1
  241. package/dist/state-machine.js +2 -86
  242. package/dist/state-machine.js.map +1 -1
  243. package/dist/sync-validator.d.ts.map +1 -1
  244. package/dist/sync-validator.js +15 -12
  245. package/dist/sync-validator.js.map +1 -1
  246. package/dist/telemetry.d.ts.map +1 -1
  247. package/dist/telemetry.js +3 -2
  248. package/dist/telemetry.js.map +1 -1
  249. package/dist/work-classifier.d.ts +1 -102
  250. package/dist/work-classifier.d.ts.map +1 -1
  251. package/dist/work-classifier.js +2 -424
  252. package/dist/work-classifier.js.map +1 -1
  253. package/dist/worktree-symlink.d.ts +2 -2
  254. package/dist/worktree-symlink.d.ts.map +1 -1
  255. package/dist/worktree-symlink.js +37 -12
  256. package/dist/worktree-symlink.js.map +1 -1
  257. package/dist/wu-cli-constants.d.ts +1 -433
  258. package/dist/wu-cli-constants.d.ts.map +1 -1
  259. package/dist/wu-cli-constants.js +4 -436
  260. package/dist/wu-cli-constants.js.map +1 -1
  261. package/dist/wu-consistency-file-repairs.d.ts.map +1 -1
  262. package/dist/wu-consistency-file-repairs.js +5 -3
  263. package/dist/wu-consistency-file-repairs.js.map +1 -1
  264. package/dist/wu-context-constants.d.ts +22 -0
  265. package/dist/wu-context-constants.d.ts.map +1 -1
  266. package/dist/wu-context-constants.js +22 -0
  267. package/dist/wu-context-constants.js.map +1 -1
  268. package/dist/wu-doc-types.d.ts +1 -47
  269. package/dist/wu-doc-types.d.ts.map +1 -1
  270. package/dist/wu-domain-constants.d.ts +1 -295
  271. package/dist/wu-domain-constants.d.ts.map +1 -1
  272. package/dist/wu-domain-constants.js +4 -397
  273. package/dist/wu-domain-constants.js.map +1 -1
  274. package/dist/wu-done-branch-only.d.ts +1 -1
  275. package/dist/wu-done-branch-only.d.ts.map +1 -1
  276. package/dist/wu-done-branch-only.js +22 -13
  277. package/dist/wu-done-branch-only.js.map +1 -1
  278. package/dist/wu-done-branch-utils.d.ts.map +1 -1
  279. package/dist/wu-done-branch-utils.js +5 -3
  280. package/dist/wu-done-branch-utils.js.map +1 -1
  281. package/dist/wu-done-cleanup.d.ts.map +1 -1
  282. package/dist/wu-done-cleanup.js +66 -22
  283. package/dist/wu-done-cleanup.js.map +1 -1
  284. package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
  285. package/dist/wu-done-concurrent-merge.js +9 -6
  286. package/dist/wu-done-concurrent-merge.js.map +1 -1
  287. package/dist/wu-done-errors.d.ts +3 -3
  288. package/dist/wu-done-errors.d.ts.map +1 -1
  289. package/dist/wu-done-inputs.d.ts.map +1 -1
  290. package/dist/wu-done-inputs.js +3 -0
  291. package/dist/wu-done-inputs.js.map +1 -1
  292. package/dist/wu-done-merge-phase.d.ts.map +1 -1
  293. package/dist/wu-done-merge-phase.js +4 -2
  294. package/dist/wu-done-merge-phase.js.map +1 -1
  295. package/dist/wu-done-merge.d.ts.map +1 -1
  296. package/dist/wu-done-merge.js +16 -8
  297. package/dist/wu-done-merge.js.map +1 -1
  298. package/dist/wu-done-merged-worktree.d.ts.map +1 -1
  299. package/dist/wu-done-merged-worktree.js +7 -8
  300. package/dist/wu-done-merged-worktree.js.map +1 -1
  301. package/dist/wu-done-messages.d.ts.map +1 -1
  302. package/dist/wu-done-messages.js +12 -5
  303. package/dist/wu-done-messages.js.map +1 -1
  304. package/dist/wu-done-metadata.d.ts.map +1 -1
  305. package/dist/wu-done-metadata.js +3 -8
  306. package/dist/wu-done-metadata.js.map +1 -1
  307. package/dist/wu-done-preflight-checks.d.ts.map +1 -1
  308. package/dist/wu-done-preflight-checks.js +21 -15
  309. package/dist/wu-done-preflight-checks.js.map +1 -1
  310. package/dist/wu-done-rebase.d.ts.map +1 -1
  311. package/dist/wu-done-rebase.js +10 -8
  312. package/dist/wu-done-rebase.js.map +1 -1
  313. package/dist/wu-done-retry-helpers.d.ts.map +1 -1
  314. package/dist/wu-done-retry-helpers.js +13 -11
  315. package/dist/wu-done-retry-helpers.js.map +1 -1
  316. package/dist/wu-done-validation.d.ts.map +1 -1
  317. package/dist/wu-done-validation.js +4 -2
  318. package/dist/wu-done-validation.js.map +1 -1
  319. package/dist/wu-done-worktree-services.d.ts.map +1 -1
  320. package/dist/wu-done-worktree-services.js +4 -2
  321. package/dist/wu-done-worktree-services.js.map +1 -1
  322. package/dist/wu-done-worktree.d.ts.map +1 -1
  323. package/dist/wu-done-worktree.js +4 -2
  324. package/dist/wu-done-worktree.js.map +1 -1
  325. package/dist/wu-git-constants.d.ts +1 -175
  326. package/dist/wu-git-constants.d.ts.map +1 -1
  327. package/dist/wu-git-constants.js +4 -175
  328. package/dist/wu-git-constants.js.map +1 -1
  329. package/dist/wu-helpers.d.ts +24 -0
  330. package/dist/wu-helpers.d.ts.map +1 -1
  331. package/dist/wu-helpers.js +37 -4
  332. package/dist/wu-helpers.js.map +1 -1
  333. package/dist/wu-id-format.d.ts +1 -137
  334. package/dist/wu-id-format.d.ts.map +1 -1
  335. package/dist/wu-id-format.js +2 -249
  336. package/dist/wu-id-format.js.map +1 -1
  337. package/dist/wu-id-generator.d.ts.map +1 -1
  338. package/dist/wu-id-generator.js +8 -5
  339. package/dist/wu-id-generator.js.map +1 -1
  340. package/dist/wu-paths-constants.d.ts +1 -253
  341. package/dist/wu-paths-constants.d.ts.map +1 -1
  342. package/dist/wu-paths-constants.js +4 -273
  343. package/dist/wu-paths-constants.js.map +1 -1
  344. package/dist/wu-paths.d.ts +1 -274
  345. package/dist/wu-paths.d.ts.map +1 -1
  346. package/dist/wu-paths.js +4 -236
  347. package/dist/wu-paths.js.map +1 -1
  348. package/dist/wu-rules-resolvers.d.ts.map +1 -1
  349. package/dist/wu-rules-resolvers.js +11 -6
  350. package/dist/wu-rules-resolvers.js.map +1 -1
  351. package/dist/wu-schema.d.ts +1 -830
  352. package/dist/wu-schema.d.ts.map +1 -1
  353. package/dist/wu-schema.js +4 -929
  354. package/dist/wu-schema.js.map +1 -1
  355. package/dist/wu-spawn-helpers.d.ts.map +1 -1
  356. package/dist/wu-spawn-helpers.js +5 -2
  357. package/dist/wu-spawn-helpers.js.map +1 -1
  358. package/dist/wu-spawn.d.ts +2 -2
  359. package/dist/wu-spawn.d.ts.map +1 -1
  360. package/dist/wu-spawn.js +2 -2
  361. package/dist/wu-spawn.js.map +1 -1
  362. package/dist/wu-state-schema.d.ts +1 -291
  363. package/dist/wu-state-schema.d.ts.map +1 -1
  364. package/dist/wu-state-schema.js +4 -212
  365. package/dist/wu-state-schema.js.map +1 -1
  366. package/dist/wu-status-transition.d.ts +3 -1
  367. package/dist/wu-status-transition.d.ts.map +1 -1
  368. package/dist/wu-status-transition.js +9 -24
  369. package/dist/wu-status-transition.js.map +1 -1
  370. package/dist/wu-statuses.d.ts +1 -208
  371. package/dist/wu-statuses.d.ts.map +1 -1
  372. package/dist/wu-statuses.js +4 -242
  373. package/dist/wu-statuses.js.map +1 -1
  374. package/dist/wu-transaction-collectors.d.ts +1 -0
  375. package/dist/wu-transaction-collectors.d.ts.map +1 -1
  376. package/dist/wu-transaction-collectors.js +13 -8
  377. package/dist/wu-transaction-collectors.js.map +1 -1
  378. package/dist/wu-type-helpers.d.ts +1 -27
  379. package/dist/wu-type-helpers.d.ts.map +1 -1
  380. package/dist/wu-type-helpers.js +4 -46
  381. package/dist/wu-type-helpers.js.map +1 -1
  382. package/dist/wu-ui-constants.d.ts +1 -235
  383. package/dist/wu-ui-constants.d.ts.map +1 -1
  384. package/dist/wu-ui-constants.js +5 -235
  385. package/dist/wu-ui-constants.js.map +1 -1
  386. package/dist/wu-validation-constants.d.ts +1 -60
  387. package/dist/wu-validation-constants.d.ts.map +1 -1
  388. package/dist/wu-validation-constants.js +4 -66
  389. package/dist/wu-validation-constants.js.map +1 -1
  390. package/dist/wu-yaml.d.ts +1 -112
  391. package/dist/wu-yaml.d.ts.map +1 -1
  392. package/dist/wu-yaml.js +4 -304
  393. package/dist/wu-yaml.js.map +1 -1
  394. package/package.json +12 -9
  395. package/dist/coverage-gate.d.ts +0 -128
  396. package/dist/coverage-gate.d.ts.map +0 -1
  397. package/dist/coverage-gate.js +0 -211
  398. package/dist/coverage-gate.js.map +0 -1
  399. package/dist/gates-agent-mode.d.ts +0 -108
  400. package/dist/gates-agent-mode.d.ts.map +0 -1
  401. package/dist/gates-agent-mode.js +0 -138
  402. package/dist/gates-agent-mode.js.map +0 -1
  403. package/dist/gates-config-internal.d.ts +0 -54
  404. package/dist/gates-config-internal.d.ts.map +0 -1
  405. package/dist/gates-config-internal.js +0 -107
  406. package/dist/gates-config-internal.js.map +0 -1
  407. package/dist/gates-config.d.ts +0 -68
  408. package/dist/gates-config.d.ts.map +0 -1
  409. package/dist/gates-config.js +0 -193
  410. package/dist/gates-config.js.map +0 -1
  411. package/dist/gates-coverage.d.ts +0 -42
  412. package/dist/gates-coverage.d.ts.map +0 -1
  413. package/dist/gates-coverage.js +0 -162
  414. package/dist/gates-coverage.js.map +0 -1
  415. package/dist/gates-presets.d.ts +0 -52
  416. package/dist/gates-presets.d.ts.map +0 -1
  417. package/dist/gates-presets.js +0 -117
  418. package/dist/gates-presets.js.map +0 -1
  419. package/dist/gates-schemas.d.ts +0 -143
  420. package/dist/gates-schemas.d.ts.map +0 -1
  421. package/dist/gates-schemas.js +0 -67
  422. package/dist/gates-schemas.js.map +0 -1
  423. package/dist/package-manager-resolver.d.ts +0 -80
  424. package/dist/package-manager-resolver.d.ts.map +0 -1
  425. package/dist/package-manager-resolver.js +0 -245
  426. package/dist/package-manager-resolver.js.map +0 -1
  427. package/dist/resolve-policy.d.ts +0 -293
  428. package/dist/resolve-policy.d.ts.map +0 -1
  429. package/dist/resolve-policy.js +0 -303
  430. package/dist/resolve-policy.js.map +0 -1
@@ -1,68 +0,0 @@
1
- /// <reference path="./types.d.ts" />
2
- import type { GateCommandConfig, GatesExecutionConfig, ParsedGateCommand, LaneHealthMode } from './gates-schemas.js';
3
- export type { GateCommandConfig, GatesExecutionConfig, ParsedGateCommand, LaneHealthMode, CoverageConfig, CoveragePolicy, TestRunnerPolicy, TestPolicy, GatesCommands, } from './gates-schemas.js';
4
- export type { TddDiffEvidencePolicy } from './resolve-policy.js';
5
- export type { ScopedUnitTestExecutionPlan } from './package-manager-resolver.js';
6
- export { GateCommandConfigSchema, GatesExecutionConfigSchema, LaneHealthModeSchema, DEFAULT_LANE_HEALTH_MODE, } from './gates-schemas.js';
7
- export { GATE_PRESETS, expandPreset, PRESET_FIX_COMMANDS, getFormatFixCommand, } from './gates-presets.js';
8
- export { resolveCoverageConfig, resolveTestPolicy, resolveTddDiffEvidencePolicy, } from './gates-coverage.js';
9
- export { resolvePackageManager, resolveTestRunner, resolveBuildCommand, resolveGatesCommands, getIgnorePatterns, resolveGatePreset, resolveScopedUnitTestExecutionPlan, formatScopedUnitTestFallbackMessage, } from './package-manager-resolver.js';
10
- export { GATES_RUNTIME_DEFAULTS, SOFTWARE_DELIVERY_FIELDS, GATES_FIELDS, GATES_COMMAND_FIELDS, loadSoftwareDeliveryConfig, getGatesSection, } from './gates-config-internal.js';
11
- /**
12
- * Parse a gate command configuration into executable form
13
- *
14
- * @param config - Gate command configuration (string or object)
15
- * @returns Parsed command with defaults applied, or null if undefined
16
- */
17
- export declare function parseGateCommand(config: GateCommandConfig | undefined): ParsedGateCommand | null;
18
- /**
19
- * Load gates configuration from workspace.yaml software_delivery.gates.execution
20
- *
21
- * @param projectRoot - Project root directory
22
- * @returns Gates execution config, or null if not configured
23
- */
24
- export declare function loadGatesConfig(projectRoot: string): GatesExecutionConfig | null;
25
- /**
26
- * Get default gates configuration for auto-detection fallback
27
- *
28
- * Used when no gates config is present in workspace.yaml software_delivery.
29
- * These are generic commands that work across common setups.
30
- *
31
- * @returns Default gates configuration
32
- */
33
- export declare function getDefaultGatesConfig(): GatesExecutionConfig;
34
- /**
35
- * Resolve the effective gates configuration
36
- *
37
- * Priority order:
38
- * 1. Explicit config from workspace.yaml software_delivery
39
- * 2. Preset defaults (if preset specified)
40
- * 3. Auto-detection defaults
41
- *
42
- * @param projectRoot - Project root directory
43
- * @returns Resolved gates configuration
44
- */
45
- export declare function resolveGatesConfig(projectRoot: string): GatesExecutionConfig;
46
- /**
47
- * Check if a specific gate should be skipped
48
- *
49
- * @param gateName - Name of the gate (format, lint, typecheck, test)
50
- * @param config - Gates execution configuration
51
- * @param skipFlags - Map of skip flags from CLI/Action inputs
52
- * @returns True if the gate should be skipped
53
- */
54
- export declare function shouldSkipGate(gateName: keyof Omit<GatesExecutionConfig, 'preset' | 'coverage'>, config: GatesExecutionConfig, skipFlags: Record<string, boolean>): boolean;
55
- /**
56
- * WU-1191: Load lane health configuration from workspace.yaml software_delivery
57
- *
58
- * Configuration format:
59
- * ```yaml
60
- * gates:
61
- * lane_health: warn|error|off
62
- * ```
63
- *
64
- * @param projectRoot - Project root directory
65
- * @returns Lane health mode ('warn', 'error', or 'off'), defaults to 'warn'
66
- */
67
- export declare function loadLaneHealthConfig(projectRoot: string): LaneHealthMode;
68
- //# sourceMappingURL=gates-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates-config.d.ts","sourceRoot":"","sources":["../src/gates-config.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAQ5B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAEjF,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAQpC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAkBhG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAmChF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,oBAAoB,CAS5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAS5E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,UAAU,CAAC,EACjE,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAaT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CA+BxE"}
@@ -1,193 +0,0 @@
1
- // Copyright (c) 2026 Hellmai Ltd
2
- // SPDX-License-Identifier: AGPL-3.0-only
3
- /**
4
- * Gates Configuration Facade
5
- *
6
- * WU-1067: Config-driven gates execution
7
- * WU-2037: Decomposed into focused sub-modules
8
- *
9
- * This module is the public entry point for gates configuration.
10
- * It re-exports from the extracted sub-modules and retains the
11
- * config-loading, parsing, and lane-health functions that depend
12
- * on the shared infrastructure.
13
- *
14
- * Sub-modules:
15
- * - gates-schemas.ts Zod schemas, types, interfaces
16
- * - gates-presets.ts Preset definitions and expansion
17
- * - gates-coverage.ts Coverage and test policy resolution
18
- * - package-manager-resolver.ts PM, TR, build, commands, ignore
19
- * - gates-config-internal.ts Shared helpers and constants
20
- *
21
- * @module gates-config
22
- */
23
- import { isString } from './object-guards.js';
24
- import { WORKSPACE_CONFIG_FILE_NAME, WORKSPACE_V2_KEYS } from './config-contract.js';
25
- import { GatesExecutionConfigSchema, LaneHealthModeSchema, DEFAULT_LANE_HEALTH_MODE, } from './gates-schemas.js';
26
- import { expandPreset } from './gates-presets.js';
27
- import { GATES_RUNTIME_DEFAULTS, GATES_FIELDS, getGatesSection } from './gates-config-internal.js';
28
- export { GateCommandConfigSchema, GatesExecutionConfigSchema, LaneHealthModeSchema, DEFAULT_LANE_HEALTH_MODE, } from './gates-schemas.js';
29
- // Re-export presets
30
- // WU-2547: PRESET_FIX_COMMANDS and getFormatFixCommand added for preset-aware
31
- // onboarding template rendering in @lumenflow/cli/src/init.ts.
32
- export { GATE_PRESETS, expandPreset, PRESET_FIX_COMMANDS, getFormatFixCommand, } from './gates-presets.js';
33
- // Re-export coverage/test policy resolution
34
- export { resolveCoverageConfig, resolveTestPolicy, resolveTddDiffEvidencePolicy, } from './gates-coverage.js';
35
- // Re-export package manager / test runner resolution
36
- export { resolvePackageManager, resolveTestRunner, resolveBuildCommand, resolveGatesCommands, getIgnorePatterns, resolveGatePreset, resolveScopedUnitTestExecutionPlan, formatScopedUnitTestFallbackMessage, } from './package-manager-resolver.js';
37
- // Re-export shared infrastructure (consumed by child modules and external callers)
38
- export { GATES_RUNTIME_DEFAULTS, SOFTWARE_DELIVERY_FIELDS, GATES_FIELDS, GATES_COMMAND_FIELDS, loadSoftwareDeliveryConfig, getGatesSection, } from './gates-config-internal.js';
39
- // ---------------------------------------------------------------------------
40
- // Config loading / gate parsing / lane health (facade-owned)
41
- // ---------------------------------------------------------------------------
42
- const SOFTWARE_DELIVERY_KEY = WORKSPACE_V2_KEYS.SOFTWARE_DELIVERY;
43
- /**
44
- * Parse a gate command configuration into executable form
45
- *
46
- * @param config - Gate command configuration (string or object)
47
- * @returns Parsed command with defaults applied, or null if undefined
48
- */
49
- export function parseGateCommand(config) {
50
- if (config === undefined) {
51
- return null;
52
- }
53
- if (isString(config)) {
54
- return {
55
- command: config,
56
- continueOnError: false,
57
- timeout: GATES_RUNTIME_DEFAULTS.COMMAND_TIMEOUT_MS,
58
- };
59
- }
60
- return {
61
- command: config.command,
62
- continueOnError: config.continueOnError ?? false,
63
- timeout: config.timeout ?? GATES_RUNTIME_DEFAULTS.COMMAND_TIMEOUT_MS,
64
- };
65
- }
66
- /**
67
- * Load gates configuration from workspace.yaml software_delivery.gates.execution
68
- *
69
- * @param projectRoot - Project root directory
70
- * @returns Gates execution config, or null if not configured
71
- */
72
- export function loadGatesConfig(projectRoot) {
73
- const gates = getGatesSection(projectRoot);
74
- if (!gates) {
75
- return null;
76
- }
77
- try {
78
- // Check if gates.execution section exists
79
- const executionConfig = gates[GATES_FIELDS.EXECUTION];
80
- if (!executionConfig) {
81
- return null;
82
- }
83
- // Validate the config
84
- const result = GatesExecutionConfigSchema.safeParse(executionConfig);
85
- if (!result.success) {
86
- console.warn('Warning: Invalid gates.execution config:', result.error.message);
87
- return null;
88
- }
89
- // Expand preset and merge with explicit config (explicit wins)
90
- const presetDefaults = expandPreset(result.data.preset);
91
- const merged = {
92
- ...presetDefaults,
93
- ...result.data,
94
- };
95
- return merged;
96
- }
97
- catch (error) {
98
- console.warn(`Warning: Failed to parse ${WORKSPACE_CONFIG_FILE_NAME} ${SOFTWARE_DELIVERY_KEY}.gates.execution:`, error instanceof Error ? error.message : String(error));
99
- return null;
100
- }
101
- }
102
- /**
103
- * Get default gates configuration for auto-detection fallback
104
- *
105
- * Used when no gates config is present in workspace.yaml software_delivery.
106
- * These are generic commands that work across common setups.
107
- *
108
- * @returns Default gates configuration
109
- */
110
- export function getDefaultGatesConfig() {
111
- return {
112
- format: 'npm run format:check 2>/dev/null || npx prettier --check . 2>/dev/null || echo "No formatter configured"',
113
- lint: 'npm run lint 2>/dev/null || npx eslint . 2>/dev/null || echo "No linter configured"',
114
- typecheck: 'npm run typecheck 2>/dev/null || npx tsc --noEmit 2>/dev/null || echo "No type checker configured"',
115
- test: 'npm test 2>/dev/null || echo "No test command configured"',
116
- };
117
- }
118
- /**
119
- * Resolve the effective gates configuration
120
- *
121
- * Priority order:
122
- * 1. Explicit config from workspace.yaml software_delivery
123
- * 2. Preset defaults (if preset specified)
124
- * 3. Auto-detection defaults
125
- *
126
- * @param projectRoot - Project root directory
127
- * @returns Resolved gates configuration
128
- */
129
- export function resolveGatesConfig(projectRoot) {
130
- const config = loadGatesConfig(projectRoot);
131
- if (config) {
132
- return config;
133
- }
134
- // Fall back to defaults for auto-detection
135
- return getDefaultGatesConfig();
136
- }
137
- /**
138
- * Check if a specific gate should be skipped
139
- *
140
- * @param gateName - Name of the gate (format, lint, typecheck, test)
141
- * @param config - Gates execution configuration
142
- * @param skipFlags - Map of skip flags from CLI/Action inputs
143
- * @returns True if the gate should be skipped
144
- */
145
- export function shouldSkipGate(gateName, config, skipFlags) {
146
- // Check if skip flag is set
147
- const skipFlagName = `skip-${gateName}`;
148
- if (skipFlags[skipFlagName] || skipFlags[gateName]) {
149
- return true;
150
- }
151
- // Check if gate is configured (undefined means skip)
152
- if (config[gateName] === undefined) {
153
- return true;
154
- }
155
- return false;
156
- }
157
- /**
158
- * WU-1191: Load lane health configuration from workspace.yaml software_delivery
159
- *
160
- * Configuration format:
161
- * ```yaml
162
- * gates:
163
- * lane_health: warn|error|off
164
- * ```
165
- *
166
- * @param projectRoot - Project root directory
167
- * @returns Lane health mode ('warn', 'error', or 'off'), defaults to 'warn'
168
- */
169
- export function loadLaneHealthConfig(projectRoot) {
170
- const gates = getGatesSection(projectRoot);
171
- if (!gates) {
172
- return DEFAULT_LANE_HEALTH_MODE;
173
- }
174
- try {
175
- // Check if gates.lane_health is configured
176
- const laneHealthConfig = gates[GATES_FIELDS.LANE_HEALTH] ?? gates[GATES_FIELDS.LANE_HEALTH_CAMEL];
177
- if (laneHealthConfig === undefined) {
178
- return DEFAULT_LANE_HEALTH_MODE;
179
- }
180
- // Validate the config value
181
- const result = LaneHealthModeSchema.safeParse(laneHealthConfig);
182
- if (!result.success) {
183
- console.warn(`Warning: Invalid gates.lane_health value '${laneHealthConfig}', expected 'warn', 'error', or 'off'. Using default 'warn'.`);
184
- return DEFAULT_LANE_HEALTH_MODE;
185
- }
186
- return result.data;
187
- }
188
- catch (error) {
189
- console.warn(`Warning: Failed to parse ${WORKSPACE_CONFIG_FILE_NAME} ${SOFTWARE_DELIVERY_KEY}.gates.lane_health:`, error instanceof Error ? error.message : String(error));
190
- return DEFAULT_LANE_HEALTH_MODE;
191
- }
192
- }
193
- //# sourceMappingURL=gates-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates-config.js","sourceRoot":"","sources":["../src/gates-config.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /// <reference path="./types.d.ts" />
2
- import { type TddDiffEvidencePolicy } from './resolve-policy.js';
3
- import type { CoverageConfig, TestPolicy } from './gates-schemas.js';
4
- /**
5
- * WU-1262: Resolve coverage configuration from methodology policy
6
- *
7
- * Uses resolvePolicy() to determine coverage defaults based on methodology.testing:
8
- * - tdd: 90% threshold, block mode
9
- * - test-after: 70% threshold, warn mode
10
- * - none: 0% threshold, off mode
11
- *
12
- * Precedence (highest to lowest):
13
- * 1. Explicit gates.minCoverage / gates.enableCoverage
14
- * 2. methodology.overrides.coverage_threshold / coverage_mode
15
- * 3. methodology.testing template defaults
16
- *
17
- * @param projectRoot - Project root directory
18
- * @returns Resolved coverage configuration
19
- */
20
- export declare function resolveCoverageConfig(projectRoot: string): CoverageConfig;
21
- /**
22
- * WU-1280: Resolve test policy from methodology configuration
23
- *
24
- * Returns the full test policy including coverage config AND tests_required.
25
- * This is used by gates to determine whether test failures should block or warn.
26
- *
27
- * Methodology mapping:
28
- * - tdd: 90% threshold, block mode, tests_required=true
29
- * - test-after: 70% threshold, warn mode, tests_required=true
30
- * - none: 0% threshold, off mode, tests_required=false
31
- *
32
- * When tests_required=false:
33
- * - Test failures produce WARNINGS instead of FAILURES
34
- * - Gates continue but log the test failures
35
- * - Coverage gate is effectively skipped (mode='off')
36
- *
37
- * @param projectRoot - Project root directory
38
- * @returns Resolved test policy including tests_required
39
- */
40
- export declare function resolveTestPolicy(projectRoot: string): TestPolicy;
41
- export declare function resolveTddDiffEvidencePolicy(projectRoot: string): TddDiffEvidencePolicy;
42
- //# sourceMappingURL=gates-coverage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates-coverage.d.ts","sourceRoot":"","sources":["../src/gates-coverage.ts"],"names":[],"mappings":"AAeA,OAAO,EAML,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA6GrE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAkBzE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAoBjE;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAQvF"}
@@ -1,162 +0,0 @@
1
- // Copyright (c) 2026 Hellmai Ltd
2
- // SPDX-License-Identifier: AGPL-3.0-only
3
- /**
4
- * Gates Coverage Policy Resolution
5
- *
6
- * WU-2037: Extracted from gates-config.ts
7
- *
8
- * Resolves coverage configuration and test policy from methodology settings.
9
- * Uses resolvePolicy() to derive thresholds and modes from workspace.yaml.
10
- *
11
- * @module gates-coverage
12
- */
13
- import { asRecord, isBoolean, isNumber } from './object-guards.js';
14
- import { resolvePolicy, getDefaultPolicy, MethodologyConfigSchema, TddDiffEvidenceConfigSchema, } from './resolve-policy.js';
15
- import { GATES_RUNTIME_DEFAULTS, SOFTWARE_DELIVERY_FIELDS, GATES_FIELDS, loadSoftwareDeliveryConfig, } from './gates-config-internal.js';
16
- // ---------------------------------------------------------------------------
17
- // Private helpers for reading typed fields from raw config
18
- // ---------------------------------------------------------------------------
19
- function readNumberField(source, primaryKey, secondaryKey) {
20
- const primary = source?.[primaryKey];
21
- if (isNumber(primary)) {
22
- return primary;
23
- }
24
- const secondary = source?.[secondaryKey];
25
- return isNumber(secondary) ? secondary : undefined;
26
- }
27
- function readBooleanField(source, primaryKey, secondaryKey) {
28
- const primary = source?.[primaryKey];
29
- if (isBoolean(primary)) {
30
- return primary;
31
- }
32
- const secondary = source?.[secondaryKey];
33
- return isBoolean(secondary) ? secondary : undefined;
34
- }
35
- function readGateMinCoverage(gatesRaw) {
36
- return readNumberField(gatesRaw, GATES_FIELDS.MIN_COVERAGE, GATES_FIELDS.MIN_COVERAGE_SNAKE);
37
- }
38
- function readGateEnableCoverage(gatesRaw) {
39
- return readBooleanField(gatesRaw, GATES_FIELDS.ENABLE_COVERAGE, GATES_FIELDS.ENABLE_COVERAGE_SNAKE);
40
- }
41
- function readTddDiffEvidenceConfig(gatesRaw) {
42
- const raw = asRecord(gatesRaw?.[GATES_FIELDS.TDD_DIFF_EVIDENCE]) ?? undefined;
43
- return TddDiffEvidenceConfigSchema.optional().parse(raw);
44
- }
45
- // ---------------------------------------------------------------------------
46
- // Shared policy resolution helper (DRY: used by both public functions)
47
- // ---------------------------------------------------------------------------
48
- function resolvePolicyFromConfig(rawConfig) {
49
- const methodologyRaw = asRecord(rawConfig[SOFTWARE_DELIVERY_FIELDS.METHODOLOGY]) ?? undefined;
50
- const gatesRaw = asRecord(rawConfig[SOFTWARE_DELIVERY_FIELDS.GATES]) ?? undefined;
51
- const minCoverage = readGateMinCoverage(gatesRaw);
52
- const enableCoverage = readGateEnableCoverage(gatesRaw);
53
- const tddDiffEvidence = readTddDiffEvidenceConfig(gatesRaw);
54
- // Parse methodology with Zod to get defaults
55
- const methodology = MethodologyConfigSchema.parse(methodologyRaw ?? {});
56
- // Build the config structure that resolvePolicy expects
57
- const minimalConfig = {
58
- methodology: methodologyRaw, // Pass raw methodology for explicit detection
59
- gates: {
60
- minCoverage,
61
- enableCoverage,
62
- tdd_diff_evidence: tddDiffEvidence,
63
- },
64
- };
65
- // Resolve policy using the methodology configuration
66
- // Pass rawConfig to detect explicit gates.* settings vs Zod defaults
67
- return resolvePolicy({
68
- methodology,
69
- gates: {
70
- // Default gates values from schema
71
- maxEslintWarnings: GATES_RUNTIME_DEFAULTS.MAX_ESLINT_WARNINGS,
72
- enableCoverage: enableCoverage ?? GATES_RUNTIME_DEFAULTS.DEFAULT_ENABLE_COVERAGE,
73
- minCoverage: minCoverage ?? GATES_RUNTIME_DEFAULTS.DEFAULT_MIN_COVERAGE,
74
- enableSafetyCriticalTests: true,
75
- enableInvariants: true,
76
- tdd_diff_evidence: tddDiffEvidence,
77
- },
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Minimal type for config
79
- }, {
80
- rawConfig: minimalConfig,
81
- });
82
- }
83
- // ---------------------------------------------------------------------------
84
- // Public API
85
- // ---------------------------------------------------------------------------
86
- /**
87
- * WU-1262: Resolve coverage configuration from methodology policy
88
- *
89
- * Uses resolvePolicy() to determine coverage defaults based on methodology.testing:
90
- * - tdd: 90% threshold, block mode
91
- * - test-after: 70% threshold, warn mode
92
- * - none: 0% threshold, off mode
93
- *
94
- * Precedence (highest to lowest):
95
- * 1. Explicit gates.minCoverage / gates.enableCoverage
96
- * 2. methodology.overrides.coverage_threshold / coverage_mode
97
- * 3. methodology.testing template defaults
98
- *
99
- * @param projectRoot - Project root directory
100
- * @returns Resolved coverage configuration
101
- */
102
- export function resolveCoverageConfig(projectRoot) {
103
- const rawConfig = loadSoftwareDeliveryConfig(projectRoot) ?? {};
104
- // If no config file, use default policy
105
- if (Object.keys(rawConfig).length === 0) {
106
- const defaultPolicy = getDefaultPolicy();
107
- return {
108
- threshold: defaultPolicy.coverage_threshold,
109
- mode: defaultPolicy.coverage_mode,
110
- };
111
- }
112
- const policy = resolvePolicyFromConfig(rawConfig);
113
- return {
114
- threshold: policy.coverage_threshold,
115
- mode: policy.coverage_mode,
116
- };
117
- }
118
- /**
119
- * WU-1280: Resolve test policy from methodology configuration
120
- *
121
- * Returns the full test policy including coverage config AND tests_required.
122
- * This is used by gates to determine whether test failures should block or warn.
123
- *
124
- * Methodology mapping:
125
- * - tdd: 90% threshold, block mode, tests_required=true
126
- * - test-after: 70% threshold, warn mode, tests_required=true
127
- * - none: 0% threshold, off mode, tests_required=false
128
- *
129
- * When tests_required=false:
130
- * - Test failures produce WARNINGS instead of FAILURES
131
- * - Gates continue but log the test failures
132
- * - Coverage gate is effectively skipped (mode='off')
133
- *
134
- * @param projectRoot - Project root directory
135
- * @returns Resolved test policy including tests_required
136
- */
137
- export function resolveTestPolicy(projectRoot) {
138
- const rawConfig = loadSoftwareDeliveryConfig(projectRoot) ?? {};
139
- // If no config file, use default policy (TDD)
140
- if (Object.keys(rawConfig).length === 0) {
141
- const defaultPolicy = getDefaultPolicy();
142
- return {
143
- threshold: defaultPolicy.coverage_threshold,
144
- mode: defaultPolicy.coverage_mode,
145
- tests_required: defaultPolicy.tests_required,
146
- };
147
- }
148
- const policy = resolvePolicyFromConfig(rawConfig);
149
- return {
150
- threshold: policy.coverage_threshold,
151
- mode: policy.coverage_mode,
152
- tests_required: policy.tests_required,
153
- };
154
- }
155
- export function resolveTddDiffEvidencePolicy(projectRoot) {
156
- const rawConfig = loadSoftwareDeliveryConfig(projectRoot) ?? {};
157
- if (Object.keys(rawConfig).length === 0) {
158
- return getDefaultPolicy().tdd_diff_evidence;
159
- }
160
- return resolvePolicyFromConfig(rawConfig).tdd_diff_evidence;
161
- }
162
- //# sourceMappingURL=gates-coverage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates-coverage.js","sourceRoot":"","sources":["../src/gates-coverage.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- /// <reference path="./types.d.ts" />
2
- /**
3
- * Gates Presets
4
- *
5
- * WU-2037: Extracted from gates-config.ts
6
- *
7
- * Language ecosystem preset definitions and expansion logic.
8
- *
9
- * @module gates-presets
10
- */
11
- import type { GatesExecutionConfig } from './gates-schemas.js';
12
- /**
13
- * Gate preset definitions
14
- *
15
- * These provide sensible defaults for common language ecosystems.
16
- * Users can override fields via workspace.yaml software_delivery
17
- */
18
- export declare const GATE_PRESETS: Record<string, Partial<GatesExecutionConfig>>;
19
- /**
20
- * Expand a preset name into its default gate commands
21
- *
22
- * @param preset - Preset name (node, python, go, rust, dotnet) or undefined
23
- * @returns Partial gates config with preset defaults, or empty object if unknown
24
- */
25
- export declare function expandPreset(preset: string | undefined): Partial<GatesExecutionConfig>;
26
- /**
27
- * WU-2547: Preset-specific format-fix remediation commands.
28
- *
29
- * The `format` key in GATE_PRESETS above is the *verification* command used
30
- * by gates (e.g. `dotnet format --verify-no-changes`). When an agent or
31
- * user needs to actually fix a formatting failure they need the mutating
32
- * equivalent of that command — `dotnet format`, `cargo fmt`, etc.
33
- *
34
- * Onboarding templates used to hardcode `pnpm prettier --write <file>`,
35
- * which silently teaches agents the wrong habit in non-JS repos. init.ts
36
- * now resolves this map against the chosen preset and substitutes the
37
- * result into the `{{format_fix_command}}` placeholder.
38
- */
39
- export declare const PRESET_FIX_COMMANDS: Record<string, string>;
40
- /**
41
- * WU-2547: Resolve the format-fix remediation command for a preset.
42
- *
43
- * Used by init.ts to populate the `{{format_fix_command}}` token in
44
- * onboarding templates so a .NET repo gets `dotnet format` guidance
45
- * instead of `pnpm prettier --write`.
46
- *
47
- * @param preset - Gate preset name (node, dotnet, python, etc.)
48
- * @returns The remediation command for the preset, or the node default
49
- * if the preset is unknown (never returns empty).
50
- */
51
- export declare function getFormatFixCommand(preset: string): string;
52
- //# sourceMappingURL=gates-presets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gates-presets.d.ts","sourceRoot":"","sources":["../src/gates-presets.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAoDtE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAMtF;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAStD,CAAC;AASF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -1,117 +0,0 @@
1
- // Copyright (c) 2026 Hellmai Ltd
2
- // SPDX-License-Identifier: AGPL-3.0-only
3
- /**
4
- * Gate preset definitions
5
- *
6
- * These provide sensible defaults for common language ecosystems.
7
- * Users can override fields via workspace.yaml software_delivery
8
- */
9
- export const GATE_PRESETS = {
10
- node: {
11
- setup: 'npm ci || npm install',
12
- format: 'npx prettier --check .',
13
- lint: 'npx eslint .',
14
- typecheck: 'npx tsc --noEmit',
15
- test: 'npm test',
16
- },
17
- python: {
18
- setup: 'pip install -e ".[dev]" || pip install -r requirements.txt',
19
- format: 'ruff format --check .',
20
- lint: 'ruff check .',
21
- typecheck: 'mypy .',
22
- test: 'pytest',
23
- },
24
- go: {
25
- format: 'gofmt -l . | grep -v "^$" && exit 1 || exit 0',
26
- lint: 'golangci-lint run',
27
- typecheck: 'go vet ./...',
28
- test: 'go test ./...',
29
- },
30
- rust: {
31
- format: 'cargo fmt --check',
32
- lint: 'cargo clippy -- -D warnings',
33
- typecheck: 'cargo check',
34
- test: 'cargo test',
35
- },
36
- dotnet: {
37
- setup: 'dotnet restore',
38
- format: 'dotnet format --verify-no-changes',
39
- lint: 'dotnet build --no-restore -warnaserror',
40
- test: 'dotnet test --no-restore',
41
- },
42
- // WU-1118: Java/JVM, Ruby, and PHP presets
43
- java: {
44
- format: 'mvn spotless:check || ./gradlew spotlessCheck',
45
- lint: 'mvn checkstyle:check || ./gradlew checkstyleMain',
46
- typecheck: 'mvn compile -DskipTests || ./gradlew compileJava',
47
- test: 'mvn test || ./gradlew test',
48
- },
49
- ruby: {
50
- setup: 'bundle install',
51
- format: 'bundle exec rubocop --format simple --fail-level W',
52
- lint: 'bundle exec rubocop',
53
- test: 'bundle exec rspec',
54
- },
55
- php: {
56
- setup: 'composer install',
57
- format: 'vendor/bin/php-cs-fixer fix --dry-run --diff',
58
- lint: 'vendor/bin/phpstan analyse',
59
- test: 'vendor/bin/phpunit',
60
- },
61
- };
62
- /**
63
- * Expand a preset name into its default gate commands
64
- *
65
- * @param preset - Preset name (node, python, go, rust, dotnet) or undefined
66
- * @returns Partial gates config with preset defaults, or empty object if unknown
67
- */
68
- export function expandPreset(preset) {
69
- if (!preset) {
70
- return {};
71
- }
72
- return GATE_PRESETS[preset] ?? {};
73
- }
74
- /**
75
- * WU-2547: Preset-specific format-fix remediation commands.
76
- *
77
- * The `format` key in GATE_PRESETS above is the *verification* command used
78
- * by gates (e.g. `dotnet format --verify-no-changes`). When an agent or
79
- * user needs to actually fix a formatting failure they need the mutating
80
- * equivalent of that command — `dotnet format`, `cargo fmt`, etc.
81
- *
82
- * Onboarding templates used to hardcode `pnpm prettier --write <file>`,
83
- * which silently teaches agents the wrong habit in non-JS repos. init.ts
84
- * now resolves this map against the chosen preset and substitutes the
85
- * result into the `{{format_fix_command}}` placeholder.
86
- */
87
- export const PRESET_FIX_COMMANDS = {
88
- node: 'pnpm prettier --write <file>',
89
- python: 'ruff format <file>',
90
- go: 'gofmt -w <file>',
91
- rust: 'cargo fmt',
92
- dotnet: 'dotnet format',
93
- java: 'mvn spotless:apply',
94
- ruby: 'bundle exec rubocop -a <file>',
95
- php: 'vendor/bin/php-cs-fixer fix <file>',
96
- };
97
- /**
98
- * WU-2547: Safe fallback when a caller passes an unknown preset.
99
- * Mirrors PRESET_FIX_COMMANDS.node so the two always match; kept as its own
100
- * constant to satisfy noUncheckedIndexedAccess without a non-null assertion.
101
- */
102
- const DEFAULT_FORMAT_FIX_COMMAND = 'pnpm prettier --write <file>';
103
- /**
104
- * WU-2547: Resolve the format-fix remediation command for a preset.
105
- *
106
- * Used by init.ts to populate the `{{format_fix_command}}` token in
107
- * onboarding templates so a .NET repo gets `dotnet format` guidance
108
- * instead of `pnpm prettier --write`.
109
- *
110
- * @param preset - Gate preset name (node, dotnet, python, etc.)
111
- * @returns The remediation command for the preset, or the node default
112
- * if the preset is unknown (never returns empty).
113
- */
114
- export function getFormatFixCommand(preset) {
115
- return PRESET_FIX_COMMANDS[preset] ?? DEFAULT_FORMAT_FIX_COMMAND;
116
- }
117
- //# sourceMappingURL=gates-presets.js.map