@lumenflow/cli 5.3.1 → 5.4.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 (55) 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/gates-runners.js +1 -1
  7. package/dist/gates-runners.js.map +1 -1
  8. package/dist/hooks/enforcement-generator.js +14 -8
  9. package/dist/hooks/enforcement-generator.js.map +1 -1
  10. package/dist/hooks/enforcement-sync.js +2 -1
  11. package/dist/hooks/enforcement-sync.js.map +1 -1
  12. package/dist/hooks/generators/index.js +1 -0
  13. package/dist/hooks/generators/index.js.map +1 -1
  14. package/dist/hooks/generators/signal-received.js +4 -0
  15. package/dist/hooks/generators/signal-received.js.map +1 -0
  16. package/dist/mem-converged.js +101 -0
  17. package/dist/mem-converged.js.map +1 -0
  18. package/dist/mem-inbox.js +85 -22
  19. package/dist/mem-inbox.js.map +1 -1
  20. package/dist/mem-roster.js +11 -1
  21. package/dist/mem-roster.js.map +1 -1
  22. package/dist/mem-signal.js +162 -16
  23. package/dist/mem-signal.js.map +1 -1
  24. package/dist/mem-watch.js +207 -0
  25. package/dist/mem-watch.js.map +1 -0
  26. package/dist/public-manifest.js +14 -0
  27. package/dist/public-manifest.js.map +1 -1
  28. package/dist/session-cross-link.js +14 -2
  29. package/dist/session-cross-link.js.map +1 -1
  30. package/dist/sidecar-manager.js +25 -0
  31. package/dist/sidecar-manager.js.map +1 -1
  32. package/dist/signal-hook.js +351 -0
  33. package/dist/signal-hook.js.map +1 -0
  34. package/dist/wu-prep.js +106 -4
  35. package/dist/wu-prep.js.map +1 -1
  36. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  37. package/dist/wu-spawn-strategy-resolver.js +46 -4
  38. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  39. package/package.json +13 -11
  40. package/packs/agent-runtime/auto-session-integration.ts +14 -0
  41. package/packs/agent-runtime/package.json +1 -1
  42. package/packs/agent-runtime/session-schema.ts +44 -0
  43. package/packs/sidekick/package.json +1 -1
  44. package/packs/software-delivery/manifest.ts +3 -0
  45. package/packs/software-delivery/manifest.yaml +7 -0
  46. package/packs/software-delivery/package.json +1 -1
  47. package/packs/software-delivery/src/methodology/incremental-test.ts +48 -16
  48. package/packs/software-delivery/src/policy/gates-coverage.ts +10 -0
  49. package/packs/software-delivery/src/policy/resolve-policy.ts +83 -0
  50. package/packs/software-delivery/tool-impl/memory-tools.ts +56 -1
  51. package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +1 -0
  52. package/templates/core/AGENTS.md.template +19 -1
  53. package/templates/core/LUMENFLOW.md.template +17 -0
  54. package/templates/core/ai/onboarding/agent-safety-card.md.template +16 -0
  55. package/templates/core/ai/onboarding/vendor-support.md.template +9 -9
@@ -19,17 +19,33 @@
19
19
  */
20
20
  import fs from 'node:fs/promises';
21
21
  import path from 'node:path';
22
- import { createSignal } from '@lumenflow/memory/signal';
22
+ import { createSignal, resolveReaderIdentity } from '@lumenflow/memory/signal';
23
23
  import { createWUParser, WU_OPTIONS } from '@lumenflow/core/arg-parser';
