@lumenflow/cli 5.3.2 → 5.5.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 +20 -18
- package/dist/agent-session.js +21 -0
- package/dist/agent-session.js.map +1 -1
- package/dist/commands/integrate.js +25 -1
- package/dist/commands/integrate.js.map +1 -1
- package/dist/gate-defaults.js +154 -9
- package/dist/gate-defaults.js.map +1 -1
- package/dist/gate-registry.js.map +1 -1
- package/dist/gates-runners.js +358 -0
- package/dist/gates-runners.js.map +1 -1
- package/dist/gates.js +347 -3
- package/dist/gates.js.map +1 -1
- package/dist/hooks/enforcement-generator.js +14 -8
- package/dist/hooks/enforcement-generator.js.map +1 -1
- package/dist/hooks/enforcement-sync.js +2 -1
- package/dist/hooks/enforcement-sync.js.map +1 -1
- package/dist/hooks/generators/index.js +1 -0
- package/dist/hooks/generators/index.js.map +1 -1
- package/dist/hooks/generators/signal-received.js +4 -0
- package/dist/hooks/generators/signal-received.js.map +1 -0
- package/dist/mem-converged.js +101 -0
- package/dist/mem-converged.js.map +1 -0
- package/dist/mem-inbox.js +85 -22
- package/dist/mem-inbox.js.map +1 -1
- package/dist/mem-roster.js +11 -1
- package/dist/mem-roster.js.map +1 -1
- package/dist/mem-signal.js +162 -16
- package/dist/mem-signal.js.map +1 -1
- package/dist/mem-watch.js +207 -0
- package/dist/mem-watch.js.map +1 -0
- package/dist/metrics-cli.js +19 -2
- package/dist/metrics-cli.js.map +1 -1
- package/dist/metrics-snapshot.js +25 -2
- package/dist/metrics-snapshot.js.map +1 -1
- package/dist/public-manifest.js +14 -0
- package/dist/public-manifest.js.map +1 -1
- package/dist/session-cross-link.js +14 -2
- package/dist/session-cross-link.js.map +1 -1
- package/dist/sidecar-manager.js +25 -0
- package/dist/sidecar-manager.js.map +1 -1
- package/dist/signal-hook.js +351 -0
- package/dist/signal-hook.js.map +1 -0
- package/dist/wu-done-gates.js +112 -3
- package/dist/wu-done-gates.js.map +1 -1
- package/dist/wu-done.js +30 -6
- package/dist/wu-done.js.map +1 -1
- package/dist/wu-prep.js +185 -2
- package/dist/wu-prep.js.map +1 -1
- package/dist/wu-spawn-prompt-builders.js.map +1 -1
- package/dist/wu-spawn-strategy-resolver.js +46 -4
- package/dist/wu-spawn-strategy-resolver.js.map +1 -1
- package/package.json +13 -11
- package/packs/agent-runtime/auto-session-integration.ts +14 -0
- package/packs/agent-runtime/package.json +1 -1
- package/packs/agent-runtime/session-schema.ts +44 -0
- package/packs/sidekick/package.json +1 -1
- package/packs/software-delivery/manifest.ts +3 -0
- package/packs/software-delivery/manifest.yaml +7 -0
- package/packs/software-delivery/package.json +1 -1
- package/packs/software-delivery/src/constants/wu-cli-constants.ts +12 -0
- package/packs/software-delivery/tool-impl/memory-tools.ts +56 -1
- package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +1 -0
- package/templates/core/AGENTS.md.template +98 -8
- package/templates/core/LUMENFLOW.md.template +197 -19
- package/templates/core/ai/onboarding/agent-invocation-guide.md.template +0 -5
- package/templates/core/ai/onboarding/agent-safety-card.md.template +63 -1
- package/templates/core/ai/onboarding/initiative-orchestration.md.template +4 -0
- package/templates/core/ai/onboarding/release-process.md.template +7 -7
- package/templates/core/ai/onboarding/vendor-support.md.template +74 -10
- package/templates/vendors/claude/.claude/skills/frontend-design/SKILL.md.template +1 -1
- package/templates/vendors/claude/.claude/skills/wu-lifecycle/SKILL.md.template +28 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
3
|
+
// SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
|
|
4
|
+
import fs from 'node:fs/promises';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { A2ASignalV1Schema } from '@lumenflow/control-plane-sdk/a2a';
|
|
7
|
+
import { CLAUDE_HOOKS, ENV_VARS, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
|
|
8
|
+
import { runCLI } from './cli-entry-point.js';
|
|
9
|
+
import { collectActiveSessionRecords } from './session-cross-link.js';
|
|
10
|
+
export const SIGNAL_HOOK_EVENT_NAME = 'signal:received';
|
|
11
|
+
export const SIGNAL_HOOK_QUEUE_DIR = path.join(LUMENFLOW_PATHS.STATE_DIR, 'signal-hooks');
|
|
12
|
+
export const SIGNAL_RECEIVED_HOOK_SCRIPT = CLAUDE_HOOKS.SCRIPTS.SIGNAL_RECEIVED;
|
|
13
|
+
const SESSION_CURRENT_FILE = LUMENFLOW_PATHS.SESSION_CURRENT;
|
|
14
|
+
const INTERRUPT_RANK = {
|
|
15
|
+
urgent: 3,
|
|
16
|
+
immediate: 3,
|
|
17
|
+
priority: 2,
|
|
18
|
+
soon: 2,
|
|
19
|
+
advisory: 1,
|
|
20
|
+
};
|
|
21
|
+
function sanitizeQueueName(sessionId) {
|
|
22
|
+
return sessionId.replace(/[^A-Za-z0-9_.:-]/g, '_');
|
|
23
|
+
}
|
|
24
|
+
function nonEmptyString(value) {
|
|
25
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
26
|
+
}
|
|
27
|
+
function sessionIdentities(session) {
|
|
28
|
+
return [session.session_id, session.agent_identity, session.display_name].filter((value) => typeof value === 'string' && value.length > 0);
|
|
29
|
+
}
|
|
30
|
+
function identityForReceipt(session) {
|
|
31
|
+
return session.agent_identity ?? session.session_id ?? session.wu_id;
|
|
32
|
+
}
|
|
33
|
+
function normalizeOrigin(origin) {
|
|
34
|
+
return origin === 'remote' ? 'remote' : 'local';
|
|
35
|
+
}
|
|
36
|
+
function normalizeRecipients(signal) {
|
|
37
|
+
if (signal.recipients && signal.recipients.length > 0) {
|
|
38
|
+
return Array.from(new Set(signal.recipients.map((recipient) => recipient.trim()).filter(Boolean)));
|
|
39
|
+
}
|
|
40
|
+
return signal.target_agent ? [signal.target_agent] : [];
|
|
41
|
+
}
|
|
42
|
+
function matchesRecipient(session, recipients) {
|
|
43
|
+
const identitySet = new Set(sessionIdentities(session));
|
|
44
|
+
return recipients.some((recipient) => identitySet.has(recipient));
|
|
45
|
+
}
|
|
46
|
+
function eventSortRank(event) {
|
|
47
|
+
return INTERRUPT_RANK[event.signal.interrupt_class ?? 'advisory'] ?? 0;
|
|
48
|
+
}
|
|
49
|
+
function parseEvent(line) {
|
|
50
|
+
try {
|
|
51
|
+
const parsed = JSON.parse(line);
|
|
52
|
+
if (parsed.event !== SIGNAL_HOOK_EVENT_NAME ||
|
|
53
|
+
parsed.schema_version !== 'A2A.V1' ||
|
|
54
|
+
typeof parsed.signal_id !== 'string' ||
|
|
55
|
+
typeof parsed.recipient_session_id !== 'string' ||
|
|
56
|
+
typeof parsed.recipient_identity !== 'string' ||
|
|
57
|
+
typeof parsed.dedupe_key !== 'string') {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
A2ASignalV1Schema.parse(parsed.signal);
|
|
61
|
+
return parsed;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function buildDedupeKey(signal, session) {
|
|
68
|
+
const sessionId = session.session_id ?? identityForReceipt(session);
|
|
69
|
+
return `${sessionId}:${signal.idempotency_key ?? signal.signal_id}`;
|
|
70
|
+
}
|
|
71
|
+
function buildDeliveryId(dedupeKey) {
|
|
72
|
+
return `sigdel-${Buffer.from(dedupeKey).toString('base64url').slice(0, 16)}`;
|
|
73
|
+
}
|
|
74
|
+
function buildNextAction(signal) {
|
|
75
|
+
if (signal.requires_ack !== true) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const scope = signal.wu_id ? ` --wu ${signal.wu_id}` : '';
|
|
79
|
+
return {
|
|
80
|
+
requires_ack: true,
|
|
81
|
+
reply_to: signal.signal_id,
|
|
82
|
+
ack_command: `pnpm mem:signal 'Agreed'${scope} --reply-to ${signal.signal_id} --intent AGREE`,
|
|
83
|
+
reject_command: `pnpm mem:signal 'Rejected: <reason>'${scope} --reply-to ${signal.signal_id} --intent REJECT`,
|
|
84
|
+
prep_gate: 'wu:prep blocks until this signal is answered with AGREE or REJECT.',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function buildEvent(signal, session, deliveredAt) {
|
|
88
|
+
const sessionId = session.session_id;
|
|
89
|
+
if (!sessionId) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const dedupeKey = buildDedupeKey(signal, session);
|
|
93
|
+
const nextAction = buildNextAction(signal);
|
|
94
|
+
return {
|
|
95
|
+
event: SIGNAL_HOOK_EVENT_NAME,
|
|
96
|
+
schema_version: 'A2A.V1',
|
|
97
|
+
signal,
|
|
98
|
+
signal_id: signal.signal_id,
|
|
99
|
+
recipient_session_id: sessionId,
|
|
100
|
+
recipient_identity: identityForReceipt(session),
|
|
101
|
+
...(session.display_name ? { recipient_display_name: session.display_name } : {}),
|
|
102
|
+
delivered_at: deliveredAt,
|
|
103
|
+
delivery_id: buildDeliveryId(dedupeKey),
|
|
104
|
+
dedupe_key: dedupeKey,
|
|
105
|
+
...(nextAction ? { next_action: nextAction } : {}),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function getSignalHookQueuePath(baseDir, sessionId) {
|
|
109
|
+
return path.join(baseDir, SIGNAL_HOOK_QUEUE_DIR, `${sanitizeQueueName(sessionId)}.jsonl`);
|
|
110
|
+
}
|
|
111
|
+
export function buildA2ASignalForHook(signal) {
|
|
112
|
+
const payload = {
|
|
113
|
+
schema_version: 'A2A.V1',
|
|
114
|
+
signal_id: signal.signal_id ?? signal.id,
|
|
115
|
+
sender_identity: signal.sender_identity ?? signal.sender ?? 'system',
|
|
116
|
+
recipients: normalizeRecipients(signal),
|
|
117
|
+
message: signal.message,
|
|
118
|
+
created_at: signal.created_at,
|
|
119
|
+
origin: normalizeOrigin(signal.origin),
|
|
120
|
+
};
|
|
121
|
+
if (signal.workspace_id)
|
|
122
|
+
payload.workspace_id = signal.workspace_id;
|
|
123
|
+
if (signal.thread_id)
|
|
124
|
+
payload.thread_id = signal.thread_id;
|
|
125
|
+
if (signal.reply_to)
|
|
126
|
+
payload.reply_to = signal.reply_to;
|
|
127
|
+
if (signal.intent)
|
|
128
|
+
payload.intent = signal.intent;
|
|
129
|
+
if (signal.interrupt_class)
|
|
130
|
+
payload.interrupt_class = signal.interrupt_class;
|
|
131
|
+
if (signal.requires_ack !== undefined)
|
|
132
|
+
payload.requires_ack = signal.requires_ack;
|
|
133
|
+
if (signal.idempotency_key)
|
|
134
|
+
payload.idempotency_key = signal.idempotency_key;
|
|
135
|
+
if (signal.wu_id)
|
|
136
|
+
payload.wu_id = signal.wu_id;
|
|
137
|
+
if (signal.initiative)
|
|
138
|
+
payload.initiative = signal.initiative;
|
|
139
|
+
if (signal.lane)
|
|
140
|
+
payload.lane = signal.lane;
|
|
141
|
+
if (signal.role)
|
|
142
|
+
payload.role = signal.role;
|
|
143
|
+
if (signal.target_role)
|
|
144
|
+
payload.target_role = signal.target_role;
|
|
145
|
+
if (signal.delegation_id)
|
|
146
|
+
payload.delegation_id = signal.delegation_id;
|
|
147
|
+
if (signal.target_agent)
|
|
148
|
+
payload.target_agent = signal.target_agent;
|
|
149
|
+
return A2ASignalV1Schema.parse(payload);
|
|
150
|
+
}
|
|
151
|
+
export async function readPendingSignalReceivedEvents(baseDir, sessionId) {
|
|
152
|
+
const queuePath = getSignalHookQueuePath(baseDir, sessionId);
|
|
153
|
+
try {
|
|
154
|
+
const content = await fs.readFile(queuePath, 'utf-8');
|
|
155
|
+
return content
|
|
156
|
+
.split('\n')
|
|
157
|
+
.map((line) => line.trim())
|
|
158
|
+
.filter((line) => line.length > 0)
|
|
159
|
+
.map(parseEvent)
|
|
160
|
+
.filter((event) => event !== null)
|
|
161
|
+
.sort((left, right) => {
|
|
162
|
+
const rankDelta = eventSortRank(right) - eventSortRank(left);
|
|
163
|
+
if (rankDelta !== 0)
|
|
164
|
+
return rankDelta;
|
|
165
|
+
return left.delivered_at.localeCompare(right.delivered_at);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
if (error.code === 'ENOENT') {
|
|
170
|
+
return [];
|
|
171
|
+
}
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async function appendEventIfMissing(baseDir, event) {
|
|
176
|
+
const queuePath = getSignalHookQueuePath(baseDir, event.recipient_session_id);
|
|
177
|
+
const existing = await readPendingSignalReceivedEvents(baseDir, event.recipient_session_id);
|
|
178
|
+
if (existing.some((candidate) => candidate.dedupe_key === event.dedupe_key)) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
await fs.mkdir(path.dirname(queuePath), { recursive: true });
|
|
182
|
+
await fs.appendFile(queuePath, `${JSON.stringify(event)}\n`, 'utf-8');
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
export async function dispatchSignalReceivedEvents(baseDir, options) {
|
|
186
|
+
const parsedSignal = A2ASignalV1Schema.parse(options.signal);
|
|
187
|
+
const recipients = parsedSignal.recipients ?? [];
|
|
188
|
+
if (recipients.length === 0) {
|
|
189
|
+
return { emittedCount: 0, skippedDuplicateCount: 0, inactiveRecipientCount: 0 };
|
|
190
|
+
}
|
|
191
|
+
const deliveredAt = options.deliveredAt ?? new Date().toISOString();
|
|
192
|
+
const activeSessions = collectActiveSessionRecords(baseDir);
|
|
193
|
+
const allRecipientMatches = activeSessions.filter((session) => matchesRecipient(session, recipients));
|
|
194
|
+
const recipientMatches = options.recipientSessionId
|
|
195
|
+
? allRecipientMatches.filter((session) => sessionIdentities(session).includes(options.recipientSessionId ?? ''))
|
|
196
|
+
: allRecipientMatches;
|
|
197
|
+
let emittedCount = 0;
|
|
198
|
+
let skippedDuplicateCount = 0;
|
|
199
|
+
for (const session of recipientMatches) {
|
|
200
|
+
const event = buildEvent(parsedSignal, session, deliveredAt);
|
|
201
|
+
if (!event) {
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (await appendEventIfMissing(baseDir, event)) {
|
|
205
|
+
emittedCount += 1;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
skippedDuplicateCount += 1;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const activeRecipientIds = new Set(allRecipientMatches.flatMap((session) => sessionIdentities(session)));
|
|
212
|
+
const inactiveRecipientCount = recipients.filter((recipient) => !activeRecipientIds.has(recipient)).length;
|
|
213
|
+
return { emittedCount, skippedDuplicateCount, inactiveRecipientCount };
|
|
214
|
+
}
|
|
215
|
+
async function resolveCurrentSessionId(baseDir) {
|
|
216
|
+
const envSessionId = nonEmptyString(process.env[ENV_VARS.AGENT_SESSION]);
|
|
217
|
+
if (envSessionId) {
|
|
218
|
+
return envSessionId;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
const content = await fs.readFile(path.join(baseDir, SESSION_CURRENT_FILE), 'utf-8');
|
|
222
|
+
const parsed = JSON.parse(content);
|
|
223
|
+
return nonEmptyString(parsed.session_id);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
export async function drainSignalReceivedEvents(baseDir, sessionId) {
|
|
230
|
+
const resolvedSessionId = sessionId ?? (await resolveCurrentSessionId(baseDir));
|
|
231
|
+
if (!resolvedSessionId) {
|
|
232
|
+
return [];
|
|
233
|
+
}
|
|
234
|
+
const events = await readPendingSignalReceivedEvents(baseDir, resolvedSessionId);
|
|
235
|
+
if (events.length > 0) {
|
|
236
|
+
await fs.rm(getSignalHookQueuePath(baseDir, resolvedSessionId), { force: true });
|
|
237
|
+
}
|
|
238
|
+
return events;
|
|
239
|
+
}
|
|
240
|
+
export function formatClaudeSignalReceivedPrompt(events) {
|
|
241
|
+
if (events.length === 0) {
|
|
242
|
+
return '';
|
|
243
|
+
}
|
|
244
|
+
const lines = [
|
|
245
|
+
'<lumenflow-signal-events>',
|
|
246
|
+
'Unread A2A signal:received events arrived for this session. Treat each directed signal as a decision point before continuing.',
|
|
247
|
+
];
|
|
248
|
+
for (const event of events) {
|
|
249
|
+
const signal = event.signal;
|
|
250
|
+
lines.push('');
|
|
251
|
+
lines.push(`- signal_id: ${signal.signal_id}`);
|
|
252
|
+
lines.push(` sender: ${signal.sender_identity}`);
|
|
253
|
+
lines.push(` intent: ${signal.intent ?? 'INFO'}`);
|
|
254
|
+
lines.push(` interrupt_class: ${signal.interrupt_class ?? 'advisory'}`);
|
|
255
|
+
lines.push(` requires_ack: ${signal.requires_ack === true ? 'true' : 'false'}`);
|
|
256
|
+
if (signal.wu_id)
|
|
257
|
+
lines.push(` wu: ${signal.wu_id}`);
|
|
258
|
+
if (signal.thread_id)
|
|
259
|
+
lines.push(` thread: ${signal.thread_id}`);
|
|
260
|
+
lines.push(` message: ${signal.message}`);
|
|
261
|
+
if (event.next_action) {
|
|
262
|
+
lines.push(' next_action:');
|
|
263
|
+
lines.push(` ack: ${event.next_action.ack_command}`);
|
|
264
|
+
lines.push(` reject: ${event.next_action.reject_command}`);
|
|
265
|
+
lines.push(` gate: ${event.next_action.prep_gate}`);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
lines.push('</lumenflow-signal-events>');
|
|
269
|
+
return lines.join('\n');
|
|
270
|
+
}
|
|
271
|
+
export function generateSignalReceivedHookScript() {
|
|
272
|
+
const agentSessionEnvVar = ENV_VARS.AGENT_SESSION;
|
|
273
|
+
/* eslint-disable no-useless-escape */
|
|
274
|
+
return `#!/bin/bash
|
|
275
|
+
#
|
|
276
|
+
# signal-received.sh (WU-2921)
|
|
277
|
+
#
|
|
278
|
+
# Claude Code PostToolUse hook for A2A signal:received delivery.
|
|
279
|
+
# Drains pending events for the current session and prints a structured
|
|
280
|
+
# prompt prefix for Claude at the next safe tool boundary.
|
|
281
|
+
#
|
|
282
|
+
# Exit codes:
|
|
283
|
+
# 0 = Always (signal delivery is fail-open)
|
|
284
|
+
#
|
|
285
|
+
|
|
286
|
+
set +e
|
|
287
|
+
|
|
288
|
+
HOOK_EVENT="\${hook_event_name:-PostToolUse}"
|
|
289
|
+
if [[ "$HOOK_EVENT" != "PostToolUse" ]]; then
|
|
290
|
+
exit 0
|
|
291
|
+
fi
|
|
292
|
+
|
|
293
|
+
if [[ -z "\${CLAUDE_PROJECT_DIR:-}" ]]; then
|
|
294
|
+
exit 0
|
|
295
|
+
fi
|
|
296
|
+
|
|
297
|
+
REPO_PATH="$CLAUDE_PROJECT_DIR"
|
|
298
|
+
HOOK_ENTRY="$REPO_PATH/node_modules/@lumenflow/cli/dist/signal-hook.js"
|
|
299
|
+
|
|
300
|
+
if [[ ! -f "$HOOK_ENTRY" && -f "$REPO_PATH/packages/@lumenflow/cli/dist/signal-hook.js" ]]; then
|
|
301
|
+
HOOK_ENTRY="$REPO_PATH/packages/@lumenflow/cli/dist/signal-hook.js"
|
|
302
|
+
fi
|
|
303
|
+
|
|
304
|
+
if [[ ! -f "$HOOK_ENTRY" ]]; then
|
|
305
|
+
exit 0
|
|
306
|
+
fi
|
|
307
|
+
|
|
308
|
+
SESSION_ARGS=()
|
|
309
|
+
if [[ -n "\${${agentSessionEnvVar}:-}" ]]; then
|
|
310
|
+
SESSION_ARGS=(--session "$${agentSessionEnvVar}")
|
|
311
|
+
fi
|
|
312
|
+
|
|
313
|
+
node "$HOOK_ENTRY" drain --project "$REPO_PATH" "\${SESSION_ARGS[@]}" 2>/dev/null || true
|
|
314
|
+
exit 0
|
|
315
|
+
`;
|
|
316
|
+
/* eslint-enable no-useless-escape */
|
|
317
|
+
}
|
|
318
|
+
function parseDrainArgs(argv) {
|
|
319
|
+
const [, , command, ...rest] = argv;
|
|
320
|
+
const result = {
|
|
321
|
+
command,
|
|
322
|
+
project: process.cwd(),
|
|
323
|
+
};
|
|
324
|
+
for (let index = 0; index < rest.length; index += 1) {
|
|
325
|
+
const arg = rest[index];
|
|
326
|
+
if (arg === '--project' && rest[index + 1]) {
|
|
327
|
+
result.project = rest[index + 1];
|
|
328
|
+
index += 1;
|
|
329
|
+
}
|
|
330
|
+
else if (arg === '--session' && rest[index + 1]) {
|
|
331
|
+
result.session = rest[index + 1];
|
|
332
|
+
index += 1;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return result;
|
|
336
|
+
}
|
|
337
|
+
export async function main() {
|
|
338
|
+
const args = parseDrainArgs(process.argv);
|
|
339
|
+
if (args.command !== 'drain') {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
const events = await drainSignalReceivedEvents(args.project, args.session);
|
|
343
|
+
const prompt = formatClaudeSignalReceivedPrompt(events);
|
|
344
|
+
if (prompt) {
|
|
345
|
+
console.log(prompt);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (import.meta.main) {
|
|
349
|
+
void runCLI(main, { commandName: 'signal-hook' });
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=signal-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-hook.js","sourceRoot":"","sources":["../src/signal-hook.ts"],"names":[],"mappings":"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"}
|
package/dist/wu-done-gates.js
CHANGED
|
@@ -64,8 +64,43 @@ function checkNodeModulesStaleness(worktreePath) {
|
|
|
64
64
|
/**
|
|
65
65
|
* WU-2165: Run gates in the lane worktree.
|
|
66
66
|
*/
|
|
67
|
+
/**
|
|
68
|
+
* WU-2925: Normalize a CLI-style --skip-gate value into a deduplicated array.
|
|
69
|
+
*
|
|
70
|
+
* Accepts:
|
|
71
|
+
* - undefined / null → []
|
|
72
|
+
* - string → [value]
|
|
73
|
+
* - string[] → as-is (filtered to non-empty strings)
|
|
74
|
+
*
|
|
75
|
+
* Empty strings are dropped; duplicates are collapsed.
|
|
76
|
+
*/
|
|
77
|
+
export function normalizeSkipGateArg(value) {
|
|
78
|
+
if (value === undefined || value === null)
|
|
79
|
+
return [];
|
|
80
|
+
const list = Array.isArray(value) ? value : [value];
|
|
81
|
+
const out = [];
|
|
82
|
+
const seen = new Set();
|
|
83
|
+
for (const v of list) {
|
|
84
|
+
if (typeof v !== 'string')
|
|
85
|
+
continue;
|
|
86
|
+
const trimmed = v.trim();
|
|
87
|
+
if (!trimmed)
|
|
88
|
+
continue;
|
|
89
|
+
if (seen.has(trimmed))
|
|
90
|
+
continue;
|
|
91
|
+
seen.add(trimmed);
|
|
92
|
+
out.push(trimmed);
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
67
96
|
async function runGatesInWorktree(worktreePath, id, emitTelemetry, options = {}) {
|
|
68
|
-
const { isDocsOnly = false, docsOnly = false, scopedTestPaths } = options;
|
|
97
|
+
const { isDocsOnly = false, docsOnly = false, scopedTestPaths, skipGates } = options;
|
|
98
|
+
// WU-2926: Gate runtime distinguishes six states with stable glyphs/labels:
|
|
99
|
+
// ✅ PASSED ❌ FAILED 🚫 BLOCKED (missing-prereq, non-skippable)
|
|
100
|
+
// ⊘ AUTO-SKIPPED (not-applicable | missing-prereq) ⏭ SKIPPED-BY-AGENT
|
|
101
|
+
// Auto-skipped + blocked write audit NDJSON with discriminated source field;
|
|
102
|
+
// CFR/DORA filter on source: 'agent' so auto-skips and blocks never inflate
|
|
103
|
+
// change-failure-rate.
|
|
69
104
|
console.log(`\n${LOG_PREFIX.DONE} Running gates in worktree: ${worktreePath}`);
|
|
70
105
|
checkNodeModulesStaleness(worktreePath);
|
|
71
106
|
const useDocsOnlyGates = docsOnly || isDocsOnly;
|
|
@@ -82,6 +117,7 @@ async function runGatesInWorktree(worktreePath, id, emitTelemetry, options = {})
|
|
|
82
117
|
docsOnly: useDocsOnlyGates,
|
|
83
118
|
coverageMode: undefined,
|
|
84
119
|
scopedTestPaths,
|
|
120
|
+
skipGates,
|
|
85
121
|
}));
|
|
86
122
|
if (!ok) {
|
|
87
123
|
throw createError(ErrorCodes.GATES_FAILED, 'Gates failed');
|
|
@@ -167,6 +203,24 @@ export async function executeGates({ id, args, isBranchOnly, isDocsOnly, worktre
|
|
|
167
203
|
// WU-2888: Audit-trail line in the format reviewers expect.
|
|
168
204
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} ${CHECKPOINT_MESSAGES.REUSING_PREP_CHECKPOINT} at ${skipResult.checkpoint.gatesPassedAt} (gates skipped)`);
|
|
169
205
|
console.log(`${LOG_PREFIX.DONE} ${CHECKPOINT_MESSAGES.CHECKPOINT_LABEL}: ${skipResult.checkpoint.checkpointId}`);
|
|
206
|
+
// WU-2925: When the prep checkpoint records prep-side per-gate skips,
|
|
207
|
+
// write one audit row per skip with lifecycle: 'done' so the trail spans
|
|
208
|
+
// both lifecycle commands (prep authored, done finalised).
|
|
209
|
+
const prepSkippedGates = skipResult.checkpoint.skipped_gates;
|
|
210
|
+
if (Array.isArray(prepSkippedGates) && prepSkippedGates.length > 0) {
|
|
211
|
+
for (const entry of prepSkippedGates) {
|
|
212
|
+
if (entry &&
|
|
213
|
+
typeof entry === 'object' &&
|
|
214
|
+
typeof entry.gate_name === 'string') {
|
|
215
|
+
const e = entry;
|
|
216
|
+
await dependencies.auditSkipGates(id, e.reason, e.fix_wu, worktreePath, {
|
|
217
|
+
gate: e.gate_name,
|
|
218
|
+
source: 'agent',
|
|
219
|
+
lifecycle: 'done',
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
170
224
|
dependencies.emitTelemetry({
|
|
171
225
|
script: TELEMETRY_STEPS.GATES,
|
|
172
226
|
wu_id: id,
|
|
@@ -174,6 +228,13 @@ export async function executeGates({ id, args, isBranchOnly, isDocsOnly, worktre
|
|
|
174
228
|
skipped: true,
|
|
175
229
|
reason: SKIP_GATES_REASONS.CHECKPOINT_VALID,
|
|
176
230
|
checkpoint_id: skipResult.checkpoint.checkpointId,
|
|
231
|
+
...(Array.isArray(prepSkippedGates) && prepSkippedGates.length > 0
|
|
232
|
+
? {
|
|
233
|
+
prep_skipped_gates: prepSkippedGates.map((e) => typeof e?.gate_name === 'string'
|
|
234
|
+
? e.gate_name
|
|
235
|
+
: ''),
|
|
236
|
+
}
|
|
237
|
+
: {}),
|
|
177
238
|
});
|
|
178
239
|
return gateResult;
|
|
179
240
|
}
|
|
@@ -281,13 +342,24 @@ export async function executeGates({ id, args, isBranchOnly, isDocsOnly, worktre
|
|
|
281
342
|
ok: true,
|
|
282
343
|
});
|
|
283
344
|
}
|
|
345
|
+
// WU-2925: Per-gate skip list (--skip-gate <name>, repeatable).
|
|
346
|
+
// Normalized array; empty when the flag wasn't passed.
|
|
347
|
+
const perGateSkipList = normalizeSkipGateArg(args.skipGate ?? args['skip-gate']);
|
|
284
348
|
if (args.skipGates) {
|
|
349
|
+
// Legacy --skip-gates (plural, no name): bypass all gates with deprecation warning.
|
|
285
350
|
console.log(`\n${EMOJI.WARNING} ${EMOJI.WARNING} ${EMOJI.WARNING} SKIP-GATES MODE ACTIVE ${EMOJI.WARNING} ${EMOJI.WARNING} ${EMOJI.WARNING}\n`);
|
|
351
|
+
console.log(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} --skip-gates is deprecated. Use --skip-gate <name> per gate. ` +
|
|
352
|
+
`See https://lumenflow.dev/reference/gates#per-gate-skip`);
|
|
286
353
|
console.log(`${LOG_PREFIX.DONE} Skipping gates check as requested`);
|
|
287
354
|
console.log(`${LOG_PREFIX.DONE} Reason: ${args.reason}`);
|
|
288
355
|
console.log(`${LOG_PREFIX.DONE} Fix WU: ${args.fixWu}`);
|
|
289
356
|
console.log(`${LOG_PREFIX.DONE} Worktree: ${worktreePath || 'Branch-Only mode (no worktree)'}`);
|
|
290
|
-
|
|
357
|
+
// WU-2925: legacy global skip writes audit with gate='*', source='agent', lifecycle='done'.
|
|
358
|
+
await dependencies.auditSkipGates(id, args.reason, args.fixWu, worktreePath, {
|
|
359
|
+
gate: '*',
|
|
360
|
+
source: 'agent',
|
|
361
|
+
lifecycle: 'done',
|
|
362
|
+
});
|
|
291
363
|
console.log('\n⚠️ Ensure test failures are truly pre-existing!\n');
|
|
292
364
|
dependencies.emitTelemetry({
|
|
293
365
|
script: 'wu-done',
|
|
@@ -296,6 +368,7 @@ export async function executeGates({ id, args, isBranchOnly, isDocsOnly, worktre
|
|
|
296
368
|
skipped: true,
|
|
297
369
|
reason: args.reason,
|
|
298
370
|
fix_wu: args.fixWu,
|
|
371
|
+
deprecated_flag: '--skip-gates',
|
|
299
372
|
});
|
|
300
373
|
}
|
|
301
374
|
else if (isBranchOnly) {
|
|
@@ -307,20 +380,38 @@ export async function executeGates({ id, args, isBranchOnly, isDocsOnly, worktre
|
|
|
307
380
|
console.log(`${LOG_PREFIX.DONE} (explicit --docs-only flag)`);
|
|
308
381
|
}
|
|
309
382
|
}
|
|
383
|
+
// WU-2925: Validate per-gate skips require --reason and --fix-wu, just like --skip-gates.
|
|
384
|
+
if (perGateSkipList.length > 0) {
|
|
385
|
+
if (!args.reason) {
|
|
386
|
+
die(`--skip-gate requires --reason "<explanation of why this gate is being skipped>"`);
|
|
387
|
+
}
|
|
388
|
+
if (!args.fixWu) {
|
|
389
|
+
die(`--skip-gate requires --fix-wu WU-{id} (the WU that will fix this gate)`);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
310
392
|
const startTime = Date.now();
|
|
311
393
|
try {
|
|
312
|
-
const ok = Boolean(await runGates({ docsOnly: useDocsOnlyGates }));
|
|
394
|
+
const ok = Boolean(await runGates({ docsOnly: useDocsOnlyGates, skipGates: perGateSkipList }));
|
|
313
395
|
if (!ok) {
|
|
314
396
|
throw createError(ErrorCodes.GATES_FAILED, 'Gates failed');
|
|
315
397
|
}
|
|
316
398
|
const duration = Date.now() - startTime;
|
|
317
399
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Gates passed in ${prettyMs(duration)}`);
|
|
400
|
+
// WU-2925: Write one audit row per --skip-gate after gates pass.
|
|
401
|
+
for (const gate of perGateSkipList) {
|
|
402
|
+
await dependencies.auditSkipGates(id, args.reason, args.fixWu, worktreePath, {
|
|
403
|
+
gate,
|
|
404
|
+
source: 'agent',
|
|
405
|
+
lifecycle: 'done',
|
|
406
|
+
});
|
|
407
|
+
}
|
|
318
408
|
dependencies.emitTelemetry({
|
|
319
409
|
script: 'wu-done',
|
|
320
410
|
wu_id: id,
|
|
321
411
|
step: 'gates',
|
|
322
412
|
ok: true,
|
|
323
413
|
duration_ms: duration,
|
|
414
|
+
...(perGateSkipList.length > 0 ? { skipped_gates: perGateSkipList } : {}),
|
|
324
415
|
});
|
|
325
416
|
}
|
|
326
417
|
catch {
|
|
@@ -343,11 +434,29 @@ export async function executeGates({ id, args, isBranchOnly, isDocsOnly, worktre
|
|
|
343
434
|
gateResult.fullGatesRanInCurrentRun = true;
|
|
344
435
|
}
|
|
345
436
|
else if (worktreePath && existsSync(worktreePath)) {
|
|
437
|
+
// WU-2925: Validate per-gate skips require --reason and --fix-wu.
|
|
438
|
+
if (perGateSkipList.length > 0) {
|
|
439
|
+
if (!args.reason) {
|
|
440
|
+
die(`--skip-gate requires --reason "<explanation of why this gate is being skipped>"`);
|
|
441
|
+
}
|
|
442
|
+
if (!args.fixWu) {
|
|
443
|
+
die(`--skip-gate requires --fix-wu WU-{id} (the WU that will fix this gate)`);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
346
446
|
await runGatesInWorktree(worktreePath, id, dependencies.emitTelemetry, {
|
|
347
447
|
isDocsOnly,
|
|
348
448
|
docsOnly: Boolean(args.docsOnly),
|
|
349
449
|
scopedTestPaths,
|
|
450
|
+
skipGates: perGateSkipList,
|
|
350
451
|
});
|
|
452
|
+
// WU-2925: Write per-gate audit rows after gates pass in worktree mode.
|
|
453
|
+
for (const gate of perGateSkipList) {
|
|
454
|
+
await dependencies.auditSkipGates(id, args.reason, args.fixWu, worktreePath, {
|
|
455
|
+
gate,
|
|
456
|
+
source: 'agent',
|
|
457
|
+
lifecycle: 'done',
|
|
458
|
+
});
|
|
459
|
+
}
|
|
351
460
|
gateResult.fullGatesRanInCurrentRun = true;
|
|
352
461
|
}
|
|
353
462
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-gates.js","sourceRoot":"","sources":["../src/wu-done-gates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wu-done-gates.js","sourceRoot":"","sources":["../src/wu-done-gates.ts"],"names":[],"mappings":"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"}
|