@lumenflow/cli 4.23.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/README.md +54 -52
  2. package/dist/agent-issues-query.js +10 -2
  3. package/dist/agent-issues-query.js.map +1 -1
  4. package/dist/agent-runtime-enrollment-events.js +44 -0
  5. package/dist/agent-runtime-enrollment-events.js.map +1 -0
  6. package/dist/agent-session-end.js +47 -0
  7. package/dist/agent-session-end.js.map +1 -1
  8. package/dist/agent-session-heartbeat.js +250 -0
  9. package/dist/agent-session-heartbeat.js.map +1 -0
  10. package/dist/agent-session.js +299 -5
  11. package/dist/agent-session.js.map +1 -1
  12. package/dist/capacity-snapshot-emitter.js +73 -0
  13. package/dist/capacity-snapshot-emitter.js.map +1 -0
  14. package/dist/claim-queue.js +276 -0
  15. package/dist/claim-queue.js.map +1 -0
  16. package/dist/config-set.js +22 -3
  17. package/dist/config-set.js.map +1 -1
  18. package/dist/control-plane-sidecar-runner.js +145 -0
  19. package/dist/control-plane-sidecar-runner.js.map +1 -0
  20. package/dist/delegation-list.js +160 -1
  21. package/dist/delegation-list.js.map +1 -1
  22. package/dist/delegation-role-resolver.js +69 -0
  23. package/dist/delegation-role-resolver.js.map +1 -0
  24. package/dist/docs-generate-pack-reference.js +500 -0
  25. package/dist/docs-generate-pack-reference.js.map +1 -0
  26. package/dist/docs-sync.js +116 -1
  27. package/dist/docs-sync.js.map +1 -1
  28. package/dist/file-edit.js +28 -8
  29. package/dist/file-edit.js.map +1 -1
  30. package/dist/file-write.js +29 -5
  31. package/dist/file-write.js.map +1 -1
  32. package/dist/gate-co-change.js +25 -7
  33. package/dist/gate-co-change.js.map +1 -1
  34. package/dist/gate-conditional.js +19 -7
  35. package/dist/gate-conditional.js.map +1 -1
  36. package/dist/gates-runners.js +42 -33
  37. package/dist/gates-runners.js.map +1 -1
  38. package/dist/gates-utils.js +34 -20
  39. package/dist/gates-utils.js.map +1 -1
  40. package/dist/gates.js +79 -7
  41. package/dist/gates.js.map +1 -1
  42. package/dist/hooks/config-resolver.js +10 -1
  43. package/dist/hooks/config-resolver.js.map +1 -1
  44. package/dist/init-package-config.js +1 -1
  45. package/dist/init-package-config.js.map +1 -1
  46. package/dist/init-scaffolding.js +5 -1
  47. package/dist/init-scaffolding.js.map +1 -1
  48. package/dist/init-templates.js +10 -0
  49. package/dist/init-templates.js.map +1 -1
  50. package/dist/init.js +1 -1
  51. package/dist/init.js.map +1 -1
  52. package/dist/initiative-create.js +17 -0
  53. package/dist/initiative-create.js.map +1 -1
  54. package/dist/initiative-remove-wu.js +17 -3
  55. package/dist/initiative-remove-wu.js.map +1 -1
  56. package/dist/kernel-event-sync/emitters.js +104 -0
  57. package/dist/kernel-event-sync/emitters.js.map +1 -0
  58. package/dist/kernel-event-sync/index.js +13 -0
  59. package/dist/kernel-event-sync/index.js.map +1 -0
  60. package/dist/kernel-event-sync/lifecycle-emitters.js +160 -0
  61. package/dist/kernel-event-sync/lifecycle-emitters.js.map +1 -0
  62. package/dist/kernel-event-sync/narrow-emissions.js +89 -0
  63. package/dist/kernel-event-sync/narrow-emissions.js.map +1 -0
  64. package/dist/kernel-event-sync/software-delivery-emitters.js +297 -0
  65. package/dist/kernel-event-sync/software-delivery-emitters.js.map +1 -0
  66. package/dist/lane-lock.js +14 -1
  67. package/dist/lane-lock.js.map +1 -1
  68. package/dist/lane-suggest.js +21 -0
  69. package/dist/lane-suggest.js.map +1 -1
  70. package/dist/lumenflow-upgrade.js +7 -5
  71. package/dist/lumenflow-upgrade.js.map +1 -1
  72. package/dist/mem-context.js +145 -0
  73. package/dist/mem-context.js.map +1 -1
  74. package/dist/mem-create.js +39 -6
  75. package/dist/mem-create.js.map +1 -1
  76. package/dist/mem-inbox.js +16 -0
  77. package/dist/mem-inbox.js.map +1 -1
  78. package/dist/mem-roster.js +95 -0
  79. package/dist/mem-roster.js.map +1 -0
  80. package/dist/mem-signal.js +97 -2
  81. package/dist/mem-signal.js.map +1 -1
  82. package/dist/metrics-cli.js +3 -2
  83. package/dist/metrics-cli.js.map +1 -1
  84. package/dist/metrics-snapshot.js +271 -13
  85. package/dist/metrics-snapshot.js.map +1 -1
  86. package/dist/orchestrate-init-status.js +117 -2
  87. package/dist/orchestrate-init-status.js.map +1 -1
  88. package/dist/orchestrate-initiative.js +83 -10
  89. package/dist/orchestrate-initiative.js.map +1 -1
  90. package/dist/orchestrate-monitor-quality.js +289 -0
  91. package/dist/orchestrate-monitor-quality.js.map +1 -0
  92. package/dist/orchestrate-monitor.js +85 -0
  93. package/dist/orchestrate-monitor.js.map +1 -1
  94. package/dist/pack-validate.js +127 -2
  95. package/dist/pack-validate.js.map +1 -1
  96. package/dist/plan-create.js +18 -0
  97. package/dist/plan-create.js.map +1 -1
  98. package/dist/plan-link.js +13 -0
  99. package/dist/plan-link.js.map +1 -1
  100. package/dist/plan-promote.js +14 -0
  101. package/dist/plan-promote.js.map +1 -1
  102. package/dist/pre-commit-check.js +4 -3
  103. package/dist/pre-commit-check.js.map +1 -1
  104. package/dist/public-manifest.js +17 -3
  105. package/dist/public-manifest.js.map +1 -1
  106. package/dist/release.js +10 -10
  107. package/dist/release.js.map +1 -1
  108. package/dist/session-cross-link.js +139 -0
  109. package/dist/session-cross-link.js.map +1 -0
  110. package/dist/sidecar-manager.js +208 -0
  111. package/dist/sidecar-manager.js.map +1 -0
  112. package/dist/state-path-resolvers.js +18 -0
  113. package/dist/state-path-resolvers.js.map +1 -1
  114. package/dist/stream-heartbeat.js +151 -0
  115. package/dist/stream-heartbeat.js.map +1 -0
  116. package/dist/sync-templates.js +56 -2
  117. package/dist/sync-templates.js.map +1 -1
  118. package/dist/wu-block.js +47 -5
  119. package/dist/wu-block.js.map +1 -1
  120. package/dist/wu-claim-branch.js +8 -4
  121. package/dist/wu-claim-branch.js.map +1 -1
  122. package/dist/wu-claim-state.js +5 -3
  123. package/dist/wu-claim-state.js.map +1 -1
  124. package/dist/wu-claim-worktree.js +5 -3
  125. package/dist/wu-claim-worktree.js.map +1 -1
  126. package/dist/wu-claim.js +261 -9
  127. package/dist/wu-claim.js.map +1 -1
  128. package/dist/wu-done-auto-cleanup.js +3 -2
  129. package/dist/wu-done-auto-cleanup.js.map +1 -1
  130. package/dist/wu-done-git-ops.js +12 -8
  131. package/dist/wu-done-git-ops.js.map +1 -1
  132. package/dist/wu-done-preflight.js +3 -3
  133. package/dist/wu-done-preflight.js.map +1 -1
  134. package/dist/wu-done.js +46 -10
  135. package/dist/wu-done.js.map +1 -1
  136. package/dist/wu-lifecycle-sync/gate-scope-resolver.js +16 -0
  137. package/dist/wu-lifecycle-sync/gate-scope-resolver.js.map +1 -0
  138. package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js +10 -0
  139. package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js.map +1 -0
  140. package/dist/wu-prep.js +363 -22
  141. package/dist/wu-prep.js.map +1 -1
  142. package/dist/wu-prune.js +68 -27
  143. package/dist/wu-prune.js.map +1 -1
  144. package/dist/wu-release.js +34 -3
  145. package/dist/wu-release.js.map +1 -1
  146. package/dist/wu-review.js +167 -0
  147. package/dist/wu-review.js.map +1 -0
  148. package/dist/wu-spawn-prompt-builders.js +296 -40
  149. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  150. package/dist/wu-spawn-strategy-resolver.js +126 -14
  151. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  152. package/dist/wu-unblock.js +52 -22
  153. package/dist/wu-unblock.js.map +1 -1
  154. package/package.json +13 -8
  155. package/packs/agent-runtime/.turbo/turbo-build.log +1 -1
  156. package/packs/agent-runtime/.turbo/turbo-test.log +25 -0
  157. package/packs/agent-runtime/.turbo/turbo-typecheck.log +4 -0
  158. package/packs/agent-runtime/agent-heartbeat.ts +163 -0
  159. package/packs/agent-runtime/auto-session-integration.ts +874 -0
  160. package/packs/agent-runtime/delegation-registry-schema.ts +220 -0
  161. package/packs/agent-runtime/delegation-registry-store.ts +269 -0
  162. package/packs/agent-runtime/delegation-tree.ts +328 -0
  163. package/packs/agent-runtime/index.ts +9 -0
  164. package/packs/agent-runtime/manifest.ts +103 -19
  165. package/packs/agent-runtime/manifest.yaml +132 -0
  166. package/packs/agent-runtime/memory-coordination-contract.ts +86 -0
  167. package/packs/agent-runtime/memory.d.ts +19 -0
  168. package/packs/agent-runtime/orchestration.ts +238 -23
  169. package/packs/agent-runtime/package.json +11 -2
  170. package/packs/agent-runtime/remote-controls/index.ts +7 -0
  171. package/packs/agent-runtime/remote-controls/operations.ts +399 -0
  172. package/packs/agent-runtime/remote-controls/port.ts +48 -0
  173. package/packs/agent-runtime/remote-controls/state-store.ts +258 -0
  174. package/packs/agent-runtime/remote-controls/types.ts +105 -0
  175. package/packs/agent-runtime/session-schema.ts +423 -0
  176. package/packs/agent-runtime/tool-impl/index.ts +1 -0
  177. package/packs/agent-runtime/tool-impl/remote-controls.mock.ts +252 -0
  178. package/packs/agent-runtime/tool-impl/remote-controls.ts +273 -0
  179. package/packs/agent-runtime/tsconfig.json +1 -1
  180. package/packs/agent-runtime/turn-lifecycle-events.ts +501 -0
  181. package/packs/sidekick/.lumenflow/state/conductor/outbox/sidekick-events.jsonl +213 -0
  182. package/packs/sidekick/.turbo/turbo-build.log +1 -1
  183. package/packs/sidekick/.turbo/turbo-test.log +25 -0
  184. package/packs/sidekick/.turbo/turbo-typecheck.log +4 -0
  185. package/packs/sidekick/channel-ingress.ts +137 -0
  186. package/packs/sidekick/manifest.ts +74 -0
  187. package/packs/sidekick/manifest.yaml +88 -0
  188. package/packs/sidekick/package.json +3 -1
  189. package/packs/sidekick/sidekick-events.ts +517 -0
  190. package/packs/sidekick/src/adapters/cloud-queue.ts +101 -0
  191. package/packs/sidekick/src/adapters/control-plane-bridge.adapter.ts +378 -0
  192. package/packs/sidekick/src/adapters/filesystem-bridge.adapter.ts +224 -0
  193. package/packs/sidekick/src/domain/channel.types.ts +84 -0
  194. package/packs/sidekick/src/ports/channel-bridge.port.ts +75 -0
  195. package/packs/sidekick/src/routines/commit.ts +74 -0
  196. package/packs/sidekick/tool-impl/channel-tools.ts +47 -0
  197. package/packs/sidekick/tool-impl/memory-tools.ts +17 -0
  198. package/packs/sidekick/tool-impl/routine-commit.ts +102 -0
  199. package/packs/sidekick/tool-impl/routine-tools.ts +67 -7
  200. package/packs/sidekick/tool-impl/runtime-context.ts +4 -0
  201. package/packs/sidekick/tool-impl/storage.ts +3 -0
  202. package/packs/sidekick/tool-impl/system-tools.ts +7 -0
  203. package/packs/sidekick/tool-impl/task-tools.ts +46 -0
  204. package/packs/sidekick/tsconfig.json +1 -1
  205. package/packs/software-delivery/.turbo/turbo-build.log +1 -1
  206. package/packs/software-delivery/.turbo/turbo-test.log +63 -0
  207. package/packs/software-delivery/.turbo/turbo-typecheck.log +4 -0
  208. package/packs/software-delivery/manifest-schema.ts +30 -0
  209. package/packs/software-delivery/manifest.ts +99 -1
  210. package/packs/software-delivery/manifest.yaml +46 -0
  211. package/packs/software-delivery/package.json +88 -3
  212. package/packs/software-delivery/src/commands/index.ts +5 -0
  213. package/packs/software-delivery/src/config/delivery-review-contract.ts +20 -0
  214. package/packs/software-delivery/src/config/env-accessors.ts +19 -0
  215. package/packs/software-delivery/src/config/index.ts +8 -0
  216. package/packs/software-delivery/src/config/normalize-config-keys.ts +19 -0
  217. package/packs/software-delivery/src/config/schemas/lumenflow-config-schema-types.ts +436 -0
  218. package/packs/software-delivery/src/config/workspace-reader.ts +310 -0
  219. package/packs/software-delivery/src/constants/backlog-patterns.ts +31 -0
  220. package/packs/software-delivery/src/constants/client-ids.ts +19 -0
  221. package/packs/software-delivery/src/constants/config-contract.ts +7 -0
  222. package/packs/software-delivery/src/constants/docs-layout-presets.ts +50 -0
  223. package/packs/software-delivery/src/constants/duration-constants.ts +20 -0
  224. package/packs/software-delivery/src/constants/gate-constants.ts +32 -0
  225. package/packs/software-delivery/src/constants/index.ts +29 -0
  226. package/packs/software-delivery/src/constants/lock-constants.ts +35 -0
  227. package/packs/software-delivery/src/constants/object-guards.ts +12 -0
  228. package/packs/software-delivery/src/constants/section-headings.ts +107 -0
  229. package/packs/software-delivery/src/constants/wu-cli-constants.ts +485 -0
  230. package/packs/software-delivery/src/constants/wu-domain-constants.ts +466 -0
  231. package/packs/software-delivery/src/constants/wu-git-constants.ts +7 -0
  232. package/packs/software-delivery/src/constants/wu-id-format.ts +327 -0
  233. package/packs/software-delivery/src/constants/wu-paths-constants.ts +358 -0
  234. package/packs/software-delivery/src/constants/wu-statuses.ts +287 -0
  235. package/packs/software-delivery/src/constants/wu-type-helpers.ts +67 -0
  236. package/packs/software-delivery/src/constants/wu-ui-constants.ts +267 -0
  237. package/packs/software-delivery/src/constants/wu-validation-constants.ts +73 -0
  238. package/packs/software-delivery/src/domain/index.ts +5 -0
  239. package/packs/software-delivery/src/domain/orchestration.constants.ts +168 -0
  240. package/packs/software-delivery/src/domain/orchestration.schemas.ts +239 -0
  241. package/packs/software-delivery/src/domain/orchestration.types.ts +178 -0
  242. package/packs/software-delivery/src/methodology/incremental-test.ts +90 -0
  243. package/packs/software-delivery/src/methodology/index.ts +6 -0
  244. package/packs/software-delivery/src/methodology/manual-test-validator.ts +292 -0
  245. package/packs/software-delivery/src/policy/coverage-gate.ts +270 -0
  246. package/packs/software-delivery/src/policy/gates-agent-mode.ts +223 -0
  247. package/packs/software-delivery/src/policy/gates-config-internal.ts +121 -0
  248. package/packs/software-delivery/src/policy/gates-config.ts +293 -0
  249. package/packs/software-delivery/src/policy/gates-coverage.ts +247 -0
  250. package/packs/software-delivery/src/policy/gates-presets.ts +134 -0
  251. package/packs/software-delivery/src/policy/gates-schemas.ts +173 -0
  252. package/packs/software-delivery/src/policy/index.ts +22 -0
  253. package/packs/software-delivery/src/policy/package-manager-resolver.ts +319 -0
  254. package/packs/software-delivery/src/policy/resolve-policy.ts +518 -0
  255. package/packs/software-delivery/src/ports/config.ports.ts +90 -0
  256. package/packs/software-delivery/src/ports/dashboard-renderer.port.ts +125 -0
  257. package/packs/software-delivery/src/ports/index.ts +10 -0
  258. package/packs/software-delivery/src/ports/sync-validator.ports.ts +59 -0
  259. package/packs/software-delivery/src/ports/wu-helpers.ports.ts +168 -0
  260. package/packs/software-delivery/src/ports/wu-state.ports.ts +241 -0
  261. package/packs/software-delivery/src/primitives/index.ts +5 -0
  262. package/packs/software-delivery/src/runtime/index.ts +6 -0
  263. package/packs/software-delivery/src/runtime/work-classifier.ts +561 -0
  264. package/packs/software-delivery/src/sandbox/index.ts +10 -0
  265. package/packs/software-delivery/src/sandbox/sandbox-allowlist.ts +118 -0
  266. package/packs/software-delivery/src/sandbox/sandbox-backend-linux.ts +88 -0
  267. package/packs/software-delivery/src/sandbox/sandbox-backend-macos.ts +154 -0
  268. package/packs/software-delivery/src/sandbox/sandbox-backend-windows.ts +47 -0
  269. package/packs/software-delivery/src/sandbox/sandbox-profile.ts +153 -0
  270. package/packs/software-delivery/src/schemas/index.ts +5 -0
  271. package/packs/software-delivery/src/state/date-utils.ts +158 -0
  272. package/packs/software-delivery/src/state/index.ts +15 -0
  273. package/packs/software-delivery/src/state/state-machine.ts +119 -0
  274. package/packs/software-delivery/src/state/wu-doc-types.ts +51 -0
  275. package/packs/software-delivery/src/state/wu-paths.ts +381 -0
  276. package/packs/software-delivery/src/state/wu-schema.ts +1139 -0
  277. package/packs/software-delivery/src/state/wu-state-schema.ts +255 -0
  278. package/packs/software-delivery/src/state/wu-yaml.ts +338 -0
  279. package/packs/software-delivery/src/types.d.ts +16 -0
  280. package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +18 -0
  281. package/packs/software-delivery/tsconfig.json +28 -2
  282. package/templates/core/AGENTS.md.template +76 -17
  283. package/templates/core/LUMENFLOW.md.template +265 -66
  284. package/templates/core/_frameworks/lumenflow/wu-sizing-guide.md.template +180 -116
  285. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +26 -8
  286. package/templates/core/ai/onboarding/existing-project-bootstrap.md.template +171 -0
  287. package/templates/core/ai/onboarding/first-15-mins.md.template +3 -1
  288. package/templates/core/ai/onboarding/first-wu-mistakes.md.template +1 -1
  289. package/templates/core/ai/onboarding/initiative-orchestration.md.template +46 -30
  290. package/templates/core/ai/onboarding/quick-ref-commands.md.template +36 -33
  291. package/templates/core/ai/onboarding/release-process.md.template +8 -7
  292. package/templates/core/ai/onboarding/starting-prompt.md.template +2 -0
  293. package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +62 -0
  294. package/templates/vendors/claude/.claude/CLAUDE.md.template +29 -54
  295. package/templates/vendors/cursor/.cursor/rules/lumenflow.md.template +24 -52
  296. package/templates/vendors/windsurf/.windsurf/rules/lumenflow.md.template +24 -52
