@lumenflow/cli 4.24.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) 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-snapshot.js +3 -2
  83. package/dist/metrics-snapshot.js.map +1 -1
  84. package/dist/orchestrate-init-status.js +117 -2
  85. package/dist/orchestrate-init-status.js.map +1 -1
  86. package/dist/orchestrate-initiative.js +83 -10
  87. package/dist/orchestrate-initiative.js.map +1 -1
  88. package/dist/orchestrate-monitor-quality.js +289 -0
  89. package/dist/orchestrate-monitor-quality.js.map +1 -0
  90. package/dist/orchestrate-monitor.js +85 -0
  91. package/dist/orchestrate-monitor.js.map +1 -1
  92. package/dist/pack-validate.js +127 -2
  93. package/dist/pack-validate.js.map +1 -1
  94. package/dist/plan-create.js +18 -0
  95. package/dist/plan-create.js.map +1 -1
  96. package/dist/plan-link.js +13 -0
  97. package/dist/plan-link.js.map +1 -1
  98. package/dist/plan-promote.js +14 -0
  99. package/dist/plan-promote.js.map +1 -1
  100. package/dist/pre-commit-check.js +4 -3
  101. package/dist/pre-commit-check.js.map +1 -1
  102. package/dist/public-manifest.js +17 -3
  103. package/dist/public-manifest.js.map +1 -1
  104. package/dist/release.js +28 -10
  105. package/dist/release.js.map +1 -1
  106. package/dist/session-cross-link.js +139 -0
  107. package/dist/session-cross-link.js.map +1 -0
  108. package/dist/sidecar-manager.js +208 -0
  109. package/dist/sidecar-manager.js.map +1 -0
  110. package/dist/state-path-resolvers.js +18 -0
  111. package/dist/state-path-resolvers.js.map +1 -1
  112. package/dist/stream-heartbeat.js +151 -0
  113. package/dist/stream-heartbeat.js.map +1 -0
  114. package/dist/sync-templates.js +56 -2
  115. package/dist/sync-templates.js.map +1 -1
  116. package/dist/wu-block.js +47 -5
  117. package/dist/wu-block.js.map +1 -1
  118. package/dist/wu-claim-branch.js +8 -4
  119. package/dist/wu-claim-branch.js.map +1 -1
  120. package/dist/wu-claim-state.js +5 -3
  121. package/dist/wu-claim-state.js.map +1 -1
  122. package/dist/wu-claim-worktree.js +5 -3
  123. package/dist/wu-claim-worktree.js.map +1 -1
  124. package/dist/wu-claim.js +261 -9
  125. package/dist/wu-claim.js.map +1 -1
  126. package/dist/wu-done-auto-cleanup.js +3 -2
  127. package/dist/wu-done-auto-cleanup.js.map +1 -1
  128. package/dist/wu-done-git-ops.js +12 -8
  129. package/dist/wu-done-git-ops.js.map +1 -1
  130. package/dist/wu-done-preflight.js +3 -3
  131. package/dist/wu-done-preflight.js.map +1 -1
  132. package/dist/wu-done.js +46 -10
  133. package/dist/wu-done.js.map +1 -1
  134. package/dist/wu-lifecycle-sync/gate-scope-resolver.js +16 -0
  135. package/dist/wu-lifecycle-sync/gate-scope-resolver.js.map +1 -0
  136. package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js +10 -0
  137. package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js.map +1 -0
  138. package/dist/wu-prep.js +363 -22
  139. package/dist/wu-prep.js.map +1 -1
  140. package/dist/wu-prune.js +68 -27
  141. package/dist/wu-prune.js.map +1 -1
  142. package/dist/wu-release.js +34 -3
  143. package/dist/wu-release.js.map +1 -1
  144. package/dist/wu-review.js +167 -0
  145. package/dist/wu-review.js.map +1 -0
  146. package/dist/wu-spawn-prompt-builders.js +296 -40
  147. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  148. package/dist/wu-spawn-strategy-resolver.js +126 -14
  149. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  150. package/dist/wu-unblock.js +52 -22
  151. package/dist/wu-unblock.js.map +1 -1
  152. package/package.json +13 -8
  153. package/packs/agent-runtime/agent-heartbeat.ts +163 -0
  154. package/packs/agent-runtime/auto-session-integration.ts +874 -0
  155. package/packs/agent-runtime/delegation-registry-schema.ts +220 -0
  156. package/packs/agent-runtime/delegation-registry-store.ts +269 -0
  157. package/packs/agent-runtime/delegation-tree.ts +328 -0
  158. package/packs/agent-runtime/index.ts +9 -0
  159. package/packs/agent-runtime/manifest.ts +109 -19
  160. package/packs/agent-runtime/manifest.yaml +150 -0
  161. package/packs/agent-runtime/memory-coordination-contract.ts +86 -0
  162. package/packs/agent-runtime/memory.d.ts +19 -0
  163. package/packs/agent-runtime/orchestration.ts +238 -23
  164. package/packs/agent-runtime/package.json +11 -2
  165. package/packs/agent-runtime/remote-controls/index.ts +7 -0
  166. package/packs/agent-runtime/remote-controls/operations.ts +399 -0
  167. package/packs/agent-runtime/remote-controls/port.ts +48 -0
  168. package/packs/agent-runtime/remote-controls/state-store.ts +258 -0
  169. package/packs/agent-runtime/remote-controls/types.ts +105 -0
  170. package/packs/agent-runtime/session-schema.ts +423 -0
  171. package/packs/agent-runtime/tool-impl/index.ts +1 -0
  172. package/packs/agent-runtime/tool-impl/remote-controls.mock.ts +252 -0
  173. package/packs/agent-runtime/tool-impl/remote-controls.ts +273 -0
  174. package/packs/agent-runtime/tsconfig.json +1 -1
  175. package/packs/agent-runtime/turn-lifecycle-events.ts +501 -0
  176. package/packs/sidekick/channel-ingress.ts +137 -0
  177. package/packs/sidekick/manifest.ts +74 -0
  178. package/packs/sidekick/manifest.yaml +88 -0
  179. package/packs/sidekick/package.json +3 -1
  180. package/packs/sidekick/sidekick-events.ts +517 -0
  181. package/packs/sidekick/src/adapters/cloud-queue.ts +101 -0
  182. package/packs/sidekick/src/adapters/control-plane-bridge.adapter.ts +378 -0
  183. package/packs/sidekick/src/adapters/filesystem-bridge.adapter.ts +224 -0
  184. package/packs/sidekick/src/domain/channel.types.ts +84 -0
  185. package/packs/sidekick/src/ports/channel-bridge.port.ts +75 -0
  186. package/packs/sidekick/src/routines/commit.ts +74 -0
  187. package/packs/sidekick/tool-impl/channel-tools.ts +47 -0
  188. package/packs/sidekick/tool-impl/memory-tools.ts +17 -0
  189. package/packs/sidekick/tool-impl/routine-commit.ts +102 -0
  190. package/packs/sidekick/tool-impl/routine-tools.ts +67 -7
  191. package/packs/sidekick/tool-impl/runtime-context.ts +4 -0
  192. package/packs/sidekick/tool-impl/storage.ts +3 -0
  193. package/packs/sidekick/tool-impl/system-tools.ts +7 -0
  194. package/packs/sidekick/tool-impl/task-tools.ts +46 -0
  195. package/packs/sidekick/tsconfig.json +1 -1
  196. package/packs/software-delivery/manifest-schema.ts +30 -0
  197. package/packs/software-delivery/manifest.ts +160 -11
  198. package/packs/software-delivery/manifest.yaml +210 -230
  199. package/packs/software-delivery/package.json +88 -3
  200. package/packs/software-delivery/src/commands/index.ts +5 -0
  201. package/packs/software-delivery/src/config/delivery-review-contract.ts +20 -0
  202. package/packs/software-delivery/src/config/env-accessors.ts +19 -0
  203. package/packs/software-delivery/src/config/index.ts +8 -0
  204. package/packs/software-delivery/src/config/normalize-config-keys.ts +19 -0
  205. package/packs/software-delivery/src/config/schemas/lumenflow-config-schema-types.ts +436 -0
  206. package/packs/software-delivery/src/config/workspace-reader.ts +310 -0
  207. package/packs/software-delivery/src/constants/backlog-patterns.ts +31 -0
  208. package/packs/software-delivery/src/constants/client-ids.ts +19 -0
  209. package/packs/software-delivery/src/constants/config-contract.ts +7 -0
  210. package/packs/software-delivery/src/constants/docs-layout-presets.ts +50 -0
  211. package/packs/software-delivery/src/constants/duration-constants.ts +20 -0
  212. package/packs/software-delivery/src/constants/gate-constants.ts +32 -0
  213. package/packs/software-delivery/src/constants/index.ts +29 -0
  214. package/packs/software-delivery/src/constants/lock-constants.ts +35 -0
  215. package/packs/software-delivery/src/constants/object-guards.ts +12 -0
  216. package/packs/software-delivery/src/constants/section-headings.ts +107 -0
  217. package/packs/software-delivery/src/constants/wu-cli-constants.ts +485 -0
  218. package/packs/software-delivery/src/constants/wu-domain-constants.ts +466 -0
  219. package/packs/software-delivery/src/constants/wu-git-constants.ts +7 -0
  220. package/packs/software-delivery/src/constants/wu-id-format.ts +327 -0
  221. package/packs/software-delivery/src/constants/wu-paths-constants.ts +358 -0
  222. package/packs/software-delivery/src/constants/wu-statuses.ts +287 -0
  223. package/packs/software-delivery/src/constants/wu-type-helpers.ts +67 -0
  224. package/packs/software-delivery/src/constants/wu-ui-constants.ts +267 -0
  225. package/packs/software-delivery/src/constants/wu-validation-constants.ts +73 -0
  226. package/packs/software-delivery/src/domain/index.ts +5 -0
  227. package/packs/software-delivery/src/domain/orchestration.constants.ts +168 -0
  228. package/packs/software-delivery/src/domain/orchestration.schemas.ts +239 -0
  229. package/packs/software-delivery/src/domain/orchestration.types.ts +178 -0
  230. package/packs/software-delivery/src/methodology/incremental-test.ts +90 -0
  231. package/packs/software-delivery/src/methodology/index.ts +6 -0
  232. package/packs/software-delivery/src/methodology/manual-test-validator.ts +292 -0
  233. package/packs/software-delivery/src/policy/coverage-gate.ts +270 -0
  234. package/packs/software-delivery/src/policy/gates-agent-mode.ts +223 -0
  235. package/packs/software-delivery/src/policy/gates-config-internal.ts +121 -0
  236. package/packs/software-delivery/src/policy/gates-config.ts +293 -0
  237. package/packs/software-delivery/src/policy/gates-coverage.ts +247 -0
  238. package/packs/software-delivery/src/policy/gates-presets.ts +134 -0
  239. package/packs/software-delivery/src/policy/gates-schemas.ts +173 -0
  240. package/packs/software-delivery/src/policy/index.ts +22 -0
  241. package/packs/software-delivery/src/policy/package-manager-resolver.ts +319 -0
  242. package/packs/software-delivery/src/policy/resolve-policy.ts +518 -0
  243. package/packs/software-delivery/src/ports/config.ports.ts +90 -0
  244. package/packs/software-delivery/src/ports/dashboard-renderer.port.ts +125 -0
  245. package/packs/software-delivery/src/ports/index.ts +10 -0
  246. package/packs/software-delivery/src/ports/sync-validator.ports.ts +59 -0
  247. package/packs/software-delivery/src/ports/wu-helpers.ports.ts +168 -0
  248. package/packs/software-delivery/src/ports/wu-state.ports.ts +241 -0
  249. package/packs/software-delivery/src/primitives/index.ts +5 -0
  250. package/packs/software-delivery/src/runtime/index.ts +6 -0
  251. package/packs/software-delivery/src/runtime/work-classifier.ts +561 -0
  252. package/packs/software-delivery/src/sandbox/index.ts +10 -0
  253. package/packs/software-delivery/src/sandbox/sandbox-allowlist.ts +118 -0
  254. package/packs/software-delivery/src/sandbox/sandbox-backend-linux.ts +88 -0
  255. package/packs/software-delivery/src/sandbox/sandbox-backend-macos.ts +154 -0
  256. package/packs/software-delivery/src/sandbox/sandbox-backend-windows.ts +47 -0
  257. package/packs/software-delivery/src/sandbox/sandbox-profile.ts +153 -0
  258. package/packs/software-delivery/src/schemas/index.ts +5 -0
  259. package/packs/software-delivery/src/state/date-utils.ts +158 -0
  260. package/packs/software-delivery/src/state/index.ts +15 -0
  261. package/packs/software-delivery/src/state/state-machine.ts +119 -0
  262. package/packs/software-delivery/src/state/wu-doc-types.ts +51 -0
  263. package/packs/software-delivery/src/state/wu-paths.ts +381 -0
  264. package/packs/software-delivery/src/state/wu-schema.ts +1139 -0
  265. package/packs/software-delivery/src/state/wu-state-schema.ts +255 -0
  266. package/packs/software-delivery/src/state/wu-yaml.ts +338 -0
  267. package/packs/software-delivery/src/types.d.ts +16 -0
  268. package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +18 -0
  269. package/packs/software-delivery/tsconfig.json +28 -2
  270. package/templates/core/AGENTS.md.template +76 -17
  271. package/templates/core/LUMENFLOW.md.template +265 -66
  272. package/templates/core/_frameworks/lumenflow/wu-sizing-guide.md.template +180 -116
  273. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +26 -8
  274. package/templates/core/ai/onboarding/existing-project-bootstrap.md.template +171 -0
  275. package/templates/core/ai/onboarding/first-15-mins.md.template +3 -1
  276. package/templates/core/ai/onboarding/first-wu-mistakes.md.template +1 -1
  277. package/templates/core/ai/onboarding/initiative-orchestration.md.template +46 -30
  278. package/templates/core/ai/onboarding/quick-ref-commands.md.template +36 -33
  279. package/templates/core/ai/onboarding/release-process.md.template +8 -7
  280. package/templates/core/ai/onboarding/starting-prompt.md.template +2 -0
  281. package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +62 -0
  282. package/templates/vendors/claude/.claude/CLAUDE.md.template +29 -54
  283. package/templates/vendors/cursor/.cursor/rules/lumenflow.md.template +24 -52
  284. package/templates/vendors/windsurf/.windsurf/rules/lumenflow.md.template +24 -52
  285. package/packs/agent-runtime/.turbo/turbo-build.log +0 -4
  286. package/packs/sidekick/.turbo/turbo-build.log +0 -4
  287. package/packs/software-delivery/.turbo/turbo-build.log +0 -4