24
+ import { createError, ErrorCodes } from '@lumenflow/core/error-handler';
24
25
  import { EXIT_CODES, LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
25
26
  // WU-1456: Import shared validator for CLI/MCP parity
26
27
  import { validateMemSignalArgs } from '@lumenflow/core/schemas/memory-arg-validators';
27
28
  import { runCLI } from './cli-entry-point.js';
29
+ import { buildA2ASignalForHook, dispatchSignalReceivedEvents } from './signal-hook.js';
28
30
  import { resolveActiveSessionTarget } from './session-cross-link.js';
29
31
  /**
30
32
  * Log prefix for mem:signal output
31
33
  */
32
34
  const LOG_PREFIX = '[mem:signal]';
35
+ const SIGNAL_INTENTS = [
36
+ 'INFO',
37
+ 'PROPOSE',
38
+ 'COUNTER',
39
+ 'AGREE',
40
+ 'REJECT',
41
+ ];
42
+ const INTERRUPT_CLASSES = [
43
+ 'advisory',
44
+ 'priority',
45
+ 'urgent',
46
+ 'soon',
47
+ 'immediate',
48
+ ];
33
49
  /**
34
50
  * Tool name for audit logging
35
51
  */
@@ -71,8 +87,33 @@ const CLI_OPTIONS = {
71
87
  },
72
88
  to: {
73
89
  name: 'to',
74
- flags: '--to <session_id|display_name>',
75
- description: 'Address the signal to a live session by session ID or display name',
90
+ flags: '--to <recipient[,recipient...]>',
91
+ description: 'Address the signal to one or more session IDs, display names, or agent identities',
92
+ },
93
+ thread: {
94
+ name: 'thread',
95
+ flags: '--thread <id>',
96
+ description: 'A2A thread id for grouping signals',
97
+ },
98
+ replyTo: {
99
+ name: 'replyTo',
100
+ flags: '--reply-to <signal_id>',
101
+ description: 'Parent signal id; inherits the parent thread when --thread is omitted',
102
+ },
103
+ intent: {
104
+ name: 'intent',
105
+ flags: '--intent <INFO|PROPOSE|COUNTER|AGREE|REJECT>',
106
+ description: 'Machine-readable A2A signal intent',
107
+ },
108
+ interrupt: {
109
+ name: 'interrupt',
110
+ flags: '--interrupt <advisory|priority|urgent|soon|immediate>',
111
+ description: 'A2A interruption class',
112
+ },
113
+ requiresAck: {
114
+ name: 'requiresAck',
115
+ flags: '--requires-ack',
116
+ description: 'Mark the signal as requiring an AGREE or REJECT reply',
76
117
  },
77
118
  };
