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