package/README.md CHANGED
@@ -51,37 +51,38 @@ This package provides CLI commands for the LumenFlow workflow framework, includi
51
51
 
52
52
  ### Work Unit Management
53
53
 
54
- | Command | Description |
55
- | ------------------ | ------------------------------------------------------------------ |
56
- | `approval-list` | List control-plane approvals with optional filters |
57
- | `approval-request` | Request control-plane approval for a workflow action |
58
- | `approval-review` | Resolve a control-plane approval decision |
59
- | `wu-block` | Block WU with reason |
60
- | `wu-brief` | Generate handoff prompt for sub-agent WU execution |
61
- | `wu-claim` | Claim WU and create worktree |
62
- | `wu-cleanup` | Cleanup after PR merge |
63
- | `wu-create` | Create new WU spec |
64
- | `wu-delegate` | Generate delegation prompt and record explicit lineage intent |
65
- | `wu-delete` | Delete WU spec and cleanup |
66
- | `wu-deps` | Show WU dependencies |
67
- | `wu-done` | Complete WU (merge, stamp, cleanup) from main |
68
- | `wu-edit` | Edit WU spec fields |
69
- | `wu-escalate` | Show or resolve WU escalation status |
70
- | `wu-infer-lane` | Infer lane from code paths/description using workspace definitions |
71
- | `wu-preflight` | Pre-flight checks before wu:done |
72
- | `wu-prep` | Run gates in worktree, prep for wu:done |
73
- | `wu-proto` | Create WU prototype |
74
- | `wu-prune` | Clean stale worktrees |
75
- | `wu-recover` | Analyze and fix WU state inconsistencies |
76
- | `wu-release` | Release orphaned WU (in_progress to ready) |
77
- | `wu-rename` | Rename a WU (canonical WU IDs, --replay-only supported) |
78
- | `wu-repair` | Repair WU state issues |
79
- | `wu-sandbox` | Run command through hardened WU sandbox backend |
80
- | `wu-status` | Show WU status, location, valid commands |
81
- | `wu-unblock` | Unblock WU |
82
- | `wu-unlock-lane` | Unlock stuck lane |
83
- | `wu-validate` | Validate WU spec |
84
- | `wu-verify` | Verify WU completion (stamp, commit, clean tree) |
54
+ | Command | Description |
55
+ | ------------------ | ----------------------------------------------------------------------------------- |
56
+ | `approval-list` | List control-plane approvals with optional filters |
57
+ | `approval-request` | Request control-plane approval for a workflow action |
58
+ | `approval-review` | Resolve a control-plane approval decision |
59
+ | `wu-block` | Block WU with reason |
60
+ | `wu-brief` | Generate the canonical full WU handoff prompt and record brief evidence |
61
+ | `wu-claim` | Claim WU and create worktree |
62
+ | `wu-cleanup` | Cleanup after PR merge |
63
+ | `wu-create` | Create new WU spec |
64
+ | `wu-delegate` | Generate the canonical delegation handoff prompt and record explicit lineage intent |
65
+ | `wu-delete` | Delete WU spec and cleanup |
66
+ | `wu-deps` | Show WU dependencies |
67
+ | `wu-done` | Complete WU (merge, stamp, cleanup) from main |
68
+ | `wu-edit` | Edit WU spec fields |
69
+ | `wu-escalate` | Show or resolve WU escalation status |
70
+ | `wu-infer-lane` | Infer lane from code paths/description using workspace definitions |
71
+ | `wu-preflight` | Pre-flight checks before wu:done |
72
+ | `wu-prep` | Run gates in worktree, prep for wu:done |
73
+ | `wu-proto` | Create WU prototype |
74
+ | `wu-prune` | Clean stale worktrees |
75
+ | `wu-recover` | Analyze and fix WU state inconsistencies |
76
+ | `wu-release` | Release orphaned WU (in_progress to ready) |
77
+ | `wu-rename` | Rename a WU (canonical WU IDs, --replay-only supported) |
78
+ | `wu-repair` | Repair WU state issues |
79
+ | `wu-review` | Review a WU worktree against the configured integration target |
80
+ | `wu-sandbox` | Run command through hardened WU sandbox backend |
81
+ | `wu-status` | Show WU status, location, valid commands |
82
+ | `wu-unblock` | Unblock WU |
83
+ | `wu-unlock-lane` | Unlock stuck lane |
84
+ | `wu-validate` | Validate WU spec |
85
+ | `wu-verify` | Verify WU completion (stamp, commit, clean tree) |
85
86
 
