@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.
Files changed (71) hide show
  1. package/README.md +20 -18
  2. package/dist/agent-session.js +21 -0
  3. package/dist/agent-session.js.map +1 -1
  4. package/dist/commands/integrate.js +25 -1
  5. package/dist/commands/integrate.js.map +1 -1
  6. package/dist/gate-defaults.js +154 -9
  7. package/dist/gate-defaults.js.map +1 -1
  8. package/dist/gate-registry.js.map +1 -1
  9. package/dist/gates-runners.js +358 -0
  10. package/dist/gates-runners.js.map +1 -1
  11. package/dist/gates.js +347 -3
  12. package/dist/gates.js.map +1 -1
  13. package/dist/hooks/enforcement-generator.js +14 -8
  14. package/dist/hooks/enforcement-generator.js.map +1 -1
  15. package/dist/hooks/enforcement-sync.js +2 -1
  16. package/dist/hooks/enforcement-sync.js.map +1 -1
  17. package/dist/hooks/generators/index.js +1 -0
  18. package/dist/hooks/generators/index.js.map +1 -1
  19. package/dist/hooks/generators/signal-received.js +4 -0
  20. package/dist/hooks/generators/signal-received.js.map +1 -0
  21. package/dist/mem-converged.js +101 -0
  22. package/dist/mem-converged.js.map +1 -0
  23. package/dist/mem-inbox.js +85 -22
  24. package/dist/mem-inbox.js.map +1 -1
  25. package/dist/mem-roster.js +11 -1
  26. package/dist/mem-roster.js.map +1 -1
  27. package/dist/mem-signal.js +162 -16
  28. package/dist/mem-signal.js.map +1 -1
  29. package/dist/mem-watch.js +207 -0
  30. package/dist/mem-watch.js.map +1 -0
  31. package/dist/metrics-cli.js +19 -2
  32. package/dist/metrics-cli.js.map +1 -1
  33. package/dist/metrics-snapshot.js +25 -2
  34. package/dist/metrics-snapshot.js.map +1 -1
  35. package/dist/public-manifest.js +14 -0
  36. package/dist/public-manifest.js.map +1 -1
  37. package/dist/session-cross-link.js +14 -2
  38. package/dist/session-cross-link.js.map +1 -1
  39. package/dist/sidecar-manager.js +25 -0
  40. package/dist/sidecar-manager.js.map +1 -1
  41. package/dist/signal-hook.js +351 -0
  42. package/dist/signal-hook.js.map +1 -0
  43. package/dist/wu-done-gates.js +112 -3
  44. package/dist/wu-done-gates.js.map +1 -1
  45. package/dist/wu-done.js +30 -6
  46. package/dist/wu-done.js.map +1 -1
  47. package/dist/wu-prep.js +185 -2
  48. package/dist/wu-prep.js.map +1 -1
  49. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  50. package/dist/wu-spawn-strategy-resolver.js +46 -4
  51. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  52. package/package.json +13 -11
  53. package/packs/agent-runtime/auto-session-integration.ts +14 -0
  54. package/packs/agent-runtime/package.json +1 -1
  55. package/packs/agent-runtime/session-schema.ts +44 -0
  56. package/packs/sidekick/package.json +1 -1
  57. package/packs/software-delivery/manifest.ts +3 -0
  58. package/packs/software-delivery/manifest.yaml +7 -0
  59. package/packs/software-delivery/package.json +1 -1
  60. package/packs/software-delivery/src/constants/wu-cli-constants.ts +12 -0
  61. package/packs/software-delivery/tool-impl/memory-tools.ts +56 -1
  62. package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +1 -0
  63. package/templates/core/AGENTS.md.template +98 -8
  64. package/templates/core/LUMENFLOW.md.template +197 -19
  65. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +0 -5
  66. package/templates/core/ai/onboarding/agent-safety-card.md.template +63 -1
  67. package/templates/core/ai/onboarding/initiative-orchestration.md.template +4 -0
  68. package/templates/core/ai/onboarding/release-process.md.template +7 -7
  69. package/templates/core/ai/onboarding/vendor-support.md.template +74 -10
  70. package/templates/vendors/claude/.claude/skills/frontend-design/SKILL.md.template +1 -1
  71. 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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"}
