@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
@@ -16,10 +16,11 @@ import { DelegationRegistryStore } from '@lumenflow/core';
16
16
  import { die } from '@lumenflow/core/error-handler';
17
17
  import { PATTERNS, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
18
18
  import { buildDelegationTree, formatDelegationTree, getDelegationsByWU, treeToJSON, STATUS_INDICATORS, } from '@lumenflow/core/delegation-tree';
19
- import { DelegationStatus } from '@lumenflow/core/delegation-registry-schema';
19
+ import { DelegationStatus, DELEGATION_SCHEMA_VERSION_V2, } from '@lumenflow/core/delegation-registry-schema';
20
20
  import { loadInitiativeWUs } from '@lumenflow/initiatives';
21
21
  import { runCLI } from './cli-entry-point.js';
22
22
  import { formatExecutionStateLabel, loadInitiativeExecutionSummary, } from './orchestrate-monitor.js';
23
+ import { collectSessionCrossLinkIndex, resolveSessionForDelegation, } from './session-cross-link.js';
23
24
  const EMOJI = {
24
25
  WARNING: '⚠️',
25
26
  };
@@ -40,7 +41,28 @@ const LOG_PREFIX = '[delegation:list]';
40
41
  const INIT_PATTERN = /^INIT-\d+$/;
41
42
  const DEFAULT_PATHS = Object.freeze({
42
43
  REGISTRY_DIR: LUMENFLOW_PATHS.STATE_DIR,
44
+ SESSIONS_DIR: LUMENFLOW_PATHS.SESSIONS,
43
45
  });
46
+ // WU-2755: session cross-link helpers moved to ./session-cross-link.ts so
47
+ // mem:context --include-roster can reuse them without a circular import.
48
+ // Re-exported for any downstream caller that imported from delegation-list.
49
+ export { collectSessionCrossLinkIndex, resolveSessionForDelegation } from './session-cross-link.js';
50
+ export { collectActiveSessionRecords, resolveActiveSessionTarget } from './session-cross-link.js';
51
+ /**
52
+ * Render session axes as a compact "lifecycle/specialty" string for table
53
+ * output. Returns the unset marker when neither axis is populated.
54
+ */
55
+ function formatSessionAxes(session) {
56
+ if (!session) {
57
+ return UNSET_ROLE_MARKER;
58
+ }
59
+ const lifecycle = session.lifecycle_role ?? UNSET_ROLE_MARKER;
60
+ const specialty = session.specialty_profile ?? UNSET_ROLE_MARKER;
61
+ if (lifecycle === UNSET_ROLE_MARKER && specialty === UNSET_ROLE_MARKER) {
62
+ return UNSET_ROLE_MARKER;
63
+ }
64
+ return truncate(`${lifecycle}/${specialty}`, ROLE_DISPLAY_MAX_LENGTH);
65
+ }
44
66
  function printLegend() {
45
67
  console.log('\nLegend:');
46
68
  console.log(` ${STATUS_INDICATORS[DelegationStatus.PENDING]} pending`);
@@ -48,6 +70,98 @@ function printLegend() {
48
70
  console.log(` ${STATUS_INDICATORS[DelegationStatus.TIMEOUT]} timeout`);
49
71
  console.log(` ${STATUS_INDICATORS[DelegationStatus.CRASHED]} crashed`);
50
72
  }
73
+ /**
74
+ * Maximum rendered length for role/scope fields in table output (WU-2753).
75
+ * Long ADR-014 role descriptors get truncated with an ellipsis so the table
76
+ * stays readable on narrow terminals; --json always returns full values.
77
+ */
78
+ const ROLE_DISPLAY_MAX_LENGTH = 48;
79
+ const UNSET_ROLE_MARKER = '-';
80
+ /**
81
+ * Render a DelegationRoleDescriptor as a compact "lifecycle/specialty"
82
+ * string for table output. Long role strings are truncated with an ellipsis.
83
+ */
84
+ function formatRoleDescriptor(role) {
85
+ if (!role) {
86
+ return UNSET_ROLE_MARKER;
87
+ }
88
+ const base = `${role.lifecycle_role}/${role.specialty_profile}`;
89
+ const alias = role.role_alias ? ` (${role.role_alias})` : '';
90
+ return truncate(`${base}${alias}`, ROLE_DISPLAY_MAX_LENGTH);
91
+ }
92
+ /**
93
+ * Render capabilities list as a comma-joined, truncated string.
94
+ */
95
+ function formatCapabilities(capabilities) {
96
+ if (!capabilities || capabilities.length === 0) {
97
+ return UNSET_ROLE_MARKER;
98
+ }
99
+ return truncate(capabilities.join(','), ROLE_DISPLAY_MAX_LENGTH);
100
+ }
101
+ /**
102
+ * Render ownership_scope as a compact description; the delegation-list table
103
+ * shows the most load-bearing fields (initiative, WU ids, responsibility).
104
+ */
105
+ function formatOwnershipScope(scope) {
106
+ if (!scope) {
107
+ return UNSET_ROLE_MARKER;
108
+ }
109
+ const parts = [];
110
+ if (scope.initiative_id) {
111
+ parts.push(scope.initiative_id);
112
+ }
113
+ if (scope.wu_ids && scope.wu_ids.length > 0) {
114
+ parts.push(`wu:${scope.wu_ids.join(',')}`);
115
+ }
116
+ if (scope.lane) {
117
+ parts.push(`lane:${scope.lane}`);
118
+ }
119
+ if (scope.responsibility_kinds.length > 0) {
120
+ parts.push(`kind:${scope.responsibility_kinds.join(',')}`);
121
+ }
122
+ const rendered = parts.length === 0 ? UNSET_ROLE_MARKER : parts.join(' | ');
123
+ return truncate(rendered, ROLE_DISPLAY_MAX_LENGTH);
124
+ }
125
+ function truncate(value, limit) {
126
+ if (value.length <= limit) {
127
+ return value;
128
+ }
129
+ return `${value.slice(0, limit - 1)}…`;
130
+ }
131
+ /**
132
+ * Builds the per-delegation block that exposes the four ADR-014 axes
133
+ * (requested_role, actual_role, capabilities, ownership_scope) beneath the
134
+ * existing summary line. Omitted for v1-compat records without role data.
135
+ *
136
+ * WU-2754: When a matching session record is supplied, its lifecycle_role +
137
+ * specialty_profile are rendered alongside the delegation axes so operators
138
+ * can spot role mismatches between launch intent and live execution at a
139
+ * glance.
140
+ */
141
+ function buildRoleAxesBlock(delegation, indent, session) {
142
+ const hasAnyDelegationRoleField = delegation.schemaVersion === DELEGATION_SCHEMA_VERSION_V2 ||
143
+ delegation.requested_role !== undefined ||
144
+ delegation.actual_role !== undefined ||
145
+ (Array.isArray(delegation.capabilities) && delegation.capabilities.length > 0) ||
146
+ delegation.ownership_scope !== undefined;
147
+ const hasAnySessionRoleField = session !== undefined && (session.lifecycle_role || session.specialty_profile);
148
+ if (!hasAnyDelegationRoleField && !hasAnySessionRoleField) {
149
+ return [];
150
+ }
151
+ const lines = [
152
+ `${indent}requested_role: ${formatRoleDescriptor(delegation.requested_role)}`,
153
+ `${indent}actual_role: ${formatRoleDescriptor(delegation.actual_role)}`,
154
+ `${indent}capabilities: ${formatCapabilities(delegation.capabilities)}`,
155
+ `${indent}ownership_scope: ${formatOwnershipScope(delegation.ownership_scope)}`,
156
+ ];
157
+ if (hasAnySessionRoleField) {
158
+ lines.push(`${indent}session_axes: ${formatSessionAxes(session)}`);
159
+ if (session.display_name) {
160
+ lines.push(`${indent}display_name: ${truncate(session.display_name, ROLE_DISPLAY_MAX_LENGTH)}`);
161
+ }
162
+ }
163
+ return lines;
164
+ }
51
165
  async function loadInitiativeDelegations(baseDir, wuIds) {
52
166
  const store = new DelegationRegistryStore(path.join(baseDir, DEFAULT_PATHS.REGISTRY_DIR));
53
167
  try {
@@ -65,6 +179,19 @@ export async function buildInitiativeDelegationSnapshot(baseDir, initiativeId, p
65
179
  const wuIds = new Set(initiativeWus.map((wu) => wu.id));
66
180
  const executionSummary = await loadInitiativeExecutionSummary(baseDir, initiativeId, initiativeWus);
67
181
  const delegations = await loadInitiativeDelegations(baseDir, wuIds);
182
+ // WU-2754: Cross-link session records with the delegations they belong to
183
+ // so lifecycle_role + specialty_profile surface alongside the delegation
184
+ // registry axes (requested_role / actual_role / capabilities /
185
+ // ownership_scope). Best-effort: if the sessions dir is empty we still
186
+ // render the delegation view unchanged.
187
+ const sessionIndex = collectSessionCrossLinkIndex(baseDir);
188
+ const sessionAxes = {};
189
+ for (const delegation of delegations) {
190
+ const match = resolveSessionForDelegation(delegation, sessionIndex);
191
+ if (match) {
192
+ sessionAxes[delegation.targetWuId] = match;
193
+ }
194
+ }
68
195
  return {
69
196
  initiative: initiativeId,
70
197
  launchAttempt: executionSummary.launchAttempt,
@@ -72,6 +199,7 @@ export async function buildInitiativeDelegationSnapshot(baseDir, initiativeId, p
72
199
  launchReceipts: executionSummary.launchReceipts,
73
200
  delegations,
74
201
  liveState: executionSummary.wus,
202
+ sessionAxes,
75
203
  };
76
204
  }
77
205
  function printInitiativeSnapshot(snapshot) {
@@ -111,6 +239,13 @@ function printInitiativeSnapshot(snapshot) {
111
239
  parts.push(`picked up by ${delegation.pickedUpBy}`);
112
240
  }
113
241
  console.log(` - ${parts.join(' | ')}`);
242
+ // WU-2753 (ADR-014 extension 1): surface the four typed axes.
243
+ // WU-2754 (ADR-014 extension 2): also render the session's
244
+ // lifecycle_role + specialty_profile when a matching session exists.
245
+ const matchedSession = snapshot.sessionAxes[delegation.targetWuId];
246
+ for (const line of buildRoleAxesBlock(delegation, ' ', matchedSession)) {
247
+ console.log(line);
248
+ }
114
249
  }
115
250
  }
116
251
  console.log('');
@@ -154,6 +289,30 @@ export async function main() {
154
289
  console.log(`${LOG_PREFIX} Delegation tree for ${wuId}:\n`);
155
290
  const tree = buildDelegationTree(delegations, wuId);
156
291
  console.log(formatDelegationTree(tree));
292
+ // WU-2753: surface ADR-014 role axes per delegation below the tree.
293
+ // WU-2754: cross-link with active session records for lifecycle_role +
294
+ // specialty_profile.
295
+ const sessionIndex = collectSessionCrossLinkIndex(process.cwd());
296
+ const hasAnyV2Record = delegations.some((d) => d.schemaVersion === DELEGATION_SCHEMA_VERSION_V2 ||
297
+ d.requested_role !== undefined ||
298
+ d.actual_role !== undefined ||
299
+ (Array.isArray(d.capabilities) && d.capabilities.length > 0) ||
300
+ d.ownership_scope !== undefined);
301
+ const hasAnySessionRecord = delegations.some((d) => resolveSessionForDelegation(d, sessionIndex));
302
+ if (hasAnyV2Record || hasAnySessionRecord) {
303
+ console.log('\nRole axes:');
304
+ for (const delegation of delegations) {
305
+ const matchedSession = resolveSessionForDelegation(delegation, sessionIndex);
306
+ const axesLines = buildRoleAxesBlock(delegation, ' ', matchedSession);
307
+ if (axesLines.length === 0) {
308
+ continue;
309
+ }
310
+ console.log(` ${delegation.id} (${delegation.parentWuId} -> ${delegation.targetWuId}):`);
311
+ for (const line of axesLines) {
312
+ console.log(line);
313
+ }
314
+ }
315
+ }
157
316
  printLegend();
158
317
  console.log(`\nTotal: ${delegations.length} delegation(s)`);
159
318
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"delegation-list.js","sourceRoot":"","sources":["../src/delegation-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegation-list.js","sourceRoot":"","sources":["../src/delegation-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /** Default ADR-014 axes for a wu:delegate launch receipt. */
4
+ export const DEFAULT_DELEGATION_LIFECYCLE_ROLE = 'implementer';
5
+ export const DEFAULT_DELEGATION_SPECIALTY_PROFILE = 'general';
6
+ export const DEFAULT_DELEGATION_RESPONSIBILITY_KIND = 'implement';
7
+ /**
8
+ * Map of human-friendly agent aliases to their canonical role descriptors.
9
+ *
10
+ * Sourced from ADR-014 §3 alias table. Pack-owned vocabulary — additive
11
+ * extensions land here, not in the kernel schema.
12
+ */
13
+ const ALIAS_ROLE_MAP = {
14
+ 'general-purpose': { lifecycle_role: 'implementer', specialty_profile: 'general' },
15
+ 'lumenflow-pm': { lifecycle_role: 'orchestrator', specialty_profile: 'delivery' },
16
+ 'test-engineer': { lifecycle_role: 'implementer', specialty_profile: 'test' },
17
+ 'code-reviewer': { lifecycle_role: 'reviewer', specialty_profile: 'general' },
18
+ 'bug-triage': { lifecycle_role: 'reviewer', specialty_profile: 'triage' },
19
+ 'lumenflow-enforcer': { lifecycle_role: 'finisher', specialty_profile: 'compliance' },
20
+ 'lumenflow-doc-sync': { lifecycle_role: 'reviewer', specialty_profile: 'docs' },
21
+ };
22
+ function resolveRoleDescriptor(agentAlias, capabilities) {
23
+ const match = agentAlias ? ALIAS_ROLE_MAP[agentAlias] : undefined;
24
+ const lifecycle_role = match?.lifecycle_role ?? DEFAULT_DELEGATION_LIFECYCLE_ROLE;
25
+ const specialty_profile = match?.specialty_profile ?? DEFAULT_DELEGATION_SPECIALTY_PROFILE;
26
+ const descriptor = {
27
+ lifecycle_role,
28
+ specialty_profile,
29
+ capabilities,
30
+ };
31
+ if (agentAlias) {
32
+ descriptor.role_alias = agentAlias;
33
+ }
34
+ return descriptor;
35
+ }
36
+ function resolveOwnershipScope(input) {
37
+ const scope = {
38
+ responsibility_kinds: [DEFAULT_DELEGATION_RESPONSIBILITY_KIND],
39
+ };
40
+ if (input.initiativeId) {
41
+ scope.initiative_id = input.initiativeId;
42
+ }
43
+ if (input.targetWuId) {
44
+ scope.wu_ids = [input.targetWuId];
45
+ }
46
+ if (input.lane) {
47
+ scope.lane = input.lane;
48
+ }
49
+ return scope;
50
+ }
51
+ /**
52
+ * Builds the default v2 DelegationRoleContract for a wu:delegate launch
53
+ * receipt. The `requested_role` and `actual_role` start identical — session
54
+ * lifecycle (WU-2754) will overwrite `actual_role` when the live worker
55
+ * reports a mismatch.
56
+ */
57
+ export function resolveDefaultRoleContract(input) {
58
+ const capabilities = input.capabilities ?? [];
59
+ const requested_role = resolveRoleDescriptor(input.agentAlias, capabilities);
60
+ const actual_role = resolveRoleDescriptor(input.agentAlias, capabilities);
61
+ const ownership_scope = resolveOwnershipScope(input);
62
+ return {
63
+ requested_role,
64
+ actual_role,
65
+ capabilities,
66
+ ownership_scope,
67
+ };
68
+ }
69
+ //# sourceMappingURL=delegation-role-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-role-resolver.js","sourceRoot":"","sources":["../src/delegation-role-resolver.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAwBzC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iCAAiC,GAAG,aAAa,CAAC;AAC/D,MAAM,CAAC,MAAM,oCAAoC,GAAG,SAAS,CAAC;AAC9D,MAAM,CAAC,MAAM,sCAAsC,GAAG,WAAW,CAAC;AAElE;;;;;GAKG;AACH,MAAM,cAAc,GAA0E;IAC5F,iBAAiB,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE;IAClF,cAAc,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE;IACjF,eAAe,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE;IAC7E,eAAe,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE;IAC7E,YAAY,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE;IACzE,oBAAoB,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE;IACrF,oBAAoB,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE;CAChF,CAAC;AAqBF,SAAS,qBAAqB,CAC5B,UAA8B,EAC9B,YAAsB;IAEtB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,cAAc,GAAG,KAAK,EAAE,cAAc,IAAI,iCAAiC,CAAC;IAClF,MAAM,iBAAiB,GAAG,KAAK,EAAE,iBAAiB,IAAI,oCAAoC,CAAC;IAC3F,MAAM,UAAU,GAA6B;QAC3C,cAAc;QACd,iBAAiB;QACjB,YAAY;KACb,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;IACrC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkC;IAC/D,MAAM,KAAK,GAA6B;QACtC,oBAAoB,EAAE,CAAC,sCAAsC,CAAC;KAC/D,CAAC;IACF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAkC;IAElC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IAC9C,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO;QACL,cAAc;QACd,WAAW;QACX,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC"}