@lumenflow/core 3.1.2 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1008) hide show
  1. package/README.md +16 -16
  2. package/dist/cli/is-agent-branch.js +31 -10
  3. package/dist/index.js +3 -0
  4. package/package.json +5 -2
  5. package/dist/active-wu-detector.d.ts +0 -25
  6. package/dist/active-wu-detector.d.ts.map +0 -1
  7. package/dist/active-wu-detector.js +0 -109
  8. package/dist/active-wu-detector.js.map +0 -1
  9. package/dist/adapters/context-adapters.d.ts +0 -101
  10. package/dist/adapters/context-adapters.d.ts.map +0 -1
  11. package/dist/adapters/context-adapters.js +0 -98
  12. package/dist/adapters/context-adapters.js.map +0 -1
  13. package/dist/adapters/filesystem-metrics.adapter.d.ts +0 -91
  14. package/dist/adapters/filesystem-metrics.adapter.d.ts.map +0 -1
  15. package/dist/adapters/filesystem-metrics.adapter.js +0 -530
  16. package/dist/adapters/filesystem-metrics.adapter.js.map +0 -1
  17. package/dist/adapters/index.d.ts +0 -15
  18. package/dist/adapters/index.d.ts.map +0 -1
  19. package/dist/adapters/index.js +0 -21
  20. package/dist/adapters/index.js.map +0 -1
  21. package/dist/adapters/mock-dashboard-renderer.adapter.d.ts +0 -86
  22. package/dist/adapters/mock-dashboard-renderer.adapter.d.ts.map +0 -1
  23. package/dist/adapters/mock-dashboard-renderer.adapter.js +0 -93
  24. package/dist/adapters/mock-dashboard-renderer.adapter.js.map +0 -1
  25. package/dist/adapters/recovery-adapters.d.ts +0 -41
  26. package/dist/adapters/recovery-adapters.d.ts.map +0 -1
  27. package/dist/adapters/recovery-adapters.js +0 -32
  28. package/dist/adapters/recovery-adapters.js.map +0 -1
  29. package/dist/adapters/terminal-renderer.adapter.d.ts +0 -86
  30. package/dist/adapters/terminal-renderer.adapter.d.ts.map +0 -1
  31. package/dist/adapters/terminal-renderer.adapter.js +0 -342
  32. package/dist/adapters/terminal-renderer.adapter.js.map +0 -1
  33. package/dist/adapters/validation-adapters.d.ts +0 -53
  34. package/dist/adapters/validation-adapters.d.ts.map +0 -1
  35. package/dist/adapters/validation-adapters.js +0 -48
  36. package/dist/adapters/validation-adapters.js.map +0 -1
  37. package/dist/agent-patterns-registry.d.ts +0 -141
  38. package/dist/agent-patterns-registry.d.ts.map +0 -1
  39. package/dist/agent-patterns-registry.js +0 -319
  40. package/dist/agent-patterns-registry.js.map +0 -1
  41. package/dist/arg-parser.d.ts +0 -94
  42. package/dist/arg-parser.d.ts.map +0 -1
  43. package/dist/arg-parser.js +0 -774
  44. package/dist/arg-parser.js.map +0 -1
  45. package/dist/atomic-merge.d.ts +0 -21
  46. package/dist/atomic-merge.d.ts.map +0 -1
  47. package/dist/atomic-merge.js +0 -87
  48. package/dist/atomic-merge.js.map +0 -1
  49. package/dist/backlog-editor.d.ts +0 -103
  50. package/dist/backlog-editor.d.ts.map +0 -1
  51. package/dist/backlog-editor.js +0 -158
  52. package/dist/backlog-editor.js.map +0 -1
  53. package/dist/backlog-generator.d.ts +0 -90
  54. package/dist/backlog-generator.d.ts.map +0 -1
  55. package/dist/backlog-generator.js +0 -536
  56. package/dist/backlog-generator.js.map +0 -1
  57. package/dist/backlog-parser.d.ts +0 -46
  58. package/dist/backlog-parser.d.ts.map +0 -1
  59. package/dist/backlog-parser.js +0 -105
  60. package/dist/backlog-parser.js.map +0 -1
  61. package/dist/backlog-sync-validator.d.ts +0 -88
  62. package/dist/backlog-sync-validator.d.ts.map +0 -1
  63. package/dist/backlog-sync-validator.js +0 -324
  64. package/dist/backlog-sync-validator.js.map +0 -1
  65. package/dist/beacon-migration.d.ts +0 -56
  66. package/dist/beacon-migration.js +0 -101
  67. package/dist/branch-check.d.ts +0 -63
  68. package/dist/branch-check.d.ts.map +0 -1
  69. package/dist/branch-check.js +0 -197
  70. package/dist/branch-check.js.map +0 -1
  71. package/dist/branch-drift.d.ts +0 -24
  72. package/dist/branch-drift.d.ts.map +0 -1
  73. package/dist/branch-drift.js +0 -54
  74. package/dist/branch-drift.js.map +0 -1
  75. package/dist/cleanup-install-config.d.ts +0 -24
  76. package/dist/cleanup-install-config.d.ts.map +0 -1
  77. package/dist/cleanup-install-config.js +0 -40
  78. package/dist/cleanup-install-config.js.map +0 -1
  79. package/dist/cleanup-lock.d.ts +0 -125
  80. package/dist/cleanup-lock.d.ts.map +0 -1
  81. package/dist/cleanup-lock.js +0 -325
  82. package/dist/cleanup-lock.js.map +0 -1
  83. package/dist/cli/is-agent-branch.d.ts +0 -15
  84. package/dist/cli/is-agent-branch.d.ts.map +0 -1
  85. package/dist/cli/is-agent-branch.js.map +0 -1
  86. package/dist/cloud-detect.d.ts +0 -145
  87. package/dist/cloud-detect.d.ts.map +0 -1
  88. package/dist/cloud-detect.js +0 -116
  89. package/dist/cloud-detect.js.map +0 -1
  90. package/dist/code-path-validator.d.ts +0 -147
  91. package/dist/code-path-validator.d.ts.map +0 -1
  92. package/dist/code-path-validator.js +0 -551
  93. package/dist/code-path-validator.js.map +0 -1
  94. package/dist/code-paths-overlap.d.ts +0 -50
  95. package/dist/code-paths-overlap.d.ts.map +0 -1
  96. package/dist/code-paths-overlap.js +0 -248
  97. package/dist/code-paths-overlap.js.map +0 -1
  98. package/dist/color-support.d.ts +0 -21
  99. package/dist/color-support.d.ts.map +0 -1
  100. package/dist/color-support.js +0 -67
  101. package/dist/color-support.js.map +0 -1
  102. package/dist/commands-logger.d.ts +0 -71
  103. package/dist/commands-logger.d.ts.map +0 -1
  104. package/dist/commands-logger.js +0 -256
  105. package/dist/commands-logger.js.map +0 -1
  106. package/dist/commit-message-utils.d.ts +0 -26
  107. package/dist/commit-message-utils.d.ts.map +0 -1
  108. package/dist/commit-message-utils.js +0 -44
  109. package/dist/commit-message-utils.js.map +0 -1
  110. package/dist/compliance-parser.d.ts +0 -125
  111. package/dist/compliance-parser.d.ts.map +0 -1
  112. package/dist/compliance-parser.js +0 -457
  113. package/dist/compliance-parser.js.map +0 -1
  114. package/dist/constants/backlog-patterns.d.ts +0 -21
  115. package/dist/constants/backlog-patterns.d.ts.map +0 -1
  116. package/dist/constants/backlog-patterns.js +0 -26
  117. package/dist/constants/backlog-patterns.js.map +0 -1
  118. package/dist/constants/dora-constants.d.ts +0 -50
  119. package/dist/constants/dora-constants.d.ts.map +0 -1
  120. package/dist/constants/dora-constants.js +0 -56
  121. package/dist/constants/dora-constants.js.map +0 -1
  122. package/dist/constants/gate-constants.d.ts +0 -16
  123. package/dist/constants/gate-constants.d.ts.map +0 -1
  124. package/dist/constants/gate-constants.js +0 -18
  125. package/dist/constants/gate-constants.js.map +0 -1
  126. package/dist/constants/linter-constants.d.ts +0 -17
  127. package/dist/constants/linter-constants.d.ts.map +0 -1
  128. package/dist/constants/linter-constants.js +0 -19
  129. package/dist/constants/linter-constants.js.map +0 -1
  130. package/dist/constants/tokenizer-constants.d.ts +0 -16
  131. package/dist/constants/tokenizer-constants.d.ts.map +0 -1
  132. package/dist/constants/tokenizer-constants.js +0 -18
  133. package/dist/constants/tokenizer-constants.js.map +0 -1
  134. package/dist/context/context-computer.d.ts +0 -36
  135. package/dist/context/context-computer.d.ts.map +0 -1
  136. package/dist/context/context-computer.js +0 -128
  137. package/dist/context/context-computer.js.map +0 -1
  138. package/dist/context/git-state-reader.d.ts +0 -37
  139. package/dist/context/git-state-reader.d.ts.map +0 -1
  140. package/dist/context/git-state-reader.js +0 -64
  141. package/dist/context/git-state-reader.js.map +0 -1
  142. package/dist/context/index.d.ts +0 -18
  143. package/dist/context/index.d.ts.map +0 -1
  144. package/dist/context/index.js +0 -20
  145. package/dist/context/index.js.map +0 -1
  146. package/dist/context/location-resolver.d.ts +0 -34
  147. package/dist/context/location-resolver.d.ts.map +0 -1
  148. package/dist/context/location-resolver.js +0 -179
  149. package/dist/context/location-resolver.js.map +0 -1
  150. package/dist/context/wu-state-reader.d.ts +0 -30
  151. package/dist/context/wu-state-reader.d.ts.map +0 -1
  152. package/dist/context/wu-state-reader.js +0 -126
  153. package/dist/context/wu-state-reader.js.map +0 -1
  154. package/dist/context-di.d.ts +0 -185
  155. package/dist/context-di.d.ts.map +0 -1
  156. package/dist/context-di.js +0 -165
  157. package/dist/context-di.js.map +0 -1
  158. package/dist/context-validation-integration.d.ts +0 -69
  159. package/dist/context-validation-integration.d.ts.map +0 -1
  160. package/dist/context-validation-integration.js +0 -161
  161. package/dist/context-validation-integration.js.map +0 -1
  162. package/dist/core/scope-checker.d.ts +0 -80
  163. package/dist/core/scope-checker.d.ts.map +0 -1
  164. package/dist/core/scope-checker.js +0 -166
  165. package/dist/core/scope-checker.js.map +0 -1
  166. package/dist/core/tool-runner.d.ts +0 -136
  167. package/dist/core/tool-runner.d.ts.map +0 -1
  168. package/dist/core/tool-runner.js +0 -396
  169. package/dist/core/tool-runner.js.map +0 -1
  170. package/dist/core/tool.constants.d.ts +0 -106
  171. package/dist/core/tool.constants.d.ts.map +0 -1
  172. package/dist/core/tool.constants.js +0 -104
  173. package/dist/core/tool.constants.js.map +0 -1
  174. package/dist/core/tool.schemas.d.ts +0 -227
  175. package/dist/core/tool.schemas.d.ts.map +0 -1
  176. package/dist/core/tool.schemas.js +0 -229
  177. package/dist/core/tool.schemas.js.map +0 -1
  178. package/dist/core/worktree-guard.d.ts +0 -115
  179. package/dist/core/worktree-guard.d.ts.map +0 -1
  180. package/dist/core/worktree-guard.js +0 -245
  181. package/dist/core/worktree-guard.js.map +0 -1
  182. package/dist/coverage-gate.d.ts +0 -126
  183. package/dist/coverage-gate.d.ts.map +0 -1
  184. package/dist/coverage-gate.js +0 -209
  185. package/dist/coverage-gate.js.map +0 -1
  186. package/dist/cycle-detector.d.ts +0 -52
  187. package/dist/cycle-detector.d.ts.map +0 -1
  188. package/dist/cycle-detector.js +0 -84
  189. package/dist/cycle-detector.js.map +0 -1
  190. package/dist/date-utils.d.ts +0 -66
  191. package/dist/date-utils.d.ts.map +0 -1
  192. package/dist/date-utils.js +0 -143
  193. package/dist/date-utils.js.map +0 -1
  194. package/dist/delegation-escalation.d.ts +0 -71
  195. package/dist/delegation-escalation.d.ts.map +0 -1
  196. package/dist/delegation-escalation.js +0 -264
  197. package/dist/delegation-escalation.js.map +0 -1
  198. package/dist/delegation-monitor.d.ts +0 -262
  199. package/dist/delegation-monitor.d.ts.map +0 -1
  200. package/dist/delegation-monitor.js +0 -678
  201. package/dist/delegation-monitor.js.map +0 -1
  202. package/dist/delegation-recovery.d.ts +0 -62
  203. package/dist/delegation-recovery.d.ts.map +0 -1
  204. package/dist/delegation-recovery.js +0 -304
  205. package/dist/delegation-recovery.js.map +0 -1
  206. package/dist/delegation-registry-schema.d.ts +0 -75
  207. package/dist/delegation-registry-schema.d.ts.map +0 -1
  208. package/dist/delegation-registry-schema.js +0 -93
  209. package/dist/delegation-registry-schema.js.map +0 -1
  210. package/dist/delegation-registry-store.d.ts +0 -145
  211. package/dist/delegation-registry-store.d.ts.map +0 -1
  212. package/dist/delegation-registry-store.js +0 -308
  213. package/dist/delegation-registry-store.js.map +0 -1
  214. package/dist/delegation-tree.d.ts +0 -52
  215. package/dist/delegation-tree.d.ts.map +0 -1
  216. package/dist/delegation-tree.js +0 -205
  217. package/dist/delegation-tree.js.map +0 -1
  218. package/dist/dependency-graph.d.ts +0 -169
  219. package/dist/dependency-graph.d.ts.map +0 -1
  220. package/dist/dependency-graph.js +0 -612
  221. package/dist/dependency-graph.js.map +0 -1
  222. package/dist/dependency-guard.d.ts +0 -41
  223. package/dist/dependency-guard.d.ts.map +0 -1
  224. package/dist/dependency-guard.js +0 -145
  225. package/dist/dependency-guard.js.map +0 -1
  226. package/dist/dependency-validator.d.ts +0 -89
  227. package/dist/dependency-validator.d.ts.map +0 -1
  228. package/dist/dependency-validator.js +0 -155
  229. package/dist/dependency-validator.js.map +0 -1
  230. package/dist/docs-path-validator.d.ts +0 -16
  231. package/dist/docs-path-validator.d.ts.map +0 -1
  232. package/dist/docs-path-validator.js +0 -98
  233. package/dist/docs-path-validator.js.map +0 -1
  234. package/dist/domain/context.schemas.d.ts +0 -170
  235. package/dist/domain/context.schemas.d.ts.map +0 -1
  236. package/dist/domain/context.schemas.js +0 -151
  237. package/dist/domain/context.schemas.js.map +0 -1
  238. package/dist/domain/index.d.ts +0 -15
  239. package/dist/domain/index.d.ts.map +0 -1
  240. package/dist/domain/index.js +0 -23
  241. package/dist/domain/index.js.map +0 -1
  242. package/dist/domain/orchestration.constants.d.ts +0 -111
  243. package/dist/domain/orchestration.constants.d.ts.map +0 -1
  244. package/dist/domain/orchestration.constants.js +0 -130
  245. package/dist/domain/orchestration.constants.js.map +0 -1
  246. package/dist/domain/orchestration.schemas.d.ts +0 -307
  247. package/dist/domain/orchestration.schemas.d.ts.map +0 -1
  248. package/dist/domain/orchestration.schemas.js +0 -214
  249. package/dist/domain/orchestration.schemas.js.map +0 -1
  250. package/dist/domain/orchestration.types.d.ts +0 -134
  251. package/dist/domain/orchestration.types.d.ts.map +0 -1
  252. package/dist/domain/orchestration.types.js +0 -5
  253. package/dist/domain/orchestration.types.js.map +0 -1
  254. package/dist/domain/recovery.schemas.d.ts +0 -164
  255. package/dist/domain/recovery.schemas.d.ts.map +0 -1
  256. package/dist/domain/recovery.schemas.js +0 -134
  257. package/dist/domain/recovery.schemas.js.map +0 -1
  258. package/dist/domain/validation.schemas.d.ts +0 -147
  259. package/dist/domain/validation.schemas.d.ts.map +0 -1
  260. package/dist/domain/validation.schemas.js +0 -117
  261. package/dist/domain/validation.schemas.js.map +0 -1
  262. package/dist/error-handler.d.ts +0 -144
  263. package/dist/error-handler.d.ts.map +0 -1
  264. package/dist/error-handler.js +0 -214
  265. package/dist/error-handler.js.map +0 -1
  266. package/dist/file-classifiers.d.ts +0 -63
  267. package/dist/file-classifiers.d.ts.map +0 -1
  268. package/dist/file-classifiers.js +0 -111
  269. package/dist/file-classifiers.js.map +0 -1
  270. package/dist/force-bypass-audit.d.ts +0 -47
  271. package/dist/force-bypass-audit.d.ts.map +0 -1
  272. package/dist/force-bypass-audit.js +0 -146
  273. package/dist/force-bypass-audit.js.map +0 -1
  274. package/dist/gates-agent-mode.d.ts +0 -107
  275. package/dist/gates-agent-mode.d.ts.map +0 -1
  276. package/dist/gates-agent-mode.js +0 -138
  277. package/dist/gates-agent-mode.js.map +0 -1
  278. package/dist/gates-config.d.ts +0 -268
  279. package/dist/gates-config.d.ts.map +0 -1
  280. package/dist/gates-config.js +0 -644
  281. package/dist/gates-config.js.map +0 -1
  282. package/dist/generate-traceability.d.ts +0 -106
  283. package/dist/generate-traceability.d.ts.map +0 -1
  284. package/dist/generate-traceability.js +0 -387
  285. package/dist/generate-traceability.js.map +0 -1
  286. package/dist/git-adapter.d.ts +0 -406
  287. package/dist/git-adapter.d.ts.map +0 -1
  288. package/dist/git-adapter.js +0 -686
  289. package/dist/git-adapter.js.map +0 -1
  290. package/dist/git-context-extractor.d.ts +0 -102
  291. package/dist/git-context-extractor.d.ts.map +0 -1
  292. package/dist/git-context-extractor.js +0 -571
  293. package/dist/git-context-extractor.js.map +0 -1
  294. package/dist/git-staged-validator.d.ts +0 -33
  295. package/dist/git-staged-validator.d.ts.map +0 -1
  296. package/dist/git-staged-validator.js +0 -52
  297. package/dist/git-staged-validator.js.map +0 -1
  298. package/dist/hardcoded-strings.d.ts +0 -67
  299. package/dist/hardcoded-strings.d.ts.map +0 -1
  300. package/dist/hardcoded-strings.js +0 -276
  301. package/dist/hardcoded-strings.js.map +0 -1
  302. package/dist/incremental-lint.d.ts +0 -71
  303. package/dist/incremental-lint.d.ts.map +0 -1
  304. package/dist/incremental-lint.js +0 -132
  305. package/dist/incremental-lint.js.map +0 -1
  306. package/dist/incremental-test.d.ts +0 -33
  307. package/dist/incremental-test.d.ts.map +0 -1
  308. package/dist/incremental-test.js +0 -64
  309. package/dist/incremental-test.js.map +0 -1
  310. package/dist/index.d.ts +0 -104
  311. package/dist/index.d.ts.map +0 -1
  312. package/dist/index.js.map +0 -1
  313. package/dist/invariants/check-automated-tests.d.ts +0 -42
  314. package/dist/invariants/check-automated-tests.d.ts.map +0 -1
  315. package/dist/invariants/check-automated-tests.js +0 -171
  316. package/dist/invariants/check-automated-tests.js.map +0 -1
  317. package/dist/invariants-runner.d.ts +0 -108
  318. package/dist/invariants-runner.d.ts.map +0 -1
  319. package/dist/invariants-runner.js +0 -547
  320. package/dist/invariants-runner.js.map +0 -1
  321. package/dist/lane-checker.d.ts +0 -132
  322. package/dist/lane-checker.d.ts.map +0 -1
  323. package/dist/lane-checker.js +0 -743
  324. package/dist/lane-checker.js.map +0 -1
  325. package/dist/lane-inference.d.ts +0 -29
  326. package/dist/lane-inference.d.ts.map +0 -1
  327. package/dist/lane-inference.js +0 -210
  328. package/dist/lane-inference.js.map +0 -1
  329. package/dist/lane-lock.d.ts +0 -220
  330. package/dist/lane-lock.d.ts.map +0 -1
  331. package/dist/lane-lock.js +0 -499
  332. package/dist/lane-lock.js.map +0 -1
  333. package/dist/lane-suggest-prompt.d.ts +0 -97
  334. package/dist/lane-suggest-prompt.d.ts.map +0 -1
  335. package/dist/lane-suggest-prompt.js +0 -362
  336. package/dist/lane-suggest-prompt.js.map +0 -1
  337. package/dist/lane-validator.d.ts +0 -49
  338. package/dist/lane-validator.d.ts.map +0 -1
  339. package/dist/lane-validator.js +0 -117
  340. package/dist/lane-validator.js.map +0 -1
  341. package/dist/logs-lib.d.ts +0 -89
  342. package/dist/logs-lib.d.ts.map +0 -1
  343. package/dist/logs-lib.js +0 -214
  344. package/dist/logs-lib.js.map +0 -1
  345. package/dist/lumenflow-config-schema.d.ts +0 -1428
  346. package/dist/lumenflow-config-schema.d.ts.map +0 -1
  347. package/dist/lumenflow-config-schema.js +0 -1255
  348. package/dist/lumenflow-config-schema.js.map +0 -1
  349. package/dist/lumenflow-config.d.ts +0 -94
  350. package/dist/lumenflow-config.d.ts.map +0 -1
  351. package/dist/lumenflow-config.js +0 -253
  352. package/dist/lumenflow-config.js.map +0 -1
  353. package/dist/lumenflow-home.d.ts +0 -118
  354. package/dist/lumenflow-home.d.ts.map +0 -1
  355. package/dist/lumenflow-home.js +0 -214
  356. package/dist/lumenflow-home.js.map +0 -1
  357. package/dist/manual-test-validator.d.ts +0 -84
  358. package/dist/manual-test-validator.d.ts.map +0 -1
  359. package/dist/manual-test-validator.js +0 -206
  360. package/dist/manual-test-validator.js.map +0 -1
  361. package/dist/merge-lock.d.ts +0 -107
  362. package/dist/merge-lock.d.ts.map +0 -1
  363. package/dist/merge-lock.js +0 -263
  364. package/dist/merge-lock.js.map +0 -1
  365. package/dist/micro-worktree-shared.d.ts +0 -128
  366. package/dist/micro-worktree-shared.d.ts.map +0 -1
  367. package/dist/micro-worktree-shared.js +0 -352
  368. package/dist/micro-worktree-shared.js.map +0 -1
  369. package/dist/micro-worktree.d.ts +0 -165
  370. package/dist/micro-worktree.d.ts.map +0 -1
  371. package/dist/micro-worktree.js +0 -463
  372. package/dist/micro-worktree.js.map +0 -1
  373. package/dist/migration-deployer.d.ts +0 -70
  374. package/dist/migration-deployer.d.ts.map +0 -1
  375. package/dist/migration-deployer.js +0 -152
  376. package/dist/migration-deployer.js.map +0 -1
  377. package/dist/normalize-config-keys.d.ts +0 -10
  378. package/dist/normalize-config-keys.d.ts.map +0 -1
  379. package/dist/normalize-config-keys.js +0 -70
  380. package/dist/normalize-config-keys.js.map +0 -1
  381. package/dist/orchestration-advisory-loader.d.ts +0 -19
  382. package/dist/orchestration-advisory-loader.d.ts.map +0 -1
  383. package/dist/orchestration-advisory-loader.js +0 -94
  384. package/dist/orchestration-advisory-loader.js.map +0 -1
  385. package/dist/orchestration-advisory.d.ts +0 -49
  386. package/dist/orchestration-advisory.d.ts.map +0 -1
  387. package/dist/orchestration-advisory.js +0 -97
  388. package/dist/orchestration-advisory.js.map +0 -1
  389. package/dist/orchestration-di.d.ts +0 -36
  390. package/dist/orchestration-di.d.ts.map +0 -1
  391. package/dist/orchestration-di.js +0 -60
  392. package/dist/orchestration-di.js.map +0 -1
  393. package/dist/orchestration-rules.d.ts +0 -60
  394. package/dist/orchestration-rules.d.ts.map +0 -1
  395. package/dist/orchestration-rules.js +0 -212
  396. package/dist/orchestration-rules.js.map +0 -1
  397. package/dist/orphan-detector.d.ts +0 -148
  398. package/dist/orphan-detector.d.ts.map +0 -1
  399. package/dist/orphan-detector.js +0 -253
  400. package/dist/orphan-detector.js.map +0 -1
  401. package/dist/pack-authoring-template-engine.d.ts +0 -54
  402. package/dist/pack-authoring-template-engine.d.ts.map +0 -1
  403. package/dist/pack-authoring-template-engine.js +0 -510
  404. package/dist/pack-authoring-template-engine.js.map +0 -1
  405. package/dist/path-classifiers.d.ts +0 -58
  406. package/dist/path-classifiers.d.ts.map +0 -1
  407. package/dist/path-classifiers.js +0 -96
  408. package/dist/path-classifiers.js.map +0 -1
  409. package/dist/patrol-loop.d.ts +0 -171
  410. package/dist/patrol-loop.d.ts.map +0 -1
  411. package/dist/patrol-loop.js +0 -197
  412. package/dist/patrol-loop.js.map +0 -1
  413. package/dist/piped-command-detector.d.ts +0 -25
  414. package/dist/piped-command-detector.d.ts.map +0 -1
  415. package/dist/piped-command-detector.js +0 -67
  416. package/dist/piped-command-detector.js.map +0 -1
  417. package/dist/ports/context.ports.d.ts +0 -136
  418. package/dist/ports/context.ports.d.ts.map +0 -1
  419. package/dist/ports/context.ports.js +0 -4
  420. package/dist/ports/context.ports.js.map +0 -1
  421. package/dist/ports/core-tools.ports.d.ts +0 -282
  422. package/dist/ports/core-tools.ports.d.ts.map +0 -1
  423. package/dist/ports/core-tools.ports.js +0 -4
  424. package/dist/ports/core-tools.ports.js.map +0 -1
  425. package/dist/ports/dashboard-renderer.port.d.ts +0 -113
  426. package/dist/ports/dashboard-renderer.port.d.ts.map +0 -1
  427. package/dist/ports/dashboard-renderer.port.js +0 -4
  428. package/dist/ports/dashboard-renderer.port.js.map +0 -1
  429. package/dist/ports/git-validator.ports.d.ts +0 -114
  430. package/dist/ports/git-validator.ports.d.ts.map +0 -1
  431. package/dist/ports/git-validator.ports.js +0 -4
  432. package/dist/ports/git-validator.ports.js.map +0 -1
  433. package/dist/ports/index.d.ts +0 -21
  434. package/dist/ports/index.d.ts.map +0 -1
  435. package/dist/ports/index.js +0 -23
  436. package/dist/ports/index.js.map +0 -1
  437. package/dist/ports/metrics-collector.port.d.ts +0 -133
  438. package/dist/ports/metrics-collector.port.d.ts.map +0 -1
  439. package/dist/ports/metrics-collector.port.js +0 -4
  440. package/dist/ports/metrics-collector.port.js.map +0 -1
  441. package/dist/ports/recovery.ports.d.ts +0 -59
  442. package/dist/ports/recovery.ports.d.ts.map +0 -1
  443. package/dist/ports/recovery.ports.js +0 -4
  444. package/dist/ports/recovery.ports.js.map +0 -1
  445. package/dist/ports/validation.ports.d.ts +0 -75
  446. package/dist/ports/validation.ports.d.ts.map +0 -1
  447. package/dist/ports/validation.ports.js +0 -4
  448. package/dist/ports/validation.ports.js.map +0 -1
  449. package/dist/ports/wu-helpers.ports.d.ts +0 -227
  450. package/dist/ports/wu-helpers.ports.d.ts.map +0 -1
  451. package/dist/ports/wu-helpers.ports.js +0 -4
  452. package/dist/ports/wu-helpers.ports.js.map +0 -1
  453. package/dist/process-detector.d.ts +0 -69
  454. package/dist/process-detector.d.ts.map +0 -1
  455. package/dist/process-detector.js +0 -175
  456. package/dist/process-detector.js.map +0 -1
  457. package/dist/prompt-linter.d.ts +0 -66
  458. package/dist/prompt-linter.d.ts.map +0 -1
  459. package/dist/prompt-linter.js +0 -323
  460. package/dist/prompt-linter.js.map +0 -1
  461. package/dist/prompt-monitor.d.ts +0 -6
  462. package/dist/prompt-monitor.d.ts.map +0 -1
  463. package/dist/prompt-monitor.js +0 -218
  464. package/dist/prompt-monitor.js.map +0 -1
  465. package/dist/rebase-artifact-cleanup.d.ts +0 -156
  466. package/dist/rebase-artifact-cleanup.d.ts.map +0 -1
  467. package/dist/rebase-artifact-cleanup.js +0 -475
  468. package/dist/rebase-artifact-cleanup.js.map +0 -1
  469. package/dist/recovery/index.d.ts +0 -12
  470. package/dist/recovery/index.d.ts.map +0 -1
  471. package/dist/recovery/index.js +0 -14
  472. package/dist/recovery/index.js.map +0 -1
  473. package/dist/recovery/recovery-analyzer.d.ts +0 -49
  474. package/dist/recovery/recovery-analyzer.d.ts.map +0 -1
  475. package/dist/recovery/recovery-analyzer.js +0 -149
  476. package/dist/recovery/recovery-analyzer.js.map +0 -1
  477. package/dist/resolve-policy.d.ts +0 -257
  478. package/dist/resolve-policy.d.ts.map +0 -1
  479. package/dist/resolve-policy.js +0 -269
  480. package/dist/resolve-policy.js.map +0 -1
  481. package/dist/retry-strategy.d.ts +0 -191
  482. package/dist/retry-strategy.d.ts.map +0 -1
  483. package/dist/retry-strategy.js +0 -286
  484. package/dist/retry-strategy.js.map +0 -1
  485. package/dist/risk-detector.d.ts +0 -109
  486. package/dist/risk-detector.d.ts.map +0 -1
  487. package/dist/risk-detector.js +0 -253
  488. package/dist/risk-detector.js.map +0 -1
  489. package/dist/rollback-utils.d.ts +0 -129
  490. package/dist/rollback-utils.d.ts.map +0 -1
  491. package/dist/rollback-utils.js +0 -217
  492. package/dist/rollback-utils.js.map +0 -1
  493. package/dist/sandbox-allowlist.d.ts +0 -16
  494. package/dist/sandbox-allowlist.d.ts.map +0 -1
  495. package/dist/sandbox-allowlist.js +0 -77
  496. package/dist/sandbox-allowlist.js.map +0 -1
  497. package/dist/sandbox-backend-linux.d.ts +0 -6
  498. package/dist/sandbox-backend-linux.d.ts.map +0 -1
  499. package/dist/sandbox-backend-linux.js +0 -67
  500. package/dist/sandbox-backend-linux.js.map +0 -1
  501. package/dist/sandbox-backend-macos.d.ts +0 -6
  502. package/dist/sandbox-backend-macos.d.ts.map +0 -1
  503. package/dist/sandbox-backend-macos.js +0 -66
  504. package/dist/sandbox-backend-macos.js.map +0 -1
  505. package/dist/sandbox-backend-windows.d.ts +0 -6
  506. package/dist/sandbox-backend-windows.d.ts.map +0 -1
  507. package/dist/sandbox-backend-windows.js +0 -30
  508. package/dist/sandbox-backend-windows.js.map +0 -1
  509. package/dist/sandbox-profile.d.ts +0 -53
  510. package/dist/sandbox-profile.d.ts.map +0 -1
  511. package/dist/sandbox-profile.js +0 -64
  512. package/dist/sandbox-profile.js.map +0 -1
  513. package/dist/schemas/arg-validators.d.ts +0 -58
  514. package/dist/schemas/arg-validators.d.ts.map +0 -1
  515. package/dist/schemas/arg-validators.js +0 -193
  516. package/dist/schemas/arg-validators.js.map +0 -1
  517. package/dist/schemas/command-schemas.d.ts +0 -171
  518. package/dist/schemas/command-schemas.d.ts.map +0 -1
  519. package/dist/schemas/command-schemas.js +0 -145
  520. package/dist/schemas/command-schemas.js.map +0 -1
  521. package/dist/schemas/flow-arg-validators.d.ts +0 -32
  522. package/dist/schemas/flow-arg-validators.d.ts.map +0 -1
  523. package/dist/schemas/flow-arg-validators.js +0 -57
  524. package/dist/schemas/flow-arg-validators.js.map +0 -1
  525. package/dist/schemas/flow-schemas.d.ts +0 -152
  526. package/dist/schemas/flow-schemas.d.ts.map +0 -1
  527. package/dist/schemas/flow-schemas.js +0 -105
  528. package/dist/schemas/flow-schemas.js.map +0 -1
  529. package/dist/schemas/index.d.ts +0 -33
  530. package/dist/schemas/index.d.ts.map +0 -1
  531. package/dist/schemas/index.js +0 -96
  532. package/dist/schemas/index.js.map +0 -1
  533. package/dist/schemas/initiative-arg-validators.d.ts +0 -64
  534. package/dist/schemas/initiative-arg-validators.d.ts.map +0 -1
  535. package/dist/schemas/initiative-arg-validators.js +0 -65
  536. package/dist/schemas/initiative-arg-validators.js.map +0 -1
  537. package/dist/schemas/initiative-schemas.d.ts +0 -256
  538. package/dist/schemas/initiative-schemas.d.ts.map +0 -1
  539. package/dist/schemas/initiative-schemas.js +0 -186
  540. package/dist/schemas/initiative-schemas.js.map +0 -1
  541. package/dist/schemas/memory-arg-validators.d.ts +0 -91
  542. package/dist/schemas/memory-arg-validators.d.ts.map +0 -1
  543. package/dist/schemas/memory-arg-validators.js +0 -75
  544. package/dist/schemas/memory-arg-validators.js.map +0 -1
  545. package/dist/schemas/memory-schemas.d.ts +0 -287
  546. package/dist/schemas/memory-schemas.d.ts.map +0 -1
  547. package/dist/schemas/memory-schemas.js +0 -242
  548. package/dist/schemas/memory-schemas.js.map +0 -1
  549. package/dist/schemas/schema-utils.d.ts +0 -87
  550. package/dist/schemas/schema-utils.d.ts.map +0 -1
  551. package/dist/schemas/schema-utils.js +0 -320
  552. package/dist/schemas/schema-utils.js.map +0 -1
  553. package/dist/schemas/setup-arg-validators.d.ts +0 -91
  554. package/dist/schemas/setup-arg-validators.d.ts.map +0 -1
  555. package/dist/schemas/setup-arg-validators.js +0 -98
  556. package/dist/schemas/setup-arg-validators.js.map +0 -1
  557. package/dist/schemas/setup-schemas.d.ts +0 -335
  558. package/dist/schemas/setup-schemas.d.ts.map +0 -1
  559. package/dist/schemas/setup-schemas.js +0 -260
  560. package/dist/schemas/setup-schemas.js.map +0 -1
  561. package/dist/schemas/validation-arg-validators.d.ts +0 -18
  562. package/dist/schemas/validation-arg-validators.d.ts.map +0 -1
  563. package/dist/schemas/validation-arg-validators.js +0 -59
  564. package/dist/schemas/validation-arg-validators.js.map +0 -1
  565. package/dist/schemas/validation-schemas.d.ts +0 -80
  566. package/dist/schemas/validation-schemas.d.ts.map +0 -1
  567. package/dist/schemas/validation-schemas.js +0 -88
  568. package/dist/schemas/validation-schemas.js.map +0 -1
  569. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +0 -118
  570. package/dist/schemas/wu-lifecycle-arg-validators.d.ts.map +0 -1
  571. package/dist/schemas/wu-lifecycle-arg-validators.js +0 -82
  572. package/dist/schemas/wu-lifecycle-arg-validators.js.map +0 -1
  573. package/dist/schemas/wu-lifecycle-schemas.d.ts +0 -362
  574. package/dist/schemas/wu-lifecycle-schemas.d.ts.map +0 -1
  575. package/dist/schemas/wu-lifecycle-schemas.js +0 -284
  576. package/dist/schemas/wu-lifecycle-schemas.js.map +0 -1
  577. package/dist/section-headings.d.ts +0 -35
  578. package/dist/section-headings.d.ts.map +0 -1
  579. package/dist/section-headings.js +0 -54
  580. package/dist/section-headings.js.map +0 -1
  581. package/dist/spawn-escalation.d.ts +0 -91
  582. package/dist/spawn-escalation.d.ts.map +0 -1
  583. package/dist/spawn-escalation.js +0 -258
  584. package/dist/spawn-escalation.js.map +0 -1
  585. package/dist/spawn-monitor.d.ts +0 -230
  586. package/dist/spawn-monitor.d.ts.map +0 -1
  587. package/dist/spawn-monitor.js +0 -675
  588. package/dist/spawn-monitor.js.map +0 -1
  589. package/dist/spawn-prompt-schema.d.ts +0 -107
  590. package/dist/spawn-prompt-schema.d.ts.map +0 -1
  591. package/dist/spawn-prompt-schema.js +0 -163
  592. package/dist/spawn-prompt-schema.js.map +0 -1
  593. package/dist/spawn-recovery.d.ts +0 -83
  594. package/dist/spawn-recovery.d.ts.map +0 -1
  595. package/dist/spawn-recovery.js +0 -299
  596. package/dist/spawn-recovery.js.map +0 -1
  597. package/dist/spawn-registry-schema.d.ts +0 -122
  598. package/dist/spawn-registry-schema.d.ts.map +0 -1
  599. package/dist/spawn-registry-schema.js +0 -129
  600. package/dist/spawn-registry-schema.js.map +0 -1
  601. package/dist/spawn-registry-store.d.ts +0 -161
  602. package/dist/spawn-registry-store.d.ts.map +0 -1
  603. package/dist/spawn-registry-store.js +0 -301
  604. package/dist/spawn-registry-store.js.map +0 -1
  605. package/dist/spawn-strategy.d.ts +0 -60
  606. package/dist/spawn-strategy.d.ts.map +0 -1
  607. package/dist/spawn-strategy.js +0 -112
  608. package/dist/spawn-strategy.js.map +0 -1
  609. package/dist/spawn-tree.d.ts +0 -125
  610. package/dist/spawn-tree.d.ts.map +0 -1
  611. package/dist/spawn-tree.js +0 -286
  612. package/dist/spawn-tree.js.map +0 -1
  613. package/dist/stamp-status-validator.d.ts +0 -77
  614. package/dist/stamp-status-validator.d.ts.map +0 -1
  615. package/dist/stamp-status-validator.js +0 -138
  616. package/dist/stamp-status-validator.js.map +0 -1
  617. package/dist/stamp-tracking.d.ts +0 -12
  618. package/dist/stamp-tracking.d.ts.map +0 -1
  619. package/dist/stamp-tracking.js +0 -43
  620. package/dist/stamp-tracking.js.map +0 -1
  621. package/dist/stamp-utils.d.ts +0 -94
  622. package/dist/stamp-utils.d.ts.map +0 -1
  623. package/dist/stamp-utils.js +0 -245
  624. package/dist/stamp-utils.js.map +0 -1
  625. package/dist/state-cleanup-core.d.ts +0 -206
  626. package/dist/state-cleanup-core.d.ts.map +0 -1
  627. package/dist/state-cleanup-core.js +0 -225
  628. package/dist/state-cleanup-core.js.map +0 -1
  629. package/dist/state-doctor-core.d.ts +0 -177
  630. package/dist/state-doctor-core.d.ts.map +0 -1
  631. package/dist/state-doctor-core.js +0 -395
  632. package/dist/state-doctor-core.js.map +0 -1
  633. package/dist/state-machine.d.ts +0 -10
  634. package/dist/state-machine.d.ts.map +0 -1
  635. package/dist/state-machine.js +0 -89
  636. package/dist/state-machine.js.map +0 -1
  637. package/dist/stream-error-handler.d.ts +0 -68
  638. package/dist/stream-error-handler.d.ts.map +0 -1
  639. package/dist/stream-error-handler.js +0 -77
  640. package/dist/stream-error-handler.js.map +0 -1
  641. package/dist/system-map-validator.d.ts +0 -111
  642. package/dist/system-map-validator.d.ts.map +0 -1
  643. package/dist/system-map-validator.js +0 -383
  644. package/dist/system-map-validator.js.map +0 -1
  645. package/dist/telemetry.d.ts +0 -81
  646. package/dist/telemetry.d.ts.map +0 -1
  647. package/dist/telemetry.js +0 -219
  648. package/dist/telemetry.js.map +0 -1
  649. package/dist/template-loader.d.ts +0 -151
  650. package/dist/template-loader.d.ts.map +0 -1
  651. package/dist/template-loader.js +0 -400
  652. package/dist/template-loader.js.map +0 -1
  653. package/dist/test-baseline.d.ts +0 -177
  654. package/dist/test-baseline.d.ts.map +0 -1
  655. package/dist/test-baseline.js +0 -286
  656. package/dist/test-baseline.js.map +0 -1
  657. package/dist/token-counter.d.ts +0 -50
  658. package/dist/token-counter.d.ts.map +0 -1
  659. package/dist/token-counter.js +0 -144
  660. package/dist/token-counter.js.map +0 -1
  661. package/dist/usecases/analyze-recovery.usecase.d.ts +0 -43
  662. package/dist/usecases/analyze-recovery.usecase.d.ts.map +0 -1
  663. package/dist/usecases/analyze-recovery.usecase.js +0 -34
  664. package/dist/usecases/analyze-recovery.usecase.js.map +0 -1
  665. package/dist/usecases/compute-context.usecase.d.ts +0 -63
  666. package/dist/usecases/compute-context.usecase.d.ts.map +0 -1
  667. package/dist/usecases/compute-context.usecase.js +0 -91
  668. package/dist/usecases/compute-context.usecase.js.map +0 -1
  669. package/dist/usecases/get-dashboard-data.usecase.d.ts +0 -53
  670. package/dist/usecases/get-dashboard-data.usecase.d.ts.map +0 -1
  671. package/dist/usecases/get-dashboard-data.usecase.js +0 -54
  672. package/dist/usecases/get-dashboard-data.usecase.js.map +0 -1
  673. package/dist/usecases/get-suggestions.usecase.d.ts +0 -101
  674. package/dist/usecases/get-suggestions.usecase.d.ts.map +0 -1
  675. package/dist/usecases/get-suggestions.usecase.js +0 -148
  676. package/dist/usecases/get-suggestions.usecase.js.map +0 -1
  677. package/dist/usecases/index.d.ts +0 -15
  678. package/dist/usecases/index.d.ts.map +0 -1
  679. package/dist/usecases/index.js +0 -21
  680. package/dist/usecases/index.js.map +0 -1
  681. package/dist/usecases/validate-command.usecase.d.ts +0 -56
  682. package/dist/usecases/validate-command.usecase.d.ts.map +0 -1
  683. package/dist/usecases/validate-command.usecase.js +0 -143
  684. package/dist/usecases/validate-command.usecase.js.map +0 -1
  685. package/dist/user-normalizer.d.ts +0 -36
  686. package/dist/user-normalizer.d.ts.map +0 -1
  687. package/dist/user-normalizer.js +0 -149
  688. package/dist/user-normalizer.js.map +0 -1
  689. package/dist/validation/command-registry.d.ts +0 -26
  690. package/dist/validation/command-registry.d.ts.map +0 -1
  691. package/dist/validation/command-registry.js +0 -269
  692. package/dist/validation/command-registry.js.map +0 -1
  693. package/dist/validation/index.d.ts +0 -16
  694. package/dist/validation/index.d.ts.map +0 -1
  695. package/dist/validation/index.js +0 -18
  696. package/dist/validation/index.js.map +0 -1
  697. package/dist/validation/types.d.ts +0 -140
  698. package/dist/validation/types.d.ts.map +0 -1
  699. package/dist/validation/types.js +0 -4
  700. package/dist/validation/types.js.map +0 -1
  701. package/dist/validation/validate-command.d.ts +0 -16
  702. package/dist/validation/validate-command.d.ts.map +0 -1
  703. package/dist/validation/validate-command.js +0 -163
  704. package/dist/validation/validate-command.js.map +0 -1
  705. package/dist/validators/backlog-sync.d.ts +0 -11
  706. package/dist/validators/backlog-sync.d.ts.map +0 -1
  707. package/dist/validators/backlog-sync.js +0 -65
  708. package/dist/validators/backlog-sync.js.map +0 -1
  709. package/dist/validators/phi-constants.d.ts +0 -98
  710. package/dist/validators/phi-constants.d.ts.map +0 -1
  711. package/dist/validators/phi-constants.js +0 -153
  712. package/dist/validators/phi-constants.js.map +0 -1
  713. package/dist/validators/phi-scanner.d.ts +0 -59
  714. package/dist/validators/phi-scanner.d.ts.map +0 -1
  715. package/dist/validators/phi-scanner.js +0 -222
  716. package/dist/validators/phi-scanner.js.map +0 -1
  717. package/dist/validators/supabase-docs-linter.d.ts +0 -15
  718. package/dist/validators/supabase-docs-linter.d.ts.map +0 -1
  719. package/dist/validators/supabase-docs-linter.js +0 -45
  720. package/dist/validators/supabase-docs-linter.js.map +0 -1
  721. package/dist/validators/wu-tasks.d.ts +0 -21
  722. package/dist/validators/wu-tasks.d.ts.map +0 -1
  723. package/dist/validators/wu-tasks.js +0 -93
  724. package/dist/validators/wu-tasks.js.map +0 -1
  725. package/dist/work-classifier.d.ts +0 -95
  726. package/dist/work-classifier.d.ts.map +0 -1
  727. package/dist/work-classifier.js +0 -408
  728. package/dist/work-classifier.js.map +0 -1
  729. package/dist/worktree-ownership.d.ts +0 -51
  730. package/dist/worktree-ownership.d.ts.map +0 -1
  731. package/dist/worktree-ownership.js +0 -77
  732. package/dist/worktree-ownership.js.map +0 -1
  733. package/dist/worktree-scanner.d.ts +0 -118
  734. package/dist/worktree-scanner.d.ts.map +0 -1
  735. package/dist/worktree-scanner.js +0 -171
  736. package/dist/worktree-scanner.js.map +0 -1
  737. package/dist/worktree-symlink.d.ts +0 -86
  738. package/dist/worktree-symlink.d.ts.map +0 -1
  739. package/dist/worktree-symlink.js +0 -349
  740. package/dist/worktree-symlink.js.map +0 -1
  741. package/dist/wu-backlog-updater.d.ts +0 -10
  742. package/dist/wu-backlog-updater.d.ts.map +0 -1
  743. package/dist/wu-backlog-updater.js +0 -40
  744. package/dist/wu-backlog-updater.js.map +0 -1
  745. package/dist/wu-checkpoint.d.ts +0 -110
  746. package/dist/wu-checkpoint.d.ts.map +0 -1
  747. package/dist/wu-checkpoint.js +0 -236
  748. package/dist/wu-checkpoint.js.map +0 -1
  749. package/dist/wu-claim-helpers.d.ts +0 -21
  750. package/dist/wu-claim-helpers.d.ts.map +0 -1
  751. package/dist/wu-claim-helpers.js +0 -66
  752. package/dist/wu-claim-helpers.js.map +0 -1
  753. package/dist/wu-claim-resume.d.ts +0 -106
  754. package/dist/wu-claim-resume.d.ts.map +0 -1
  755. package/dist/wu-claim-resume.js +0 -279
  756. package/dist/wu-claim-resume.js.map +0 -1
  757. package/dist/wu-cli-constants.d.ts +0 -425
  758. package/dist/wu-cli-constants.d.ts.map +0 -1
  759. package/dist/wu-cli-constants.js +0 -430
  760. package/dist/wu-cli-constants.js.map +0 -1
  761. package/dist/wu-consistency-checker.d.ts +0 -189
  762. package/dist/wu-consistency-checker.d.ts.map +0 -1
  763. package/dist/wu-consistency-checker.js +0 -1026
  764. package/dist/wu-consistency-checker.js.map +0 -1
  765. package/dist/wu-constants.d.ts +0 -29
  766. package/dist/wu-constants.d.ts.map +0 -1
  767. package/dist/wu-constants.js +0 -37
  768. package/dist/wu-constants.js.map +0 -1
  769. package/dist/wu-context-constants.d.ts +0 -270
  770. package/dist/wu-context-constants.d.ts.map +0 -1
  771. package/dist/wu-context-constants.js +0 -267
  772. package/dist/wu-context-constants.js.map +0 -1
  773. package/dist/wu-create-defaults.d.ts +0 -11
  774. package/dist/wu-create-defaults.d.ts.map +0 -1
  775. package/dist/wu-create-defaults.js +0 -13
  776. package/dist/wu-create-defaults.js.map +0 -1
  777. package/dist/wu-create-validators.d.ts +0 -89
  778. package/dist/wu-create-validators.d.ts.map +0 -1
  779. package/dist/wu-create-validators.js +0 -215
  780. package/dist/wu-create-validators.js.map +0 -1
  781. package/dist/wu-domain-constants.d.ts +0 -295
  782. package/dist/wu-domain-constants.d.ts.map +0 -1
  783. package/dist/wu-domain-constants.js +0 -399
  784. package/dist/wu-domain-constants.js.map +0 -1
  785. package/dist/wu-done-branch-only.d.ts +0 -120
  786. package/dist/wu-done-branch-only.d.ts.map +0 -1
  787. package/dist/wu-done-branch-only.js +0 -412
  788. package/dist/wu-done-branch-only.js.map +0 -1
  789. package/dist/wu-done-branch-utils.d.ts +0 -8
  790. package/dist/wu-done-branch-utils.d.ts.map +0 -1
  791. package/dist/wu-done-branch-utils.js +0 -34
  792. package/dist/wu-done-branch-utils.js.map +0 -1
  793. package/dist/wu-done-cleanup.d.ts +0 -6
  794. package/dist/wu-done-cleanup.d.ts.map +0 -1
  795. package/dist/wu-done-cleanup.js +0 -161
  796. package/dist/wu-done-cleanup.js.map +0 -1
  797. package/dist/wu-done-concurrent-merge.d.ts +0 -103
  798. package/dist/wu-done-concurrent-merge.d.ts.map +0 -1
  799. package/dist/wu-done-concurrent-merge.js +0 -375
  800. package/dist/wu-done-concurrent-merge.js.map +0 -1
  801. package/dist/wu-done-docs-generate.d.ts +0 -72
  802. package/dist/wu-done-docs-generate.d.ts.map +0 -1
  803. package/dist/wu-done-docs-generate.js +0 -129
  804. package/dist/wu-done-docs-generate.js.map +0 -1
  805. package/dist/wu-done-docs-only.d.ts +0 -16
  806. package/dist/wu-done-docs-only.d.ts.map +0 -1
  807. package/dist/wu-done-docs-only.js +0 -68
  808. package/dist/wu-done-docs-only.js.map +0 -1
  809. package/dist/wu-done-errors.d.ts +0 -13
  810. package/dist/wu-done-errors.d.ts.map +0 -1
  811. package/dist/wu-done-errors.js +0 -27
  812. package/dist/wu-done-errors.js.map +0 -1
  813. package/dist/wu-done-initiative-sync.d.ts +0 -13
  814. package/dist/wu-done-initiative-sync.d.ts.map +0 -1
  815. package/dist/wu-done-initiative-sync.js +0 -235
  816. package/dist/wu-done-initiative-sync.js.map +0 -1
  817. package/dist/wu-done-inputs.d.ts +0 -10
  818. package/dist/wu-done-inputs.d.ts.map +0 -1
  819. package/dist/wu-done-inputs.js +0 -55
  820. package/dist/wu-done-inputs.js.map +0 -1
  821. package/dist/wu-done-machine.d.ts +0 -175
  822. package/dist/wu-done-machine.d.ts.map +0 -1
  823. package/dist/wu-done-machine.js +0 -227
  824. package/dist/wu-done-machine.js.map +0 -1
  825. package/dist/wu-done-merged-worktree.d.ts +0 -65
  826. package/dist/wu-done-merged-worktree.d.ts.map +0 -1
  827. package/dist/wu-done-merged-worktree.js +0 -197
  828. package/dist/wu-done-merged-worktree.js.map +0 -1
  829. package/dist/wu-done-messages.d.ts +0 -120
  830. package/dist/wu-done-messages.d.ts.map +0 -1
  831. package/dist/wu-done-messages.js +0 -191
  832. package/dist/wu-done-messages.js.map +0 -1
  833. package/dist/wu-done-metadata.d.ts +0 -123
  834. package/dist/wu-done-metadata.d.ts.map +0 -1
  835. package/dist/wu-done-metadata.js +0 -240
  836. package/dist/wu-done-metadata.js.map +0 -1
  837. package/dist/wu-done-paths.d.ts +0 -87
  838. package/dist/wu-done-paths.d.ts.map +0 -1
  839. package/dist/wu-done-paths.js +0 -263
  840. package/dist/wu-done-paths.js.map +0 -1
  841. package/dist/wu-done-pr.d.ts +0 -76
  842. package/dist/wu-done-pr.d.ts.map +0 -1
  843. package/dist/wu-done-pr.js +0 -189
  844. package/dist/wu-done-pr.js.map +0 -1
  845. package/dist/wu-done-preflight.d.ts +0 -65
  846. package/dist/wu-done-preflight.d.ts.map +0 -1
  847. package/dist/wu-done-preflight.js +0 -205
  848. package/dist/wu-done-preflight.js.map +0 -1
  849. package/dist/wu-done-retry-helpers.d.ts +0 -75
  850. package/dist/wu-done-retry-helpers.d.ts.map +0 -1
  851. package/dist/wu-done-retry-helpers.js +0 -175
  852. package/dist/wu-done-retry-helpers.js.map +0 -1
  853. package/dist/wu-done-ui.d.ts +0 -29
  854. package/dist/wu-done-ui.d.ts.map +0 -1
  855. package/dist/wu-done-ui.js +0 -74
  856. package/dist/wu-done-ui.js.map +0 -1
  857. package/dist/wu-done-validation.d.ts +0 -128
  858. package/dist/wu-done-validation.d.ts.map +0 -1
  859. package/dist/wu-done-validation.js +0 -530
  860. package/dist/wu-done-validation.js.map +0 -1
  861. package/dist/wu-done-validators.d.ts +0 -16
  862. package/dist/wu-done-validators.d.ts.map +0 -1
  863. package/dist/wu-done-validators.js +0 -16
  864. package/dist/wu-done-validators.js.map +0 -1
  865. package/dist/wu-done-worktree-services.d.ts +0 -174
  866. package/dist/wu-done-worktree-services.d.ts.map +0 -1
  867. package/dist/wu-done-worktree-services.js +0 -274
  868. package/dist/wu-done-worktree-services.js.map +0 -1
  869. package/dist/wu-done-worktree.d.ts +0 -229
  870. package/dist/wu-done-worktree.d.ts.map +0 -1
  871. package/dist/wu-done-worktree.js +0 -1290
  872. package/dist/wu-done-worktree.js.map +0 -1
  873. package/dist/wu-events-cleanup.d.ts +0 -131
  874. package/dist/wu-events-cleanup.d.ts.map +0 -1
  875. package/dist/wu-events-cleanup.js +0 -404
  876. package/dist/wu-events-cleanup.js.map +0 -1
  877. package/dist/wu-git-constants.d.ts +0 -176
  878. package/dist/wu-git-constants.d.ts.map +0 -1
  879. package/dist/wu-git-constants.js +0 -178
  880. package/dist/wu-git-constants.js.map +0 -1
  881. package/dist/wu-helpers.d.ts +0 -133
  882. package/dist/wu-helpers.d.ts.map +0 -1
  883. package/dist/wu-helpers.js +0 -268
  884. package/dist/wu-helpers.js.map +0 -1
  885. package/dist/wu-id-generator.d.ts +0 -51
  886. package/dist/wu-id-generator.d.ts.map +0 -1
  887. package/dist/wu-id-generator.js +0 -110
  888. package/dist/wu-id-generator.js.map +0 -1
  889. package/dist/wu-lint.d.ts +0 -191
  890. package/dist/wu-lint.d.ts.map +0 -1
  891. package/dist/wu-lint.js +0 -338
  892. package/dist/wu-lint.js.map +0 -1
  893. package/dist/wu-list.d.ts +0 -76
  894. package/dist/wu-list.d.ts.map +0 -1
  895. package/dist/wu-list.js +0 -181
  896. package/dist/wu-list.js.map +0 -1
  897. package/dist/wu-paths-constants.d.ts +0 -264
  898. package/dist/wu-paths-constants.d.ts.map +0 -1
  899. package/dist/wu-paths-constants.js +0 -272
  900. package/dist/wu-paths-constants.js.map +0 -1
  901. package/dist/wu-paths.d.ts +0 -211
  902. package/dist/wu-paths.d.ts.map +0 -1
  903. package/dist/wu-paths.js +0 -223
  904. package/dist/wu-paths.js.map +0 -1
  905. package/dist/wu-preflight-validators.d.ts +0 -64
  906. package/dist/wu-preflight-validators.d.ts.map +0 -1
  907. package/dist/wu-preflight-validators.js +0 -277
  908. package/dist/wu-preflight-validators.js.map +0 -1
  909. package/dist/wu-recovery.d.ts +0 -220
  910. package/dist/wu-recovery.d.ts.map +0 -1
  911. package/dist/wu-recovery.js +0 -470
  912. package/dist/wu-recovery.js.map +0 -1
  913. package/dist/wu-repair-core.d.ts +0 -150
  914. package/dist/wu-repair-core.d.ts.map +0 -1
  915. package/dist/wu-repair-core.js +0 -718
  916. package/dist/wu-repair-core.js.map +0 -1
  917. package/dist/wu-rules-core.d.ts +0 -95
  918. package/dist/wu-rules-core.d.ts.map +0 -1
  919. package/dist/wu-rules-core.js +0 -401
  920. package/dist/wu-rules-core.js.map +0 -1
  921. package/dist/wu-rules-engine.d.ts +0 -29
  922. package/dist/wu-rules-engine.d.ts.map +0 -1
  923. package/dist/wu-rules-engine.js +0 -61
  924. package/dist/wu-rules-engine.js.map +0 -1
  925. package/dist/wu-rules-resolvers.d.ts +0 -19
  926. package/dist/wu-rules-resolvers.d.ts.map +0 -1
  927. package/dist/wu-rules-resolvers.js +0 -210
  928. package/dist/wu-rules-resolvers.js.map +0 -1
  929. package/dist/wu-schema-normalization.d.ts +0 -18
  930. package/dist/wu-schema-normalization.d.ts.map +0 -1
  931. package/dist/wu-schema-normalization.js +0 -87
  932. package/dist/wu-schema-normalization.js.map +0 -1
  933. package/dist/wu-schema.d.ts +0 -772
  934. package/dist/wu-schema.d.ts.map +0 -1
  935. package/dist/wu-schema.js +0 -897
  936. package/dist/wu-schema.js.map +0 -1
  937. package/dist/wu-spawn-context.d.ts +0 -66
  938. package/dist/wu-spawn-context.d.ts.map +0 -1
  939. package/dist/wu-spawn-context.js +0 -185
  940. package/dist/wu-spawn-context.js.map +0 -1
  941. package/dist/wu-spawn-helpers.d.ts +0 -110
  942. package/dist/wu-spawn-helpers.d.ts.map +0 -1
  943. package/dist/wu-spawn-helpers.js +0 -276
  944. package/dist/wu-spawn-helpers.js.map +0 -1
  945. package/dist/wu-spawn-skills.d.ts +0 -39
  946. package/dist/wu-spawn-skills.d.ts.map +0 -1
  947. package/dist/wu-spawn-skills.js +0 -214
  948. package/dist/wu-spawn-skills.js.map +0 -1
  949. package/dist/wu-spawn.d.ts +0 -394
  950. package/dist/wu-spawn.d.ts.map +0 -1
  951. package/dist/wu-spawn.js +0 -1977
  952. package/dist/wu-spawn.js.map +0 -1
  953. package/dist/wu-state-schema.d.ts +0 -237
  954. package/dist/wu-state-schema.d.ts.map +0 -1
  955. package/dist/wu-state-schema.js +0 -172
  956. package/dist/wu-state-schema.js.map +0 -1
  957. package/dist/wu-state-store.d.ts +0 -275
  958. package/dist/wu-state-store.d.ts.map +0 -1
  959. package/dist/wu-state-store.js +0 -1057
  960. package/dist/wu-state-store.js.map +0 -1
  961. package/dist/wu-status-transition.d.ts +0 -58
  962. package/dist/wu-status-transition.d.ts.map +0 -1
  963. package/dist/wu-status-transition.js +0 -370
  964. package/dist/wu-status-transition.js.map +0 -1
  965. package/dist/wu-status-updater.d.ts +0 -18
  966. package/dist/wu-status-updater.d.ts.map +0 -1
  967. package/dist/wu-status-updater.js +0 -123
  968. package/dist/wu-status-updater.js.map +0 -1
  969. package/dist/wu-statuses.d.ts +0 -154
  970. package/dist/wu-statuses.d.ts.map +0 -1
  971. package/dist/wu-statuses.js +0 -176
  972. package/dist/wu-statuses.js.map +0 -1
  973. package/dist/wu-transaction-collectors.d.ts +0 -116
  974. package/dist/wu-transaction-collectors.d.ts.map +0 -1
  975. package/dist/wu-transaction-collectors.js +0 -273
  976. package/dist/wu-transaction-collectors.js.map +0 -1
  977. package/dist/wu-transaction.d.ts +0 -172
  978. package/dist/wu-transaction.d.ts.map +0 -1
  979. package/dist/wu-transaction.js +0 -288
  980. package/dist/wu-transaction.js.map +0 -1
  981. package/dist/wu-type-helpers.d.ts +0 -26
  982. package/dist/wu-type-helpers.d.ts.map +0 -1
  983. package/dist/wu-type-helpers.js +0 -45
  984. package/dist/wu-type-helpers.js.map +0 -1
  985. package/dist/wu-ui-constants.d.ts +0 -235
  986. package/dist/wu-ui-constants.d.ts.map +0 -1
  987. package/dist/wu-ui-constants.js +0 -237
  988. package/dist/wu-ui-constants.js.map +0 -1
  989. package/dist/wu-validation-constants.d.ts +0 -61
  990. package/dist/wu-validation-constants.d.ts.map +0 -1
  991. package/dist/wu-validation-constants.js +0 -69
  992. package/dist/wu-validation-constants.js.map +0 -1
  993. package/dist/wu-validation.d.ts +0 -121
  994. package/dist/wu-validation.d.ts.map +0 -1
  995. package/dist/wu-validation.js +0 -266
  996. package/dist/wu-validation.js.map +0 -1
  997. package/dist/wu-validator.d.ts +0 -128
  998. package/dist/wu-validator.d.ts.map +0 -1
  999. package/dist/wu-validator.js +0 -445
  1000. package/dist/wu-validator.js.map +0 -1
  1001. package/dist/wu-yaml-fixer.d.ts +0 -74
  1002. package/dist/wu-yaml-fixer.d.ts.map +0 -1
  1003. package/dist/wu-yaml-fixer.js +0 -273
  1004. package/dist/wu-yaml-fixer.js.map +0 -1
  1005. package/dist/wu-yaml.d.ts +0 -110
  1006. package/dist/wu-yaml.d.ts.map +0 -1
  1007. package/dist/wu-yaml.js +0 -300
  1008. package/dist/wu-yaml.js.map +0 -1
