@lumenflow/cli 3.1.2 → 3.1.3

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 (389) hide show
  1. package/README.md +36 -35
  2. package/dist/agent-issues-query.js +13 -8
  3. package/dist/agent-log-issue.js +15 -4
  4. package/dist/agent-session-end.js +15 -4
  5. package/dist/agent-session.js +18 -6
  6. package/dist/backlog-prune.js +1 -1
  7. package/dist/commands/integrate.js +32 -18
  8. package/dist/config-get.js +27 -15
  9. package/dist/config-set.js +104 -37
  10. package/dist/delegation-list.js +1 -1
  11. package/dist/doctor.js +19 -13
  12. package/dist/file-delete.js +1 -1
  13. package/dist/file-edit.js +1 -1
  14. package/dist/file-read.js +1 -1
  15. package/dist/file-write.js +1 -1
  16. package/dist/flow-bottlenecks.js +1 -1
  17. package/dist/flow-report.js +10 -9
  18. package/dist/gates.js +3 -2
  19. package/dist/git-branch.js +1 -1
  20. package/dist/git-diff.js +1 -1
  21. package/dist/git-log.js +1 -1
  22. package/dist/init.js +238 -42
  23. package/dist/initiative-add-wu.js +1 -1
  24. package/dist/initiative-bulk-assign-wus.js +1 -1
  25. package/dist/initiative-create.js +2 -2
  26. package/dist/initiative-edit.js +1 -1
  27. package/dist/initiative-list.js +1 -1
  28. package/dist/initiative-plan.js +1 -3
  29. package/dist/initiative-status.js +47 -6
  30. package/dist/lane-edit.js +19 -10
  31. package/dist/lane-health.js +13 -24
  32. package/dist/lane-lock.js +4 -5
  33. package/dist/lane-setup.js +5 -5
  34. package/dist/lane-status.js +4 -5
  35. package/dist/lane-suggest.js +9 -7
  36. package/dist/lane-validate.js +4 -5
  37. package/dist/lumenflow-upgrade.js +17 -11
  38. package/dist/mem-checkpoint.js +1 -1
  39. package/dist/mem-cleanup.js +6 -23
  40. package/dist/mem-context.js +1 -1
  41. package/dist/mem-create.js +1 -1
  42. package/dist/mem-delete.js +1 -1
  43. package/dist/mem-export.js +1 -1
  44. package/dist/mem-inbox.js +1 -1
  45. package/dist/mem-init.js +1 -1
  46. package/dist/mem-ready.js +1 -1
  47. package/dist/mem-recover.js +1 -1
  48. package/dist/mem-signal.js +1 -1
  49. package/dist/mem-start.js +1 -1
  50. package/dist/mem-summarize.js +8 -7
  51. package/dist/mem-triage.js +7 -5
  52. package/dist/metrics-cli.js +1 -1
  53. package/dist/metrics-snapshot.js +1 -1
  54. package/dist/onboard.js +295 -120
  55. package/dist/orchestrate-init-status.js +12 -7
  56. package/dist/orchestrate-initiative.js +23 -12
  57. package/dist/orchestrate-monitor.js +20 -8
  58. package/dist/pack-scaffold.js +1 -1
  59. package/dist/plan-create.js +1 -3
  60. package/dist/plan-edit.js +1 -3
  61. package/dist/plan-link.js +1 -3
  62. package/dist/plan-promote.js +1 -3
  63. package/dist/release.js +1 -3
  64. package/dist/signal-cleanup.js +4 -18
  65. package/dist/state-bootstrap.js +11 -8
  66. package/dist/state-cleanup.js +5 -19
  67. package/dist/state-doctor.js +213 -9
  68. package/dist/task-claim.js +1 -1
  69. package/dist/validate.js +1 -1
  70. package/dist/workspace-init.js +61 -61
  71. package/dist/wu-block.js +1 -1
  72. package/dist/wu-brief.js +1 -1
  73. package/dist/wu-claim.js +1 -1
  74. package/dist/wu-cleanup.js +1 -1
  75. package/dist/wu-create.js +3 -3
  76. package/dist/wu-delegate.js +1 -1
  77. package/dist/wu-deps.js +1 -1
  78. package/dist/wu-done.js +66 -34
  79. package/dist/wu-edit.js +1 -1
  80. package/dist/wu-infer-lane.js +1 -1
  81. package/dist/wu-preflight.js +1 -1
  82. package/dist/wu-prep.js +1 -1
  83. package/dist/wu-proto.js +1 -1
  84. package/dist/wu-prune.js +1 -1
  85. package/dist/wu-recover.js +1 -1
  86. package/dist/wu-release.js +1 -1
  87. package/dist/wu-repair.js +1 -1
  88. package/dist/wu-sandbox.js +40 -27
  89. package/dist/wu-status.js +1 -1
  90. package/dist/wu-unblock.js +1 -1
  91. package/dist/wu-unlock-lane.js +1 -1
  92. package/dist/wu-validate.js +1 -1
  93. package/package.json +12 -8
  94. package/packs/software-delivery/constants.ts +10 -0
  95. package/packs/software-delivery/extensions.ts +140 -0
  96. package/packs/software-delivery/gate-policies.ts +134 -0
  97. package/packs/software-delivery/index.ts +8 -0
  98. package/packs/software-delivery/manifest-schema.ts +236 -0
  99. package/packs/software-delivery/manifest.ts +417 -0
  100. package/packs/software-delivery/manifest.yaml +711 -0
  101. package/packs/software-delivery/pack-registration.ts +113 -0
  102. package/packs/software-delivery/tool-impl/agent-tools.ts +263 -0
  103. package/packs/software-delivery/tool-impl/delegation-tools.ts +66 -0
  104. package/packs/software-delivery/tool-impl/flow-metrics-tools.ts +219 -0
  105. package/packs/software-delivery/tool-impl/git-runner.ts +113 -0
  106. package/packs/software-delivery/tool-impl/git-tools.ts +316 -0
  107. package/packs/software-delivery/tool-impl/index.ts +15 -0
  108. package/packs/software-delivery/tool-impl/initiative-orchestration-tools.ts +720 -0
  109. package/packs/software-delivery/tool-impl/lane-lock.ts +246 -0
  110. package/packs/software-delivery/tool-impl/memory-tools.ts +415 -0
  111. package/packs/software-delivery/tool-impl/pending-runtime-tools.ts +21 -0
  112. package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +328 -0
  113. package/packs/software-delivery/tool-impl/runtime-native-tools.ts +687 -0
  114. package/packs/software-delivery/tool-impl/worker-loader.ts +52 -0
  115. package/packs/software-delivery/tool-impl/worktree-tools.ts +46 -0
  116. package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +759 -0
  117. package/packs/software-delivery/tools/delegation-tools.ts +23 -0
  118. package/packs/software-delivery/tools/git-tools.ts +55 -0
  119. package/packs/software-delivery/tools/index.ts +8 -0
  120. package/packs/software-delivery/tools/lane-lock-tool.ts +37 -0
  121. package/packs/software-delivery/tools/types.ts +71 -0
  122. package/packs/software-delivery/tools/worktree-tools.ts +49 -0
  123. package/templates/core/LUMENFLOW.md.template +3 -3
  124. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +1 -1
  125. package/templates/core/ai/onboarding/lumenflow-force-usage.md.template +1 -1
  126. package/templates/core/ai/onboarding/quick-ref-commands.md.template +5 -5
  127. package/templates/core/ai/onboarding/starting-prompt.md.template +3 -3
  128. package/templates/core/ai/onboarding/vendor-support.md.template +1 -1
  129. package/templates/core/ai/onboarding/wu-create-checklist.md.template +1 -1
  130. package/dist/agent-issues-query.js.map +0 -1
  131. package/dist/agent-log-issue.js.map +0 -1
  132. package/dist/agent-session-end.js.map +0 -1
  133. package/dist/agent-session.js.map +0 -1
  134. package/dist/backlog-prune.js.map +0 -1
  135. package/dist/cli-entry-point.js +0 -149
  136. package/dist/cli-entry-point.js.map +0 -1
  137. package/dist/commands/integrate.js.map +0 -1
  138. package/dist/commands.js.map +0 -1
  139. package/dist/config-get.js.map +0 -1
  140. package/dist/config-set.js.map +0 -1
  141. package/dist/delegation-list.js.map +0 -1
  142. package/dist/deps-add.js +0 -259
  143. package/dist/deps-add.js.map +0 -1
  144. package/dist/deps-remove.js +0 -105
  145. package/dist/deps-remove.js.map +0 -1
  146. package/dist/docs-sync.js.map +0 -1
  147. package/dist/doctor.js.map +0 -1
  148. package/dist/file-delete.js.map +0 -1
  149. package/dist/file-edit.js.map +0 -1
  150. package/dist/file-read.js.map +0 -1
  151. package/dist/file-write.js.map +0 -1
  152. package/dist/flow-bottlenecks.js.map +0 -1
  153. package/dist/flow-report.js.map +0 -1
  154. package/dist/formatters.js +0 -151
  155. package/dist/formatters.js.map +0 -1
  156. package/dist/gate-defaults.js +0 -131
  157. package/dist/gate-defaults.js.map +0 -1
  158. package/dist/gate-registry.js +0 -73
  159. package/dist/gate-registry.js.map +0 -1
  160. package/dist/gates-graceful-degradation.js +0 -153
  161. package/dist/gates-graceful-degradation.js.map +0 -1
  162. package/dist/gates-plan-resolvers.js +0 -152
  163. package/dist/gates-plan-resolvers.js.map +0 -1
  164. package/dist/gates-runners.js +0 -509
  165. package/dist/gates-runners.js.map +0 -1
  166. package/dist/gates-types.js +0 -4
  167. package/dist/gates-types.js.map +0 -1
  168. package/dist/gates-utils.js +0 -323
  169. package/dist/gates-utils.js.map +0 -1
  170. package/dist/gates.js.map +0 -1
  171. package/dist/git-branch.js.map +0 -1
  172. package/dist/git-diff.js.map +0 -1
  173. package/dist/git-log.js.map +0 -1
  174. package/dist/git-status.js.map +0 -1
  175. package/dist/guard-locked.js +0 -172
  176. package/dist/guard-locked.js.map +0 -1
  177. package/dist/guard-main-branch.js +0 -217
  178. package/dist/guard-main-branch.js.map +0 -1
  179. package/dist/guard-worktree-commit.js +0 -163
  180. package/dist/guard-worktree-commit.js.map +0 -1
  181. package/dist/hooks/auto-checkpoint-utils.js +0 -54
  182. package/dist/hooks/auto-checkpoint-utils.js.map +0 -1
  183. package/dist/hooks/enforcement-checks.js +0 -399
  184. package/dist/hooks/enforcement-checks.js.map +0 -1
  185. package/dist/hooks/enforcement-generator.js +0 -139
  186. package/dist/hooks/enforcement-generator.js.map +0 -1
  187. package/dist/hooks/enforcement-sync.js +0 -385
  188. package/dist/hooks/enforcement-sync.js.map +0 -1
  189. package/dist/hooks/generators/auto-checkpoint.js +0 -125
  190. package/dist/hooks/generators/auto-checkpoint.js.map +0 -1
  191. package/dist/hooks/generators/enforce-worktree.js +0 -190
  192. package/dist/hooks/generators/enforce-worktree.js.map +0 -1
  193. package/dist/hooks/generators/index.js +0 -18
  194. package/dist/hooks/generators/index.js.map +0 -1
  195. package/dist/hooks/generators/pre-compact-checkpoint.js +0 -136
  196. package/dist/hooks/generators/pre-compact-checkpoint.js.map +0 -1
  197. package/dist/hooks/generators/require-wu.js +0 -117
  198. package/dist/hooks/generators/require-wu.js.map +0 -1
  199. package/dist/hooks/generators/session-start-recovery.js +0 -103
  200. package/dist/hooks/generators/session-start-recovery.js.map +0 -1
  201. package/dist/hooks/generators/signal-utils.js +0 -54
  202. package/dist/hooks/generators/signal-utils.js.map +0 -1
  203. package/dist/hooks/generators/warn-incomplete.js +0 -67
  204. package/dist/hooks/generators/warn-incomplete.js.map +0 -1
  205. package/dist/hooks/index.js +0 -10
  206. package/dist/hooks/index.js.map +0 -1
  207. package/dist/index.js.map +0 -1
  208. package/dist/init-detection.js +0 -232
  209. package/dist/init-detection.js.map +0 -1
  210. package/dist/init-lane-validation.js +0 -143
  211. package/dist/init-lane-validation.js.map +0 -1
  212. package/dist/init-scaffolding.js +0 -158
  213. package/dist/init-scaffolding.js.map +0 -1
  214. package/dist/init-templates.js +0 -1982
  215. package/dist/init-templates.js.map +0 -1
  216. package/dist/init.js.map +0 -1
  217. package/dist/initiative-add-wu.js.map +0 -1
  218. package/dist/initiative-bulk-assign-wus.js.map +0 -1
  219. package/dist/initiative-create.js.map +0 -1
  220. package/dist/initiative-edit.js.map +0 -1
  221. package/dist/initiative-list.js.map +0 -1
  222. package/dist/initiative-plan.js.map +0 -1
  223. package/dist/initiative-remove-wu.js.map +0 -1
  224. package/dist/initiative-status.js.map +0 -1
  225. package/dist/lane-edit.js.map +0 -1
  226. package/dist/lane-health.js.map +0 -1
  227. package/dist/lane-lifecycle-process.js +0 -366
  228. package/dist/lane-lifecycle-process.js.map +0 -1
  229. package/dist/lane-lock.js.map +0 -1
  230. package/dist/lane-setup.js.map +0 -1
  231. package/dist/lane-status.js.map +0 -1
  232. package/dist/lane-suggest.js.map +0 -1
  233. package/dist/lane-validate.js.map +0 -1
  234. package/dist/lifecycle-regression-harness.js +0 -181
  235. package/dist/lifecycle-regression-harness.js.map +0 -1
  236. package/dist/lumenflow-upgrade.js.map +0 -1
  237. package/dist/mem-checkpoint.js.map +0 -1
  238. package/dist/mem-cleanup.js.map +0 -1
  239. package/dist/mem-context.js.map +0 -1
  240. package/dist/mem-create.js.map +0 -1
  241. package/dist/mem-delete.js.map +0 -1
  242. package/dist/mem-export.js.map +0 -1
  243. package/dist/mem-inbox.js.map +0 -1
  244. package/dist/mem-index.js +0 -214
  245. package/dist/mem-index.js.map +0 -1
  246. package/dist/mem-init.js.map +0 -1
  247. package/dist/mem-profile.js +0 -210
  248. package/dist/mem-profile.js.map +0 -1
  249. package/dist/mem-promote.js +0 -257
  250. package/dist/mem-promote.js.map +0 -1
  251. package/dist/mem-ready.js.map +0 -1
  252. package/dist/mem-recover.js.map +0 -1
  253. package/dist/mem-signal.js.map +0 -1
  254. package/dist/mem-start.js.map +0 -1
  255. package/dist/mem-summarize.js.map +0 -1
  256. package/dist/mem-triage.js.map +0 -1
  257. package/dist/merge-block.js +0 -225
  258. package/dist/merge-block.js.map +0 -1
  259. package/dist/metrics-cli.js.map +0 -1
  260. package/dist/metrics-snapshot.js.map +0 -1
  261. package/dist/onboard.js.map +0 -1
  262. package/dist/onboarding-smoke-test.js +0 -418
  263. package/dist/onboarding-smoke-test.js.map +0 -1
  264. package/dist/orchestrate-init-status.js.map +0 -1
  265. package/dist/orchestrate-initiative.js.map +0 -1
  266. package/dist/orchestrate-monitor.js.map +0 -1
  267. package/dist/pack-author.js.map +0 -1
  268. package/dist/pack-hash.js.map +0 -1
  269. package/dist/pack-install.js.map +0 -1
  270. package/dist/pack-publish.js.map +0 -1
  271. package/dist/pack-scaffold.js.map +0 -1
  272. package/dist/pack-search.js.map +0 -1
  273. package/dist/pack-validate.js.map +0 -1
  274. package/dist/plan-create.js.map +0 -1
  275. package/dist/plan-edit.js.map +0 -1
  276. package/dist/plan-link.js.map +0 -1
  277. package/dist/plan-promote.js.map +0 -1
  278. package/dist/public-manifest.js +0 -920
  279. package/dist/public-manifest.js.map +0 -1
  280. package/dist/release.js.map +0 -1
  281. package/dist/rotate-progress.js +0 -253
  282. package/dist/rotate-progress.js.map +0 -1
  283. package/dist/session-coordinator.js +0 -303
  284. package/dist/session-coordinator.js.map +0 -1
  285. package/dist/shared-validators.js +0 -81
  286. package/dist/shared-validators.js.map +0 -1
  287. package/dist/signal-cleanup.js.map +0 -1
  288. package/dist/state-bootstrap.js.map +0 -1
  289. package/dist/state-cleanup.js.map +0 -1
  290. package/dist/state-doctor-fix.js +0 -226
  291. package/dist/state-doctor-fix.js.map +0 -1
  292. package/dist/state-doctor-stamps.js +0 -23
  293. package/dist/state-doctor-stamps.js.map +0 -1
  294. package/dist/state-doctor.js.map +0 -1
  295. package/dist/strict-progress.js +0 -255
  296. package/dist/strict-progress.js.map +0 -1
  297. package/dist/sync-templates.js.map +0 -1
  298. package/dist/task-claim.js.map +0 -1
  299. package/dist/trace-gen.js +0 -401
  300. package/dist/trace-gen.js.map +0 -1
  301. package/dist/validate-agent-skills.js +0 -223
  302. package/dist/validate-agent-skills.js.map +0 -1
  303. package/dist/validate-agent-sync.js +0 -151
  304. package/dist/validate-agent-sync.js.map +0 -1
  305. package/dist/validate-backlog-sync.js +0 -77
  306. package/dist/validate-backlog-sync.js.map +0 -1
  307. package/dist/validate-skills-spec.js +0 -211
  308. package/dist/validate-skills-spec.js.map +0 -1
  309. package/dist/validate.js.map +0 -1
  310. package/dist/validator-defaults.js +0 -107
  311. package/dist/validator-defaults.js.map +0 -1
  312. package/dist/validator-registry.js +0 -71
  313. package/dist/validator-registry.js.map +0 -1
  314. package/dist/workspace-init.js.map +0 -1
  315. package/dist/wu-block.js.map +0 -1
  316. package/dist/wu-brief.js.map +0 -1
  317. package/dist/wu-claim-branch.js +0 -123
  318. package/dist/wu-claim-branch.js.map +0 -1
  319. package/dist/wu-claim-cloud.js +0 -79
  320. package/dist/wu-claim-cloud.js.map +0 -1
  321. package/dist/wu-claim-mode.js +0 -82
  322. package/dist/wu-claim-mode.js.map +0 -1
  323. package/dist/wu-claim-output.js +0 -85
  324. package/dist/wu-claim-output.js.map +0 -1
  325. package/dist/wu-claim-repair-guidance.js +0 -12
  326. package/dist/wu-claim-repair-guidance.js.map +0 -1
  327. package/dist/wu-claim-resume-handler.js +0 -87
  328. package/dist/wu-claim-resume-handler.js.map +0 -1
  329. package/dist/wu-claim-state.js +0 -581
  330. package/dist/wu-claim-state.js.map +0 -1
  331. package/dist/wu-claim-validation.js +0 -457
  332. package/dist/wu-claim-validation.js.map +0 -1
  333. package/dist/wu-claim-worktree.js +0 -223
  334. package/dist/wu-claim-worktree.js.map +0 -1
  335. package/dist/wu-claim.js.map +0 -1
  336. package/dist/wu-cleanup-cloud.js +0 -78
  337. package/dist/wu-cleanup-cloud.js.map +0 -1
  338. package/dist/wu-cleanup.js.map +0 -1
  339. package/dist/wu-code-path-coverage.js +0 -83
  340. package/dist/wu-code-path-coverage.js.map +0 -1
  341. package/dist/wu-create-cloud.js +0 -30
  342. package/dist/wu-create-cloud.js.map +0 -1
  343. package/dist/wu-create-content.js +0 -264
  344. package/dist/wu-create-content.js.map +0 -1
  345. package/dist/wu-create-readiness.js +0 -59
  346. package/dist/wu-create-readiness.js.map +0 -1
  347. package/dist/wu-create-validation.js +0 -128
  348. package/dist/wu-create-validation.js.map +0 -1
  349. package/dist/wu-create.js.map +0 -1
  350. package/dist/wu-delegate.js.map +0 -1
  351. package/dist/wu-delete.js.map +0 -1
  352. package/dist/wu-deps.js.map +0 -1
  353. package/dist/wu-done-auto-cleanup.js +0 -203
  354. package/dist/wu-done-auto-cleanup.js.map +0 -1
  355. package/dist/wu-done-check.js +0 -38
  356. package/dist/wu-done-check.js.map +0 -1
  357. package/dist/wu-done-cloud.js +0 -48
  358. package/dist/wu-done-cloud.js.map +0 -1
  359. package/dist/wu-done-decay.js +0 -86
  360. package/dist/wu-done-decay.js.map +0 -1
  361. package/dist/wu-done.js.map +0 -1
  362. package/dist/wu-edit-operations.js +0 -399
  363. package/dist/wu-edit-operations.js.map +0 -1
  364. package/dist/wu-edit-validators.js +0 -282
  365. package/dist/wu-edit-validators.js.map +0 -1
  366. package/dist/wu-edit.js.map +0 -1
  367. package/dist/wu-infer-lane.js.map +0 -1
  368. package/dist/wu-preflight.js.map +0 -1
  369. package/dist/wu-prep.js.map +0 -1
  370. package/dist/wu-proto.js.map +0 -1
  371. package/dist/wu-prune.js.map +0 -1
  372. package/dist/wu-recover.js.map +0 -1
  373. package/dist/wu-release.js.map +0 -1
  374. package/dist/wu-repair.js.map +0 -1
  375. package/dist/wu-sandbox.js.map +0 -1
  376. package/dist/wu-spawn-completion.js +0 -33
  377. package/dist/wu-spawn-completion.js.map +0 -1
  378. package/dist/wu-spawn-prompt-builders.js +0 -1197
  379. package/dist/wu-spawn-prompt-builders.js.map +0 -1
  380. package/dist/wu-spawn-strategy-resolver.js +0 -322
  381. package/dist/wu-spawn-strategy-resolver.js.map +0 -1
  382. package/dist/wu-spawn.js +0 -59
  383. package/dist/wu-spawn.js.map +0 -1
  384. package/dist/wu-state-cloud.js +0 -41
  385. package/dist/wu-state-cloud.js.map +0 -1
  386. package/dist/wu-status.js.map +0 -1
  387. package/dist/wu-unblock.js.map +0 -1
  388. package/dist/wu-unlock-lane.js.map +0 -1
  389. package/dist/wu-validate.js.map +0 -1
