maestro-flow 0.3.3 → 0.3.5

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 (75) hide show
  1. package/.claude/commands/quality-business-test.md +110 -0
  2. package/.codex/skills/maestro-init/SKILL.md +167 -167
  3. package/.codex/skills/maestro-phase-add/SKILL.md +154 -154
  4. package/.codex/skills/maestro-phase-transition/SKILL.md +173 -173
  5. package/.codex/skills/maestro-verify/SKILL.md +566 -566
  6. package/.codex/skills/manage-codebase-rebuild/SKILL.md +5 -5
  7. package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -5
  8. package/.codex/skills/manage-issue/SKILL.md +7 -7
  9. package/.codex/skills/manage-issue-analyze/SKILL.md +7 -7
  10. package/.codex/skills/manage-issue-discover/SKILL.md +503 -503
  11. package/.codex/skills/manage-issue-execute/SKILL.md +9 -9
  12. package/.codex/skills/manage-issue-plan/SKILL.md +8 -8
  13. package/.codex/skills/manage-learn/SKILL.md +7 -7
  14. package/.codex/skills/manage-memory/SKILL.md +72 -72
  15. package/.codex/skills/manage-memory-capture/SKILL.md +86 -86
  16. package/.codex/skills/manage-status/SKILL.md +2 -2
  17. package/.codex/skills/quality-business-test/SKILL.md +223 -0
  18. package/.codex/skills/quality-debug/SKILL.md +5 -5
  19. package/.codex/skills/quality-integration-test/SKILL.md +544 -544
  20. package/.codex/skills/quality-refactor/SKILL.md +6 -6
  21. package/.codex/skills/quality-retrospective/SKILL.md +10 -10
  22. package/.codex/skills/quality-review/SKILL.md +408 -408
  23. package/.codex/skills/quality-sync/SKILL.md +6 -6
  24. package/.codex/skills/quality-test/SKILL.md +5 -5
  25. package/.codex/skills/quality-test-gen/SKILL.md +447 -447
  26. package/.codex/skills/spec-add/SKILL.md +5 -5
  27. package/.codex/skills/spec-load/SKILL.md +5 -5
  28. package/.codex/skills/spec-map/SKILL.md +5 -5
  29. package/.codex/skills/spec-setup/SKILL.md +2 -2
  30. package/chains/_intent-map.json +6 -0
  31. package/chains/_router.json +14 -0
  32. package/chains/full-lifecycle.json +15 -0
  33. package/chains/quality-loop.json +16 -1
  34. package/chains/singles/business-test.json +26 -0
  35. package/dashboard/dist-server/dashboard/src/server/agents/codex-app-server-adapter.d.ts +4 -0
  36. package/dashboard/dist-server/dashboard/src/server/agents/codex-app-server-adapter.js +47 -1
  37. package/dashboard/dist-server/dashboard/src/server/agents/codex-app-server-adapter.js.map +1 -1
  38. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +16 -2
  39. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
  40. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.d.ts +1 -1
  41. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +25 -9
  42. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
  43. package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +3 -0
  44. package/dashboard/dist-server/src/agents/cli-agent-runner.js +78 -61
  45. package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
  46. package/dashboard/dist-server/src/agents/cli-history-store.d.ts +14 -1
  47. package/dashboard/dist-server/src/agents/cli-history-store.js +24 -2
  48. package/dashboard/dist-server/src/agents/cli-history-store.js.map +1 -1
  49. package/dashboard/dist-server/src/commands/delegate.js +142 -6
  50. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  51. package/dist/src/agents/cli-agent-runner.d.ts +3 -0
  52. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  53. package/dist/src/agents/cli-agent-runner.js +72 -46
  54. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  55. package/dist/src/agents/cli-history-store.d.ts +14 -1
  56. package/dist/src/agents/cli-history-store.d.ts.map +1 -1
  57. package/dist/src/agents/cli-history-store.js +24 -2
  58. package/dist/src/agents/cli-history-store.js.map +1 -1
  59. package/dist/src/commands/delegate.d.ts.map +1 -1
  60. package/dist/src/commands/delegate.js +65 -5
  61. package/dist/src/commands/delegate.js.map +1 -1
  62. package/dist/src/commands/install-backend.d.ts.map +1 -1
  63. package/dist/src/commands/install-backend.js +5 -2
  64. package/dist/src/commands/install-backend.js.map +1 -1
  65. package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
  66. package/dist/src/mcp/delegate-channel-relay.js +7 -2
  67. package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
  68. package/dist/src/mcp/server.js +1 -1
  69. package/dist/src/mcp/server.js.map +1 -1
  70. package/dist/src/tools/index.d.ts +1 -6
  71. package/dist/src/tools/index.d.ts.map +1 -1
  72. package/dist/src/tools/index.js +1 -451
  73. package/dist/src/tools/index.js.map +1 -1
  74. package/package.json +3 -2
  75. package/templates/business-test-report.json +68 -0