@@ -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
- await dependencies.auditSkipGates(id, args.reason, args.fixWu, worktreePath);
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":"AAAA,iCAAiC;AACjC,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,wBAAwB,IAAI,sBAAsB,EAClD,eAAe,EACf,oCAAoC,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,KAAK,EACL,WAAW,EACX,UAAU,EACV,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA+BnD;;GAEG;AACH,SAAS,yBAAyB,CAAC,YAAoB;IACrD,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAEvE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,eAAe,EAAE;YAChD,QAAQ,EAAE,WAAW,CAAC,IAAsB;SAC7C,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,YAAY,CAAC,mBAAmB,EAAE;YACxD,QAAQ,EAAE,WAAW,CAAC,IAAsB;SAC7C,CAAC,CAAC;QAEH,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAEvE,IAAI,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;gBAEtD,IAAI,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;oBACtD,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,uDAAuD;wBAC1F,yDAAyD;wBACzD,qCAAqC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI;wBAC5E,qCAAqC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM;wBAC9E,yDAAyD;wBACzD,UAAU,YAAY,IAAI;wBAC1B,oBAAoB;wBACpB,YAAY;wBACZ,iCAAiC,CACpC,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,gDAAgD;oBACnF,yDAAyD;oBACzD,iDAAiD;oBACjD,yDAAyD;oBACzD,UAAU,YAAY,IAAI;oBAC1B,oBAAoB;oBACpB,YAAY;oBACZ,iCAAiC,CACpC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,CAAC,IAAI,4CAA4C,eAAe,CAAC,CAAC,CAAC,EAAE,CACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QACpC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,YAAoB,EACpB,EAAU,EACV,aAAwD,EACxD,UAMI,EAAE;IAEN,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACrF,4EAA4E;IAC5E,qEAAqE;IACrE,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,+BAA+B,YAAY,EAAE,CAAC,CAAC;IAE/E,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,gBAAgB,GAAG,QAAQ,IAAI,UAAU,CAAC;IAChD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,wDAAwD,CAAC,CAAC;QACxF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,OAAO,CAChB,MAAM,QAAQ,CAAC;YACb,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,gBAAgB;YAC1B,YAAY,EAAE,SAAS;YACvB,eAAe;YACf,SAAS;SACV,CAAC,CACH,CAAC;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzF,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC;YACZ,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,KAAK;YACT,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QAEH,mBAAmB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAChG,GAAG,CAAC,mBAAmB,YAAY,6CAA6C,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAkBD;;;;GAIG;AACH,MAAM,UAAU,gCAAgC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAA6B,CAAC;QACtD,MAAM,EAAE,GAAG,MAAM,CAAC,iBAAwD,CAAC;QAC3E,MAAM,KAAK,GAAG,EAAE,EAAE,KAA4C,CAAC;QAC/D,MAAM,KAAK,GAAG,KAAK,EAAE,4BAA4B,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;IACD,OAAO,oCAAoC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAY,EAAE,YAA2B;IACzF,IAAI,cAAkC,CAAC;IAEvC,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,cAAc,GAAG,CAAC,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CACD,wEAAwE,YAAY,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CAChH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,GAAG,CACD,wEAAwE,YAAY,mCAAmC,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,EAAE;QACxB,cAAc;QACd,OAAO,EAAE,YAAY,IAAI,SAAS;QAClC,UAAU,EAAE,gCAAgC,EAAE;KAC/C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EACE,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,eAAe,GACI,EACrB,YAAsC;IAEtC,MAAM,UAAU,GAAuB;QACrC,wBAAwB,EAAE,KAAK;QAC/B,mBAAmB,EAAE,KAAK;QAC1B,YAAY,EAAE,IAAI;KACnB,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACvE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACtC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;QAC7D,4DAA4D;QAC5D,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC,uBAAuB,OAAO,UAAU,CAAC,UAAU,CAAC,aAAa,kBAAkB,CAC/I,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CACpG,CAAC;QACF,sEAAsE;QACtE,yEAAyE;QACzE,2DAA2D;QAC3D,MAAM,gBAAgB,GAAI,UAAU,CAAC,UAAsC,CAAC,aAAa,CAAC;QAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,IACE,KAAK;oBACL,OAAO,KAAK,KAAK,QAAQ;oBACzB,OAAQ,KAAiC,CAAC,SAAS,KAAK,QAAQ,EAChE,CAAC;oBACD,MAAM,CAAC,GAAG,KAAkE,CAAC;oBAC7E,MAAM,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE;wBACtE,IAAI,EAAE,CAAC,CAAC,SAAS;wBACjB,MAAM,EAAE,OAAO;wBACf,SAAS,EAAE,MAAM;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,YAAY,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,eAAe,CAAC,KAAK;YAC7B,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,eAAe,CAAC,KAAK;YAC3B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,kBAAkB,CAAC,gBAAgB;YAC3C,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,YAAY;YACjD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBAChE,CAAC,CAAC;oBACE,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,OAAQ,CAA6B,EAAE,SAAS,KAAK,QAAQ;wBAC3D,CAAC,CAAE,CAA2B,CAAC,SAAS;wBACxC,CAAC,CAAC,EAAE,CACP;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC,aAAa,KAAK,UAAU,CAAC,MAAM,8BAA8B,CAC7H,CAAC;QACF,YAAY,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,eAAe,CAAC,KAAK;YAC7B,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,eAAe,CAAC,KAAK;YAC3B,wBAAwB,EAAE,IAAI;YAC9B,YAAY,EAAE,UAAU,CAAC,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CACvG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,YAAY,CAAC,wBAAwB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7F,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,QAAQ,CAAC,WAAW,YAAY,cAAc,2BAA2B,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxD,wDAAwD;IACxD,IAAI,kBAAkB,GAAyB,MAAM,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,iBAAiB,GAAI,MAAkC,CAAC,iBAEjD,CAAC;QACd,MAAM,WAAW,GAAG,iBAAiB,EAAE,KAA4C,CAAC;QACpF,MAAM,gBAAgB,GAAG,WAAW,EAAE,UAAiD,CAAC;QACxF,MAAM,WAAW,GAAG,gBAAgB,EAAE,mBAAmB,CAAC;QAC1D,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YACrD,kBAAkB,GAAG,WAAW,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,8BAA8B,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,4BAA4B,iBAAiB,EAAE,CAAC,CAAC;IAC/E,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;IAClG,MAAM,gBAAgB,GAAG,aAAa,CAAC;QACrC,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE;QACR,kBAAkB;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,qDAAqD;QACrD,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CACvD,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CACzD,CAAC;QACF,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CACvD,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CACzD,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,uDAAuD;YACvD,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK;gBACT,eAAe,EAAE,cAAc,CAAC,MAAM;gBACtC,eAAe,EAAE,cAAc,CAAC,MAAM;aACvC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5E,GAAG,CACD,6EAA6E,aAAa,EAAE,CAC7F,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChD,2DAA2D;YAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CACV,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,8DAA8D,aAAa,IAAI,CACrH,CAAC;YACF,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,cAAc,CAAC,MAAM;aACvC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,KAAK;aACV,CAAC,CAAC;YACH,GAAG,CACD,oEAAoE,gBAAgB,CAAC,SAAS,EAAE,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;QAC3E,YAAY,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,IAAI;SACT,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,uDAAuD;IACvD,MAAM,eAAe,GAAG,oBAAoB,CACzC,IAAgC,CAAC,QAAQ,IAAK,IAAgC,CAAC,WAAW,CAAC,CAC7F,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,oFAAoF;QACpF,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,4BAA4B,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CACxI,CAAC;QACF,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,gEAAgE;YACjG,yDAAyD,CAC5D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,oCAAoC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,cAAc,YAAY,IAAI,gCAAgC,EAAE,CAAC,CAAC;QAChG,4FAA4F;QAC5F,MAAM,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE;YAC3E,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,YAAY,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,eAAe,EAAE,cAAc;SAChC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,8DAA8D,CAAC,CAAC;QAChG,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,wDAAwD,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,8BAA8B,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,0FAA0F;QAC1F,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,GAAG,CAAC,iFAAiF,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,wEAAwE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,OAAO,CAChB,MAAM,QAAQ,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAC3E,CAAC;YACF,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzF,iEAAiE;YACjE,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE;oBAC3E,IAAI;oBACJ,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE,MAAM;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;gBACrB,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;YACH,mBAAmB,CAAC;gBAClB,EAAE;gBACF,QAAQ,EAAE,aAAa;gBACvB,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,KAAK;aACtB,CAAC,CAAC;YACH,GAAG,CAAC,6DAA6D,CAAC,CAAC;QACrE,CAAC;QACD,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAC7C,CAAC;SAAM,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpD,kEAAkE;QAClE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,GAAG,CAAC,iFAAiF,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,wEAAwE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,MAAM,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,CAAC,aAAa,EAAE;YACrE,UAAU;YACV,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YAChC,eAAe;YACf,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAC;QACH,wEAAwE;QACxE,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE;gBAC3E,IAAI;gBACJ,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;QACL,CAAC;QACD,UAAU,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,GAAG,CACD,uBAAuB,YAAY,IAAI,SAAS,2CAA2C;YACzF,gHAAgH;YAChH,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,kCAAkC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;gBACpE,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7F,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,YAAY,CAAC,aAAa,CAAC;gBACzB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;YACnF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CACX,uBAAuB,EAAE,gEAAgE,CAC1F,CAAC;YACF,GAAG,CAAC,0EAA0E,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACnF,MAAM,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACpE,YAAY,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5D,OAAO,UAAU,CAAC;AACpB,CAAC"}