86
87
  ### Memory & Session
87
88
 
@@ -97,6 +98,7 @@ This package provides CLI commands for the LumenFlow workflow framework, includi
97
98
  | `mem-init` | Initialize memory for WU |
98
99
  | `mem-ready` | Check pending memory nodes |
99
100
  | `mem-recover` | Generate recovery context after compaction |
101
+ | `mem-roster` | List live agent sessions and role axes |
100
102
  | `mem-signal` | Broadcast coordination signal |
101
103
  | `mem-start` | Start a memory session |
102
104
  | `mem-summarize` | Summarize memory context |
@@ -105,27 +107,27 @@ This package provides CLI commands for the LumenFlow workflow framework, includi
105
107
 
106
108
  ### Initiative Orchestration
107
109
 
108
- | Command | Description |
109
- | ---------------------------- | ---------------------------------------------------------------------------------------- |
110
- | `agent-issues-query` | Query GitHub issues for agent work |
111
- | `agent-log-issue` | Log issue during agent session |
112
- | `agent-session` | Start agent session |
113
- | `agent-session-end` | End agent session |
114
- | `delegation-list` | List delegation and launch records with planned-versus-launched state |
115
- | `initiative-add-wu` | Add WU to initiative |
116
- | `initiative-bulk-assign-wus` | Bulk assign WUs to initiative |
117
- | `initiative-create` | Create new initiative |
118
- | `initiative-delete` | Delete an initiative with explicit linked-WU safeguards |
119
- | `initiative-edit` | Edit initiative fields and phase metadata |
120
- | `initiative-list` | List all initiatives |
121
- | `initiative-plan` | Link plan to initiative |
122
- | `initiative-remove-wu` | Remove WU from initiative |
123
- | `initiative-rename` | Rename an initiative and rewrite linked references |
124
- | `initiative-status` | Show initiative status |
125
- | `orchestrate-init-status` | Compact initiative status with evidence-based orchestration state |
126
- | `orchestrate-initiative` | Plan, launch, and reconcile initiative execution with structured orchestration artifacts |
127
- | `orchestrate-monitor` | Monitor orchestration progress, stalls, returned workers, and recovery signals |
128
- | `task-claim` | Claim a task directly through KernelRuntime |
110
+ | Command | Description |
111
+ | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
112
+ | `agent-issues-query` | Query GitHub issues for agent work |
113
+ | `agent-log-issue` | Log issue during agent session |
114
+ | `agent-session` | Start agent session |
115
+ | `agent-session-end` | End agent session |
116
+ | `delegation-list` | List delegation and launch records with planned-versus-launched state |
117
+ | `initiative-add-wu` | Add WU to initiative |
118
+ | `initiative-bulk-assign-wus` | Bulk assign WUs to initiative |
119
+ | `initiative-create` | Create new initiative |
120
+ | `initiative-delete` | Delete an initiative with explicit linked-WU safeguards |
121
+ | `initiative-edit` | Edit initiative fields and phase metadata |
122
+ | `initiative-list` | List all initiatives |
123
+ | `initiative-plan` | Link plan to initiative |
124
+ | `initiative-remove-wu` | Remove WU from initiative |
125
+ | `initiative-rename` | Rename an initiative and rewrite linked references |
126
+ | `initiative-status` | Show initiative status |
127
+ | `orchestrate-init-status` | Compact initiative status with evidence-based orchestration state |
128
+ | `orchestrate-initiative` | Plan, launch, and reconcile initiative execution with structured orchestration artifacts; launch modes print lean summaries by default and can replay stored handoffs inline |
129
+ | `orchestrate-monitor` | Monitor orchestration progress, stalls, returned workers, and recovery signals |
130
+ | `task-claim` | Claim a task directly through KernelRuntime |
129
131
 