78
119
  /**
@@ -108,6 +149,10 @@ const FLAGS_WITH_VALUES = new Set([
108
149
  '--initiative',
109
150
  '--delegation-id',
110
151
  '--to',
152
+ '--thread',
153
+ '--reply-to',
154
+ '--intent',
155
+ '--interrupt',
111
156
  ]);
112
157
  /**
113
158
  * Extract positional arguments from argv (skipping flags and their values)
@@ -151,6 +196,11 @@ function parseArguments() {
151
196
  CLI_OPTIONS.initiative,
152
197
  CLI_OPTIONS.delegationId,
153
198
  CLI_OPTIONS.to,
199
+ CLI_OPTIONS.thread,
200
+ CLI_OPTIONS.replyTo,
201
+ CLI_OPTIONS.intent,
202
+ CLI_OPTIONS.interrupt,
203
+ CLI_OPTIONS.requiresAck,
154
204
  ],
155
205
  required: [],
156
206
  allowPositionalId: true,
@@ -164,6 +214,57 @@ function parseArguments() {
164
214
  }
165
215
  return { args, message };
166
216
  }
217
+ export function parseSignalIntent(value) {
218
+ if (!value) {
219
+ return undefined;
220
+ }
221
+ const normalized = value.trim().toUpperCase();
222
+ const intent = SIGNAL_INTENTS.find((candidate) => candidate === normalized);
223
+ if (!intent) {
224
+ throw createError(ErrorCodes.INVALID_ARGUMENT, `Invalid --intent "${value}". Expected one of: ${SIGNAL_INTENTS.join(', ')}`);
225
+ }
226
+ return intent;
227
+ }
228
+ export function parseInterruptClass(value) {
229
+ if (!value) {
230
+ return undefined;
231
+ }
232
+ const normalized = value.trim().toLowerCase();
233
+ const interruptClass = INTERRUPT_CLASSES.find((candidate) => candidate === normalized);
234
+ if (!interruptClass) {
235
+ throw createError(ErrorCodes.INVALID_ARGUMENT, `Invalid --interrupt "${value}". Expected one of: ${INTERRUPT_CLASSES.join(', ')}`);
236
+ }
237
+ return interruptClass;
238
+ }
239
+ export function parseRecipientTargets(to) {
240
+ if (!to) {
241
+ return [];
242
+ }
243
+ return Array.from(new Set(to
244
+ .split(',')
245
+ .map((target) => target.trim())
246
+ .filter((target) => target.length > 0)));
247
+ }
248
+ export async function resolveSignalAddressing(baseDir, to) {
249
+ const rawTargets = parseRecipientTargets(to);
250
+ const recipients = [];
251
+ const resolvedDisplayNames = [];
252
+ for (const rawTarget of rawTargets) {
253
+ const resolvedTarget = resolveActiveSessionTarget(baseDir, rawTarget);
254
+ if (resolvedTarget?.displayName) {
255
+ resolvedDisplayNames.push(resolvedTarget.displayName);
256
+ }
257
+ const readerTarget = resolvedTarget?.sessionId ?? rawTarget;
258
+ recipients.push(await resolveReaderIdentity(baseDir, readerTarget));
259
+ }
260
+ const dedupedRecipients = Array.from(new Set(recipients));
261
+ return {
262
+ recipients: dedupedRecipients,
263
+ rawTargets,
264
+ resolvedDisplayNames: Array.from(new Set(resolvedDisplayNames)),
265
+ ...(dedupedRecipients.length === 1 ? { targetAgent: dedupedRecipients[0] } : {}),
266
+ };
267
+ }
167
268
  /**
168
269
  * Print signal details to console
169
270
  *
@@ -193,12 +294,30 @@ function printSignalDetails(result) {
193
294
  if (signal.target_agent) {
194
295
  console.log(` Target ID: ${signal.target_agent}`);
195
296
  }
297
+ if (signal.recipients && signal.recipients.length > 0) {
298
+ console.log(` Recipients: ${signal.recipients.join(', ')}`);
299
+ }
196
300
  if (signal.initiative) {
197
301
  console.log(` Initiative: ${signal.initiative}`);
198
302
  }
199
303
  if (signal.delegation_id) {
200
304
  console.log(` Delegation: ${signal.delegation_id}`);
201
305
  }
306
+ if (signal.thread_id) {
307
+ console.log(` Thread: ${signal.thread_id}`);
308
+ }
309
+ if (signal.reply_to) {
310
+ console.log(` Reply To: ${signal.reply_to}`);
311
+ }
312
+ if (signal.intent) {
313
+ console.log(` Intent: ${signal.intent}`);
314
+ }
315
+ if (signal.interrupt_class) {
316
+ console.log(` Interrupt: ${signal.interrupt_class}`);
317
+ }
318
+ if (signal.requires_ack !== undefined) {
319
+ console.log(` Requires ACK: ${String(signal.requires_ack)}`);
320
+ }
202
321
  console.log('');
203
322
  }
204
323
  /**
@@ -220,6 +339,11 @@ export async function main() {
220
339
  console.error(' --initiative <id> Initiative scope (e.g., INIT-060)');
221
340
  console.error(' --delegation-id <id> Delegation registry linkage (dlg-XXXX)');
222
341
  console.error(' --to <target> Live session_id or display_name recipient');
342
+ console.error(' --thread <id> A2A thread id');
343
+ console.error(' --reply-to <sig> Parent signal id');
344
+ console.error(' --intent <value> INFO, PROPOSE, COUNTER, AGREE, or REJECT');
345
+ console.error(' --interrupt <value> advisory, priority, urgent, soon, or immediate');
346
+ console.error(' --requires-ack Require AGREE or REJECT on the same thread');
223
347
  console.error(' --quiet Suppress output except errors');
224
348
  process.exit(EXIT_CODES.ERROR);
225
349
  }
@@ -234,28 +358,38 @@ export async function main() {
234
358
  const startTime = Date.now();
235
359
  let result;
236
360
  let error = null;
237
- let resolvedTargetAgent;
238
- let resolvedTargetDisplayName;
361
+ let addressing = { recipients: [], rawTargets: [], resolvedDisplayNames: [] };
239
362
  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
- }
363
+ addressing = await resolveSignalAddressing(baseDir, args.to);
364
+ const senderIdentity = await resolveReaderIdentity(baseDir);
365
+ const intent = parseSignalIntent(args.intent);
366
+ const interruptClass = parseInterruptClass(args.interrupt);
248
367
  result = await createSignal(baseDir, {
249
368
  message,
250
369
  wuId: args.wu,
251
370
  lane: args.lane,
252
- target_agent: resolvedTargetAgent,
371
+ sender: senderIdentity,
372
+ target_agent: addressing.targetAgent,
373
+ recipients: addressing.recipients.length > 0 ? addressing.recipients : undefined,
374
+ thread_id: args.thread,
375
+ reply_to: args.replyTo,
376
+ intent,
377
+ interrupt_class: interruptClass,
378
+ requires_ack: args.requiresAck === true ? true : undefined,
253
379
  // WU-2755 (ADR-014 extension 3): structured coordination axes.
254
380
  role: args.role,
255
381
  target_role: args.targetRole,
256
382
  initiative: args.initiative,
257
383
  delegation_id: args.delegationId,
258
384
  });
385
+ try {
386
+ await dispatchSignalReceivedEvents(baseDir, {
387
+ signal: buildA2ASignalForHook(result.signal),
388
+ });
389
+ }
390
+ catch {
391
+ // Hook delivery is fail-open; the signal has already been durably appended.
392
+ }
259
393
  }
260
394
  catch (err) {
261
395
  error = err instanceof Error ? err.message : String(err);
@@ -272,8 +406,14 @@ export async function main() {
272
406
  wuId: args.wu,
273
407
  lane: args.lane,
274
408
  to: args.to,
275
- targetAgent: resolvedTargetAgent,
276
- targetDisplayName: resolvedTargetDisplayName,
409
+ recipients: addressing.recipients,
410
+ targetAgent: addressing.targetAgent,
411
+ targetDisplayNames: addressing.resolvedDisplayNames,
412
+ thread: args.thread,
413
+ replyTo: args.replyTo,
414
+ intent: args.intent,
415
+ interrupt: args.interrupt,
416
+ requiresAck: args.requiresAck === true,
277
417
  role: args.role,
278
418
  targetRole: args.targetRole,
279
419
  initiative: args.initiative,
@@ -286,6 +426,12 @@ export async function main() {
286
426
  wuId: result.signal?.wu_id,
287
427
  lane: result.signal?.lane,
288
428
  targetAgent: result.signal?.target_agent,
429
+ recipients: result.signal?.recipients,
430
+ threadId: result.signal?.thread_id,
431
+ replyTo: result.signal?.reply_to,
432
+ intent: result.signal?.intent,
433
+ interruptClass: result.signal?.interrupt_class,
434
+ requiresAck: result.signal?.requires_ack,
289
435
  }
290
436
  : null,
291
437
  error: error ? { message: error } : null,
@@ -1 +1 @@
1
- {"version":3,"file":"mem-signal.js","sourceRoot":"","sources":["../src/mem-signal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mem-signal.js","sourceRoot":"","sources":["../src/mem-signal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ #!/usr/bin/env node
2
+ // Copyright (c) 2026 Hellmai Ltd
3
+ // SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
4
+ /**
5
+ * Memory Watch CLI
6
+ *
7
+ * Foreground daemon fallback for clients that do not have native hook delivery.
8
+ * It tails local A2A signals, dispatches the canonical signal:received event
9
+ * through the WU-2921 queue, then drains that queue to stdout for the session.
10
+ */
11
+ import path from 'node:path';
12
+ import fs from 'node:fs/promises';
13
+ import { watch as chokidarWatch } from 'chokidar';
14
+ import { createError, ErrorCodes } from '@lumenflow/core/error-handler';
15
+ import { createWUParser } from '@lumenflow/core/arg-parser';
16
+ import { LUMENFLOW_PATHS } from '@lumenflow/core/wu-constants';
17
+ import { loadInboxSignalViews, markSignalsAsRead, resolveReaderIdentity, } from '@lumenflow/memory/signal';
18
+ import { dispatchSignalReceivedEvents, drainSignalReceivedEvents, } from './signal-hook.js';
19
+ import { resolveActiveSessionTarget } from './session-cross-link.js';
20
+ import { runCLI } from './cli-entry-point.js';
21
+ const LOG_PREFIX = '[mem:watch]';
22
+ const SIGNALS_FILE_NAME = 'signals.jsonl';
23
+ const DELIVERY_POLL_SETTLE_MS = 100;
24
+ const DELIVERY_POLL_INTERVAL_MS = 50;
25
+ const CLI_OPTIONS = {
26
+ session: {
27
+ name: 'session',
28
+ flags: '--session <id>',
29
+ description: 'Active session_id, display_name, or agent_identity to deliver events for',
30
+ },
31
+ quiet: {
32
+ name: 'quiet',
33
+ flags: '-q, --quiet',
34
+ description: 'Suppress watcher lifecycle messages; signal events still print',
35
+ },
36
+ };
37
+ function asNonEmptyString(value) {
38
+ return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
39
+ }
40
+ function isDirectedSignal(view) {
41
+ return view.signal.recipients.length > 0;
42
+ }
43
+ async function resolveMemWatchSession(baseDir, session) {
44
+ const resolvedTarget = resolveActiveSessionTarget(baseDir, session);
45
+ if (!resolvedTarget) {
46
+ throw createError(ErrorCodes.VALIDATION_ERROR, `No active agent session found for --session "${session}". Run pnpm mem:roster and pass a live session_id, display_name, or agent_identity.`);
47
+ }
48
+ const readerIdentity = await resolveReaderIdentity(baseDir, resolvedTarget.sessionId);
49
+ return {
50
+ sessionId: resolvedTarget.sessionId,
51
+ readerIdentity,
52
+ };
53
+ }
54
+ export function getMemWatchSignalsPath(baseDir) {
55
+ return path.join(baseDir, LUMENFLOW_PATHS.MEMORY_DIR, SIGNALS_FILE_NAME);
56
+ }
57
+ async function ensureSignalsFile(baseDir) {
58
+ const signalsPath = getMemWatchSignalsPath(baseDir);
59
+ await fs.mkdir(path.dirname(signalsPath), { recursive: true });
60
+ await fs.appendFile(signalsPath, '', 'utf-8');
61
+ return signalsPath;
62
+ }
63
+ export function formatMemWatchEvents(events) {
64
+ if (events.length === 0) {
65
+ return '';
66
+ }
67
+ const lines = ['<lumenflow-signal-events source="mem:watch">'];
68
+ for (const event of events) {
69
+ const signal = event.signal;
70
+ lines.push('');
71
+ lines.push(`- event: ${event.event}`);
72
+ lines.push(` signal_id: ${signal.signal_id}`);
73
+ lines.push(` sender: ${signal.sender_identity}`);
74
+ lines.push(` intent: ${signal.intent ?? 'INFO'}`);
75
+ lines.push(` interrupt_class: ${signal.interrupt_class ?? 'advisory'}`);
76
+ lines.push(` requires_ack: ${signal.requires_ack === true ? 'true' : 'false'}`);
77
+ if (signal.wu_id)
78
+ lines.push(` wu: ${signal.wu_id}`);
79
+ if (signal.thread_id)
80
+ lines.push(` thread: ${signal.thread_id}`);
81
+ lines.push(` message: ${signal.message}`);
82
+ if (event.next_action) {
83
+ lines.push(' next_action:');
84
+ lines.push(` ack: ${event.next_action.ack_command}`);
85
+ lines.push(` reject: ${event.next_action.reject_command}`);
86
+ lines.push(` gate: ${event.next_action.prep_gate}`);
87
+ }
88
+ }
89
+ lines.push('</lumenflow-signal-events>');
90
+ return lines.join('\n');
91
+ }
92
+ export async function deliverPendingSignalsForSession(baseDir, options) {
93
+ const target = await resolveMemWatchSession(baseDir, options.session);
94
+ const signalViews = await loadInboxSignalViews(baseDir, {
95
+ compatibilityMode: 'skip-legacy',
96
+ unreadOnly: true,
97
+ targetAgent: target.readerIdentity,
98
+ readerId: target.readerIdentity,
99
+ });
100
+ const directedSignals = signalViews.filter(isDirectedSignal);
101
+ let emittedCount = 0;
102
+ let skippedDuplicateCount = 0;
103
+ let inactiveRecipientCount = 0;
104
+ for (const view of directedSignals) {
105
+ const dispatchResult = await dispatchSignalReceivedEvents(baseDir, {
106
+ signal: view.signal,
107
+ recipientSessionId: target.sessionId,
108
+ deliveredAt: options.deliveredAt,
109
+ });
110
+ emittedCount += dispatchResult.emittedCount;
111
+ skippedDuplicateCount += dispatchResult.skippedDuplicateCount;
112
+ inactiveRecipientCount += dispatchResult.inactiveRecipientCount;
113
+ }
114
+ const events = await drainSignalReceivedEvents(baseDir, target.sessionId);
115
+ const deliveredSignalIds = Array.from(new Set(events.map((event) => event.signal_id)));
116
+ const markedDelivered = deliveredSignalIds.length > 0
117
+ ? await markSignalsAsRead(baseDir, deliveredSignalIds, target.readerIdentity)
118
+ : { markedCount: 0 };
119
+ return {
120
+ sessionId: target.sessionId,
121
+ readerIdentity: target.readerIdentity,
122
+ candidateSignalCount: directedSignals.length,
123
+ emittedCount,
124
+ skippedDuplicateCount,
125
+ inactiveRecipientCount,
126
+ markedDeliveredCount: markedDelivered.markedCount,
127
+ events,
128
+ };
129
+ }
130
+ async function deliverAndPrint(options) {
131
+ const delivery = await deliverPendingSignalsForSession(options.baseDir, {
132
+ session: options.session,
133
+ });
134
+ const output = formatMemWatchEvents(delivery.events);
135
+ if (output) {
136
+ console.log(output);
137
+ }
138
+ }
139
+ export async function runMemWatch(options) {
140
+ if (!options.quiet) {
141
+ console.log(`${LOG_PREFIX} Watching A2A signals for session ${options.session}`);
142
+ console.log(`${LOG_PREFIX} Press Ctrl+C to stop`);
143
+ }
144
+ const signalsPath = await ensureSignalsFile(options.baseDir);
145
+ await deliverAndPrint(options);
146
+ const watcher = chokidarWatch(signalsPath, {
147
+ ignoreInitial: true,
148
+ awaitWriteFinish: {
149
+ stabilityThreshold: DELIVERY_POLL_SETTLE_MS,
150
+ pollInterval: DELIVERY_POLL_INTERVAL_MS,
151
+ },
152
+ });
153
+ const onSignalFileChange = async () => {
154
+ try {
155
+ await deliverAndPrint(options);
156
+ }
157
+ catch (error) {
158
+ const message = error instanceof Error ? error.message : String(error);
159
+ console.error(`${LOG_PREFIX} Delivery error: ${message}`);
160
+ }
161
+ };
162
+ watcher.on('add', () => {
163
+ void onSignalFileChange();
164
+ });
165
+ watcher.on('change', () => {
166
+ void onSignalFileChange();
167
+ });
168
+ await new Promise((resolve) => {
169
+ const cleanup = (activeWatcher) => {
170
+ activeWatcher.close().catch(() => {
171
+ // Watcher cleanup is non-fatal during process shutdown.
172
+ });
173
+ if (!options.quiet) {
174
+ console.log(`${LOG_PREFIX} Stopped`);
175
+ }
176
+ resolve();
177
+ };
178
+ process.once('SIGINT', () => cleanup(watcher));
179
+ process.once('SIGTERM', () => cleanup(watcher));
180
+ });
181
+ }
182
+ function parseArguments() {
183
+ const args = createWUParser({
184
+ name: 'mem-watch',
185
+ description: 'Foreground A2A signal delivery daemon for clients without native hooks',
186
+ options: [CLI_OPTIONS.session, CLI_OPTIONS.quiet],
187
+ required: ['session'],
188
+ allowPositionalId: false,
189
+ });
190
+ const session = asNonEmptyString(args.session);
191
+ if (!session) {
192
+ throw createError(ErrorCodes.VALIDATION_ERROR, 'Missing required --session <id>. Run pnpm mem:roster and pass a live session_id, display_name, or agent_identity.');
193
+ }
194
+ return { session, quiet: args.quiet === true };
195
+ }
196
+ export async function main() {
197
+ const args = parseArguments();
198
+ await runMemWatch({
199
+ baseDir: process.cwd(),
200
+ session: args.session,
201
+ quiet: args.quiet,
202
+ });
203
+ }
204
+ if (import.meta.main) {
205
+ void runCLI(main, { commandName: 'mem:watch' });
206
+ }
207
+ //# sourceMappingURL=mem-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mem-watch.js","sourceRoot":"","sources":["../src/mem-watch.ts"],"names":[],"mappings":"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"}
@@ -457,6 +457,20 @@ export const PUBLIC_MANIFEST = [
457
457
  description: 'Check coordination signals',
458
458
  category: COMMAND_CATEGORIES.MEMORY_SESSIONS,
459
459
  },
460
+ {
461
+ name: 'mem:converged',
462
+ binName: 'mem-converged',
463
+ binPath: './dist/mem-converged.js',
464
+ description: 'Evaluate whether an A2A signal thread has converged',
465
+ category: COMMAND_CATEGORIES.MEMORY_SESSIONS,
466
+ },
467
+ {
468
+ name: 'mem:watch',
469
+ binName: 'mem-watch',
470
+ binPath: './dist/mem-watch.js',
471
+ description: 'Deliver A2A signal events for clients without native hooks',
472
+ category: COMMAND_CATEGORIES.MEMORY_SESSIONS,
473
+ },
460
474
  {
461
475
  name: 'mem:roster',
462
476
  binName: 'mem-roster',