@@ -11,6 +11,7 @@ import { generateCliExecId } from '../agents/cli-agent-runner.js';
11
11
  import { loadCliToolsConfig, selectTool } from '../config/cli-tools-config.js';
12
12
  import { paths } from '../config/paths.js';
13
13
  import { DelegateBrokerClient } from '../async/index.js';
14
+ import { handleDelegateMessage } from '../async/delegate-control.js';
14
15
  import { deriveExecutionStatus, deriveDelegateStatus, padRight, truncate, readExecutionEntries, summarizeBrokerEventCli, } from '../utils/cli-format.js';
15
16
  function statusLabel(meta) {
16
17
  const s = deriveExecutionStatus(meta);
@@ -121,7 +122,7 @@ export function launchDetachedDelegateWorker(request, options = {}) {
121
122
  jobId: request.execId,
122
123
  type: 'queued',
123
124
  status: 'queued',
124
- payload: { summary: `Delegate queued for ${request.tool}/${request.mode}` },
125
+ payload: { summary: `${request.tool}/${request.mode} queued` },
125
126
  jobMetadata: buildJobMetadata(request, child.pid),
126
127
  now: startedAt,
127
128
  });
@@ -145,13 +146,20 @@ function isProcessAlive(pid) {
145
146
  return false;
146
147
  }
147
148
  }
149
+ /**
150
+ * Resolve the relay session ID that matches the current Claude Code session.
151
+ * Matches by CLAUDE_CODE_SSE_PORT when available (precise), falls back to
152
+ * newest alive session (legacy). Cleans up dead relay files along the way.
153
+ */
148
154
  function resolveRelaySessionId() {
149
155
  const asyncDir = join(paths.data, 'async');
156
+ const currentSsePort = process.env.CLAUDE_CODE_SSE_PORT;
150
157
  try {
151
158
  const files = readdirSync(asyncDir)
152
159
  .filter((f) => f.startsWith('relay-session-') && f.endsWith('.id'));
153
160
  if (files.length === 0)
154
161
  return undefined;
162
+ let portMatch;
155
163
  let newest;
156
164
  for (const file of files) {
157
165
  const filePath = join(asyncDir, file);
@@ -164,6 +172,10 @@ function resolveRelaySessionId() {
164
172
  catch { }
165
173
  continue;
166
174
  }
175
+ // Precise match: relay recorded the same SSE port as this session
176
+ if (currentSsePort && data.ssePort === currentSsePort) {
177
+ portMatch = data.sessionId;
178
+ }
167
179
  if (!newest || data.startedAt > newest.startedAt) {
168
180
  newest = data;
169
181
  }
@@ -172,12 +184,36 @@ function resolveRelaySessionId() {
172
184
  // Skip corrupted files
173
185
  }
174
186
  }
175
- return newest?.sessionId;
187
+ return portMatch ?? newest?.sessionId;
176
188
  }
177
189
  catch {
178
190
  return undefined;
179
191
  }
180
192
  }