130
132
  ### Metrics & Analytics
131
133
 
@@ -28,6 +28,7 @@ import { TOP_ISSUES_DISPLAY_LIMIT, RECENT_ISSUES_DISPLAY_LIMIT, ISSUE_TITLE_TRUN
28
28
  const LOG_PREFIX = '[agent:issues-query]';
29
29
  /** Default days to query */
30
30
  const DEFAULT_SINCE_DAYS = 7;
31
+ const SUMMARY_SUBCOMMAND = 'summary';
31
32
  /** Issues log file path - under base .lumenflow directory */
32
33
  const ISSUES_LOG_PATH = `${LUMENFLOW_PATHS.BASE}/agent-issues.ndjson`;
33
34
  /** Valid severity levels */
@@ -39,14 +40,14 @@ function parseArgs() {
39
40
  const program = new Command()
40
41
  .name('agent-issues-query')
41
42
  .description('Query and display logged agent incidents')
42
- .command('summary', { isDefault: true })
43
+ .command(SUMMARY_SUBCOMMAND, { isDefault: true })
43
44
  .description('Show summary of logged issues')
44
45
  .option('--since <days>', `Days to include (default: ${DEFAULT_SINCE_DAYS})`, String(DEFAULT_SINCE_DAYS))
45
46
  .option('--category <category>', 'Filter by category')
46
47
  .option('--severity <severity>', `Filter by severity: ${SEVERITY_LEVELS.join(', ')}`)
47
48
  .exitOverride();
48
49
  try {
49
- program.parse(process.argv);
50
+ program.parse(normalizeProcessArguments(process.argv));
50
51
  const opts = program.opts();
51
52
  return {
52
53
  since: parseInt(opts.since, 10),
@@ -62,6 +63,13 @@ function parseArgs() {
62
63
  throw err;
63
64
  }
64
65
  }
66
+ function normalizeProcessArguments(argv) {
67
+ const [nodePath = '', scriptPath = '', ...args] = argv;
68
+ if (args[0] !== SUMMARY_SUBCOMMAND) {
69
+ return [...argv];
70
+ }
71
+ return [nodePath, scriptPath, ...args.slice(1)];
72
+ }
65
73
  /**
66
74
  * Read issues from NDJSON log file
67
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-issues-query.js","sourceRoot":"","sources":["../src/agent-issues-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-issues-query.js","sourceRoot":"","sources":["../src/agent-issues-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ import { buildKernelEventV2 } from './kernel-event-sync/emitters.js';
4
+ export const AGENT_RUNTIME_CHANNEL_ID = 'agent-runtime';
5
+ const AGENT_RUNTIME_ENROLLMENT_EVENT_KINDS = {
6
+ AGENT_SESSION_ENROLLED: 'agent-runtime:agent_session_enrolled',
7
+ AGENT_SESSION_ENDED: 'agent-runtime:agent_session_ended',
8
+ AGENT_SESSION_STALLED: 'agent-runtime:agent_session_stalled',
9
+ };
10
+ const channelSeqCounters = new Map();
11
+ export function buildAgentSessionEnrolledEvent(input, options) {
12
+ return buildEnrollmentEvent({
13
+ kind: AGENT_RUNTIME_ENROLLMENT_EVENT_KINDS.AGENT_SESSION_ENROLLED,
14
+ ...input,
15
+ }, options);
16
+ }
17
+ export function buildAgentSessionEndedEvent(input, options) {
18
+ return buildEnrollmentEvent({
19
+ kind: AGENT_RUNTIME_ENROLLMENT_EVENT_KINDS.AGENT_SESSION_ENDED,
20
+ ...input,
21
+ }, options);
22
+ }
23
+ export function buildAgentSessionStalledEvent(input, options) {
24
+ return buildEnrollmentEvent({
25
+ kind: AGENT_RUNTIME_ENROLLMENT_EVENT_KINDS.AGENT_SESSION_STALLED,
26
+ ...input,
27
+ }, options);
28
+ }
29
+ function buildEnrollmentEvent(payload, options) {
30
+ const baseEvent = buildKernelEventV2(payload, options);
31
+ return {
32
+ ...baseEvent,
33
+ ...payload,
34
+ channel_id: AGENT_RUNTIME_CHANNEL_ID,
35
+ seq: nextSeq(AGENT_RUNTIME_CHANNEL_ID),
36
+ };
37
+ }
38
+ function nextSeq(channelId) {
39
+ const current = channelSeqCounters.get(channelId) ?? 0;
40
+ const next = current + 1;
41
+ channelSeqCounters.set(channelId, next);
42
+ return next;
43
+ }
44
+ //# sourceMappingURL=agent-runtime-enrollment-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime-enrollment-events.js","sourceRoot":"","sources":["../src/agent-runtime-enrollment-events.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC,OAAO,EAAE,kBAAkB,EAAgC,MAAM,iCAAiC,CAAC;AAEnG,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAwB,CAAC;AAEjE,MAAM,oCAAoC,GAAG;IAC3C,sBAAsB,EAAE,sCAAsC;IAC9D,mBAAmB,EAAE,mCAAmC;IACxD,qBAAqB,EAAE,qCAAqC;CACpD,CAAC;AAoCX,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAErD,MAAM,UAAU,8BAA8B,CAC5C,KAAqF,EACrF,OAAiC;IAEjC,OAAO,oBAAoB,CACzB;QACE,IAAI,EAAE,oCAAoC,CAAC,sBAAsB;QACjE,GAAG,KAAK;KACT,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAkF,EAClF,OAAiC;IAEjC,OAAO,oBAAoB,CACzB;QACE,IAAI,EAAE,oCAAoC,CAAC,mBAAmB;QAC9D,GAAG,KAAK;KACT,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAoF,EACpF,OAAiC;IAEjC,OAAO,oBAAoB,CACzB;QACE,IAAI,EAAE,oCAAoC,CAAC,qBAAqB;QAChE,GAAG,KAAK;KACT,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAU,EACV,OAAiC;IAEjC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAgB,EAAE,OAAO,CAI7D,CAAC;IAEF,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,OAAO;QACV,UAAU,EAAE,wBAAwB;QACpC,GAAG,EAAE,OAAO,CAAC,wBAAwB,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB;IAChC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;IACzB,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -11,10 +11,12 @@
11
11
  */
12
12
  import { Command } from 'commander';
13
13
  import { endSession, getCurrentSession } from '@lumenflow/agent';
14
+ import { buildAgentSessionEndedEvent, buildAgentSessionStalledEvent, } from './agent-runtime-enrollment-events.js';
14
15
  import { EXIT_CODES } from '@lumenflow/core/wu-constants';
15
16
  import { ProcessExitError } from '@lumenflow/core/error-handler';
16
17
  import chalk from 'chalk';
17
18
  import { runCLI } from './cli-entry-point.js';
19
+ import { resolveConductorEventSink } from './kernel-event-sync/lifecycle-emitters.js';
18
20
  const program = new Command()
19
21
  .name('agent:session:end')
20
22
  .description('End the current agent session')
@@ -26,12 +28,57 @@ const program = new Command()
26
28
  console.error(chalk.yellow(message));
27
29
  throw new ProcessExitError(message, EXIT_CODES.SUCCESS);
28
30
  }
31
+ const conductorSink = await resolveConductorEventSink();
29
32
  const summary = await endSession();
33
+ // WU-2642 (INIT-057 Phase 4): Stop the control-plane sync sidecar
34
+ // spawned at session start so file watchers / interval timers don't
35
+ // leak past session-end.
36
+ try {
37
+ const { stopControlPlaneSidecar } = await import('./sidecar-manager.js');
38
+ const sidecarResult = await stopControlPlaneSidecar({
39
+ workspaceRoot: process.cwd(),
40
+ logger: {
41
+ warn: (message) => console.warn(chalk.yellow(`[agent:session:end] ${message}`)),
42
+ },
43
+ });
44
+ if (sidecarResult.stopped) {
45
+ console.log(chalk.dim(` Stopped sidecar (pid=${sidecarResult.pid})`));
46
+ }
47
+ }
48
+ catch (err) {
49
+ const message = err instanceof Error ? err.message : String(err);
50
+ console.warn(chalk.yellow(`Warning: could not stop control-plane sync sidecar: ${message}`));
51
+ conductorSink(buildAgentSessionStalledEvent({
52
+ session_id: session.session_id,
53
+ wu_id: session.wu_id,
54
+ lane: session.lane,
55
+ stage: 'sidecar_stop',
56
+ reason: message,
57
+ }));
58
+ }
59
+ conductorSink(buildAgentSessionEndedEvent({
60
+ session_id: summary.session_id,
61
+ wu_id: summary.wu_id,
62
+ lane: summary.lane,
63
+ incidents_logged: summary.incidents_logged,
64
+ incidents_major: summary.incidents_major,
65
+ }));
30
66
  console.log(chalk.green(`✓ Session ended`));
31
67
  console.log(` WU: ${chalk.cyan(summary.wu_id)}`);
32
68
  console.log(` Lane: ${chalk.cyan(summary.lane)}`);
33
69
  console.log(` Duration: ${chalk.cyan(summary.started)} → ${chalk.cyan(summary.completed)}`);
34
70
  console.log(` Incidents: ${summary.incidents_logged} (${summary.incidents_major} major)`);
71
+ // WU-2754 (ADR-014 extension 2): persist final role state so the operator
72
+ // can see which lifecycle_role + specialty_profile the session ran as.
73
+ if (summary.lifecycle_role) {
74
+ console.log(` Lifecycle role: ${chalk.cyan(summary.lifecycle_role)}`);
75
+ }
76
+ if (summary.specialty_profile) {
77
+ console.log(` Specialty profile: ${chalk.cyan(summary.specialty_profile)}`);
78
+ }
79
+ if (summary.delegation_id) {
80
+ console.log(` Delegation: ${chalk.cyan(summary.delegation_id)}`);
81
+ }
35
82
  }
36
83
  catch (err) {
37
84
  if (err instanceof ProcessExitError) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-end.js","sourceRoot":"","sources":["../src/agent-session-end.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,mBAAmB,CAAC;KACzB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,2BAA2B,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,MAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QAEnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,eAAe,SAAS,CAAC,CAAC;IAC7F,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"agent-session-end.js","sourceRoot":"","sources":["../src/agent-session-end.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ import { existsSync, readFileSync } from 'node:fs';
4
+ import { join } from 'node:path';
5
+ import { PassThrough } from 'node:stream';
6
+ import { createError, ErrorCodes } from '@lumenflow/core/error-handler';
7
+ import { CONFIG_FILES } from '@lumenflow/core/wu-constants';
8
+ import { parseYAML } from '@lumenflow/core/wu-yaml';
9
+ const HTTP_METHOD_POST = 'POST';
10
+ const HTTP_HEADER = {
11
+ AUTHORIZATION: 'authorization',
12
+ CONTENT_TYPE: 'content-type',
13
+ };
14
+ const CONTENT_TYPE_JSON = 'application/json';
15
+ const CONTROL_PLANE_HEARTBEAT_PATH = '/api/v1/heartbeat';
16
+ const DEFAULT_MAX_QUEUED_COMMANDS = 25;
17
+ class CapturedResponse {
18
+ statusCode = 200;
19
+ body = '';
20
+ setHeader(_name, _value) {
21
+ return this;
22
+ }
23
+ write(chunk) {
24
+ this.body += Buffer.isBuffer(chunk) ? chunk.toString('utf8') : chunk;
25
+ return true;
26
+ }
27
+ end(chunk) {
28
+ if (chunk !== undefined) {
29
+ this.write(chunk);
30
+ }
31
+ return this;
32
+ }
33
+ toResult() {
34
+ try {
35
+ return {
36
+ statusCode: this.statusCode,
37
+ body: this.body.length > 0 ? JSON.parse(this.body) : {},
38
+ };
39
+ }
40
+ catch {
41
+ return {
42
+ statusCode: this.statusCode,
43
+ body: this.body,
44
+ };
45
+ }
46
+ }
47
+ }
48
+ function asNonEmptyString(value) {
49
+ return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
50
+ }
51
+ function asFiniteNumber(value) {
52
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
53
+ }
54
+ function normalizeEndpoint(endpoint) {
55
+ return endpoint.endsWith('/') ? endpoint.slice(0, endpoint.length - 1) : endpoint;
56
+ }
57
+ function isExecutionContext(value) {
58
+ return typeof value === 'object' && value !== null;
59
+ }
60
+ function resolveControlPlaneConfig(workspaceRoot, environment) {
61
+ const workspaceConfigPath = join(workspaceRoot, CONFIG_FILES.WORKSPACE_CONFIG);
62
+ if (!existsSync(workspaceConfigPath)) {
63
+ return null;
64
+ }
65
+ let parsedWorkspace;
66
+ try {
67
+ parsedWorkspace = parseYAML(readFileSync(workspaceConfigPath, { encoding: 'utf-8' }));
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ const workspaceId = asNonEmptyString(parsedWorkspace?.id);
73
+ const endpoint = asNonEmptyString(parsedWorkspace?.control_plane?.endpoint);
74
+ const tokenEnv = asNonEmptyString(parsedWorkspace?.control_plane?.auth?.token_env);
75
+ if (!workspaceId || !endpoint || !tokenEnv) {
76
+ return null;
77
+ }
78
+ const token = asNonEmptyString(environment[tokenEnv]);
79
+ if (!token) {
80
+ return null;
81
+ }
82
+ try {
83
+ void new URL(endpoint);
84
+ }
85
+ catch {
86
+ return null;
87
+ }
88
+ return {
89
+ workspaceId,
90
+ endpoint: normalizeEndpoint(endpoint),
91
+ token,
92
+ };
93
+ }
94
+ function normalizeQueuedCommand(value) {
95
+ if (typeof value !== 'object' || value === null) {
96
+ return null;
97
+ }
98
+ const command = value;
99
+ const commandId = asNonEmptyString(command.command_id);
100
+ const toolName = asNonEmptyString(command.tool_name);
101
+ if (!commandId || !toolName || !isExecutionContext(command.context)) {
102
+ return null;
103
+ }
104
+ return {
105
+ command_id: commandId,
106
+ tool_name: toolName,
107
+ input: command.input,
108
+ context: command.context,
109
+ enqueued_at: asNonEmptyString(command.enqueued_at) ?? undefined,
110
+ };
111
+ }
112
+ export function normalizeHeartbeatPollResponse(raw) {
113
+ const payload = typeof raw === 'object' && raw !== null ? raw : {};
114
+ const queuedCommands = Array.isArray(payload.queued_commands)
115
+ ? payload.queued_commands
116
+ .map((entry) => normalizeQueuedCommand(entry))
117
+ .filter((entry) => entry !== null)
118
+ : [];
119
+ return {
120
+ status: 'ok',
121
+ server_time: asNonEmptyString(payload.server_time) ?? new Date().toISOString(),
122
+ ...(asFiniteNumber(payload.next_heartbeat_ms) !== undefined
123
+ ? { next_heartbeat_ms: asFiniteNumber(payload.next_heartbeat_ms) }
124
+ : {}),
125
+ ...(typeof payload.assignment === 'object' && payload.assignment !== null
126
+ ? {
127
+ assignment: payload.assignment,
128
+ }
129
+ : {}),
130
+ ...(asFiniteNumber(payload.budget_remaining_usd) !== undefined
131
+ ? { budget_remaining_usd: asFiniteNumber(payload.budget_remaining_usd) }
132
+ : {}),
133
+ ...(asFiniteNumber(payload.coalesced_signals) !== undefined
134
+ ? { coalesced_signals: asFiniteNumber(payload.coalesced_signals) }
135
+ : {}),
136
+ queued_commands: queuedCommands,
137
+ };
138
+ }
139
+ async function dispatchQueuedCommandThroughHandleRequest(surface, command) {
140
+ if (typeof surface.handleRequest !== 'function') {
141
+ return {
142
+ command_id: command.command_id,
143
+ tool_name: command.tool_name,
144
+ ok: false,
145
+ status_code: 500,
146
+ body: {
147
+ error: {
148
+ message: 'Queued command dispatch requires a local surface with handleRequest or dispatchQueuedToolCommand.',
149
+ },
150
+ },
151
+ };
152
+ }
153
+ const request = new PassThrough();
154
+ request.method = HTTP_METHOD_POST;
155
+ request.url = `/tools/${encodeURIComponent(command.tool_name)}`;
156
+ request.headers = {
157
+ [HTTP_HEADER.CONTENT_TYPE]: `${CONTENT_TYPE_JSON}; charset=utf-8`,
158
+ };
159
+ request.end(JSON.stringify({
160
+ input: command.input ?? {},
161
+ context: command.context,
162
+ }));
163
+ const response = new CapturedResponse();
164
+ await surface.handleRequest(request, response);
165
+ const dispatchResult = response.toResult();
166
+ return {
167
+ command_id: command.command_id,
168
+ tool_name: command.tool_name,
169
+ ok: dispatchResult.statusCode >= 200 && dispatchResult.statusCode < 300,
170
+ status_code: dispatchResult.statusCode,
171
+ body: dispatchResult.body,
172
+ };
173
+ }
174
+ export async function dispatchQueuedAgentCommands(commands, surface) {
175
+ const results = [];
176
+ for (const command of commands) {
177
+ try {
178
+ if (typeof surface.dispatchQueuedToolCommand === 'function') {
179
+ const dispatchResult = await surface.dispatchQueuedToolCommand({
180
+ tool_name: command.tool_name,
181
+ input: command.input,
182
+ context: command.context,
183
+ });
184
+ results.push({
185
+ command_id: command.command_id,
186
+ tool_name: command.tool_name,
187
+ ok: dispatchResult.statusCode >= 200 && dispatchResult.statusCode < 300,
188
+ status_code: dispatchResult.statusCode,
189
+ body: dispatchResult.body,
190
+ });
191
+ continue;
192
+ }
193
+ results.push(await dispatchQueuedCommandThroughHandleRequest(surface, command));
194
+ }
195
+ catch (error) {
196
+ results.push({
197
+ command_id: command.command_id,
198
+ tool_name: command.tool_name,
199
+ ok: false,
200
+ status_code: 500,
201
+ body: {
202
+ error: {
203
+ message: error instanceof Error
204
+ ? error.message
205
+ : 'Queued command dispatch failed with an unknown error.',
206
+ },
207
+ },
208
+ });
209
+ }
210
+ }
211
+ return results;
212
+ }
213
+ export async function pollAgentSessionHeartbeat(options) {
214
+ const { sessionId, localSurface, workspaceId, endpoint, token, workspaceRoot = process.cwd(), environment = process.env, agentId, wuId, health, maxQueuedCommands = DEFAULT_MAX_QUEUED_COMMANDS, fetchFn = fetch, } = options;
215
+ const resolvedControlPlaneConfig = workspaceId && endpoint && token
216
+ ? {
217
+ workspaceId,
218
+ endpoint: normalizeEndpoint(endpoint),
219
+ token,
220
+ }
221
+ : resolveControlPlaneConfig(workspaceRoot, environment);
222
+ if (!resolvedControlPlaneConfig) {
223
+ throw createError(ErrorCodes.CONFIG_ERROR, 'Unable to poll agent heartbeat because control-plane workspace config or auth token is missing.');
224
+ }
225
+ const response = await fetchFn(`${resolvedControlPlaneConfig.endpoint}${CONTROL_PLANE_HEARTBEAT_PATH}`, {
226
+ method: HTTP_METHOD_POST,
227
+ headers: {
228
+ [HTTP_HEADER.AUTHORIZATION]: `Bearer ${resolvedControlPlaneConfig.token}`,
229
+ [HTTP_HEADER.CONTENT_TYPE]: CONTENT_TYPE_JSON,
230
+ },
231
+ body: JSON.stringify({
232
+ workspace_id: resolvedControlPlaneConfig.workspaceId,
233
+ session_id: sessionId,
234
+ ...(agentId ? { agent_id: agentId } : {}),
235
+ ...(wuId ? { wu_id: wuId } : {}),
236
+ ...(health ? { health } : {}),
237
+ }),
238
+ });
239
+ if (!response.ok) {
240
+ throw createError(ErrorCodes.COMMAND_EXECUTION_FAILED, `Agent heartbeat polling failed: HTTP ${response.status}.`, { status: response.status });
241
+ }
242
+ const heartbeat = normalizeHeartbeatPollResponse(await response.json().catch(() => ({})));
243
+ const queuedCommands = heartbeat.queued_commands.slice(0, Math.max(0, maxQueuedCommands));
244
+ const dispatchResults = await dispatchQueuedAgentCommands(queuedCommands, localSurface);
245
+ return {
246
+ heartbeat,
247
+ dispatch_results: dispatchResults,
248
+ };
249
+ }
250
+ //# sourceMappingURL=agent-session-heartbeat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session-heartbeat.js","sourceRoot":"","sources":["../src/agent-session-heartbeat.ts"],"names":[],"mappings":"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"}