@@ -21,6 +21,11 @@ import { assertTransition } from '@lumenflow/core/state-machine';
21
21
  import { checkLaneFree, getLockPolicyForLane } from '@lumenflow/core/lane-checker';
22
22
  // WU-1325: Import lane lock functions for policy-based lock acquisition on unblock
23
23
  import { acquireLaneLock } from '@lumenflow/core/lane-lock';
24
+ // WU-2654: narrow conductor emissions for wu:unblocked + lock:acquired.
25
+ import { buildLockAcquiredEvent, buildWuUnblockedEvent, readOrgIdFromConfig, resolveConductorEventSink, } from './kernel-event-sync/lifecycle-emitters.js';
26
+ // WU-2728 (INIT-060, ADR-013): software-delivery pack emits `lane_locked`
27
+ // when unblock re-acquires a lane lock. Ephemeral per ADR-013 §4.
28
+ import { buildLaneLockedEvent, shouldEmitSoftwareDeliveryEvents, } from './kernel-event-sync/software-delivery-emitters.js';
24
29
  import { getGitForCwd } from '@lumenflow/core/git-adapter';
25
30
  import { die } from '@lumenflow/core/error-handler';
26
31
  import { todayISO } from '@lumenflow/core/date-utils';
@@ -28,7 +33,8 @@ import { createWUParser, WU_OPTIONS } from '@lumenflow/core/arg-parser';
28
33
  import { WU_PATHS, defaultWorktreeFrom } from '@lumenflow/core/wu-paths';
