@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.
- package/README.md +54 -52
- package/dist/agent-issues-query.js +10 -2
- package/dist/agent-issues-query.js.map +1 -1
- package/dist/agent-runtime-enrollment-events.js +44 -0
- package/dist/agent-runtime-enrollment-events.js.map +1 -0
- package/dist/agent-session-end.js +47 -0
- package/dist/agent-session-end.js.map +1 -1
- package/dist/agent-session-heartbeat.js +250 -0
- package/dist/agent-session-heartbeat.js.map +1 -0
- package/dist/agent-session.js +299 -5
- package/dist/agent-session.js.map +1 -1
- package/dist/capacity-snapshot-emitter.js +73 -0
- package/dist/capacity-snapshot-emitter.js.map +1 -0
- package/dist/claim-queue.js +276 -0
- package/dist/claim-queue.js.map +1 -0
- package/dist/config-set.js +22 -3
- package/dist/config-set.js.map +1 -1
- package/dist/control-plane-sidecar-runner.js +145 -0
- package/dist/control-plane-sidecar-runner.js.map +1 -0
- package/dist/delegation-list.js +160 -1
- package/dist/delegation-list.js.map +1 -1
- package/dist/delegation-role-resolver.js +69 -0
- package/dist/delegation-role-resolver.js.map +1 -0
- package/dist/docs-generate-pack-reference.js +500 -0
- package/dist/docs-generate-pack-reference.js.map +1 -0
- package/dist/docs-sync.js +116 -1
- package/dist/docs-sync.js.map +1 -1
- package/dist/file-edit.js +28 -8
- package/dist/file-edit.js.map +1 -1
- package/dist/file-write.js +29 -5
- package/dist/file-write.js.map +1 -1
- package/dist/gate-co-change.js +25 -7
- package/dist/gate-co-change.js.map +1 -1
- package/dist/gate-conditional.js +19 -7
- package/dist/gate-conditional.js.map +1 -1
- package/dist/gates-runners.js +42 -33
- package/dist/gates-runners.js.map +1 -1
- package/dist/gates-utils.js +34 -20
- package/dist/gates-utils.js.map +1 -1
- package/dist/gates.js +79 -7
- package/dist/gates.js.map +1 -1
- package/dist/hooks/config-resolver.js +10 -1
- package/dist/hooks/config-resolver.js.map +1 -1
- package/dist/init-package-config.js +1 -1
- package/dist/init-package-config.js.map +1 -1
- package/dist/init-scaffolding.js +5 -1
- package/dist/init-scaffolding.js.map +1 -1
- package/dist/init-templates.js +10 -0
- package/dist/init-templates.js.map +1 -1
- package/dist/init.js +1 -1
- package/dist/init.js.map +1 -1
- package/dist/initiative-create.js +17 -0
- package/dist/initiative-create.js.map +1 -1
- package/dist/initiative-remove-wu.js +17 -3
- package/dist/initiative-remove-wu.js.map +1 -1
- package/dist/kernel-event-sync/emitters.js +104 -0
- package/dist/kernel-event-sync/emitters.js.map +1 -0
- package/dist/kernel-event-sync/index.js +13 -0
- package/dist/kernel-event-sync/index.js.map +1 -0
- package/dist/kernel-event-sync/lifecycle-emitters.js +160 -0
- package/dist/kernel-event-sync/lifecycle-emitters.js.map +1 -0
- package/dist/kernel-event-sync/narrow-emissions.js +89 -0
- package/dist/kernel-event-sync/narrow-emissions.js.map +1 -0
- package/dist/kernel-event-sync/software-delivery-emitters.js +297 -0
- package/dist/kernel-event-sync/software-delivery-emitters.js.map +1 -0
- package/dist/lane-lock.js +14 -1
- package/dist/lane-lock.js.map +1 -1
- package/dist/lane-suggest.js +21 -0
- package/dist/lane-suggest.js.map +1 -1
- package/dist/lumenflow-upgrade.js +7 -5
- package/dist/lumenflow-upgrade.js.map +1 -1
- package/dist/mem-context.js +145 -0
- package/dist/mem-context.js.map +1 -1
- package/dist/mem-create.js +39 -6
- package/dist/mem-create.js.map +1 -1
- package/dist/mem-inbox.js +16 -0
- package/dist/mem-inbox.js.map +1 -1
- package/dist/mem-roster.js +95 -0
- package/dist/mem-roster.js.map +1 -0
- package/dist/mem-signal.js +97 -2
- package/dist/mem-signal.js.map +1 -1
- package/dist/metrics-cli.js +3 -2
- package/dist/metrics-cli.js.map +1 -1
- package/dist/metrics-snapshot.js +271 -13
- package/dist/metrics-snapshot.js.map +1 -1
- package/dist/orchestrate-init-status.js +117 -2
- package/dist/orchestrate-init-status.js.map +1 -1
- package/dist/orchestrate-initiative.js +83 -10
- package/dist/orchestrate-initiative.js.map +1 -1
- package/dist/orchestrate-monitor-quality.js +289 -0
- package/dist/orchestrate-monitor-quality.js.map +1 -0
- package/dist/orchestrate-monitor.js +85 -0
- package/dist/orchestrate-monitor.js.map +1 -1
- package/dist/pack-validate.js +127 -2
- package/dist/pack-validate.js.map +1 -1
- package/dist/plan-create.js +18 -0
- package/dist/plan-create.js.map +1 -1
- package/dist/plan-link.js +13 -0
- package/dist/plan-link.js.map +1 -1
- package/dist/plan-promote.js +14 -0
- package/dist/plan-promote.js.map +1 -1
- package/dist/pre-commit-check.js +4 -3
- package/dist/pre-commit-check.js.map +1 -1
- package/dist/public-manifest.js +17 -3
- package/dist/public-manifest.js.map +1 -1
- package/dist/release.js +10 -10
- package/dist/release.js.map +1 -1
- package/dist/session-cross-link.js +139 -0
- package/dist/session-cross-link.js.map +1 -0
- package/dist/sidecar-manager.js +208 -0
- package/dist/sidecar-manager.js.map +1 -0
- package/dist/state-path-resolvers.js +18 -0
- package/dist/state-path-resolvers.js.map +1 -1
- package/dist/stream-heartbeat.js +151 -0
- package/dist/stream-heartbeat.js.map +1 -0
- package/dist/sync-templates.js +56 -2
- package/dist/sync-templates.js.map +1 -1
- package/dist/wu-block.js +47 -5
- package/dist/wu-block.js.map +1 -1
- package/dist/wu-claim-branch.js +8 -4
- package/dist/wu-claim-branch.js.map +1 -1
- package/dist/wu-claim-state.js +5 -3
- package/dist/wu-claim-state.js.map +1 -1
- package/dist/wu-claim-worktree.js +5 -3
- package/dist/wu-claim-worktree.js.map +1 -1
- package/dist/wu-claim.js +261 -9
- package/dist/wu-claim.js.map +1 -1
- package/dist/wu-done-auto-cleanup.js +3 -2
- package/dist/wu-done-auto-cleanup.js.map +1 -1
- package/dist/wu-done-git-ops.js +12 -8
- package/dist/wu-done-git-ops.js.map +1 -1
- package/dist/wu-done-preflight.js +3 -3
- package/dist/wu-done-preflight.js.map +1 -1
- package/dist/wu-done.js +46 -10
- package/dist/wu-done.js.map +1 -1
- package/dist/wu-lifecycle-sync/gate-scope-resolver.js +16 -0
- package/dist/wu-lifecycle-sync/gate-scope-resolver.js.map +1 -0
- package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js +10 -0
- package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js.map +1 -0
- package/dist/wu-prep.js +363 -22
- package/dist/wu-prep.js.map +1 -1
- package/dist/wu-prune.js +68 -27
- package/dist/wu-prune.js.map +1 -1
- package/dist/wu-release.js +34 -3
- package/dist/wu-release.js.map +1 -1
- package/dist/wu-review.js +167 -0
- package/dist/wu-review.js.map +1 -0
- package/dist/wu-spawn-prompt-builders.js +296 -40
- package/dist/wu-spawn-prompt-builders.js.map +1 -1
- package/dist/wu-spawn-strategy-resolver.js +126 -14
- package/dist/wu-spawn-strategy-resolver.js.map +1 -1
- package/dist/wu-unblock.js +52 -22
- package/dist/wu-unblock.js.map +1 -1
- package/package.json +13 -8
- package/packs/agent-runtime/.turbo/turbo-build.log +1 -1
- package/packs/agent-runtime/.turbo/turbo-test.log +25 -0
- package/packs/agent-runtime/.turbo/turbo-typecheck.log +4 -0
- package/packs/agent-runtime/agent-heartbeat.ts +163 -0
- package/packs/agent-runtime/auto-session-integration.ts +874 -0
- package/packs/agent-runtime/delegation-registry-schema.ts +220 -0
- package/packs/agent-runtime/delegation-registry-store.ts +269 -0
- package/packs/agent-runtime/delegation-tree.ts +328 -0
- package/packs/agent-runtime/index.ts +9 -0
- package/packs/agent-runtime/manifest.ts +103 -19
- package/packs/agent-runtime/manifest.yaml +132 -0
- package/packs/agent-runtime/memory-coordination-contract.ts +86 -0
- package/packs/agent-runtime/memory.d.ts +19 -0
- package/packs/agent-runtime/orchestration.ts +238 -23
- package/packs/agent-runtime/package.json +11 -2
- package/packs/agent-runtime/remote-controls/index.ts +7 -0
- package/packs/agent-runtime/remote-controls/operations.ts +399 -0
- package/packs/agent-runtime/remote-controls/port.ts +48 -0
- package/packs/agent-runtime/remote-controls/state-store.ts +258 -0
- package/packs/agent-runtime/remote-controls/types.ts +105 -0
- package/packs/agent-runtime/session-schema.ts +423 -0
- package/packs/agent-runtime/tool-impl/index.ts +1 -0
- package/packs/agent-runtime/tool-impl/remote-controls.mock.ts +252 -0
- package/packs/agent-runtime/tool-impl/remote-controls.ts +273 -0
- package/packs/agent-runtime/tsconfig.json +1 -1
- package/packs/agent-runtime/turn-lifecycle-events.ts +501 -0
- package/packs/sidekick/.lumenflow/state/conductor/outbox/sidekick-events.jsonl +213 -0
- package/packs/sidekick/.turbo/turbo-build.log +1 -1
- package/packs/sidekick/.turbo/turbo-test.log +25 -0
- package/packs/sidekick/.turbo/turbo-typecheck.log +4 -0
- package/packs/sidekick/channel-ingress.ts +137 -0
- package/packs/sidekick/manifest.ts +74 -0
- package/packs/sidekick/manifest.yaml +88 -0
- package/packs/sidekick/package.json +3 -1
- package/packs/sidekick/sidekick-events.ts +517 -0
- package/packs/sidekick/src/adapters/cloud-queue.ts +101 -0
- package/packs/sidekick/src/adapters/control-plane-bridge.adapter.ts +378 -0
- package/packs/sidekick/src/adapters/filesystem-bridge.adapter.ts +224 -0
- package/packs/sidekick/src/domain/channel.types.ts +84 -0
- package/packs/sidekick/src/ports/channel-bridge.port.ts +75 -0
- package/packs/sidekick/src/routines/commit.ts +74 -0
- package/packs/sidekick/tool-impl/channel-tools.ts +47 -0
- package/packs/sidekick/tool-impl/memory-tools.ts +17 -0
- package/packs/sidekick/tool-impl/routine-commit.ts +102 -0
- package/packs/sidekick/tool-impl/routine-tools.ts +67 -7
- package/packs/sidekick/tool-impl/runtime-context.ts +4 -0
- package/packs/sidekick/tool-impl/storage.ts +3 -0
- package/packs/sidekick/tool-impl/system-tools.ts +7 -0
- package/packs/sidekick/tool-impl/task-tools.ts +46 -0
- package/packs/sidekick/tsconfig.json +1 -1
- package/packs/software-delivery/.turbo/turbo-build.log +1 -1
- package/packs/software-delivery/.turbo/turbo-test.log +63 -0
- package/packs/software-delivery/.turbo/turbo-typecheck.log +4 -0
- package/packs/software-delivery/manifest-schema.ts +30 -0
- package/packs/software-delivery/manifest.ts +99 -1
- package/packs/software-delivery/manifest.yaml +46 -0
- package/packs/software-delivery/package.json +88 -3
- package/packs/software-delivery/src/commands/index.ts +5 -0
- package/packs/software-delivery/src/config/delivery-review-contract.ts +20 -0
- package/packs/software-delivery/src/config/env-accessors.ts +19 -0
- package/packs/software-delivery/src/config/index.ts +8 -0
- package/packs/software-delivery/src/config/normalize-config-keys.ts +19 -0
- package/packs/software-delivery/src/config/schemas/lumenflow-config-schema-types.ts +436 -0
- package/packs/software-delivery/src/config/workspace-reader.ts +310 -0
- package/packs/software-delivery/src/constants/backlog-patterns.ts +31 -0
- package/packs/software-delivery/src/constants/client-ids.ts +19 -0
- package/packs/software-delivery/src/constants/config-contract.ts +7 -0
- package/packs/software-delivery/src/constants/docs-layout-presets.ts +50 -0
- package/packs/software-delivery/src/constants/duration-constants.ts +20 -0
- package/packs/software-delivery/src/constants/gate-constants.ts +32 -0
- package/packs/software-delivery/src/constants/index.ts +29 -0
- package/packs/software-delivery/src/constants/lock-constants.ts +35 -0
- package/packs/software-delivery/src/constants/object-guards.ts +12 -0
- package/packs/software-delivery/src/constants/section-headings.ts +107 -0
- package/packs/software-delivery/src/constants/wu-cli-constants.ts +485 -0
- package/packs/software-delivery/src/constants/wu-domain-constants.ts +466 -0
- package/packs/software-delivery/src/constants/wu-git-constants.ts +7 -0
- package/packs/software-delivery/src/constants/wu-id-format.ts +327 -0
- package/packs/software-delivery/src/constants/wu-paths-constants.ts +358 -0
- package/packs/software-delivery/src/constants/wu-statuses.ts +287 -0
- package/packs/software-delivery/src/constants/wu-type-helpers.ts +67 -0
- package/packs/software-delivery/src/constants/wu-ui-constants.ts +267 -0
- package/packs/software-delivery/src/constants/wu-validation-constants.ts +73 -0
- package/packs/software-delivery/src/domain/index.ts +5 -0
- package/packs/software-delivery/src/domain/orchestration.constants.ts +168 -0
- package/packs/software-delivery/src/domain/orchestration.schemas.ts +239 -0
- package/packs/software-delivery/src/domain/orchestration.types.ts +178 -0
- package/packs/software-delivery/src/methodology/incremental-test.ts +90 -0
- package/packs/software-delivery/src/methodology/index.ts +6 -0
- package/packs/software-delivery/src/methodology/manual-test-validator.ts +292 -0
- package/packs/software-delivery/src/policy/coverage-gate.ts +270 -0
- package/packs/software-delivery/src/policy/gates-agent-mode.ts +223 -0
- package/packs/software-delivery/src/policy/gates-config-internal.ts +121 -0
- package/packs/software-delivery/src/policy/gates-config.ts +293 -0
- package/packs/software-delivery/src/policy/gates-coverage.ts +247 -0
- package/packs/software-delivery/src/policy/gates-presets.ts +134 -0
- package/packs/software-delivery/src/policy/gates-schemas.ts +173 -0
- package/packs/software-delivery/src/policy/index.ts +22 -0
- package/packs/software-delivery/src/policy/package-manager-resolver.ts +319 -0
- package/packs/software-delivery/src/policy/resolve-policy.ts +518 -0
- package/packs/software-delivery/src/ports/config.ports.ts +90 -0
- package/packs/software-delivery/src/ports/dashboard-renderer.port.ts +125 -0
- package/packs/software-delivery/src/ports/index.ts +10 -0
- package/packs/software-delivery/src/ports/sync-validator.ports.ts +59 -0
- package/packs/software-delivery/src/ports/wu-helpers.ports.ts +168 -0
- package/packs/software-delivery/src/ports/wu-state.ports.ts +241 -0
- package/packs/software-delivery/src/primitives/index.ts +5 -0
- package/packs/software-delivery/src/runtime/index.ts +6 -0
- package/packs/software-delivery/src/runtime/work-classifier.ts +561 -0
- package/packs/software-delivery/src/sandbox/index.ts +10 -0
- package/packs/software-delivery/src/sandbox/sandbox-allowlist.ts +118 -0
- package/packs/software-delivery/src/sandbox/sandbox-backend-linux.ts +88 -0
- package/packs/software-delivery/src/sandbox/sandbox-backend-macos.ts +154 -0
- package/packs/software-delivery/src/sandbox/sandbox-backend-windows.ts +47 -0
- package/packs/software-delivery/src/sandbox/sandbox-profile.ts +153 -0
- package/packs/software-delivery/src/schemas/index.ts +5 -0
- package/packs/software-delivery/src/state/date-utils.ts +158 -0
- package/packs/software-delivery/src/state/index.ts +15 -0
- package/packs/software-delivery/src/state/state-machine.ts +119 -0
- package/packs/software-delivery/src/state/wu-doc-types.ts +51 -0
- package/packs/software-delivery/src/state/wu-paths.ts +381 -0
- package/packs/software-delivery/src/state/wu-schema.ts +1139 -0
- package/packs/software-delivery/src/state/wu-state-schema.ts +255 -0
- package/packs/software-delivery/src/state/wu-yaml.ts +338 -0
- package/packs/software-delivery/src/types.d.ts +16 -0
- package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +18 -0
- package/packs/software-delivery/tsconfig.json +28 -2
- package/templates/core/AGENTS.md.template +76 -17
- package/templates/core/LUMENFLOW.md.template +265 -66
- package/templates/core/_frameworks/lumenflow/wu-sizing-guide.md.template +180 -116
- package/templates/core/ai/onboarding/agent-invocation-guide.md.template +26 -8
- package/templates/core/ai/onboarding/existing-project-bootstrap.md.template +171 -0
- package/templates/core/ai/onboarding/first-15-mins.md.template +3 -1
- package/templates/core/ai/onboarding/first-wu-mistakes.md.template +1 -1
- package/templates/core/ai/onboarding/initiative-orchestration.md.template +46 -30
- package/templates/core/ai/onboarding/quick-ref-commands.md.template +36 -33
- package/templates/core/ai/onboarding/release-process.md.template +8 -7
- package/templates/core/ai/onboarding/starting-prompt.md.template +2 -0
- package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +62 -0
- package/templates/vendors/claude/.claude/CLAUDE.md.template +29 -54
- package/templates/vendors/cursor/.cursor/rules/lumenflow.md.template +24 -52
- package/templates/vendors/windsurf/.windsurf/rules/lumenflow.md.template +24 -52
package/dist/mem-signal.js
CHANGED
|
@@ -25,6 +25,7 @@ import { EXIT_CODES, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
|
|
|
25
25
|
// WU-1456: Import shared validator for CLI/MCP parity
|
|
26
26
|
import { validateMemSignalArgs } from '@lumenflow/core/schemas/memory-arg-validators';
|
|
27
27
|
import { runCLI } from './cli-entry-point.js';
|
|
28
|
+
import { resolveActiveSessionTarget } from './session-cross-link.js';
|
|
28
29
|
/**
|
|
29
30
|
* Log prefix for mem:signal output
|
|
30
31
|
*/
|
|
@@ -47,6 +48,32 @@ const CLI_OPTIONS = {
|
|
|
47
48
|
flags: '-q, --quiet',
|
|
48
49
|
description: 'Suppress output except errors (outputs signal ID only)',
|
|
49
50
|
},
|
|
51
|
+
// WU-2755: ADR-014 extension 3 structured coordination fields.
|
|
52
|
+
role: {
|
|
53
|
+
name: 'role',
|
|
54
|
+
flags: '--role <descriptor>',
|
|
55
|
+
description: 'Sender ADR-014 role descriptor (e.g. "implementer/general")',
|
|
56
|
+
},
|
|
57
|
+
targetRole: {
|
|
58
|
+
name: 'targetRole',
|
|
59
|
+
flags: '--target-role <descriptor>',
|
|
60
|
+
description: 'Intended-recipient role descriptor (filter-able via mem:inbox)',
|
|
61
|
+
},
|
|
62
|
+
initiative: {
|
|
63
|
+
name: 'initiative',
|
|
64
|
+
flags: '--initiative <id>',
|
|
65
|
+
description: 'Initiative scope (e.g., INIT-060)',
|
|
66
|
+
},
|
|
67
|
+
delegationId: {
|
|
68
|
+
name: 'delegationId',
|
|
69
|
+
flags: '--delegation-id <id>',
|
|
70
|
+
description: 'Delegation registry linkage (dlg-XXXX)',
|
|
71
|
+
},
|
|
72
|
+
to: {
|
|
73
|
+
name: 'to',
|
|
74
|
+
flags: '--to <session_id|display_name>',
|
|
75
|
+
description: 'Address the signal to a live session by session ID or display name',
|
|
76
|
+
},
|
|
50
77
|
};
|
|
51
78
|
/**
|
|
52
79
|
* Write audit log entry for tool execution
|
|
@@ -69,7 +96,19 @@ async function writeAuditLog(baseDir, entry) {
|
|
|
69
96
|
/**
|
|
70
97
|
* Flags that expect a value argument
|
|
71
98
|
*/
|
|
72
|
-
const FLAGS_WITH_VALUES = new Set([
|
|
99
|
+
const FLAGS_WITH_VALUES = new Set([
|
|
100
|
+
'-m',
|
|
101
|
+
'--message',
|
|
102
|
+
'--wu',
|
|
103
|
+
'-l',
|
|
104
|
+
'--lane',
|
|
105
|
+
// WU-2755 structured coordination fields.
|
|
106
|
+
'--role',
|
|
107
|
+
'--target-role',
|
|
108
|
+
'--initiative',
|
|
109
|
+
'--delegation-id',
|
|
110
|
+
'--to',
|
|
111
|
+
]);
|
|
73
112
|
/**
|
|
74
113
|
* Extract positional arguments from argv (skipping flags and their values)
|
|
75
114
|
*
|
|
@@ -101,7 +140,18 @@ function parseArguments() {
|
|
|
101
140
|
const args = createWUParser({
|
|
102
141
|
name: 'mem-signal',
|
|
103
142
|
description: 'Send a coordination signal to other agents',
|
|
104
|
-
options: [
|
|
143
|
+
options: [
|
|
144
|
+
CLI_OPTIONS.message,
|
|
145
|
+
WU_OPTIONS.wu,
|
|
146
|
+
WU_OPTIONS.lane,
|
|
147
|
+
CLI_OPTIONS.quiet,
|
|
148
|
+
// WU-2755: ADR-014 extension 3 structured coordination fields.
|
|
149
|
+
CLI_OPTIONS.role,
|
|
150
|
+
CLI_OPTIONS.targetRole,
|
|
151
|
+
CLI_OPTIONS.initiative,
|
|
152
|
+
CLI_OPTIONS.delegationId,
|
|
153
|
+
CLI_OPTIONS.to,
|
|
154
|
+
],
|
|
105
155
|
required: [],
|
|
106
156
|
allowPositionalId: true,
|
|
107
157
|
});
|
|
@@ -133,6 +183,22 @@ function printSignalDetails(result) {
|
|
|
133
183
|
if (signal.lane) {
|
|
134
184
|
console.log(` Lane: ${signal.lane}`);
|
|
135
185
|
}
|
|
186
|
+
// WU-2755: surface ADR-014 extension 3 structured fields when populated.
|
|
187
|
+
if (signal.role) {
|
|
188
|
+
console.log(` Role: ${signal.role}`);
|
|
189
|
+
}
|
|
190
|
+
if (signal.target_role) {
|
|
191
|
+
console.log(` Target: ${signal.target_role}`);
|
|
192
|
+
}
|
|
193
|
+
if (signal.target_agent) {
|
|
194
|
+
console.log(` Target ID: ${signal.target_agent}`);
|
|
195
|
+
}
|
|
196
|
+
if (signal.initiative) {
|
|
197
|
+
console.log(` Initiative: ${signal.initiative}`);
|
|
198
|
+
}
|
|
199
|
+
if (signal.delegation_id) {
|
|
200
|
+
console.log(` Delegation: ${signal.delegation_id}`);
|
|
201
|
+
}
|
|
136
202
|
console.log('');
|
|
137
203
|
}
|
|
138
204
|
/**
|
|
@@ -149,6 +215,11 @@ export async function main() {
|
|
|
149
215
|
console.error('Options:');
|
|
150
216
|
console.error(' --wu <id> WU ID to scope signal to (e.g., WU-1473)');
|
|
151
217
|
console.error(' --lane <name> Lane to target signal to (e.g., "Operations: Tooling")');
|
|
218
|
+
console.error(' --role <text> Sender ADR-014 role descriptor');
|
|
219
|
+
console.error(' --target-role <text> Intended-recipient role descriptor');
|
|
220
|
+
console.error(' --initiative <id> Initiative scope (e.g., INIT-060)');
|
|
221
|
+
console.error(' --delegation-id <id> Delegation registry linkage (dlg-XXXX)');
|
|
222
|
+
console.error(' --to <target> Live session_id or display_name recipient');
|
|
152
223
|
console.error(' --quiet Suppress output except errors');
|
|
153
224
|
process.exit(EXIT_CODES.ERROR);
|
|
154
225
|
}
|
|
@@ -163,11 +234,27 @@ export async function main() {
|
|
|
163
234
|
const startTime = Date.now();
|
|
164
235
|
let result;
|
|
165
236
|
let error = null;
|
|
237
|
+
let resolvedTargetAgent;
|
|
238
|
+
let resolvedTargetDisplayName;
|
|
166
239
|
try {
|
|
240
|
+
if (args.to) {
|
|
241
|
+
const resolvedTarget = resolveActiveSessionTarget(baseDir, args.to);
|
|
242
|
+
if (!resolvedTarget) {
|
|
243
|
+
throw new Error(`No active session matches --to "${args.to}"`);
|
|
244
|
+
}
|
|
245
|
+
resolvedTargetAgent = resolvedTarget.sessionId;
|
|
246
|
+
resolvedTargetDisplayName = resolvedTarget.displayName;
|
|
247
|
+
}
|
|
167
248
|
result = await createSignal(baseDir, {
|
|
168
249
|
message,
|
|
169
250
|
wuId: args.wu,
|
|
170
251
|
lane: args.lane,
|
|
252
|
+
target_agent: resolvedTargetAgent,
|
|
253
|
+
// WU-2755 (ADR-014 extension 3): structured coordination axes.
|
|
254
|
+
role: args.role,
|
|
255
|
+
target_role: args.targetRole,
|
|
256
|
+
initiative: args.initiative,
|
|
257
|
+
delegation_id: args.delegationId,
|
|
171
258
|
});
|
|
172
259
|
}
|
|
173
260
|
catch (err) {
|
|
@@ -184,6 +271,13 @@ export async function main() {
|
|
|
184
271
|
message,
|
|
185
272
|
wuId: args.wu,
|
|
186
273
|
lane: args.lane,
|
|
274
|
+
to: args.to,
|
|
275
|
+
targetAgent: resolvedTargetAgent,
|
|
276
|
+
targetDisplayName: resolvedTargetDisplayName,
|
|
277
|
+
role: args.role,
|
|
278
|
+
targetRole: args.targetRole,
|
|
279
|
+
initiative: args.initiative,
|
|
280
|
+
delegationId: args.delegationId,
|
|
187
281
|
},
|
|
188
282
|
output: result
|
|
189
283
|
? {
|
|
@@ -191,6 +285,7 @@ export async function main() {
|
|
|
191
285
|
signalId: result.signal?.id,
|
|
192
286
|
wuId: result.signal?.wu_id,
|
|
193
287
|
lane: result.signal?.lane,
|
|
288
|
+
targetAgent: result.signal?.target_agent,
|
|
194
289
|
}
|
|
195
290
|
: null,
|
|
196
291
|
error: error ? { message: error } : null,
|
package/dist/mem-signal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mem-signal.js","sourceRoot":"","sources":["../src/mem-signal.ts"],"names":[],"mappings":";AACA,iCAAiC;AACjC,yCAAyC;AACzC;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC3E,sDAAsD;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"mem-signal.js","sourceRoot":"","sources":["../src/mem-signal.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics-cli.js
CHANGED
|
@@ -262,12 +262,13 @@ export function formatLanesOutput(lanes, format) {
|
|
|
262
262
|
export function formatDoraOutput(dora, format) {
|
|
263
263
|
if (format === 'table') {
|
|
264
264
|
const lines = [];
|
|
265
|
-
lines.push('DORA METRICS');
|
|
265
|
+
lines.push('DORA METRICS (2025 canonical 5-metric model)');
|
|
266
266
|
lines.push('═══════════════════════════════════════════════════════════════');
|
|
267
267
|
lines.push(`Deployment Frequency: ${dora.deploymentFrequency.deploysPerWeek}/week (${dora.deploymentFrequency.status})`);
|
|
268
268
|
lines.push(`Lead Time: ${dora.leadTimeForChanges.medianHours}h median (${dora.leadTimeForChanges.status})`);
|
|
269
|
+
lines.push(`Failed Deployment Recovery Time: ${dora.failedDeploymentRecoveryTime.medianHours}h median (${dora.failedDeploymentRecoveryTime.status})`);
|
|
269
270
|
lines.push(`Change Failure Rate: ${dora.changeFailureRate.failurePercentage}% (${dora.changeFailureRate.status})`);
|
|
270
|
-
lines.push(`
|
|
271
|
+
lines.push(`Deployment Rework Rate: ${dora.deploymentReworkRate.reworkPercentage}% (${dora.deploymentReworkRate.status})`);
|
|
271
272
|
return lines.join('\n');
|
|
272
273
|
}
|
|
273
274
|
return JSON.stringify(dora, null, 2);
|
package/dist/metrics-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-cli.js","sourceRoot":"","sources":["../src/metrics-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metrics-cli.js","sourceRoot":"","sources":["../src/metrics-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics-snapshot.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* @see {@link @lumenflow/metrics/flow/capture-metrics-snapshot}
|
|
19
19
|
*/
|
|
20
20
|
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
21
|
-
import { existsSync } from 'node:fs';
|
|
21
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
22
22
|
import { join, dirname } from 'node:path';
|
|
23
23
|
import fg from 'fast-glob';
|
|
24
24
|
import { parse as parseYaml } from 'yaml';
|
|
@@ -27,6 +27,7 @@ import { captureMetricsSnapshot, } from '@lumenflow/metrics';
|
|
|
27
27
|
import { getGitForCwd } from '@lumenflow/core/git-adapter';
|
|
28
28
|
import { die } from '@lumenflow/core/error-handler';
|
|
29
29
|
import { emitDoraTelemetry } from '@lumenflow/core/telemetry';
|
|
30
|
+
import { CONFIG_FILES, ENV_VARS } from '@lumenflow/core/wu-constants';
|
|
30
31
|
import { WU_PATHS } from '@lumenflow/core/wu-paths';
|
|
31
32
|
import { runCLI } from './cli-entry-point.js';
|
|
32
33
|
/** Log prefix for console output */
|
|
@@ -41,11 +42,19 @@ export const SKIP_GATES_AUDIT_FILENAME = 'skip-gates-audit.ndjson';
|
|
|
41
42
|
const SKIP_GATES_PATH = `.lumenflow/${SKIP_GATES_AUDIT_FILENAME}`;
|
|
42
43
|
/** Snapshot type options */
|
|
43
44
|
const SNAPSHOT_TYPES = ['all', 'dora', 'lanes', 'flow'];
|
|
45
|
+
/**
|
|
46
|
+
* Canonical DORA metric names emitted to `.lumenflow/telemetry/dora.ndjson`.
|
|
47
|
+
*
|
|
48
|
+
* WU-2635: 5-metric model per dora.dev (2025) + CDF Oct 2025 refresh.
|
|
49
|
+
* `dora.mttr_hours` has been retired in favour of `dora.failed_deployment_recovery_hours`.
|
|
50
|
+
* `dora.deployment_rework_rate_percent` is the new 5th metric.
|
|
51
|
+
*/
|
|
44
52
|
const DORA_METRIC = {
|
|
45
53
|
DEPLOYMENT_FREQUENCY: 'dora.deployment_frequency',
|
|
46
54
|
LEAD_TIME_HOURS: 'dora.lead_time_hours',
|
|
47
55
|
CFR_PERCENT: 'dora.cfr_percent',
|
|
48
|
-
|
|
56
|
+
FAILED_DEPLOYMENT_RECOVERY_HOURS: 'dora.failed_deployment_recovery_hours',
|
|
57
|
+
DEPLOYMENT_REWORK_RATE_PERCENT: 'dora.deployment_rework_rate_percent',
|
|
49
58
|
};
|
|
50
59
|
/**
|
|
51
60
|
* Parse command line arguments
|
|
@@ -218,40 +227,126 @@ async function loadSkipGatesEntries(baseDir) {
|
|
|
218
227
|
return [];
|
|
219
228
|
}
|
|
220
229
|
}
|
|
221
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Build the 5 canonical DORA telemetry records from a snapshot.
|
|
232
|
+
*
|
|
233
|
+
* Order follows the DORA 2025 grouping (throughput first, then instability):
|
|
234
|
+
* 1. deployment_frequency (throughput)
|
|
235
|
+
* 2. lead_time_hours (throughput, median-classified)
|
|
236
|
+
* 3. failed_deployment_recovery_hours (throughput, median-classified)
|
|
237
|
+
* 4. cfr_percent (instability)
|
|
238
|
+
* 5. deployment_rework_rate_percent (instability, added 2025)
|
|
239
|
+
*
|
|
240
|
+
* Each record carries the shared `tags` bag (if provided) merged with the canonical
|
|
241
|
+
* `source_type`, `calculated_by`, and `tier` keys. Empty/null/undefined tag values
|
|
242
|
+
* are dropped at the caller (see `buildDoraSnapshotTags`) so records never emit
|
|
243
|
+
* empty strings.
|
|
244
|
+
*/
|
|
245
|
+
export function buildDoraTelemetryRecords(snapshot, sharedTags = {}) {
|
|
222
246
|
if (!snapshot.dora) {
|
|
223
247
|
return [];
|
|
224
248
|
}
|
|
225
249
|
const { dora } = snapshot;
|
|
250
|
+
const withTags = (tier, extras = {}) => ({
|
|
251
|
+
source_type: 'dora',
|
|
252
|
+
calculated_by: 'metrics:snapshot',
|
|
253
|
+
...sharedTags,
|
|
254
|
+
tier,
|
|
255
|
+
...extras,
|
|
256
|
+
});
|
|
226
257
|
return [
|
|
227
258
|
{
|
|
228
259
|
metric: DORA_METRIC.DEPLOYMENT_FREQUENCY,
|
|
229
260
|
value: dora.deploymentFrequency.deploysPerWeek,
|
|
230
261
|
tier: dora.deploymentFrequency.status,
|
|
262
|
+
tags: withTags(dora.deploymentFrequency.status),
|
|
231
263
|
},
|
|
232
264
|
{
|
|
233
265
|
metric: DORA_METRIC.LEAD_TIME_HOURS,
|
|
234
|
-
value: dora.leadTimeForChanges.
|
|
266
|
+
value: dora.leadTimeForChanges.medianHours,
|
|
235
267
|
tier: dora.leadTimeForChanges.status,
|
|
268
|
+
tags: withTags(dora.leadTimeForChanges.status, {
|
|
269
|
+
aggregation: 'median',
|
|
270
|
+
mean_hours: dora.leadTimeForChanges.averageHours,
|
|
271
|
+
p90_hours: dora.leadTimeForChanges.p90Hours,
|
|
272
|
+
}),
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
metric: DORA_METRIC.FAILED_DEPLOYMENT_RECOVERY_HOURS,
|
|
276
|
+
value: dora.failedDeploymentRecoveryTime.medianHours,
|
|
277
|
+
tier: dora.failedDeploymentRecoveryTime.status,
|
|
278
|
+
tags: withTags(dora.failedDeploymentRecoveryTime.status, {
|
|
279
|
+
aggregation: 'median',
|
|
280
|
+
mean_hours: dora.failedDeploymentRecoveryTime.averageHours,
|
|
281
|
+
p90_hours: dora.failedDeploymentRecoveryTime.p90Hours,
|
|
282
|
+
incidents: dora.failedDeploymentRecoveryTime.incidents,
|
|
283
|
+
}),
|
|
236
284
|
},
|
|
237
285
|
{
|
|
238
286
|
metric: DORA_METRIC.CFR_PERCENT,
|
|
239
287
|
value: dora.changeFailureRate.failurePercentage,
|
|
240
288
|
tier: dora.changeFailureRate.status,
|
|
289
|
+
tags: withTags(dora.changeFailureRate.status, {
|
|
290
|
+
failures: dora.changeFailureRate.failures,
|
|
291
|
+
total_deployments: dora.changeFailureRate.totalDeployments,
|
|
292
|
+
}),
|
|
241
293
|
},
|
|
242
294
|
{
|
|
243
|
-
metric: DORA_METRIC.
|
|
244
|
-
value: dora.
|
|
245
|
-
tier: dora.
|
|
295
|
+
metric: DORA_METRIC.DEPLOYMENT_REWORK_RATE_PERCENT,
|
|
296
|
+
value: dora.deploymentReworkRate.reworkPercentage,
|
|
297
|
+
tier: dora.deploymentReworkRate.status,
|
|
298
|
+
tags: withTags(dora.deploymentReworkRate.status, {
|
|
299
|
+
rework_commits: dora.deploymentReworkRate.reworkCommits,
|
|
300
|
+
total_deployments: dora.deploymentReworkRate.totalDeployments,
|
|
301
|
+
}),
|
|
246
302
|
},
|
|
247
303
|
];
|
|
248
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Maximum records per control-plane telemetry batch (WU-2635: asserted by
|
|
307
|
+
* buildDoraTelemetryBatches tests). Matches cloud-side ingress contract.
|
|
308
|
+
*/
|
|
309
|
+
export const DORA_BATCH_SIZE_LIMIT = 1000;
|
|
310
|
+
/**
|
|
311
|
+
* Split records into batches of at most `DORA_BATCH_SIZE_LIMIT` entries.
|
|
312
|
+
*
|
|
313
|
+
* metrics:snapshot emits exactly 5 records per run so this function returns
|
|
314
|
+
* a single batch in the common case; the function exists so we can assert
|
|
315
|
+
* batch-splitting behaviour for the >1000 record edge case (future work
|
|
316
|
+
* that replays historical NDJSON backlogs).
|
|
317
|
+
*/
|
|
318
|
+
export function buildDoraTelemetryBatches(records, batchSize = DORA_BATCH_SIZE_LIMIT) {
|
|
319
|
+
if (records.length === 0)
|
|
320
|
+
return [];
|
|
321
|
+
if (batchSize <= 0)
|
|
322
|
+
return [records.slice()];
|
|
323
|
+
const batches = [];
|
|
324
|
+
for (let i = 0; i < records.length; i += batchSize) {
|
|
325
|
+
batches.push(records.slice(i, i + batchSize));
|
|
326
|
+
}
|
|
327
|
+
return batches;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Emit DORA telemetry records for cloud sync.
|
|
331
|
+
*
|
|
332
|
+
* Caller provides the shared `tags` bag (built from git + workspace + env sources).
|
|
333
|
+
* In dry-run mode, no records are written and the NDJSON file is not touched.
|
|
334
|
+
*/
|
|
249
335
|
export function emitDoraTelemetryRecords(snapshot, options = {}) {
|
|
250
336
|
if (options.dryRun) {
|
|
251
337
|
return 0;
|
|
252
338
|
}
|
|
253
|
-
const records = buildDoraTelemetryRecords(snapshot);
|
|
254
|
-
const emitRecord = options.emitRecord ??
|
|
339
|
+
const records = buildDoraTelemetryRecords(snapshot, options.tags ?? {});
|
|
340
|
+
const emitRecord = options.emitRecord ??
|
|
341
|
+
((record) => {
|
|
342
|
+
const payload = {
|
|
343
|
+
metric: record.metric,
|
|
344
|
+
value: record.value,
|
|
345
|
+
tier: record.tier,
|
|
346
|
+
tags: record.tags,
|
|
347
|
+
};
|
|
348
|
+
emitDoraTelemetry(payload);
|
|
349
|
+
});
|
|
255
350
|
for (const record of records) {
|
|
256
351
|
emitRecord(record);
|
|
257
352
|
}
|
|
@@ -269,13 +364,14 @@ function formatSnapshot(snapshot, type) {
|
|
|
269
364
|
lines.push('');
|
|
270
365
|
if (snapshot.dora) {
|
|
271
366
|
lines.push('┌─────────────────────────────────────────────────────────────┐');
|
|
272
|
-
lines.push('│ DORA METRICS
|
|
367
|
+
lines.push('│ DORA METRICS (2025 canonical 5-metric model) │');
|
|
273
368
|
lines.push('├─────────────────────────────────────────────────────────────┤');
|
|
274
|
-
const { deploymentFrequency, leadTimeForChanges, changeFailureRate,
|
|
369
|
+
const { deploymentFrequency, leadTimeForChanges, changeFailureRate, failedDeploymentRecoveryTime, deploymentReworkRate, } = snapshot.dora;
|
|
275
370
|
lines.push(`│ Deployment Frequency: ${deploymentFrequency.deploysPerWeek}/week (${deploymentFrequency.status})`);
|
|
276
371
|
lines.push(`│ Lead Time: ${leadTimeForChanges.medianHours}h median (${leadTimeForChanges.status})`);
|
|
372
|
+
lines.push(`│ Failed Deployment Recovery Time: ${failedDeploymentRecoveryTime.medianHours}h median (${failedDeploymentRecoveryTime.status})`);
|
|
277
373
|
lines.push(`│ Change Failure Rate: ${changeFailureRate.failurePercentage}% (${changeFailureRate.status})`);
|
|
278
|
-
lines.push(`│
|
|
374
|
+
lines.push(`│ Deployment Rework Rate: ${deploymentReworkRate.reworkPercentage}% (${deploymentReworkRate.status})`);
|
|
279
375
|
lines.push('└─────────────────────────────────────────────────────────────┘');
|
|
280
376
|
lines.push('');
|
|
281
377
|
}
|
|
@@ -303,6 +399,165 @@ function formatSnapshot(snapshot, type) {
|
|
|
303
399
|
}
|
|
304
400
|
return lines.join('\n');
|
|
305
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* Regex parsing `owner/repo` from a git remote URL.
|
|
404
|
+
*
|
|
405
|
+
* Handles HTTPS (`https://host/owner/repo[.git]`), SSH (`git@host:owner/repo[.git]`),
|
|
406
|
+
* and `git://` forms. Drops the trailing `.git` suffix if present.
|
|
407
|
+
*/
|
|
408
|
+
const REMOTE_URL_REGEX = /[:/]([^/:]+\/[^/:]+?)(?:\.git)?\/?$/;
|
|
409
|
+
/**
|
|
410
|
+
* Parse a git remote URL into `owner/repo` form. Returns undefined for unparseable URLs.
|
|
411
|
+
*/
|
|
412
|
+
export function parseRepoFromRemoteUrl(remoteUrl) {
|
|
413
|
+
if (!remoteUrl || remoteUrl.trim().length === 0)
|
|
414
|
+
return undefined;
|
|
415
|
+
const match = REMOTE_URL_REGEX.exec(remoteUrl.trim());
|
|
416
|
+
if (!match?.[1])
|
|
417
|
+
return undefined;
|
|
418
|
+
const normalised = match[1].replace(/\.git$/, '');
|
|
419
|
+
// Owner/repo must contain a single slash — reject multi-segment accidental matches
|
|
420
|
+
if ((normalised.match(/\//g) ?? []).length !== 1)
|
|
421
|
+
return undefined;
|
|
422
|
+
return normalised;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Default git loader: uses `getGitForCwd()` for branch/SHA and the simple-git
|
|
426
|
+
* remote listing for the origin URL. Best-effort — returns undefined fields on failure.
|
|
427
|
+
*/
|
|
428
|
+
async function defaultLoadGitContext() {
|
|
429
|
+
const git = getGitForCwd();
|
|
430
|
+
const context = {};
|
|
431
|
+
try {
|
|
432
|
+
context.branch = await git.getCurrentBranch();
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
// best-effort
|
|
436
|
+
}
|
|
437
|
+
try {
|
|
438
|
+
const revParseFn = git.revParse;
|
|
439
|
+
if (revParseFn) {
|
|
440
|
+
const sha = await revParseFn.call(git, 'HEAD');
|
|
441
|
+
if (sha) {
|
|
442
|
+
context.commitSha = sha.trim();
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
catch {
|
|
447
|
+
// best-effort
|
|
448
|
+
}
|
|
449
|
+
try {
|
|
450
|
+
const remotesFn = git.listRemotes;
|
|
451
|
+
if (remotesFn) {
|
|
452
|
+
const remotes = await remotesFn.call(git);
|
|
453
|
+
const origin = remotes.find((r) => r.name === 'origin') ?? remotes[0];
|
|
454
|
+
const url = origin?.refs?.fetch;
|
|
455
|
+
if (url) {
|
|
456
|
+
const parsed = parseRepoFromRemoteUrl(url);
|
|
457
|
+
if (parsed)
|
|
458
|
+
context.repo = parsed;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
catch {
|
|
463
|
+
// best-effort
|
|
464
|
+
}
|
|
465
|
+
return context;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Default workspace loader: reads `service` and `environment` from workspace.yaml.
|
|
469
|
+
*
|
|
470
|
+
* Accepts either a top-level `service`/`environment` key or the same fields under
|
|
471
|
+
* `software_delivery.*` (best effort — matches the current config surface).
|
|
472
|
+
*/
|
|
473
|
+
function defaultLoadWorkspaceContext(baseDir) {
|
|
474
|
+
const workspacePath = join(baseDir, CONFIG_FILES.WORKSPACE_CONFIG);
|
|
475
|
+
if (!existsSync(workspacePath))
|
|
476
|
+
return {};
|
|
477
|
+
try {
|
|
478
|
+
const raw = readFileSync(workspacePath, 'utf-8');
|
|
479
|
+
const parsed = parseYaml(raw);
|
|
480
|
+
if (!parsed || typeof parsed !== 'object')
|
|
481
|
+
return {};
|
|
482
|
+
const sdRaw = Reflect.get(parsed, 'software_delivery');
|
|
483
|
+
const sd = sdRaw && typeof sdRaw === 'object' ? sdRaw : undefined;
|
|
484
|
+
const rawService = Reflect.get(parsed, 'service') ?? sd?.service;
|
|
485
|
+
const rawEnvironment = Reflect.get(parsed, 'environment') ?? sd?.environment;
|
|
486
|
+
const ctx = {};
|
|
487
|
+
if (typeof rawService === 'string' && rawService.trim().length > 0) {
|
|
488
|
+
ctx.service = rawService.trim();
|
|
489
|
+
}
|
|
490
|
+
if (typeof rawEnvironment === 'string' && rawEnvironment.trim().length > 0) {
|
|
491
|
+
ctx.environment = rawEnvironment.trim();
|
|
492
|
+
}
|
|
493
|
+
return ctx;
|
|
494
|
+
}
|
|
495
|
+
catch {
|
|
496
|
+
return {};
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Read a non-empty string from the env bag, or undefined.
|
|
501
|
+
*/
|
|
502
|
+
function readEnvString(env, ...keys) {
|
|
503
|
+
for (const key of keys) {
|
|
504
|
+
const value = env[key];
|
|
505
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
506
|
+
return value.trim();
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
return undefined;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Assemble the canonical DORA tag set for a snapshot run.
|
|
513
|
+
*
|
|
514
|
+
* Tag sources (omitted if missing — **never** emitted as empty strings):
|
|
515
|
+
* - `source_type` / `calculated_by` — always set by `buildDoraTelemetryRecords`
|
|
516
|
+
* - `repo`, `branch`, `commit_sha` — git adapter
|
|
517
|
+
* - `service`, `environment` — workspace.yaml (+ `LUMENFLOW_ENV` env fallback)
|
|
518
|
+
* - `snapshot_window` — `${days}d` from the CLI flag
|
|
519
|
+
* - `pipeline` — CI_PIPELINE_NAME, fallback GITHUB_WORKFLOW
|
|
520
|
+
* - `deploy_target` — DEPLOY_TARGET
|
|
521
|
+
* - `workflow_run_id` — GITHUB_RUN_ID, fallback CI_PIPELINE_ID
|
|
522
|
+
*
|
|
523
|
+
* All tag values are primitives; numeric fields (e.g. derived ones from
|
|
524
|
+
* buildDoraTelemetryRecords) stay numeric.
|
|
525
|
+
*/
|
|
526
|
+
export async function buildDoraSnapshotTags(input) {
|
|
527
|
+
const env = input.env ?? process.env;
|
|
528
|
+
const gitLoader = input.gitInfoLoader ?? defaultLoadGitContext;
|
|
529
|
+
const workspaceLoader = input.workspaceLoader ?? (() => defaultLoadWorkspaceContext(input.baseDir));
|
|
530
|
+
const [git, workspace] = await Promise.all([
|
|
531
|
+
Promise.resolve().then(() => gitLoader()),
|
|
532
|
+
Promise.resolve(workspaceLoader()),
|
|
533
|
+
]);
|
|
534
|
+
const tags = {};
|
|
535
|
+
if (git.repo)
|
|
536
|
+
tags.repo = git.repo;
|
|
537
|
+
if (git.branch)
|
|
538
|
+
tags.branch = git.branch;
|
|
539
|
+
if (git.commitSha)
|
|
540
|
+
tags.commit_sha = git.commitSha;
|
|
541
|
+
if (workspace.service) {
|
|
542
|
+
tags.service = workspace.service;
|
|
543
|
+
}
|
|
544
|
+
const environment = workspace.environment ?? readEnvString(env, ENV_VARS.ENVIRONMENT);
|
|
545
|
+
if (environment)
|
|
546
|
+
tags.environment = environment;
|
|
547
|
+
if (Number.isFinite(input.days) && input.days > 0) {
|
|
548
|
+
tags.snapshot_window = `${Math.trunc(input.days)}d`;
|
|
549
|
+
}
|
|
550
|
+
const pipeline = readEnvString(env, 'CI_PIPELINE_NAME', 'GITHUB_WORKFLOW');
|
|
551
|
+
if (pipeline)
|
|
552
|
+
tags.pipeline = pipeline;
|
|
553
|
+
const deployTarget = readEnvString(env, 'DEPLOY_TARGET');
|
|
554
|
+
if (deployTarget)
|
|
555
|
+
tags.deploy_target = deployTarget;
|
|
556
|
+
const workflowRunId = readEnvString(env, 'GITHUB_RUN_ID', 'CI_PIPELINE_ID');
|
|
557
|
+
if (workflowRunId)
|
|
558
|
+
tags.workflow_run_id = workflowRunId;
|
|
559
|
+
return tags;
|
|
560
|
+
}
|
|
306
561
|
/**
|
|
307
562
|
* Main function
|
|
308
563
|
*/
|
|
@@ -338,9 +593,12 @@ export async function main() {
|
|
|
338
593
|
type,
|
|
339
594
|
};
|
|
340
595
|
const snapshot = captureMetricsSnapshot(input);
|
|
341
|
-
//
|
|
596
|
+
// WU-2635: enrich every DORA record with canonical CI/git/service tags so the
|
|
597
|
+
// control plane can slice dashboards per service, pipeline, environment, etc.
|
|
598
|
+
const doraTags = await buildDoraSnapshotTags({ baseDir, days });
|
|
342
599
|
const emittedDoraRecords = emitDoraTelemetryRecords(snapshot, {
|
|
343
600
|
dryRun: Boolean(opts.dryRun),
|
|
601
|
+
tags: doraTags,
|
|
344
602
|
});
|
|
345
603
|
if (emittedDoraRecords > 0) {
|
|
346
604
|
console.log(`${LOG_PREFIX} Emitted ${emittedDoraRecords} DORA telemetry records for cloud sync`);
|