@@ -1,366 +0,0 @@
1
- // Copyright (c) 2026 Hellmai Ltd
2
- // SPDX-License-Identifier: AGPL-3.0-only
3
- /**
4
- * @file lane-lifecycle-process.ts
5
- * WU-1748: Process-owned deferred lane lifecycle
6
- *
7
- * Lane design is an explicit lifecycle:
8
- * unconfigured -> draft -> locked
9
- *
10
- * `init` should bootstrap tooling only. Lane artifacts are created/validated/
11
- * finalized through dedicated lane lifecycle commands.
12
- */
13
- import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
14
- import path from 'node:path';
15
- import YAML from 'yaml';
16
- import { CONFIG_FILES, FILE_SYSTEM, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
17
- import { DEFAULT_LANE_DEFINITIONS, LANE_INFERENCE_TEMPLATE } from './init-templates.js';
18
- import { extractConfigLanes, extractInferenceParents, validateLaneConfigAgainstInference, } from './init-lane-validation.js';
19
- const LANE_CONFIG_KEY = 'lanes';
20
- const LANE_DEFINITIONS_KEY = 'definitions';
21
- const LANE_LIFECYCLE_KEY = 'lifecycle';
22
- const LANE_LIFECYCLE_STATUS_KEY = 'status';
23
- const LANE_LIFECYCLE_UPDATED_AT_KEY = 'updated_at';
24
- const LANE_LIFECYCLE_MIGRATED_AT_KEY = 'migrated_at';
25
- const LANE_LIFECYCLE_MIGRATION_REASON_KEY = 'migration_reason';
26
- const EMPTY_OBJECT = '{}';
27
- const NEWLINE = '\n';
28
- const EMPTY_STRING = '';
29
- const WU_CREATE_PREFIX = '[wu:create]';
30
- const INITIATIVE_CREATE_PREFIX = '[initiative:create]';
31
- const INIT_PREFIX = '[lumenflow init]';
32
- const LANE_SETUP_COMMAND = 'pnpm lane:setup';
33
- const LANE_LOCK_COMMAND = 'pnpm lane:lock';
34
- const LANE_READY_SENTINEL = 'lanes ready';
35
- const DEFAULT_FRAMEWORK_LANES_TOKEN = '{{FRAMEWORK_LANES}}';
36
- export const LANE_LIFECYCLE_STATUS = {
37
- UNCONFIGURED: 'unconfigured',
38
- DRAFT: 'draft',
39
- LOCKED: 'locked',
40
- };
41
- function toIsoTimestamp() {
42
- return new Date().toISOString();
43
- }
44
- function isLaneLifecycleStatus(value) {
45
- return (value === LANE_LIFECYCLE_STATUS.UNCONFIGURED ||
46
- value === LANE_LIFECYCLE_STATUS.DRAFT ||
47
- value === LANE_LIFECYCLE_STATUS.LOCKED);
48
- }
49
- function getConfigPath(projectRoot) {
50
- return path.join(projectRoot, CONFIG_FILES.LUMENFLOW_CONFIG);
51
- }
52
- function getLaneInferencePath(projectRoot) {
53
- return path.join(projectRoot, CONFIG_FILES.LANE_INFERENCE);
54
- }
55
- function readConfigDoc(projectRoot) {
56
- const configPath = getConfigPath(projectRoot);
57
- if (!existsSync(configPath)) {
58
- return {};
59
- }
60
- try {
61
- const content = readFileSync(configPath, FILE_SYSTEM.UTF8);
62
- const parsed = YAML.parse(content);
63
- return parsed && typeof parsed === 'object' ? parsed : {};
64
- }
65
- catch {
66
- return {};
67
- }
68
- }
69
- function writeConfigDoc(projectRoot, config) {
70
- const configPath = getConfigPath(projectRoot);
71
- const nextContent = YAML.stringify(config);
72
- writeFileSync(configPath, nextContent || EMPTY_OBJECT + NEWLINE, FILE_SYSTEM.UTF8);
73
- }
74
- function getLifecycleStatusFromDoc(config) {
75
- const status = config?.lanes?.lifecycle?.status;
76
- return isLaneLifecycleStatus(status) ? status : null;
77
- }
78
- function ensureLanesDoc(config) {
79
- if (!config[LANE_CONFIG_KEY] || typeof config[LANE_CONFIG_KEY] !== 'object') {
80
- config[LANE_CONFIG_KEY] = {};
81
- }
82
- return config[LANE_CONFIG_KEY];
83
- }
84
- function setLifecycleStatusInDoc(config, status, migrationReason) {
85
- const lanes = ensureLanesDoc(config);
86
- const existingLifecycle = lanes[LANE_LIFECYCLE_KEY] && typeof lanes[LANE_LIFECYCLE_KEY] === 'object'
87
- ? lanes[LANE_LIFECYCLE_KEY]
88
- : {};
89
- const now = toIsoTimestamp();
90
- const lifecycle = {
91
- ...existingLifecycle,
92
- [LANE_LIFECYCLE_STATUS_KEY]: status,
93
- [LANE_LIFECYCLE_UPDATED_AT_KEY]: now,
94
- };
95
- if (migrationReason) {
96
- lifecycle[LANE_LIFECYCLE_MIGRATED_AT_KEY] = now;
97
- lifecycle[LANE_LIFECYCLE_MIGRATION_REASON_KEY] = migrationReason;
98
- }
99
- lanes[LANE_LIFECYCLE_KEY] = lifecycle;
100
- }
101
- function hasLaneDefinitions(config) {
102
- const definitions = config?.lanes?.definitions;
103
- return Array.isArray(definitions) && definitions.length > 0;
104
- }
105
- function hasLaneInferenceFile(projectRoot) {
106
- return existsSync(getLaneInferencePath(projectRoot));
107
- }
108
- function deepCloneDefaultLaneDefinitions() {
109
- return JSON.parse(JSON.stringify(DEFAULT_LANE_DEFINITIONS));
110
- }
111
- function buildDefaultLaneInferenceTemplate() {
112
- return LANE_INFERENCE_TEMPLATE.replace(DEFAULT_FRAMEWORK_LANES_TOKEN, EMPTY_STRING);
113
- }
114
- /**
115
- * Classify lifecycle status for projects that do not yet have explicit
116
- * lanes.lifecycle.status in config.
117
- */
118
- export function classifyLaneLifecycleForProject(projectRoot) {
119
- const config = readConfigDoc(projectRoot);
120
- const configuredStatus = getLifecycleStatusFromDoc(config);
121
- if (configuredStatus) {
122
- return {
123
- status: configuredStatus,
124
- source: 'config',
125
- migrationReason: null,
126
- persisted: false,
127
- };
128
- }
129
- const definitionsPresent = hasLaneDefinitions(config);
130
- const inferencePresent = hasLaneInferenceFile(projectRoot);
131
- if (!definitionsPresent && !inferencePresent) {
132
- return {
133
- status: LANE_LIFECYCLE_STATUS.UNCONFIGURED,
134
- source: 'migration',
135
- migrationReason: 'no lane artifacts',
136
- persisted: false,
137
- };
138
- }
139
- if (definitionsPresent && inferencePresent) {
140
- const validation = validateLaneArtifacts(projectRoot);
141
- if (validation.invalidLanes.length === 0 && validation.warnings.length === 0) {
142
- return {
143
- status: LANE_LIFECYCLE_STATUS.LOCKED,
144
- source: 'migration',
145
- migrationReason: 'lane artifacts detected and valid',
146
- persisted: false,
147
- };
148
- }
149
- return {
150
- status: LANE_LIFECYCLE_STATUS.DRAFT,
151
- source: 'migration',
152
- migrationReason: 'lane artifacts detected but validation failed',
153
- persisted: false,
154
- };
155
- }
156
- return {
157
- status: LANE_LIFECYCLE_STATUS.DRAFT,
158
- source: 'migration',
159
- migrationReason: 'partial lane artifacts detected',
160
- persisted: false,
161
- };
162
- }
163
- /**
164
- * Ensure lifecycle status exists in config.
165
- *
166
- * Existing repositories are migrated deterministically from current artifacts:
167
- * - valid artifacts => locked
168
- * - invalid/partial artifacts => draft
169
- * - no artifacts => unconfigured
170
- */
171
- export function ensureLaneLifecycleForProject(projectRoot, options = {}) {
172
- const persist = options.persist ?? true;
173
- const classification = classifyLaneLifecycleForProject(projectRoot);
174
- if (!persist || classification.source === 'config') {
175
- return classification;
176
- }
177
- const config = readConfigDoc(projectRoot);
178
- setLifecycleStatusInDoc(config, classification.status, classification.migrationReason ?? undefined);
179
- writeConfigDoc(projectRoot, config);
180
- return {
181
- ...classification,
182
- persisted: true,
183
- };
184
- }
185
- export function setLaneLifecycleStatus(projectRoot, status) {
186
- const config = readConfigDoc(projectRoot);
187
- setLifecycleStatusInDoc(config, status);
188
- writeConfigDoc(projectRoot, config);
189
- }
190
- export function recommendLaneLifecycleNextStep(status) {
191
- if (status === LANE_LIFECYCLE_STATUS.UNCONFIGURED) {
192
- return LANE_SETUP_COMMAND;
193
- }
194
- if (status === LANE_LIFECYCLE_STATUS.DRAFT) {
195
- return LANE_LOCK_COMMAND;
196
- }
197
- return LANE_READY_SENTINEL;
198
- }
199
- export function buildWuCreateLaneLifecycleMessage(status) {
200
- return [
201
- `${WU_CREATE_PREFIX} Lane lifecycle status: ${status}`,
202
- 'Cannot create delivery WU until lanes are locked.',
203
- `Next step: ${recommendLaneLifecycleNextStep(status)}`,
204
- ].join(NEWLINE);
205
- }
206
- export function buildInitiativeCreateLaneLifecycleMessage(status) {
207
- return [
208
- `${INITIATIVE_CREATE_PREFIX} Lane lifecycle: ${status}`,
209
- 'Initiative creation is allowed before lane setup.',
210
- `When ready for delivery WUs, run: ${recommendLaneLifecycleNextStep(status)}`,
211
- ].join(NEWLINE);
212
- }
213
- export function buildInitLaneLifecycleMessage(status) {
214
- return [
215
- `${INIT_PREFIX} Lane lifecycle: ${status}`,
216
- 'Lanes are configured after project context is defined (plan/architecture).',
217
- `Next step: ${recommendLaneLifecycleNextStep(status)}`,
218
- ].join(NEWLINE);
219
- }
220
- /**
221
- * WU-1755: Detect workspace structure and generate project-specific lane definitions.
222
- * Scans pnpm-workspace.yaml or package.json workspaces to build lanes from actual project layout.
223
- * Falls back to DEFAULT_LANE_DEFINITIONS if no workspace config is found.
224
- */
225
- function detectWorkspaceLanes(projectRoot) {
226
- const lanes = [];
227
- // Try pnpm-workspace.yaml first
228
- const pnpmWorkspacePath = path.join(projectRoot, 'pnpm-workspace.yaml');
229
- let workspacePatterns = [];
230
- if (existsSync(pnpmWorkspacePath)) {
231
- try {
232
- const content = readFileSync(pnpmWorkspacePath, FILE_SYSTEM.ENCODING);
233
- const parsed = YAML.parse(content);
234
- workspacePatterns = parsed?.packages ?? [];
235
- }
236
- catch {
237
- // Fall through to package.json check
238
- }
239
- }
240
- // Fall back to package.json workspaces
241
- if (workspacePatterns.length === 0) {
242
- const pkgJsonPath = path.join(projectRoot, 'package.json');
243
- if (existsSync(pkgJsonPath)) {
244
- try {
245
- const content = readFileSync(pkgJsonPath, FILE_SYSTEM.ENCODING);
246
- const parsed = JSON.parse(content);
247
- if (Array.isArray(parsed?.workspaces)) {
248
- workspacePatterns = parsed.workspaces;
249
- }
250
- else if (parsed?.workspaces?.packages) {
251
- workspacePatterns = parsed.workspaces.packages;
252
- }
253
- }
254
- catch {
255
- // Fall through to defaults
256
- }
257
- }
258
- }
259
- if (workspacePatterns.length === 0) {
260
- return deepCloneDefaultLaneDefinitions();
261
- }
262
- // Scan workspace patterns for actual directories
263
- for (const pattern of workspacePatterns) {
264
- const baseDir = pattern.replace(/\/?\*$/, '');
265
- const fullPath = path.join(projectRoot, baseDir);
266
- if (!existsSync(fullPath))
267
- continue;
268
- try {
269
- const entries = readdirSync(fullPath, { withFileTypes: true });
270
- for (const entry of entries) {
271
- if (!entry.isDirectory())
272
- continue;
273
- const pkgPath = path.join(fullPath, entry.name, 'package.json');
274
- if (!existsSync(pkgPath))
275
- continue;
276
- // Determine lane category from directory structure
277
- const isApp = baseDir.includes('app');
278
- const category = isApp ? 'Experience' : 'Framework';
279
- const displayName = entry.name.replace(/^@[^/]+\//, '');
280
- lanes.push({
281
- name: `${category}: ${displayName.charAt(0).toUpperCase() + displayName.slice(1)}`,
282
- wip_limit: 1,
283
- code_paths: [`${baseDir}/${entry.name}/**`],
284
- });
285
- }
286
- }
287
- catch {
288
- // Skip unreadable directories
289
- }
290
- }
291
- // Always include Content: Documentation if docs/ exists
292
- if (existsSync(path.join(projectRoot, 'docs'))) {
293
- lanes.push({
294
- name: 'Content: Documentation',
295
- wip_limit: 1,
296
- code_paths: ['docs/**', '*.md'],
297
- });
298
- }
299
- // Always include Operations: CI/CD if .github/ exists
300
- if (existsSync(path.join(projectRoot, '.github'))) {
301
- lanes.push({
302
- name: 'Operations: CI/CD',
303
- wip_limit: 1,
304
- code_paths: ['.github/workflows/**', '.github/actions/**'],
305
- });
306
- }
307
- return lanes.length > 0 ? lanes : deepCloneDefaultLaneDefinitions();
308
- }
309
- export function ensureDraftLaneArtifacts(projectRoot) {
310
- const config = readConfigDoc(projectRoot);
311
- const lanes = ensureLanesDoc(config);
312
- let createdDefinitions = false;
313
- if (!hasLaneDefinitions(config)) {
314
- // WU-1755: Detect workspace structure for project-specific lanes
315
- lanes[LANE_DEFINITIONS_KEY] = detectWorkspaceLanes(projectRoot);
316
- createdDefinitions = true;
317
- }
318
- const laneInferencePath = getLaneInferencePath(projectRoot);
319
- let createdInference = false;
320
- if (!existsSync(laneInferencePath)) {
321
- const inferenceDir = path.dirname(laneInferencePath);
322
- if (!existsSync(inferenceDir)) {
323
- mkdirSync(inferenceDir, { recursive: true });
324
- }
325
- writeFileSync(laneInferencePath, buildDefaultLaneInferenceTemplate(), FILE_SYSTEM.ENCODING);
326
- createdInference = true;
327
- }
328
- setLifecycleStatusInDoc(config, LANE_LIFECYCLE_STATUS.DRAFT);
329
- writeConfigDoc(projectRoot, config);
330
- return {
331
- createdDefinitions,
332
- createdInference,
333
- status: LANE_LIFECYCLE_STATUS.DRAFT,
334
- };
335
- }
336
- export function validateLaneArtifacts(projectRoot) {
337
- const configPath = getConfigPath(projectRoot);
338
- const inferencePath = getLaneInferencePath(projectRoot);
339
- const configLanes = extractConfigLanes(configPath);
340
- const inferenceParents = extractInferenceParents(inferencePath);
341
- const missingDefinitions = configLanes.length === 0;
342
- const missingInference = inferenceParents.length === 0;
343
- const warnings = [];
344
- const invalidLanes = [];
345
- if (missingDefinitions) {
346
- warnings.push(`No lane definitions found in ${CONFIG_FILES.LUMENFLOW_CONFIG}. Run: ${LANE_SETUP_COMMAND}`);
347
- }
348
- if (missingInference) {
349
- warnings.push(`Missing or invalid ${CONFIG_FILES.LANE_INFERENCE}. Run: ${LANE_SETUP_COMMAND}`);
350
- }
351
- if (!missingDefinitions && !missingInference) {
352
- const laneValidation = validateLaneConfigAgainstInference(configLanes, inferenceParents);
353
- warnings.push(...laneValidation.warnings);
354
- invalidLanes.push(...laneValidation.invalidLanes);
355
- }
356
- return {
357
- warnings,
358
- invalidLanes,
359
- missingDefinitions,
360
- missingInference,
361
- };
362
- }
363
- export function getLaneLifecycleStatusPath() {
364
- return path.join(LUMENFLOW_PATHS.STATE_DIR, 'lane-lifecycle.json');
365
- }
366
- //# sourceMappingURL=lane-lifecycle-process.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lane-lifecycle-process.js","sourceRoot":"","sources":["../src/lane-lifecycle-process.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lane-lock.js","sourceRoot":"","sources":["../src/lane-lock.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,GAAG,CACD,GAAG,UAAU,YAAY,YAAY,CAAC,gBAAgB,OAAO;YAC3D,sEAAsE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IAExF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,wDAAwD,CAAC,CAAC;QACnF,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,gCAAgC,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,sBAAsB,CAAC,WAAW,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,2BAA2B,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,eAAe,8BAA8B,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAC3F,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lane-setup.js","sourceRoot":"","sources":["../src/lane-setup.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lane-status.js","sourceRoot":"","sources":["../src/lane-status.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,GAAG,CACD,GAAG,UAAU,YAAY,YAAY,CAAC,gBAAgB,OAAO;YAC3D,4EAA4E,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,WAAmB;IAC/D,OAAO,6BAA6B,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEjC,MAAM,cAAc,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,8BAA8B,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvE,IAAI,cAAc,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,qCAAqC,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,mCAAmC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lane-suggest.js","sourceRoot":"","sources":["../src/lane-suggest.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lane-validate.js","sourceRoot":"","sources":["../src/lane-validate.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AAEzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAE1D,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,GAAG,CACD,GAAG,UAAU,YAAY,YAAY,CAAC,gBAAgB,OAAO;YAC3D,sEAAsE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IAExF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,qBAAqB,CAAC,CAAC;QAChD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,eAAe,8BAA8B,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,CACjG,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,sBAAsB,CAAC,WAAW,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,aAAa,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,2BAA2B,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,eAAe,8BAA8B,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -1,181 +0,0 @@
1
- // Copyright (c) 2026 Hellmai Ltd
2
- // SPDX-License-Identifier: AGPL-3.0-only
3
- import { existsSync } from 'node:fs';
4
- import { mkdir, readdir, readFile, unlink, writeFile } from 'node:fs/promises';
5
- import { join } from 'node:path';
6
- import { diagnoseState, } from '@lumenflow/core/state-doctor-core';
7
- import { generateBacklog, generateStatus } from '@lumenflow/core/backlog-generator';
8
- import { WU_STATUS } from '@lumenflow/core/wu-constants';
9
- import { WUStateStore, WU_EVENTS_FILE_NAME } from '@lumenflow/core/wu-state-store';
10
- import { parseYAML, stringifyYAML } from '@lumenflow/core/wu-yaml';
11
- const PATHS = {
12
- wuDir: join('docs', '04-operations', 'tasks', 'wu'),
13
- stateDir: join('.lumenflow', 'state'),
14
- stampsDir: join('.lumenflow', 'stamps'),
15
- };
16
- export class LifecycleHarnessError extends Error {
17
- stage;
18
- constructor(stage, message, cause) {
19
- super(`[${stage}] ${message}`);
20
- this.name = 'LifecycleHarnessError';
21
- this.stage = stage;
22
- if (cause) {
23
- this.cause = cause;
24
- }
25
- }
26
- }
27
- async function withStage(stage, fn) {
28
- try {
29
- return await fn();
30
- }
31
- catch (error) {
32
- if (error instanceof LifecycleHarnessError) {
33
- throw error;
34
- }
35
- throw new LifecycleHarnessError(stage, error instanceof Error ? error.message : String(error), error);
36
- }
37
- }
38
- function assertStage(condition, stage, message) {
39
- if (!condition) {
40
- throw new LifecycleHarnessError(stage, message);
41
- }
42
- }
43
- function wuPath(projectDir, wuId) {
44
- return join(projectDir, PATHS.wuDir, `${wuId}.yaml`);
45
- }
46
- function eventsPath(projectDir) {
47
- return join(projectDir, PATHS.stateDir, WU_EVENTS_FILE_NAME);
48
- }
49
- async function readEvents(projectDir) {
50
- const eventFile = eventsPath(projectDir);
51
- if (!existsSync(eventFile))
52
- return [];
53
- const lines = (await readFile(eventFile, 'utf8'))
54
- .split('\n')
55
- .filter((line) => line.trim().length > 0);
56
- return lines.map((line) => JSON.parse(line));
57
- }
58
- async function writeEvents(projectDir, events) {
59
- const eventFile = eventsPath(projectDir);
60
- const payload = events.map((event) => JSON.stringify(event)).join('\n');
61
- await writeFile(eventFile, payload.length > 0 ? `${payload}\n` : '', 'utf8');
62
- }
63
- async function createDoctorDeps(projectDir) {
64
- return {
65
- listWUs: async () => {
66
- const dir = join(projectDir, PATHS.wuDir);
67
- if (!existsSync(dir))
68
- return [];
69
- const entries = await readdir(dir);
70
- const docs = [];
71
- for (const file of entries) {
72
- if (!file.endsWith('.yaml'))
73
- continue;
74
- const parsed = parseYAML(await readFile(join(dir, file), 'utf8'));
75
- docs.push({
76
- id: String(parsed.id),
77
- status: String(parsed.status),
78
- lane: parsed.lane ? String(parsed.lane) : undefined,
79
- title: parsed.title ? String(parsed.title) : undefined,
80
- });
81
- }
82
- return docs;
83
- },
84
- listStamps: async () => {
85
- const dir = join(projectDir, PATHS.stampsDir);
86
- if (!existsSync(dir))
87
- return [];
88
- const entries = await readdir(dir);
89
- return entries
90
- .filter((file) => file.endsWith('.done'))
91
- .map((file) => file.replace('.done', ''));
92
- },
93
- listSignals: async () => [],
94
- listEvents: async () => {
95
- const events = await readEvents(projectDir);
96
- return events.map((event) => ({
97
- wuId: String(event.wuId ?? event.wu_id ?? ''),
98
- type: String(event.type ?? ''),
99
- timestamp: event.timestamp ? String(event.timestamp) : undefined,
100
- lane: event.lane ? String(event.lane) : undefined,
101
- title: event.title ? String(event.title) : undefined,
102
- reason: event.reason ? String(event.reason) : undefined,
103
- }));
104
- },
105
- removeEvent: async (wuId) => {
106
- const events = await readEvents(projectDir);
107
- const filtered = events.filter((event) => String(event.wuId ?? event.wu_id ?? '') !== wuId);
108
- await writeEvents(projectDir, filtered);
109
- },
110
- };
111
- }
112
- export async function runLifecycleRegressionHarness(options) {
113
- const { projectDir, wuId, lane, title, skipDoctorFix = false } = options;
114
- const stageOrder = [];
115
- const stateDir = join(projectDir, PATHS.stateDir);
116
- const wuDir = join(projectDir, PATHS.wuDir);
117
- await mkdir(wuDir, { recursive: true });
118
- await mkdir(stateDir, { recursive: true });
119
- await mkdir(join(projectDir, PATHS.stampsDir), { recursive: true });
120
- await withStage('create', async () => {
121
- stageOrder.push('create');
122
- const doc = {
123
- id: wuId,
124
- title,
125
- lane,
126
- type: 'refactor',
127
- status: WU_STATUS.READY,
128
- priority: 'P2',
129
- created: '2026-02-07',
130
- description: 'Lifecycle harness test WU',
131
- acceptance: ['Create, claim, complete, delete, doctor'],
132
- code_paths: ['packages/@lumenflow/cli/src/lifecycle-regression-harness.ts'],
133
- tests: { manual: ['Run lifecycle harness test'], unit: [], e2e: [] },
134
- exposure: 'backend-only',
135
- };
136
- await writeFile(wuPath(projectDir, wuId), stringifyYAML(doc), 'utf8');
137
- assertStage(existsSync(wuPath(projectDir, wuId)), 'create', `expected ${wuId}.yaml to exist`);
138
- });
139
- const store = new WUStateStore(stateDir);
140
- await store.load();
141
- await withStage('claim', async () => {
142
- stageOrder.push('claim');
143
- await store.claim(wuId, lane, title);
144
- const current = store.getWUState(wuId);
145
- assertStage(current?.status === WU_STATUS.IN_PROGRESS, 'claim', `expected ${wuId} status to be in_progress after claim`);
146
- });
147
- await withStage('done', async () => {
148
- stageOrder.push('done');
149
- await store.complete(wuId);
150
- const current = store.getWUState(wuId);
151
- assertStage(current?.status === WU_STATUS.DONE, 'done', `expected ${wuId} status to be done`);
152
- });
153
- await withStage('delete', async () => {
154
- stageOrder.push('delete');
155
- await unlink(wuPath(projectDir, wuId));
156
- assertStage(!existsSync(wuPath(projectDir, wuId)), 'delete', `expected ${wuId}.yaml to be deleted`);
157
- });
158
- const diagnosis = await withStage('doctor', async () => {
159
- stageOrder.push('doctor');
160
- const deps = await createDoctorDeps(projectDir);
161
- const result = await diagnoseState(projectDir, deps, { fix: !skipDoctorFix });
162
- const verification = skipDoctorFix
163
- ? result
164
- : await diagnoseState(projectDir, await createDoctorDeps(projectDir), { fix: false });
165
- assertStage(verification.summary.brokenEvents === 0, 'doctor', `expected no Broken Event issues after doctor (found ${verification.summary.brokenEvents})`);
166
- return verification;
167
- });
168
- const cleanStore = new WUStateStore(stateDir);
169
- await cleanStore.load();
170
- const backlogProjection = await generateBacklog(cleanStore, { projectRoot: projectDir, wuDir });
171
- const statusProjection = await generateStatus(cleanStore);
172
- assertStage(!backlogProjection.includes(wuId), 'doctor', `expected backlog projection to exclude deleted ${wuId}`);
173
- assertStage(!statusProjection.includes(wuId), 'doctor', `expected status projection to exclude deleted ${wuId}`);
174
- return {
175
- stageOrder,
176
- diagnosis,
177
- backlogProjection,
178
- statusProjection,
179
- };
180
- }
181
- //# sourceMappingURL=lifecycle-regression-harness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-regression-harness.js","sourceRoot":"","sources":["../src/lifecycle-regression-harness.ts"],"names":[],"mappings":"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"}