29
34
  import { getConfig } from '@lumenflow/core/config';
30
35
  import { readWU, writeWU, appendNote } from '@lumenflow/core/wu-yaml';
31
- import { STATUS_SECTIONS, PATTERNS, LOG_PREFIX, WU_STATUS, REMOTES, BRANCHES, GIT_REFS, FILE_SYSTEM, MICRO_WORKTREE_OPERATIONS, } from '@lumenflow/core/wu-constants';
36
+ import { STATUS_SECTIONS, PATTERNS, LOG_PREFIX, WU_STATUS, FILE_SYSTEM, MICRO_WORKTREE_OPERATIONS, } from '@lumenflow/core/wu-constants';
37
+ import { resolveIntegrationTarget } from '@lumenflow/core/integration-target';
32
38
  import { defaultBranchFrom } from '@lumenflow/core/wu-done-validators';
33
39
  import { ensureOnMain } from '@lumenflow/core/wu-helpers';
34
40
  import { emitWUFlowEvent } from '@lumenflow/core/telemetry';
@@ -51,28 +57,20 @@ const PREFIX = LOG_PREFIX.UNBLOCK;
51
57
  export function shouldUseBranchPrUnblockPath(doc) {
52
58
  return shouldUseBranchPrStatePath(doc);
53
59
  }