@@ -1,743 +0,0 @@
1
- #!/usr/bin/env node
2
- // Copyright (c) 2026 Hellmai Ltd
3
- // SPDX-License-Identifier: AGPL-3.0-only
4
- /**
5
- * Lane Occupancy Checker
6
- *
7
- * Enforces one-WU-per-lane rule by checking status.md for active WUs in a given lane.
8
- * Used by wu-claim.ts and wu-unblock.ts to prevent WIP violations.
9
- */
10
- import { existsSync, readFileSync } from 'node:fs';
11
- import path from 'node:path';
12
- import { parseYAML } from './wu-yaml.js';
13
- import { getSubLanesForParent } from './lane-inference.js';
14
- import { createError, ErrorCodes } from './error-handler.js';
15
- import { isInProgressHeader, WU_LINK_PATTERN } from './constants/backlog-patterns.js';
16
- import { CONFIG_FILES, STRING_LITERALS } from './wu-constants.js';
17
- import { WU_PATHS } from './wu-paths.js';
18
- import { findProjectRoot } from './lumenflow-config.js';
19
- // Re-export for test access
20
- export { getSubLanesForParent };
21
- /** Log prefix for lane-checker messages */
22
- const PREFIX = '[lane-checker]';
23
- /** Status.md marker for empty In Progress section */
24
- const NO_ITEMS_MARKER = 'No items currently in progress';
25
- /**
26
- * Extract parent lane from sub-lane or parent-only format
27
- * @param {string} lane - Lane name (e.g., "Operations: Tooling" or "Operations")
28
- * @returns {string} Parent lane name
29
- */
30
- export function extractParent(lane) {
31
- const trimmed = lane.trim();
32
- const colonIndex = trimmed.indexOf(':');
33
- if (colonIndex === -1) {
34
- // Parent-only format
35
- return trimmed;
36
- }
37
- // Sub-lane format: extract parent before colon
38
- return trimmed.substring(0, colonIndex).trim();
39
- }
40
- /**
41
- * WU-1308: Check if lane-inference.yaml file exists
42
- * @returns {boolean} True if the file exists
43
- */
44
- function laneInferenceFileExists() {
45
- const projectRoot = findProjectRoot();
46
- const taxonomyPath = path.join(projectRoot, CONFIG_FILES.LANE_INFERENCE);
47
- return existsSync(taxonomyPath);
48
- }
49
- /**
50
- * Check if a parent lane has sub-lane taxonomy defined
51
- * @param {string} parent - Parent lane name
52
- * @returns {boolean} True if parent has sub-lanes in lane-inference config
53
- */
54
- function hasSubLaneTaxonomy(parent) {
55
- const projectRoot = findProjectRoot();
56
- const taxonomyPath = path.join(projectRoot, CONFIG_FILES.LANE_INFERENCE);
57
- if (!existsSync(taxonomyPath)) {
58
- return false;
59
- }
60
- try {
61
- const taxonomyContent = readFileSync(taxonomyPath, { encoding: 'utf-8' });
62
- const taxonomy = parseYAML(taxonomyContent);
63
- // Check if parent exists as top-level key in taxonomy
64
- const normalizedParent = parent.trim();
65
- return Object.keys(taxonomy).some((key) => key.toLowerCase().trim() === normalizedParent.toLowerCase());
66
- }
67
- catch {
68
- return false;
69
- }
70
- }
71
- /**
72
- * Check if a sub-lane exists for a given parent in lane-inference config
73
- * @param {string} parent - Parent lane name
74
- * @param {string} subdomain - Sub-lane name
75
- * @returns {boolean} True if sub-lane exists
76
- */
77
- function isValidSubLane(parent, subdomain) {
78
- const projectRoot = findProjectRoot();
79
- const taxonomyPath = path.join(projectRoot, CONFIG_FILES.LANE_INFERENCE);
80
- if (!existsSync(taxonomyPath)) {
81
- return false;
82
- }
83
- try {
84
- const taxonomyContent = readFileSync(taxonomyPath, { encoding: 'utf-8' });
85
- const taxonomy = parseYAML(taxonomyContent);
86
- // Find parent key (case-insensitive)
87
- const normalizedParent = parent.trim().toLowerCase();
88
- const parentKey = Object.keys(taxonomy).find((key) => key.toLowerCase().trim() === normalizedParent);
89
- if (!parentKey) {
90
- return false;
91
- }
92
- // Check if subdomain exists under parent
93
- const subLanes = taxonomy[parentKey];
94
- if (!subLanes || typeof subLanes !== 'object') {
95
- return false;
96
- }
97
- // Exact match on subdomain (case-sensitive per Codex spec)
98
- return Object.keys(subLanes).includes(subdomain.trim());
99
- }
100
- catch {
101
- return false;
102
- }
103
- }
104
- /**
105
- * Count occurrences of a character in a string
106
- * @param {string} str - String to search
107
- * @param {string} char - Character to count
108
- * @returns {number} Number of occurrences
109
- */
110
- function countChar(str, char) {
111
- let count = 0;
112
- for (const c of str) {
113
- if (c === char)
114
- count++;
115
- }
116
- return count;
117
- }
118
- /** Lane format separator character */
119
- const LANE_SEPARATOR = ':';
120
- /** Space character for format validation */
121
- const SPACE = ' ';
122
- /**
123
- * Validation mode options
124
- * @typedef {Object} ValidateLaneOptions
125
- * @property {boolean} [strict=true] - When true, throws error for parent-only lanes with taxonomy.
126
- * When false, only warns (for existing WU validation).
127
- */
128
- /**
129
- * WU-1197: Validate colon format in lane string
130
- * @throws {LumenflowError} If format is invalid
131
- */
132
- function validateColonFormat(lane, trimmed, colonIndex) {
133
- // Check for space before colon
134
- if (colonIndex > 0 && trimmed[colonIndex - 1] === SPACE) {
135
- throw createError(ErrorCodes.INVALID_LANE, `Invalid lane format: "${lane}" has space before colon. Expected format: "Parent: Subdomain" (space AFTER colon only)`, { lane });
136
- }
137
- // Check for space after colon
138
- if (colonIndex + 1 >= trimmed.length || trimmed[colonIndex + 1] !== SPACE) {
139
- throw createError(ErrorCodes.INVALID_LANE, `Invalid lane format: "${lane}" is missing space after colon. Expected format: "Parent: Subdomain"`, { lane });
140
- }
141
- }
142
- /**
143
- * WU-1197: Validate sub-lane format (Parent: Subdomain)
144
- * @throws {LumenflowError} If validation fails
145
- */
146
- function validateSubLaneFormat(lane, trimmed, colonIndex, configPath) {
147
- validateColonFormat(lane, trimmed, colonIndex);
148
- // Extract parent and subdomain (colonIndex + 2 = skip colon and space)
149
- const parent = trimmed.substring(0, colonIndex).trim();
150
- const subdomain = trimmed.substring(colonIndex + LANE_SEPARATOR.length + SPACE.length).trim();
151
- // Validate parent exists in config
152
- if (!isValidParentLane(parent, configPath)) {
153
- throw createError(ErrorCodes.INVALID_LANE, `Unknown parent lane: "${parent}". Check ${CONFIG_FILES.LUMENFLOW_CONFIG} for valid lanes.`, { parent, lane });
154
- }
155
- // WU-1308: Check if lane-inference file exists before validating sub-lanes
156
- // This provides a clear error message when the file is missing
157
- if (!laneInferenceFileExists()) {
158
- throw createError(ErrorCodes.FILE_NOT_FOUND, `Sub-lane validation requires ${CONFIG_FILES.LANE_INFERENCE} which is missing.\n\n` +
159
- `The file "${CONFIG_FILES.LANE_INFERENCE}" defines the lane taxonomy for sub-lane validation.\n\n` +
160
- `To fix this:\n` +
161
- ` 1. Generate a lane taxonomy from your codebase:\n` +
162
- ` pnpm lane:suggest --output ${CONFIG_FILES.LANE_INFERENCE}\n\n` +
163
- ` 2. Or copy from an example project and customize.\n\n` +
164
- `See: LUMENFLOW.md "Setup Notes" section for details.`, { lane, parent, subdomain, missingFile: CONFIG_FILES.LANE_INFERENCE });
165
- }
166
- // Validate sub-lane exists in taxonomy
167
- if (hasSubLaneTaxonomy(parent)) {
168
- validateSubLaneInTaxonomy(parent, subdomain);
169
- }
170
- else {
171
- // Parent has no taxonomy - reject sub-lane format
172
- throw createError(ErrorCodes.INVALID_LANE, `Parent lane "${parent}" does not support sub-lanes. Use parent-only format or extend ${CONFIG_FILES.LANE_INFERENCE}.`, { parent, lane });
173
- }
174
- return { valid: true, parent, error: null };
175
- }
176
- /**
177
- * WU-1197: Validate that sub-lane exists in taxonomy
178
- * @throws {LumenflowError} If sub-lane is not valid
179
- */
180
- function validateSubLaneInTaxonomy(parent, subdomain) {
181
- if (!isValidSubLane(parent, subdomain)) {
182
- const validSubLanes = getSubLanesForParent(parent);
183
- throw createError(ErrorCodes.INVALID_LANE, `Unknown sub-lane: "${subdomain}" for parent lane "${parent}".\n\n` +
184
- `Valid sub-lanes: ${validSubLanes.join(', ')}`, { parent, subdomain, validSubLanes });
185
- }
186
- }
187
- /**
188
- * WU-1197: Validate parent-only lane format
189
- * @throws {LumenflowError} If validation fails (in strict mode)
190
- */
191
- function validateParentOnlyFormat(trimmed, configPath, strict) {
192
- if (!isValidParentLane(trimmed, configPath)) {
193
- throw createError(ErrorCodes.INVALID_LANE, `Unknown parent lane: "${trimmed}". Check ${CONFIG_FILES.LUMENFLOW_CONFIG} for valid lanes.`, { lane: trimmed });
194
- }
195
- // Block if parent has sub-lane taxonomy (sub-lane required)
196
- if (hasSubLaneTaxonomy(trimmed)) {
197
- const validSubLanes = getSubLanesForParent(trimmed);
198
- const message = `Parent-only lane "${trimmed}" blocked. Sub-lane required. ` +
199
- `Valid: ${validSubLanes.join(', ')}. ` +
200
- `Format: "${trimmed}: <sublane>"`;
201
- if (strict) {
202
- throw createError(ErrorCodes.INVALID_LANE, message, { lane: trimmed, validSubLanes });
203
- }
204
- // Non-strict mode: warn only for existing WU validation
205
- console.warn(`${PREFIX} ⚠️ ${message}`);
206
- }
207
- return { valid: true, parent: trimmed, error: null };
208
- }
209
- /**
210
- * Validate lane format and parent existence
211
- * @param {string} lane - Lane name (e.g., "Operations: Tooling" or "Operations")
212
- * @param {string} configPath - Path to config file (optional, defaults to project root)
213
- * @param {ValidateLaneOptions} options - Validation options
214
- * @returns {{ valid: boolean, parent: string, error: string | null }}
215
- */
216
- export function validateLaneFormat(lane, configPath = null, options = {}) {
217
- const { strict = true } = options;
218
- const trimmed = lane.trim();
219
- // Check for multiple colons
220
- const colonCount = countChar(trimmed, LANE_SEPARATOR);
221
- if (colonCount > 1) {
222
- throw createError(ErrorCodes.INVALID_LANE, `Invalid lane format: "${lane}" contains multiple colons. Expected format: "Parent: Subdomain" or "Parent"`, { lane });
223
- }
224
- const colonIndex = trimmed.indexOf(LANE_SEPARATOR);
225
- const isSubLaneFormat = colonIndex !== -1;
226
- if (isSubLaneFormat) {
227
- return validateSubLaneFormat(lane, trimmed, colonIndex, configPath);
228
- }
229
- return validateParentOnlyFormat(trimmed, configPath, strict);
230
- }
231
- /**
232
- * WU-1197: Extract lane names and parent lanes from config
233
- * Handles flat array, definitions, and legacy nested formats
234
- */
235
- function extractLanesForParentCheck(config) {
236
- const allLanes = [];
237
- const parentLanes = new Set();
238
- if (!config.lanes) {
239
- return { allLanes, parentLanes };
240
- }
241
- if (Array.isArray(config.lanes)) {
242
- // Flat array format: lanes: [{name: "Core"}, {name: "CLI"}, ...]
243
- allLanes.push(...config.lanes.map((l) => l.name));
244
- return { allLanes, parentLanes };
245
- }
246
- // WU-1022: New format with lanes.definitions containing full "Parent: Sublane" names
247
- if (config.lanes.definitions) {
248
- for (const lane of config.lanes.definitions) {
249
- allLanes.push(lane.name);
250
- // Extract parent from full lane name for parent validation
251
- const extracted = extractParent(lane.name);
252
- parentLanes.add(extracted.toLowerCase().trim());
253
- }
254
- }
255
- // Legacy nested format: lanes: {engineering: [...], business: [...]}
256
- if (config.lanes.engineering) {
257
- allLanes.push(...config.lanes.engineering.map((l) => l.name));
258
- }
259
- if (config.lanes.business) {
260
- allLanes.push(...config.lanes.business.map((l) => l.name));
261
- }
262
- return { allLanes, parentLanes };
263
- }
264
- /**
265
- * WU-1197: Resolve config path, defaulting to project root if not provided
266
- */
267
- function resolveConfigPath(configPath) {
268
- if (configPath) {
269
- return configPath;
270
- }
271
- const projectRoot = findProjectRoot();
272
- return path.join(projectRoot, CONFIG_FILES.LUMENFLOW_CONFIG);
273
- }
274
- /**
275
- * Check if a parent lane exists in LumenFlow config
276
- *
277
- * WU-1022: Updated to support lanes.definitions with full "Parent: Sublane" format.
278
- * When lanes.definitions exists, parent lanes are extracted from full lane names.
279
- *
280
- * @param {string} parent - Parent lane name to check
281
- * @param {string} configPath - Path to config file (optional)
282
- * @returns {boolean} True if parent lane exists
283
- */
284
- function isValidParentLane(parent, configPath = null) {
285
- const resolvedConfigPath = resolveConfigPath(configPath);
286
- // Read and parse config
287
- if (!existsSync(resolvedConfigPath)) {
288
- throw createError(ErrorCodes.FILE_NOT_FOUND, `Config file not found: ${resolvedConfigPath}`, {
289
- path: resolvedConfigPath,
290
- });
291
- }
292
- const configContent = readFileSync(resolvedConfigPath, { encoding: 'utf-8' });
293
- const config = parseYAML(configContent);
294
- const { allLanes, parentLanes } = extractLanesForParentCheck(config);
295
- const normalizedParent = parent.toLowerCase().trim();
296
- // WU-1022: If we have extracted parent lanes (from full lane names), check against those
297
- if (parentLanes.size > 0) {
298
- return parentLanes.has(normalizedParent);
299
- }
300
- // Legacy: check against direct lane names
301
- return allLanes.some((lane) => lane.toLowerCase().trim() === normalizedParent);
302
- }
303
- /** WU-1016: Default WIP limit when not specified in config */
304
- const DEFAULT_WIP_LIMIT = 1;
305
- /**
306
- * WU-1016: Get WIP limit for a lane from config
307
- *
308
- * Reads the wip_limit field from .lumenflow.config.yaml for the specified lane.
309
- * Returns DEFAULT_WIP_LIMIT (1) if the lane is not found or wip_limit is not specified.
310
- *
311
- * @param {string} lane - Lane name (e.g., "Core", "CLI")
312
- * @param {GetWipLimitOptions} options - Options including configPath for testing
313
- * @returns {number} The WIP limit for the lane (default: 1)
314
- */
315
- export function getWipLimitForLane(lane, options = {}) {
316
- // Determine config path
317
- let resolvedConfigPath = options.configPath;
318
- if (!resolvedConfigPath) {
319
- const projectRoot = findProjectRoot();
320
- resolvedConfigPath = path.join(projectRoot, CONFIG_FILES.LUMENFLOW_CONFIG);
321
- }
322
- // Check if config file exists
323
- if (!existsSync(resolvedConfigPath)) {
324
- return DEFAULT_WIP_LIMIT;
325
- }
326
- try {
327
- const configContent = readFileSync(resolvedConfigPath, { encoding: 'utf-8' });
328
- const config = parseYAML(configContent);
329
- if (!config.lanes) {
330
- return DEFAULT_WIP_LIMIT;
331
- }
332
- // Normalize lane name for case-insensitive comparison
333
- const normalizedLane = lane.toLowerCase().trim();
334
- // Extract all lanes with their wip_limit
335
- let allLanes = [];
336
- if (Array.isArray(config.lanes)) {
337
- // Flat array format: lanes: [{name: "Core", wip_limit: 2}, ...]
338
- allLanes = config.lanes;
339
- }
340
- else {
341
- // New format with definitions
342
- if (config.lanes.definitions) {
343
- allLanes.push(...config.lanes.definitions);
344
- }
345
- // Legacy nested format: lanes: {engineering: [...], business: [...]}
346
- if (config.lanes.engineering) {
347
- allLanes.push(...config.lanes.engineering);
348
- }
349
- if (config.lanes.business) {
350
- allLanes.push(...config.lanes.business);
351
- }
352
- }
353
- // Find matching lane (case-insensitive)
354
- const matchingLane = allLanes.find((l) => l.name.toLowerCase().trim() === normalizedLane);
355
- if (!matchingLane) {
356
- return DEFAULT_WIP_LIMIT;
357
- }
358
- // Return wip_limit if specified, otherwise default
359
- return matchingLane.wip_limit ?? DEFAULT_WIP_LIMIT;
360
- }
361
- catch {
362
- // If config parsing fails, return default
363
- return DEFAULT_WIP_LIMIT;
364
- }
365
- }
366
- /** WU-1325: Default lock policy when not specified in config */
367
- const DEFAULT_LOCK_POLICY = 'all';
368
- /**
369
- * WU-1325: Get lock policy for a lane from config
370
- *
371
- * Reads the lock_policy field from .lumenflow.config.yaml for the specified lane.
372
- * Returns DEFAULT_LOCK_POLICY ('all') if the lane is not found or lock_policy is not specified.
373
- *
374
- * Lock policies:
375
- * - 'all' (default): Lock held through entire WU lifecycle (claim to done)
376
- * - 'active': Lock released on block, re-acquired on unblock
377
- * - 'none': No lock files created, WIP checking disabled for this lane
378
- *
379
- * @param {string} lane - Lane name (e.g., "Framework: Core", "Content: Documentation")
380
- * @param {GetLockPolicyOptions} options - Options including configPath for testing
381
- * @returns {LockPolicy} The lock policy for the lane (default: 'all')
382
- */
383
- export function getLockPolicyForLane(lane, options = {}) {
384
- // Determine config path
385
- let resolvedConfigPath = options.configPath;
386
- if (!resolvedConfigPath) {
387
- const projectRoot = findProjectRoot();
388
- resolvedConfigPath = path.join(projectRoot, CONFIG_FILES.LUMENFLOW_CONFIG);
389
- }
390
- // Check if config file exists
391
- if (!existsSync(resolvedConfigPath)) {
392
- return DEFAULT_LOCK_POLICY;
393
- }
394
- try {
395
- const configContent = readFileSync(resolvedConfigPath, { encoding: 'utf-8' });
396
- const config = parseYAML(configContent);
397
- if (!config.lanes) {
398
- return DEFAULT_LOCK_POLICY;
399
- }
400
- // Normalize lane name for case-insensitive comparison
401
- const normalizedLane = lane.toLowerCase().trim();
402
- // Extract all lanes with their lock_policy
403
- let allLanes = [];
404
- if (Array.isArray(config.lanes)) {
405
- // Flat array format: lanes: [{name: "Core", lock_policy: "none"}, ...]
406
- allLanes = config.lanes;
407
- }
408
- else {
409
- // New format with definitions
410
- if (config.lanes.definitions) {
411
- allLanes.push(...config.lanes.definitions);
412
- }
413
- // Legacy nested format: lanes: {engineering: [...], business: [...]}
414
- if (config.lanes.engineering) {
415
- allLanes.push(...config.lanes.engineering);
416
- }
417
- if (config.lanes.business) {
418
- allLanes.push(...config.lanes.business);
419
- }
420
- }
421
- // Find matching lane (case-insensitive)
422
- const matchingLane = allLanes.find((l) => l.name.toLowerCase().trim() === normalizedLane);
423
- if (!matchingLane) {
424
- return DEFAULT_LOCK_POLICY;
425
- }
426
- // Return lock_policy if specified and valid, otherwise default
427
- const policy = matchingLane.lock_policy;
428
- if (policy === 'all' || policy === 'active' || policy === 'none') {
429
- return policy;
430
- }
431
- return DEFAULT_LOCK_POLICY;
432
- }
433
- catch {
434
- // If config parsing fails, return default
435
- return DEFAULT_LOCK_POLICY;
436
- }
437
- }
438
- /** WU-1197: Section heading marker for H2 headings */
439
- const SECTION_HEADING_PREFIX = '## ';
440
- /**
441
- * WU-1197: Create an empty lane result (no WUs in progress)
442
- */
443
- function createEmptyLaneResult(wipLimit) {
444
- return {
445
- free: true,
446
- occupiedBy: null,
447
- error: null,
448
- inProgressWUs: [],
449
- wipLimit,
450
- currentCount: 0,
451
- };
452
- }
453
- /**
454
- * WU-1197: Extract In Progress section from status.md lines
455
- * @returns Section content or null if not found
456
- */
457
- function extractInProgressSection(lines) {
458
- const inProgressIdx = lines.findIndex((l) => isInProgressHeader(l));
459
- if (inProgressIdx === -1) {
460
- return { section: '', error: 'Could not find "## In Progress" section in status.md' };
461
- }
462
- // Find end of In Progress section (next ## heading or end of file)
463
- let endIdx = lines
464
- .slice(inProgressIdx + 1)
465
- .findIndex((l) => l.startsWith(SECTION_HEADING_PREFIX));
466
- if (endIdx === -1) {
467
- endIdx = lines.length - inProgressIdx - 1;
468
- }
469
- else {
470
- endIdx = inProgressIdx + 1 + endIdx;
471
- }
472
- const section = lines.slice(inProgressIdx + 1, endIdx).join(STRING_LITERALS.NEWLINE);
473
- return { section, error: null };
474
- }
475
- /** WU-1324: Blocked section header patterns */
476
- const BLOCKED_HEADERS = ['## blocked', '## ⛔ blocked'];
477
- /**
478
- * WU-1324: Check if a line matches a Blocked section header.
479
- * @param {string} line - Line to check (will be trimmed and lowercased)
480
- * @returns {boolean} True if line is a Blocked header
481
- */
482
- function isBlockedHeader(line) {
483
- const normalized = line.trim().toLowerCase();
484
- return BLOCKED_HEADERS.some((header) => normalized === header || normalized.startsWith(header));
485
- }
486
- /**
487
- * WU-1324: Extract Blocked section from status.md lines
488
- * @returns Section content (may be empty if section doesn't exist)
489
- */
490
- function extractBlockedSection(lines) {
491
- const blockedIdx = lines.findIndex((l) => isBlockedHeader(l));
492
- if (blockedIdx === -1) {
493
- // Blocked section doesn't exist - return empty
494
- return { section: '' };
495
- }
496
- // Find end of Blocked section (next ## heading or end of file)
497
- let endIdx = lines.slice(blockedIdx + 1).findIndex((l) => l.startsWith(SECTION_HEADING_PREFIX));
498
- if (endIdx === -1) {
499
- endIdx = lines.length - blockedIdx - 1;
500
- }
501
- else {
502
- endIdx = blockedIdx + 1 + endIdx;
503
- }
504
- const section = lines.slice(blockedIdx + 1, endIdx).join(STRING_LITERALS.NEWLINE);
505
- return { section };
506
- }
507
- /**
508
- * WU-1197: Check if a WU belongs to the target lane
509
- * @returns The WU ID if it matches the target lane, null otherwise
510
- */
511
- function checkWuLaneMatch(activeWuid, wuid, projectRoot, targetLane) {
512
- // Skip if it's the same WU we're trying to claim
513
- if (activeWuid === wuid) {
514
- return null;
515
- }
516
- const wuPath = path.join(projectRoot, WU_PATHS.WU(activeWuid));
517
- if (!existsSync(wuPath)) {
518
- console.warn(`${PREFIX} Warning: ${activeWuid} referenced in status.md but ${wuPath} not found`);
519
- return null;
520
- }
521
- try {
522
- const wuContent = readFileSync(wuPath, { encoding: 'utf-8' });
523
- const wuDoc = parseYAML(wuContent);
524
- if (!wuDoc || !wuDoc.lane) {
525
- console.warn(`${PREFIX} Warning: ${activeWuid} has no lane field`);
526
- return null;
527
- }
528
- // Normalize lane names for comparison (case-insensitive, trim whitespace)
529
- const activeLane = wuDoc.lane.toString().trim().toLowerCase();
530
- if (activeLane === targetLane) {
531
- return activeWuid;
532
- }
533
- }
534
- catch (e) {
535
- const errMessage = e instanceof Error ? e.message : String(e);
536
- console.warn(`${PREFIX} Warning: Failed to parse ${activeWuid} YAML: ${errMessage}`);
537
- }
538
- return null;
539
- }
540
- /**
541
- * WU-1197: Collect WUs in the target lane from matched WU links
542
- */
543
- function collectInProgressWUsForLane(matches, wuid, projectRoot, targetLane) {
544
- const inProgressWUs = [];
545
- for (const match of matches) {
546
- const activeWuid = match[1]; // e.g., "WU-334"
547
- if (!activeWuid) {
548
- continue;
549
- }
550
- const matchedWu = checkWuLaneMatch(activeWuid, wuid, projectRoot, targetLane);
551
- if (matchedWu) {
552
- inProgressWUs.push(matchedWu);
553
- }
554
- }
555
- return inProgressWUs;
556
- }
557
- /**
558
- * WU-1324: Extract WU IDs from a section's WU links and filter by target lane
559
- * @param section - Section content from status.md
560
- * @param wuid - WU ID being claimed (excluded from results)
561
- * @param projectRoot - Project root path
562
- * @param targetLane - Target lane name (normalized lowercase)
563
- * @returns Array of WU IDs in the target lane
564
- */
565
- function extractWUsFromSection(section, wuid, projectRoot, targetLane) {
566
- if (!section || section.includes(NO_ITEMS_MARKER)) {
567
- return [];
568
- }
569
- // Extract WU IDs from links like [WU-334 — Title](wu/WU-334.yaml)
570
- WU_LINK_PATTERN.lastIndex = 0; // Reset global regex state
571
- const matches = [...section.matchAll(WU_LINK_PATTERN)];
572
- if (matches.length === 0) {
573
- return [];
574
- }
575
- return collectInProgressWUsForLane(matches, wuid, projectRoot, targetLane);
576
- }
577
- /**
578
- * Check if a lane is free (WU count is below wip_limit)
579
- *
580
- * WU-1016: Now respects configurable wip_limit per lane from .lumenflow.config.yaml.
581
- * Lane is considered "free" if current WU count < wip_limit.
582
- * Default wip_limit is 1 if not specified in config (backward compatible).
583
- *
584
- * WU-1324: Now respects lock_policy for WIP counting:
585
- * - 'all' (default): Count in_progress + blocked WUs toward WIP limit
586
- * - 'active': Count only in_progress WUs (blocked WUs release lane lock)
587
- * - 'none': Disable WIP checking entirely (lane always free)
588
- *
589
- * @param {string} statusPath - Path to status.md
590
- * @param {string} lane - Lane name (e.g., "Operations", "Intelligence")
591
- * @param {string} wuid - WU ID being claimed (e.g., "WU-419")
592
- * @param {CheckLaneFreeOptions} options - Options including configPath for testing
593
- * @returns {{ free: boolean, occupiedBy: string | null, error: string | null, inProgressWUs?: string[], wipLimit?: number, currentCount?: number }}
594
- */
595
- export function checkLaneFree(statusPath, lane, wuid, options = {}) {
596
- try {
597
- // WU-1016: Get WIP limit for this lane from config
598
- const wipLimit = getWipLimitForLane(lane, { configPath: options.configPath });
599
- // WU-1324: Get lock policy for this lane from config
600
- const lockPolicy = getLockPolicyForLane(lane, { configPath: options.configPath });
601
- // WU-1324: If policy is 'none', WIP checking is disabled - lane is always free
602
- if (lockPolicy === 'none') {
603
- return createEmptyLaneResult(wipLimit);
604
- }
605
- // Read status.md
606
- if (!existsSync(statusPath)) {
607
- return { free: false, occupiedBy: null, error: `status.md not found: ${statusPath}` };
608
- }
609
- const content = readFileSync(statusPath, { encoding: 'utf-8' });
610
- const lines = content.split(/\r?\n/);
611
- // Extract In Progress section
612
- const { section: inProgressSection, error } = extractInProgressSection(lines);
613
- if (error) {
614
- return { free: false, occupiedBy: null, error };
615
- }
616
- // Get project root from statusPath (docs/04-operations/tasks/status.md)
617
- const projectRoot = path.dirname(path.dirname(path.dirname(path.dirname(statusPath))));
618
- const targetLane = lane.toString().trim().toLowerCase();
619
- // Collect in_progress WUs
620
- const inProgressWUs = extractWUsFromSection(inProgressSection, wuid, projectRoot, targetLane);
621
- // WU-1324: If policy is 'all', also count blocked WUs
622
- let blockedWUs = [];
623
- if (lockPolicy === 'all') {
624
- const { section: blockedSection } = extractBlockedSection(lines);
625
- blockedWUs = extractWUsFromSection(blockedSection, wuid, projectRoot, targetLane);
626
- }
627
- // WU-1324: Calculate total count based on policy
628
- // - 'all': in_progress + blocked
629
- // - 'active': in_progress only
630
- const allCountedWUs = [...inProgressWUs, ...blockedWUs];
631
- const currentCount = allCountedWUs.length;
632
- const isFree = currentCount < wipLimit;
633
- return {
634
- free: isFree,
635
- occupiedBy: isFree ? null : allCountedWUs[0] || null,
636
- error: null,
637
- inProgressWUs: allCountedWUs, // Include all counted WUs for visibility
638
- wipLimit,
639
- currentCount,
640
- };
641
- }
642
- catch (error) {
643
- const errMessage = error instanceof Error ? error.message : String(error);
644
- return { free: false, occupiedBy: null, error: `Unexpected error: ${errMessage}` };
645
- }
646
- }
647
- /** WU-1187: Default result when no justification is required */
648
- const NO_JUSTIFICATION_REQUIRED = {
649
- valid: true,
650
- warning: null,
651
- requiresJustification: false,
652
- };
653
- /**
654
- * WU-1187: Extract all lanes from config (handles all config formats)
655
- * @param config - Parsed LumenFlow config
656
- * @returns Array of lane configs with wip settings
657
- */
658
- function extractAllLanesFromConfig(config) {
659
- if (!config.lanes) {
660
- return [];
661
- }
662
- if (Array.isArray(config.lanes)) {
663
- // Flat array format: lanes: [{name: "Core", wip_limit: 2}, ...]
664
- return config.lanes;
665
- }
666
- // Nested formats with definitions, engineering, business
667
- const allLanes = [];
668
- if (config.lanes.definitions) {
669
- allLanes.push(...config.lanes.definitions);
670
- }
671
- if (config.lanes.engineering) {
672
- allLanes.push(...config.lanes.engineering);
673
- }
674
- if (config.lanes.business) {
675
- allLanes.push(...config.lanes.business);
676
- }
677
- return allLanes;
678
- }
679
- /**
680
- * WU-1187: Check if a lane has WIP justification when required
681
- *
682
- * Philosophy: If you need WIP > 1, you need better lanes, not higher limits.
683
- * This is soft enforcement: logs a warning at claim time, but doesn't block.
684
- *
685
- * @param {string} lane - Lane name to check
686
- * @param {CheckWipJustificationOptions} options - Options including configPath for testing
687
- * @returns {CheckWipJustificationResult} Result with valid=true (always) and optional warning
688
- */
689
- export function checkWipJustification(lane, options = {}) {
690
- // Determine config path
691
- let resolvedConfigPath = options.configPath;
692
- if (!resolvedConfigPath) {
693
- const projectRoot = findProjectRoot();
694
- resolvedConfigPath = path.join(projectRoot, CONFIG_FILES.LUMENFLOW_CONFIG);
695
- }
696
- if (!existsSync(resolvedConfigPath)) {
697
- return NO_JUSTIFICATION_REQUIRED;
698
- }
699
- try {
700
- const configContent = readFileSync(resolvedConfigPath, { encoding: 'utf-8' });
701
- const config = parseYAML(configContent);
702
- const allLanes = extractAllLanesFromConfig(config);
703
- if (allLanes.length === 0) {
704
- return NO_JUSTIFICATION_REQUIRED;
705
- }
706
- // Find matching lane (case-insensitive)
707
- const normalizedLane = lane.toLowerCase().trim();
708
- const matchingLane = allLanes.find((l) => l.name.toLowerCase().trim() === normalizedLane);
709
- if (!matchingLane) {
710
- return NO_JUSTIFICATION_REQUIRED;
711
- }
712
- const wipLimit = matchingLane.wip_limit ?? DEFAULT_WIP_LIMIT;
713
- // WIP <= 1 doesn't need justification
714
- if (wipLimit <= 1) {
715
- return NO_JUSTIFICATION_REQUIRED;
716
- }
717
- // WIP > 1 - check for justification
718
- const justification = matchingLane.wip_justification;
719
- if (justification && justification.trim().length > 0) {
720
- // Has justification - all good
721
- return {
722
- valid: true,
723
- warning: null,
724
- requiresJustification: false,
725
- justification: justification.trim(),
726
- };
727
- }
728
- // WIP > 1 without justification - emit warning
729
- const warning = `Lane "${lane}" has WIP limit of ${wipLimit} but no wip_justification. ` +
730
- `Philosophy: If you need WIP > 1, you need better lanes, not higher limits. ` +
731
- `Add wip_justification to .lumenflow.config.yaml to suppress this warning.`;
732
- return {
733
- valid: true, // Soft enforcement - warning only, doesn't block
734
- warning,
735
- requiresJustification: true,
736
- };
737
- }
738
- catch {
739
- // If config parsing fails, don't block
740
- return NO_JUSTIFICATION_REQUIRED;
741
- }
742
- }
743
- //# sourceMappingURL=lane-checker.js.map