193
+ /** Check if the MCP notification channel is functional for the current session. */
194
+ function isChannelAvailable() {
195
+ if (process.env.CLAUDECODE !== '1')
196
+ return false;
197
+ const currentSsePort = process.env.CLAUDE_CODE_SSE_PORT;
198
+ if (!currentSsePort)
199
+ return false;
200
+ const asyncDir = join(paths.data, 'async');
201
+ try {
202
+ const files = readdirSync(asyncDir)
203
+ .filter((f) => f.startsWith('relay-session-') && f.endsWith('.id'));
204
+ for (const file of files) {
205
+ try {
206
+ const data = JSON.parse(readFileSync(join(asyncDir, file), 'utf-8'));
207
+ if (data.ssePort === currentSsePort && data.pid && isProcessAlive(data.pid)) {
208
+ return true;
209
+ }
210
+ }
211
+ catch { /* skip */ }
212
+ }
213
+ }
214
+ catch { /* dir missing */ }
215
+ return false;
216
+ }
181
217
  export function registerDelegateCommand(program) {
182
218
  const delegate = program
183
219
  .command('delegate [prompt]')
@@ -194,7 +230,7 @@ export function registerDelegateCommand(program) {
194
230
  .option('--includeDirs <dirs>', 'Additional directories (comma-separated)')
195
231
  .option('--session <id>', 'Claude Code session ID for completion notifications')
196
232
  .option('--backend <type>', 'Adapter backend: direct (default) or terminal (tmux/wezterm)')
197
- .option('--async', 'Run the delegate in the background and return immediately')
233
+ .option('--async', 'Run in the background with MCP notifications (default is synchronous)')
198
234
  .addOption(new Option('--worker').hideHelp())
199
235
  .action(async (prompt, opts) => {
200
236
  if (!prompt) {
@@ -229,7 +265,10 @@ export function registerDelegateCommand(program) {
229
265
  backend,
230
266
  };
231
267
  try {
232
- if (opts.async && !opts.worker) {
268
+ // Auto-detect: async only when the MCP notification channel can deliver
269
+ // results back. Checks CLAUDECODE env + relay session matched by SSE port.
270
+ const useAsync = !opts.worker && (opts.async || isChannelAvailable());
271
+ if (useAsync) {
233
272
  process.stderr.write(`[MAESTRO_EXEC_ID=${execId}]\n`);
234
273
  launchDetachedDelegateWorker(request);
235
274
  console.log(`Started async delegate: ${execId}`);
@@ -237,7 +276,19 @@ export function registerDelegateCommand(program) {
237
276
  return;
238
277
  }
239
278
  const runner = new CliAgentRunner();
240
- const exitCode = await runner.run(request);
279
+ const syncMode = !opts.worker;
280
+ const exitCode = await runner.run({ ...request, sync: syncMode });
281
+ // In sync mode, output the final result after completion
282
+ if (syncMode) {
283
+ const store = new CliHistoryStore();
284
+ const output = store.getOutput(execId);
285
+ if (output) {
286
+ process.stderr.write('\n--- Output ---\n');
287
+ process.stdout.write(output);
288
+ if (!output.endsWith('\n'))
289
+ process.stdout.write('\n');
290
+ }
291
+ }
241
292
  process.exit(exitCode);
242
293
  }
243
294
  catch (err) {
@@ -290,6 +341,9 @@ export function registerDelegateCommand(program) {
290
341
  .command('output <id>')
291
342
  .description('Get assistant output for a delegated execution')
292
343
  .option('--verbose', 'Show full metadata and raw output')
344
+ .option('--all', 'Include thinking/reasoning entries in output')
345
+ .option('--offset <n>', 'Character offset to start from (for pagination)')
346
+ .option('--limit <n>', 'Max characters to return (for pagination)')
293
347
  .action((id, opts) => {
294
348
  const store = new CliHistoryStore();
295
349
  const meta = store.loadMeta(id);
@@ -297,6 +351,8 @@ export function registerDelegateCommand(program) {
297
351
  console.error(`Execution not found: ${id}`);
298
352
  process.exit(1);
299
353
  }
354
+ const offset = opts.offset ? parseInt(opts.offset, 10) : undefined;
355
+ const limit = opts.limit ? parseInt(opts.limit, 10) : undefined;
300
356
  if (opts.verbose) {
301
357
  console.log(`ID: ${meta.execId}`);
302
358
  console.log(`Tool: ${meta.tool}`);
@@ -306,9 +362,14 @@ export function registerDelegateCommand(program) {
306
362
  if (meta.completedAt) {
307
363
  console.log(`End: ${meta.completedAt}`);
308
364
  }
365
+ const totalChars = store.getOutputLength(meta.execId);
366
+ console.log(`Chars: ${totalChars}`);
367
+ if (offset || limit) {
368
+ console.log(`Page: offset=${offset ?? 0} limit=${limit ?? 'all'}`);
369
+ }
309
370
  console.log('---');
310
371
  }
311
- const output = store.getOutput(id);
372
+ const output = store.getOutput(id, { includeAll: opts.all, offset, limit });
312
373
  if (!output) {
313
374
  console.error(`No output available for: ${id}`);
314
375
  process.exit(1);
@@ -409,5 +470,80 @@ export function registerDelegateCommand(program) {
409
470
  console.log(`Current status: ${deriveDelegateStatus(meta, updated)}`);
410
471
  console.log('Use `maestro delegate status <id>` or `maestro delegate tail <id>` to follow progress.');
411
472
  });
473
+ // ---- message subcommand --------------------------------------------------
474
+ delegate
475
+ .command('message <id> <text>')
476
+ .description('Send a follow-up message to a running or completed delegate')
477
+ .option('--delivery <mode>', 'Delivery mode: inject or after_complete', 'inject')
478
+ .action((id, text, opts) => {
479
+ const delivery = opts.delivery ?? 'inject';
480
+ if (delivery !== 'inject' && delivery !== 'after_complete') {
481
+ console.error(`Invalid delivery mode: ${delivery}. Use "inject" or "after_complete".`);
482
+ process.exit(1);
483
+ }
484
+ let result;
485
+ try {
486
+ result = handleDelegateMessage({
487
+ execId: id,
488
+ message: text,
489
+ delivery: delivery,
490
+ requestedBy: 'cli:delegate:message',
491
+ });
492
+ }
493
+ catch (err) {
494
+ const message = err instanceof Error ? err.message : String(err);
495
+ console.error(`Failed: ${message}`);
496
+ process.exit(1);
497
+ }
498
+ console.log(`Message accepted for ${result.execId}`);
499
+ console.log(`Delivery: ${result.delivery}`);
500
+ console.log(`Status: ${result.status}`);
501
+ if (result.immediateDispatch) {
502
+ console.log(`Dispatch: immediate (previous status: ${result.previousStatus})`);
503
+ }
504
+ else {
505
+ console.log(`Queue: ${result.queueDepth} message(s) pending`);
506
+ }
507
+ });
508
+ // ---- messages subcommand -------------------------------------------------
509
+ delegate
510
+ .command('messages <id>')
511
+ .description('List queued and dispatched follow-up messages for a delegate')
512
+ .action((id) => {
513
+ const store = new CliHistoryStore();
514
+ const broker = new DelegateBrokerClient();
515
+ const meta = store.loadMeta(id);
516
+ const job = broker.getJob(id);
517
+ if (!meta && !job) {
518
+ console.error(`Execution not found: ${id}`);
519
+ process.exit(1);
520
+ }
521
+ const messages = broker.listMessages(id);
522
+ if (messages.length === 0) {
523
+ console.log(`No messages for ${id}.`);
524
+ return;
525
+ }
526
+ const colId = 12;
527
+ const colDelivery = 16;
528
+ const colStatus = 12;
529
+ const colMessage = 60;
530
+ const header = [
531
+ padRight('MessageID', colId),
532
+ padRight('Delivery', colDelivery),
533
+ padRight('Status', colStatus),
534
+ padRight('Message', colMessage),
535
+ ].join(' ');
536
+ console.log(header);
537
+ console.log('-'.repeat(header.length));
538
+ for (const msg of messages) {
539
+ const row = [
540
+ padRight(msg.messageId.slice(0, colId), colId),
541
+ padRight(msg.delivery, colDelivery),
542
+ padRight(msg.status, colStatus),
543
+ padRight(truncate(msg.message, colMessage), colMessage),
544
+ ].join(' ');
545
+ console.log(row);
546
+ }
547
+ });
412
548
  }
413
549
  //# sourceMappingURL=delegate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../../src/commands/delegate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../../src/commands/delegate.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,9 @@ export interface CliRunOptions {
36
36
  includeDirs?: string[];
37
37
  sessionId?: string;
38
38
  backend?: 'direct' | 'terminal';
39
+ /** Synchronous blocking mode: suppress broker events and MCP notifications,
40
+ * stream snapshot-style progress logs to stderr instead. */
41
+ sync?: boolean;
39
42
  }
40
43
  export declare function generateCliExecId(tool: string): string;
41
44
  export declare class CliAgentRunner {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-agent-runner.d.ts","sourceRoot":"","sources":["../../../src/agents/cli-agent-runner.ts"],"names":[],"mappings":"AAeA,OAAO,EAAwB,KAAK,iBAAiB,EAA2C,MAAM,mBAAmB,CAAC;AAM1H,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,2EAA2E;AAC3E,UAAU,WAAW;IACnB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7E,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,mBAAmB,CAAC,IAAI,OAAO,CAAC;IAChC,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,UAAU,mBAAmB;IAC3B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAChG,YAAY,CAAC,EAAE,MAAM,mBAAmB,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD;AAMD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACjC;AA4CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtD;AA2PD,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,GAAE,0BAA+B;IAE1E,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmCtC;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAkYnD"}
1
+ {"version":3,"file":"cli-agent-runner.d.ts","sourceRoot":"","sources":["../../../src/agents/cli-agent-runner.ts"],"names":[],"mappings":"AAeA,OAAO,EAAwB,KAAK,iBAAiB,EAA2C,MAAM,mBAAmB,CAAC;AAM1H,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,2EAA2E;AAC3E,UAAU,WAAW;IACnB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC7E,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,mBAAmB,CAAC,IAAI,OAAO,CAAC;IAChC,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,UAAU,mBAAmB;IAC3B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAChG,YAAY,CAAC,EAAE,MAAM,mBAAmB,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD;AAMD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC;iEAC6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA4CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtD;AAiPD,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,GAAE,0BAA+B;IAE1E,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmCtC;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAganD"}
@@ -235,19 +235,9 @@ function summarizeEntry(entry) {
235
235
  return `Event: ${entry.type}`;
236
236
  }
237
237
  }
238
- function shouldPublishSnapshot(entry) {
239
- switch (entry.type) {
240
- case 'assistant_message':
241
- return entry.partial !== true;
242
- case 'tool_use':
243
- return entry.status === 'completed' || entry.status === 'failed';
244
- case 'file_change':
245
- case 'command_exec':
246
- case 'error':
247
- return true;
248
- default:
249
- return false;
250
- }
238
+ /** Snapshots are disabled during execution — only start and end events are published. */
239
+ function shouldPublishSnapshot(_entry) {
240
+ return false;
251
241
  }
252
242
  function createNoopBridge() {
253
243
  return {
@@ -344,9 +334,10 @@ export class CliAgentRunner {
344
334
  process.stderr.write(`[MAESTRO_EXEC_ID=${execId}]\n`);
345
335
  // History store for persistence and resume
346
336
  const store = new CliHistoryStore();
347
- const broker = this.dependencies.brokerClient ?? new DelegateBrokerClient();
337
+ const syncMode = options.sync === true;
338
+ const broker = syncMode ? undefined : (this.dependencies.brokerClient ?? new DelegateBrokerClient());
348
339
  const now = this.dependencies.now ?? (() => new Date().toISOString());
349
- const jobMetadata = buildJobMetadata(options);
340
+ const jobMetadata = syncMode ? {} : buildJobMetadata(options);
350
341
  // Handle --resume: prepend previous session context to user prompt
351
342
  let userPrompt = options.prompt;
352
343
  if (options.resume) {
@@ -400,7 +391,21 @@ export class CliAgentRunner {
400
391
  workDir: options.workDir,
401
392
  startedAt: agentProcess.startedAt,
402
393
  });
394
+ /** Write a snapshot-style progress line to stderr (sync mode). */
395
+ const writeStreamLog = (label, summary) => {
396
+ process.stderr.write(`[DELEGATE ${label}] ${execId} ${summary}\n`);
397
+ };
403
398
  const publishEvent = (type, status, summary, extraPayload = {}, extraJobMetadata) => {
399
+ if (syncMode) {
400
+ // In sync mode, write progress to stderr instead of broker
401
+ const label = status === 'running' ? 'RUNNING'
402
+ : status === 'completed' ? 'DONE'
403
+ : status === 'failed' ? 'FAILED'
404
+ : status === 'cancelled' ? 'CANCELLED'
405
+ : status.toUpperCase();
406
+ writeStreamLog(label, summary);
407
+ return;
408
+ }
404
409
  try {
405
410
  const snapshot = store.buildSnapshot(execId);
406
411
  broker.publishEvent({
@@ -425,7 +430,7 @@ export class CliAgentRunner {
425
430
  // shell process tree doesn't fire exit/close reliably), write meta.json
426
431
  // from the synchronous process.on('exit') handler as a last resort.
427
432
  let metaWritten = false;
428
- let cancellationRequested = Boolean(broker.getJob(execId)?.metadata?.cancelRequestedAt);
433
+ let cancellationRequested = !syncMode && Boolean(broker.getJob(execId)?.metadata?.cancelRequestedAt);
429
434
  let cancellationInitiated = false;
430
435
  let cancellationPoller = null;
431
436
  const clearCancellationPoller = () => {
@@ -456,32 +461,34 @@ export class CliAgentRunner {
456
461
  completedAt,
457
462
  status,
458
463
  });
459
- // Write delegate completion notification (for hook fallback)
460
- const sessionId = options.sessionId;
461
- if (sessionId) {
462
- // JSONL file write (for hook fallback)
463
- try {
464
- const notifyPath = join(tmpdir(), `${NOTIFY_PREFIX}${sessionId}.jsonl`);
465
- const entry = JSON.stringify({
466
- execId,
467
- tool: options.tool,
468
- mode: options.mode,
469
- prompt: options.prompt.substring(0, 200),
470
- exitCode,
471
- completedAt,
472
- status,
473
- });
474
- appendFileSync(notifyPath, entry + '\n', 'utf-8');
475
- }
476
- catch (err) {
477
- console.error(`[${execId}] Failed to write JSONL notification: ${err instanceof Error ? err.message : err}`);
478
- }
479
- // MCP channel notification (primary path)
480
- try {
481
- CliAgentRunner.sendChannelNotification(sessionId, execId, options.tool, options.mode, status, exitCode);
482
- }
483
- catch (err) {
484
- console.error(`[${execId}] Failed to send channel notification: ${err instanceof Error ? err.message : err}`);
464
+ // Write delegate completion notification (for hook fallback) — skip in sync mode
465
+ if (!syncMode) {
466
+ const sessionId = options.sessionId;
467
+ if (sessionId) {
468
+ // JSONL file write (for hook fallback)
469
+ try {
470
+ const notifyPath = join(tmpdir(), `${NOTIFY_PREFIX}${sessionId}.jsonl`);
471
+ const entry = JSON.stringify({
472
+ execId,
473
+ tool: options.tool,
474
+ mode: options.mode,
475
+ prompt: options.prompt.substring(0, 200),
476
+ exitCode,
477
+ completedAt,
478
+ status,
479
+ });
480
+ appendFileSync(notifyPath, entry + '\n', 'utf-8');
481
+ }
482
+ catch (err) {
483
+ console.error(`[${execId}] Failed to write JSONL notification: ${err instanceof Error ? err.message : err}`);
484
+ }
485
+ // MCP channel notification (primary path)
486
+ try {
487
+ CliAgentRunner.sendChannelNotification(sessionId, execId, options.tool, options.mode, status, exitCode);
488
+ }
489
+ catch (err) {
490
+ console.error(`[${execId}] Failed to send channel notification: ${err instanceof Error ? err.message : err}`);
491
+ }
485
492
  }
486
493
  }
487
494
  };
@@ -506,6 +513,8 @@ export class CliAgentRunner {
506
513
  }
507
514
  };
508
515
  const dispatchQueuedFollowup = (finalStatus) => {
516
+ if (!broker)
517
+ return;
509
518
  let queuedMessage;
510
519
  try {
511
520
  queuedMessage = broker.listMessages(execId).find((message) => (message.status === 'queued'
@@ -554,7 +563,7 @@ export class CliAgentRunner {
554
563
  });
555
564
  };
556
565
  const inFlightMessageIds = new Set();
557
- if (!isTerminalStatus(broker.getJob(execId)?.status)) {
566
+ if (!syncMode && !isTerminalStatus(broker.getJob(execId)?.status)) {
558
567
  cancellationPoller = setInterval(() => {
559
568
  try {
560
569
  const job = broker.getJob(execId);
@@ -618,7 +627,22 @@ export class CliAgentRunner {
618
627
  store.appendEntry(execId, entry);
619
628
  (this.dependencies.renderEntry ?? renderEntry)(entry);
620
629
  bridge.forwardEntry(entry);
621
- if (shouldPublishSnapshot(entry)) {
630
+ if (syncMode) {
631
+ // In sync mode, stream key events to stderr as progress logs
632
+ if (entry.type === 'tool_use' && (entry.status === 'completed' || entry.status === 'failed')) {
633
+ writeStreamLog('RUNNING', `Tool ${entry.name} ${entry.status}`);
634
+ }
635
+ else if (entry.type === 'file_change') {
636
+ writeStreamLog('RUNNING', `File ${entry.action}: ${entry.path}`);
637
+ }
638
+ else if (entry.type === 'command_exec') {
639
+ writeStreamLog('RUNNING', `Command: ${entry.command}`);
640
+ }
641
+ else if (entry.type === 'error') {
642
+ writeStreamLog('RUNNING', `Error: ${entry.message}`);
643
+ }
644
+ }
645
+ else if (shouldPublishSnapshot(entry)) {
622
646
  publishEvent('snapshot', 'running', summarizeEntry(entry), {
623
647
  entryType: entry.type,
624
648
  });
@@ -656,7 +680,8 @@ export class CliAgentRunner {
656
680
  clearCancellationPoller();
657
681
  const finalStatus = cancellationRequested ? 'cancelled' : 'completed';
658
682
  saveMeta(finalStatus, cancellationRequested ? 130 : 0);
659
- dispatchQueuedFollowup(finalStatus);
683
+ if (!syncMode)
684
+ dispatchQueuedFollowup(finalStatus);
660
685
  process.removeListener('exit', processExitHandler);
661
686
  bridge.forwardStopped(agentProcess.id);
662
687
  bridge.close();
@@ -668,7 +693,8 @@ export class CliAgentRunner {
668
693
  clearCancellationPoller();
669
694
  const finalStatus = cancellationRequested ? 'cancelled' : 'failed';
670
695
  saveMeta(finalStatus, cancellationRequested ? 130 : 1);
671
- dispatchQueuedFollowup(finalStatus);
696
+ if (!syncMode)
697
+ dispatchQueuedFollowup(finalStatus);
672
698
  process.removeListener('exit', processExitHandler);
673
699
  bridge.forwardStopped(agentProcess.id);
674
700
  bridge.close();