54
- function branchExists(branch) {
55
- try {
56
- getGitForCwd().run(`git rev-parse --verify ${JSON.stringify(branch)}`);
57
- return true;
58
- }
59
- catch {
60
- return false;
61
- }
62
- }
63
- function createWorktree(doc, worktreePath, branchName) {
60
+ export async function createWorktreeWithGit(gitAdapter, worktreePath, branchName) {
64
61
  if (!worktreePath)
65
62
  die('Worktree path required to create a worktree');
66
63
  if (existsSync(worktreePath)) {
67
64
  console.warn(`${PREFIX} Worktree ${worktreePath} already exists; skipping creation.`);
68
65
  return;
69
66
  }
70
- getGitForCwd().run(`git fetch ${REMOTES.ORIGIN} ${BRANCHES.MAIN}`);
71
- if (branchExists(branchName)) {
72
- getGitForCwd().run(`git worktree add ${JSON.stringify(worktreePath)} ${JSON.stringify(branchName)}`);
67
+ const integrationTarget = resolveIntegrationTarget();
68
+ await gitAdapter.fetch(integrationTarget.remote, integrationTarget.mainBranch);
69
+ if (await gitAdapter.branchExists(branchName)) {
70
+ await gitAdapter.worktreeAdd(worktreePath, branchName);
73
71
  }
74
72
  else {
75
- getGitForCwd().run(`git worktree add ${JSON.stringify(worktreePath)} -b ${JSON.stringify(branchName)} ${GIT_REFS.ORIGIN_MAIN}`);
73
+ await gitAdapter.worktreeAdd(worktreePath, branchName, integrationTarget.trackingRef);
76
74
  }
77
75
  }
78
76
  // emitTelemetry() moved to telemetry.ts as emitWUFlowEvent() (WU-1256)
@@ -105,7 +103,7 @@ function handleLaneOccupancy(laneCheck, lane, id, force) {
105
103
  /**
106
104
  * Handle optional worktree creation after unblock
107
105
  */
108
- function handleWorktreeCreation(args, doc) {
106
+ async function handleWorktreeCreation(args, doc) {
109
107
  if (!args.createWorktree)
110
108
  return;
111
109
  const worktreePath = args.worktree || defaultWorktreeFrom(doc);
@@ -114,7 +112,7 @@ function handleWorktreeCreation(args, doc) {
114
112
  console.warn(`${PREFIX} Cannot derive branch name; skipping worktree creation.`);
115
113
  return;
116
114
  }
117
- createWorktree(doc, worktreePath, branchName);
115
+ await createWorktreeWithGit(getGitForCwd(), worktreePath, branchName);
118
116
  }
119
117
  export async function main() {
120
118
  const args = createWUParser({
@@ -226,7 +224,7 @@ export async function main() {
226
224
  resolveWuEventsRelativePath(process.cwd()),
227
225
  ]);
228
226
  await getGitForCwd().commit(commitMsg);
229
- await getGitForCwd().push(REMOTES.ORIGIN, currentBranch);
227
+ await getGitForCwd().push(resolveIntegrationTarget().remote, currentBranch);
230
228
  }
231
229
  else {
232
230
  // Use micro-worktree pattern to avoid pre-commit hook blocking commits to main
@@ -274,22 +272,36 @@ export async function main() {
274
272
  },
275
273
  });
276
274
  // Fetch to update local main tracking
277
- await getGitForCwd().fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
275
+ const integrationTarget = resolveIntegrationTarget();
276
+ await getGitForCwd().fetch(integrationTarget.remote, integrationTarget.mainBranch);
278
277
  }
279
278
  }
280
279
  else {
281
280
  // Manual mode: expect files already staged
282
281
  ensureStaged([mainWUPath, WU_PATHS.STATUS(), WU_PATHS.BACKLOG()]);
283
282
  await getGitForCwd().commit(commitMsg);
283
+ const integrationTarget = resolveIntegrationTarget();
284
284
  if (branchPrPath) {
285
285
  const currentBranch = await getGitForCwd().getCurrentBranch();
286
- await getGitForCwd().push(REMOTES.ORIGIN, currentBranch);
286
+ await getGitForCwd().push(integrationTarget.remote, currentBranch);
287
287
  }
288
288
  else {
289
- await getGitForCwd().push(REMOTES.ORIGIN, BRANCHES.MAIN);
289
+ await getGitForCwd().push(integrationTarget.remote, integrationTarget.mainBranch);
290
290
  }
291
291
  }
292
- handleWorktreeCreation(args, doc);
292
+ await handleWorktreeCreation(args, doc);
293
+ // WU-2654: narrow conductor emission for wu:unblocked. Fires after the
294
+ // unblock stamp is durably pushed. Fail-silent when org_id unset.
295
+ try {
296
+ const orgId = readOrgIdFromConfig(getConfig());
297
+ if (orgId) {
298
+ const sink = await resolveConductorEventSink();
299
+ sink(buildWuUnblockedEvent({ wu_id: id }));
300
+ }
301
+ }
302
+ catch {
303
+ // Best-effort; unblock stamp is already durable.
304
+ }
293
305
  // WU-1325: Re-acquire lane lock when WU is unblocked (only for lock_policy=active)
294
306
  // For policy=all, lock was retained through the block cycle
295
307
  // For policy=none, no lock exists to acquire
@@ -300,6 +312,24 @@ export async function main() {
300
312
  const lockResult = acquireLaneLock(lane, id);
301
313
  if (lockResult.acquired && !lockResult.skipped) {
302
314
  console.log(`${PREFIX} Lane lock re-acquired for "${lane}" (lock_policy=active)`);
315
+ // WU-2654: emit lock:acquired when a lane lock was just re-claimed.
316
+ try {
317
+ const orgId = readOrgIdFromConfig(getConfig());
318
+ if (orgId) {
319
+ const sink = await resolveConductorEventSink();
320
+ sink(buildLockAcquiredEvent({
321
+ lock_id: `lane:${lane}`,
322
+ held_by: id,
323
+ }));
324
+ }
325
+ // WU-2728: SD pack emits `lane_locked` on the same acquisition.
326
+ if (shouldEmitSoftwareDeliveryEvents(getConfig())) {
327
+ buildLaneLockedEvent({ lane, held_by: id });
328
+ }
329
+ }
330
+ catch {
331
+ // Best-effort.
332
+ }
303
333
  }
304
334
  else if (!lockResult.acquired) {
305
335
  // Lock acquisition failed - another WU claimed the lane while we were blocked
@@ -1 +1 @@
1
- {"version":3,"file":"wu-unblock.js","sourceRoot":"","sources":["../src/wu-unblock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wu-unblock.js","sourceRoot":"","sources":["../src/wu-unblock.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumenflow/cli",
3
- "version": "4.23.0",
3
+ "version": "5.0.0",
4
4
  "description": "Command-line interface for LumenFlow workflow framework",
5
5
  "keywords": [
6
6
  "lumenflow",
@@ -105,6 +105,7 @@
105
105
  "mem-init": "./dist/mem-init.js",
106
106
  "mem-ready": "./dist/mem-ready.js",
107
107
  "mem-recover": "./dist/mem-recover.js",
108
+ "mem-roster": "./dist/mem-roster.js",
108
109
  "mem-signal": "./dist/mem-signal.js",
109
110
  "mem-start": "./dist/mem-start.js",
110
111
  "mem-summarize": "./dist/mem-summarize.js",
@@ -152,6 +153,7 @@
152
153
  "wu-prep": "./dist/wu-prep.js",
153
154
  "wu-proto": "./dist/wu-proto.js",
154
155
  "wu-prune": "./dist/wu-prune.js",
156
+ "wu-review": "./dist/wu-review.js",
155
157
  "wu-recover": "./dist/wu-recover.js",
156
158
  "wu-release": "./dist/wu-release.js",
157
159
  "wu-rename": "./dist/wu-rename.js",
@@ -195,13 +197,16 @@
195
197
  "xstate": "^5.28.0",
196
198
  "yaml": "^2.8.2",
197
199
  "zod": "^4.3.6",
198
- "@lumenflow/agent": "4.23.0",
199
- "@lumenflow/control-plane-sdk": "4.23.0",
200
- "@lumenflow/core": "4.23.0",
201
- "@lumenflow/initiatives": "4.23.0",
202
- "@lumenflow/kernel": "4.23.0",
203
- "@lumenflow/memory": "4.23.0",
204
- "@lumenflow/metrics": "4.23.0"
200
+ "@lumenflow/agent": "5.0.0",
201
+ "@lumenflow/control-plane-sdk": "5.0.0",
202
+ "@lumenflow/initiatives": "5.0.0",
203
+ "@lumenflow/host": "^5.0.0-alpha.0",
204
+ "@lumenflow/kernel": "5.0.0",
205
+ "@lumenflow/metrics": "5.0.0",
206
+ "@lumenflow/packs-agent-runtime": "^5.0.0",
207
+ "@lumenflow/core": "5.0.0",
208
+ "@lumenflow/memory": "5.0.0",
209
+ "@lumenflow/packs-software-delivery": "^5.0.0"
205
210
  },
206
211
  "devDependencies": {
207
212
  "@vitest/coverage-v8": "^4.0.18",
@@ -1,4 +1,4 @@
1
1
 
2
- > @lumenflow/packs-agent-runtime@4.23.0 build /home/runner/work/lumenflow-dev/lumenflow-dev/packages/@lumenflow/packs/agent-runtime
2
+ > @lumenflow/packs-agent-runtime@5.0.0 build /home/tom/source/hellmai/lumenflow-dev/packages/@lumenflow/packs/agent-runtime
3
3
  > tsc
4
4
 
@@ -0,0 +1,25 @@
1
+
2
+ > @lumenflow/packs-agent-runtime@4.24.0 test /home/tom/source/hellmai/lumenflow-dev/worktrees/framework-agent-wu-2733/packages/@lumenflow/packs/agent-runtime
3
+ > vitest run
4
+
5
+
6
+  RUN  v4.0.18 /home/tom/source/hellmai/lumenflow-dev/worktrees/framework-agent-wu-2733/packages/@lumenflow/packs/agent-runtime
7
+
8
+ ✓ __tests__/turn-lifecycle-emissions.test.ts (64 tests) 31ms
9
+ ✓ __tests__/capability-factory.test.ts (2 tests) 3ms
10
+ ✓ __tests__/session-schema.test.ts (2 tests) 13ms
11
+ ✓ __tests__/auto-session-integration.test.ts (3 tests) 18ms
12
+ ✓ __tests__/remote-controls.test.ts (22 tests) 303ms
13
+ ✓ __tests__/manifest.test.ts (3 tests) 17ms
14
+ ✓ __tests__/workflow-state.test.ts (1 test) 53ms
15
+ ✓ __tests__/policy-factory.test.ts (3 tests) 31ms
16
+ ✓ __tests__/orchestration.test.ts (4 tests) 58ms
17
+ ✓ __tests__/workflow-dag.test.ts (2 tests) 127ms
18
+ ✓ __tests__/remote-controls-mock.test.ts (53 tests) 82ms
19
+ ✓ __tests__/resume.test.ts (2 tests) 228ms
20
+
21
+  Test Files  12 passed (12)
22
+  Tests  161 passed (161)
23
+  Start at  00:22:52
24
+  Duration  2.72s (transform 10.34s, setup 0ms, import 17.40s, tests 964ms, environment 3ms)
25
+
@@ -0,0 +1,4 @@
1
+
2
+ > @lumenflow/packs-agent-runtime@4.24.0 typecheck /home/tom/source/hellmai/lumenflow-dev/worktrees/framework-agent-wu-2764/packages/@lumenflow/packs/agent-runtime
3
+ > tsc --noEmit
4
+
@@ -0,0 +1,163 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+
4
+ export interface HeartbeatHealth {
5
+ busy?: boolean;
6
+ stalled?: boolean;
7
+ last_progress_at?: string;
8
+ }
9
+
10
+ export interface HeartbeatAssignment {
11
+ wu_id: string;
12
+ action: 'claim' | 'continue' | 'abort';
13
+ hint?: string;
14
+ }
15
+
16
+ export interface AgentHeartbeatInput {
17
+ workspace_id: string;
18
+ session_id: string;
19
+ agent_id?: string;
20
+ wu_id?: string;
21
+ health?: HeartbeatHealth;
22
+ }
23
+
24
+ export interface AgentHeartbeatResult {
25
+ status: 'ok';
26
+ server_time: string;
27
+ next_heartbeat_ms?: number;
28
+ assignment?: HeartbeatAssignment;
29
+ budget_remaining_usd?: number;
30
+ coalesced_signals?: number;
31
+ }
32
+
33
+ export interface AgentHeartbeatPort {
34
+ heartbeat(input: AgentHeartbeatInput): Promise<AgentHeartbeatResult>;
35
+ }
36
+
37
+ export interface HeartbeatManagerOptions {
38
+ maxAttempts?: number;
39
+ baseBackoffMs?: number;
40
+ maxBackoffMs?: number;
41
+ sleepFn?: (delayMs: number) => Promise<void>;
42
+ logger?: Pick<Console, 'warn'>;
43
+ }
44
+
45
+ const DEFAULT_MAX_ATTEMPTS = 3;
46
+ const DEFAULT_BASE_BACKOFF_MS = 500;
47
+ const DEFAULT_MAX_BACKOFF_MS = 30_000;
48
+
49
+ function defaultSleep(delayMs: number): Promise<void> {
50
+ return new Promise((resolve) => setTimeout(resolve, delayMs));
51
+ }
52
+
53
+ /**
54
+ * Enforces single-flight heartbeat execution and coalesces concurrent signals
55
+ * into one follow-up heartbeat, with retry/backoff on transient failures.
56
+ */
57
+ export class HeartbeatManager {
58
+ private readonly maxAttempts: number;
59
+ private readonly baseBackoffMs: number;
60
+ private readonly maxBackoffMs: number;
61
+ private readonly sleepFn: (delayMs: number) => Promise<void>;
62
+ private readonly logger?: Pick<Console, 'warn'>;
63
+
64
+ private inFlight: Promise<AgentHeartbeatResult> | null = null;
65
+ private queuedInput: AgentHeartbeatInput | null = null;
66
+ private queuedSignals = 0;
67
+ private consecutiveFailures = 0;
68
+
69
+ public constructor(
70
+ private readonly port: AgentHeartbeatPort,
71
+ options: HeartbeatManagerOptions = {},
72
+ ) {
73
+ this.maxAttempts = options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
74
+ this.baseBackoffMs = options.baseBackoffMs ?? DEFAULT_BASE_BACKOFF_MS;
75
+ this.maxBackoffMs = options.maxBackoffMs ?? DEFAULT_MAX_BACKOFF_MS;
76
+ this.sleepFn = options.sleepFn ?? defaultSleep;
77
+ this.logger = options.logger;
78
+ }
79
+
80
+ public async heartbeat(input: AgentHeartbeatInput): Promise<AgentHeartbeatResult> {
81
+ if (this.inFlight) {
82
+ this.queuedInput = input;
83
+ this.queuedSignals += 1;
84
+ return this.inFlight;
85
+ }
86
+
87
+ const request = this.drainQueue(input);
88
+ this.inFlight = request;
89
+ try {
90
+ return await request;
91
+ } finally {
92
+ this.inFlight = null;
93
+ }
94
+ }
95
+
96
+ public getState(): {
97
+ inFlight: boolean;
98
+ queuedSignals: number;
99
+ consecutiveFailures: number;
100
+ } {
101
+ return {
102
+ inFlight: this.inFlight !== null,
103
+ queuedSignals: this.queuedSignals,
104
+ consecutiveFailures: this.consecutiveFailures,
105
+ };
106
+ }
107
+
108
+ private async drainQueue(initialInput: AgentHeartbeatInput): Promise<AgentHeartbeatResult> {
109
+ let currentInput = initialInput;
110
+ let localCoalescedSignals = 0;
111
+
112
+ while (true) {
113
+ const result = await this.sendWithRetry(currentInput);
114
+ const queuedInput = this.queuedInput;
115
+ localCoalescedSignals += this.queuedSignals;
116
+ this.queuedInput = null;
117
+ this.queuedSignals = 0;
118
+
119
+ if (!queuedInput) {
120
+ const mergedCoalesced = (result.coalesced_signals ?? 0) + localCoalescedSignals;
121
+ if (mergedCoalesced > 0) {
122
+ return {
123
+ ...result,
124
+ coalesced_signals: mergedCoalesced,
125
+ };
126
+ }
127
+ return result;
128
+ }
129
+
130
+ currentInput = queuedInput;
131
+ }
132
+ }
133
+
134
+ private async sendWithRetry(input: AgentHeartbeatInput): Promise<AgentHeartbeatResult> {
135
+ let attempt = 0;
136
+
137
+ while (true) {
138
+ try {
139
+ const result = await this.port.heartbeat(input);
140
+ this.consecutiveFailures = 0;
141
+ return result;
142
+ } catch (error) {
143
+ this.consecutiveFailures += 1;
144
+ attempt += 1;
145
+
146
+ if (attempt >= this.maxAttempts) {
147
+ throw error;
148
+ }
149
+
150
+ const delayMs = this.getBackoffDelayMs();
151
+ this.logger?.warn?.(
152
+ `[agent:heartbeat] attempt ${attempt} failed; retrying in ${delayMs}ms`,
153
+ );
154
+ await this.sleepFn(delayMs);
155
+ }
156
+ }
157
+ }
158
+
159
+ private getBackoffDelayMs(): number {
160
+ const exponent = Math.max(0, this.consecutiveFailures - 1);
161
+ return Math.min(this.baseBackoffMs * 2 ** exponent, this.maxBackoffMs);
162
+ }
163
+ }