maestro-flow 0.1.0 → 0.1.2

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 (92) hide show
  1. package/.codex/skills/manage-codebase-rebuild/SKILL.md +405 -405
  2. package/.codex/skills/manage-codebase-refresh/SKILL.md +82 -82
  3. package/.codex/skills/manage-issue/SKILL.md +65 -65
  4. package/.codex/skills/manage-status/SKILL.md +89 -89
  5. package/.codex/skills/quality-debug/SKILL.md +413 -413
  6. package/.codex/skills/quality-refactor/SKILL.md +191 -191
  7. package/.codex/skills/quality-sync/SKILL.md +89 -89
  8. package/.codex/skills/quality-test/SKILL.md +198 -198
  9. package/.codex/skills/spec-add/SKILL.md +79 -79
  10. package/.codex/skills/spec-load/SKILL.md +75 -75
  11. package/.codex/skills/spec-map/SKILL.md +182 -182
  12. package/.codex/skills/spec-setup/SKILL.md +76 -76
  13. package/.codex/skills/team-coordinate/SKILL.md +7 -7
  14. package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
  15. package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -2
  16. package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +2 -2
  17. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  18. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +2 -2
  19. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +1 -1
  20. package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +2 -2
  21. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  22. package/.codex/skills/team-lifecycle-v4/schemas/tasks-schema.md +1 -1
  23. package/.codex/skills/team-quality-assurance/SKILL.md +2 -2
  24. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +2 -2
  25. package/.codex/skills/team-quality-assurance/roles/executor/role.md +1 -1
  26. package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -2
  27. package/.codex/skills/team-review/SKILL.md +2 -2
  28. package/.codex/skills/team-review/roles/coordinator/role.md +2 -2
  29. package/.codex/skills/team-review/roles/reviewer/role.md +2 -2
  30. package/.codex/skills/team-review/roles/scanner/role.md +1 -1
  31. package/.codex/skills/team-tech-debt/SKILL.md +2 -2
  32. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +1 -1
  33. package/.codex/skills/team-tech-debt/roles/executor/role.md +1 -1
  34. package/.codex/skills/team-tech-debt/roles/scanner/role.md +2 -2
  35. package/.codex/skills/team-tech-debt/roles/validator/role.md +1 -1
  36. package/.codex/skills/team-testing/SKILL.md +2 -2
  37. package/.codex/skills/team-testing/roles/coordinator/role.md +2 -2
  38. package/.codex/skills/team-testing/roles/executor/role.md +2 -2
  39. package/.codex/skills/team-testing/roles/generator/role.md +2 -2
  40. package/README.md +43 -4
  41. package/dist/agents/dashboard-bridge.d.ts +5 -0
  42. package/dist/agents/dashboard-bridge.d.ts.map +1 -1
  43. package/dist/agents/dashboard-bridge.js +13 -0
  44. package/dist/agents/dashboard-bridge.js.map +1 -1
  45. package/dist/agents/parallel-cli-runner.d.ts +42 -0
  46. package/dist/agents/parallel-cli-runner.d.ts.map +1 -0
  47. package/dist/agents/parallel-cli-runner.js +200 -0
  48. package/dist/agents/parallel-cli-runner.js.map +1 -0
  49. package/dist/agents/terminal-adapter.d.ts +94 -0
  50. package/dist/agents/terminal-adapter.d.ts.map +1 -0
  51. package/dist/agents/terminal-adapter.js +132 -0
  52. package/dist/agents/terminal-adapter.js.map +1 -0
  53. package/dist/agents/terminal-backend.d.ts +53 -0
  54. package/dist/agents/terminal-backend.d.ts.map +1 -0
  55. package/dist/agents/terminal-backend.js +286 -0
  56. package/dist/agents/terminal-backend.js.map +1 -0
  57. package/dist/cli.js +5 -1
  58. package/dist/cli.js.map +1 -1
  59. package/dist/commands/coordinate.d.ts.map +1 -1
  60. package/dist/commands/coordinate.js +14 -5
  61. package/dist/commands/coordinate.js.map +1 -1
  62. package/dist/commands/delegate.d.ts +3 -0
  63. package/dist/commands/delegate.d.ts.map +1 -0
  64. package/dist/commands/delegate.js +142 -0
  65. package/dist/commands/delegate.js.map +1 -0
  66. package/dist/commands/msg.d.ts +3 -0
  67. package/dist/commands/msg.d.ts.map +1 -0
  68. package/dist/commands/msg.js +110 -0
  69. package/dist/commands/msg.js.map +1 -0
  70. package/dist/coordinator/graph-types.d.ts +17 -0
  71. package/dist/coordinator/graph-types.d.ts.map +1 -1
  72. package/dist/coordinator/graph-walker.d.ts +3 -1
  73. package/dist/coordinator/graph-walker.d.ts.map +1 -1
  74. package/dist/coordinator/graph-walker.js +147 -8
  75. package/dist/coordinator/graph-walker.js.map +1 -1
  76. package/dist/coordinator/index.d.ts +2 -0
  77. package/dist/coordinator/index.d.ts.map +1 -1
  78. package/dist/coordinator/index.js +1 -0
  79. package/dist/coordinator/index.js.map +1 -1
  80. package/dist/coordinator/parallel-executor.d.ts +24 -0
  81. package/dist/coordinator/parallel-executor.d.ts.map +1 -0
  82. package/dist/coordinator/parallel-executor.js +43 -0
  83. package/dist/coordinator/parallel-executor.js.map +1 -0
  84. package/package.json +3 -1
  85. package/templates/cli/prompts/rules-tech-rules-agent-prompt.txt +89 -89
  86. package/templates/cli/prompts/workflow-codex-feasibility-validation.txt +176 -176
  87. package/templates/cli/prompts/workflow-gemini-solution-design.txt +131 -131
  88. package/templates/cli/prompts/workflow-skill-index.txt +224 -224
  89. package/templates/cli/protocols/analysis-protocol.md +2 -2
  90. package/templates/cli/protocols/write-protocol.md +2 -2
  91. package/workflows/memory.md +2 -2
  92. package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +0 -512
@@ -0,0 +1,286 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Terminal Backend — multiplexer abstraction for tmux and wezterm IPC
3
+ // ---------------------------------------------------------------------------
4
+ import { execFile } from 'node:child_process';
5
+ import { randomBytes } from 'node:crypto';
6
+ import { promisify } from 'node:util';
7
+ const execFileP = promisify(execFile);
8
+ /** Typed wrapper ensuring string stdout/stderr (encoding: utf-8). */
9
+ async function execFileAsync(cmd, args, opts) {
10
+ const result = await execFileP(cmd, args, opts);
11
+ return {
12
+ stdout: String(result.stdout ?? ''),
13
+ stderr: String(result.stderr ?? ''),
14
+ };
15
+ }
16
+ // ---------------------------------------------------------------------------
17
+ // Cross-platform subprocess options
18
+ // ---------------------------------------------------------------------------
19
+ /** Common child_process options with windowsHide:true for all calls. */
20
+ export function subprocessOpts(cwd) {
21
+ return {
22
+ encoding: 'utf-8',
23
+ timeout: 5000,
24
+ cwd,
25
+ windowsHide: true,
26
+ };
27
+ }
28
+ function sleep(ms) {
29
+ return new Promise(resolve => setTimeout(resolve, ms));
30
+ }
31
+ // ---------------------------------------------------------------------------
32
+ // TmuxBackend
33
+ // ---------------------------------------------------------------------------
34
+ export class TmuxBackend {
35
+ type = 'tmux';
36
+ enterDelay;
37
+ constructor(options) {
38
+ this.enterDelay = options?.enterDelayMs
39
+ ?? parseInt(process.env.MAESTRO_TMUX_ENTER_DELAY ?? '500', 10);
40
+ }
41
+ async createPane(options) {
42
+ const { cwd, cmd, direction = 'right', parentPaneId } = options;
43
+ const dirFlag = direction === 'right' ? '-h' : '-v';
44
+ let paneId;
45
+ if (parentPaneId) {
46
+ // Split from existing pane
47
+ const { stdout } = await execFileAsync('tmux', [
48
+ 'split-window', dirFlag, '-t', parentPaneId,
49
+ '-P', '-F', '#{pane_id}',
50
+ ], subprocessOpts());
51
+ paneId = stdout.trim();
52
+ }
53
+ else {
54
+ // Create new detached session with a unique name
55
+ const sessionName = `maestro-${Date.now()}-${randomBytes(2).toString('hex')}`;
56
+ await execFileAsync('tmux', [
57
+ 'new-session', '-d', '-s', sessionName, '-c', cwd,
58
+ ], subprocessOpts());
59
+ const { stdout } = await execFileAsync('tmux', [
60
+ 'list-panes', '-t', sessionName, '-F', '#{pane_id}',
61
+ ], subprocessOpts());
62
+ paneId = stdout.trim().split('\n')[0];
63
+ }
64
+ // Respawn with command if provided
65
+ if (cmd) {
66
+ await execFileAsync('tmux', [
67
+ 'respawn-pane', '-k', '-t', paneId, '-c', cwd,
68
+ `bash -l -i -c "${cmd}"`,
69
+ ], subprocessOpts());
70
+ }
71
+ return paneId;
72
+ }
73
+ async sendText(paneId, text) {
74
+ const sanitized = text.replace(/\r/g, '').trim();
75
+ if (!sanitized)
76
+ return;
77
+ // Unique buffer name: pid + timestamp + random (from Bridge pattern)
78
+ const bufName = `maestro-tb-${process.pid}-${Date.now()}-${Math.floor(Math.random() * 9000) + 1000}`;
79
+ try {
80
+ // Exit copy mode if active
81
+ try {
82
+ const { stdout } = await execFileAsync('tmux', [
83
+ 'display-message', '-p', '-t', paneId, '#{pane_in_mode}',
84
+ ], subprocessOpts());
85
+ if (stdout.trim() !== '0') {
86
+ await execFileAsync('tmux', [
87
+ 'send-keys', '-t', paneId, '-X', 'cancel',
88
+ ], subprocessOpts());
89
+ }
90
+ }
91
+ catch { /* pane might not be in copy mode */ }
92
+ // Load text into named buffer via stdin
93
+ await execFileAsync('tmux', [
94
+ 'load-buffer', '-b', bufName, '-',
95
+ ], { ...subprocessOpts(), input: sanitized });
96
+ // Paste with bracketed paste mode
97
+ await execFileAsync('tmux', [
98
+ 'paste-buffer', '-p', '-t', paneId, '-b', bufName,
99
+ ], subprocessOpts());
100
+ // Wait for CLI to process input
101
+ await sleep(this.enterDelay);
102
+ // Send Enter
103
+ await execFileAsync('tmux', [
104
+ 'send-keys', '-t', paneId, 'Enter',
105
+ ], subprocessOpts());
106
+ }
107
+ finally {
108
+ // Always clean up buffer
109
+ try {
110
+ await execFileAsync('tmux', [
111
+ 'delete-buffer', '-b', bufName,
112
+ ], subprocessOpts());
113
+ }
114
+ catch { /* buffer may not exist */ }
115
+ }
116
+ }
117
+ async isAlive(paneId) {
118
+ try {
119
+ const { stdout } = await execFileAsync('tmux', [
120
+ 'display-message', '-p', '-t', paneId, '#{pane_dead}',
121
+ ], subprocessOpts());
122
+ return stdout.trim() === '0';
123
+ }
124
+ catch {
125
+ return false;
126
+ }
127
+ }
128
+ async getText(paneId, lines = 50) {
129
+ const { stdout } = await execFileAsync('tmux', [
130
+ 'capture-pane', '-t', paneId, '-p', '-S', `-${lines}`,
131
+ ], subprocessOpts());
132
+ // Strip ANSI escape sequences
133
+ return stdout.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, '');
134
+ }
135
+ async killPane(paneId) {
136
+ try {
137
+ await execFileAsync('tmux', [
138
+ 'kill-pane', '-t', paneId,
139
+ ], subprocessOpts());
140
+ }
141
+ catch { /* pane already dead */ }
142
+ }
143
+ }
144
+ // ---------------------------------------------------------------------------
145
+ // WeztermBackend
146
+ // ---------------------------------------------------------------------------
147
+ export class WeztermBackend {
148
+ type = 'wezterm';
149
+ enterDelay;
150
+ weztermBin;
151
+ constructor(options) {
152
+ this.enterDelay = options?.enterDelayMs
153
+ ?? parseInt(process.env.MAESTRO_WEZTERM_ENTER_DELAY
154
+ ?? (process.platform === 'win32' ? '50' : '10'), 10);
155
+ this.weztermBin = options?.weztermBin
156
+ ?? process.env.WEZTERM_BIN ?? 'wezterm';
157
+ }
158
+ async createPane(options) {
159
+ const { cwd, cmd, direction = 'right', percent = 50, parentPaneId } = options;
160
+ const args = ['cli', 'split-pane'];
161
+ if (direction === 'right')
162
+ args.push('--right');
163
+ else
164
+ args.push('--bottom');
165
+ args.push('--percent', String(percent));
166
+ if (parentPaneId) {
167
+ args.push('--pane-id', parentPaneId);
168
+ }
169
+ args.push('--cwd', cwd);
170
+ if (cmd) {
171
+ args.push('--', cmd);
172
+ }
173
+ const { stdout } = await execFileAsync(this.weztermBin, args, subprocessOpts());
174
+ return stdout.trim(); // pane ID (numeric string)
175
+ }
176
+ async sendText(paneId, text) {
177
+ const sanitized = text.replace(/\r/g, '').trim();
178
+ if (!sanitized)
179
+ return;
180
+ const isMultiLine = sanitized.includes('\n');
181
+ if (!isMultiLine && sanitized.length <= 200) {
182
+ // Short single-line: argv, --no-paste
183
+ await execFileAsync(this.weztermBin, [
184
+ 'cli', 'send-text', '--pane-id', paneId, '--no-paste', sanitized,
185
+ ], subprocessOpts());
186
+ }
187
+ else if (!isMultiLine) {
188
+ // Long single-line: stdin, --no-paste
189
+ const opts = { ...subprocessOpts(), input: sanitized };
190
+ await execFileAsync(this.weztermBin, [
191
+ 'cli', 'send-text', '--pane-id', paneId, '--no-paste',
192
+ ], opts);
193
+ }
194
+ else {
195
+ // Multi-line: stdin, paste mode (no --no-paste)
196
+ const opts = { ...subprocessOpts(), input: sanitized };
197
+ await execFileAsync(this.weztermBin, [
198
+ 'cli', 'send-text', '--pane-id', paneId,
199
+ ], opts);
200
+ }
201
+ // Enter key with delay
202
+ await sleep(this.enterDelay);
203
+ await this.sendEnter(paneId);
204
+ }
205
+ /**
206
+ * 3-level Enter key fallback:
207
+ * 1. wezterm cli send-key --key Enter (flag form)
208
+ * 2. wezterm cli send-key Enter (positional form)
209
+ * 3. CR byte via send-text --no-paste (final fallback)
210
+ */
211
+ async sendEnter(paneId) {
212
+ // Level 1 & 2: try send-key with both key variants
213
+ for (const key of ['Enter', 'Return']) {
214
+ // Flag form: --key Enter
215
+ try {
216
+ await execFileAsync(this.weztermBin, [
217
+ 'cli', 'send-key', '--pane-id', paneId, '--key', key,
218
+ ], { ...subprocessOpts(), timeout: 1000 });
219
+ return;
220
+ }
221
+ catch { /* try next variant */ }
222
+ // Positional form: send-key Enter
223
+ try {
224
+ await execFileAsync(this.weztermBin, [
225
+ 'cli', 'send-key', '--pane-id', paneId, key,
226
+ ], { ...subprocessOpts(), timeout: 1000 });
227
+ return;
228
+ }
229
+ catch { /* try next */ }
230
+ }
231
+ // Level 3: CR byte via send-text
232
+ const opts = { ...subprocessOpts(), input: '\r' };
233
+ await execFileAsync(this.weztermBin, [
234
+ 'cli', 'send-text', '--pane-id', paneId, '--no-paste',
235
+ ], opts);
236
+ }
237
+ async isAlive(paneId) {
238
+ try {
239
+ const { stdout } = await execFileAsync(this.weztermBin, [
240
+ 'cli', 'list', '--format', 'json',
241
+ ], subprocessOpts());
242
+ const panes = JSON.parse(stdout);
243
+ return panes.some(p => String(p.pane_id) === paneId);
244
+ }
245
+ catch {
246
+ // Fallback: plain text parsing
247
+ try {
248
+ const { stdout } = await execFileAsync(this.weztermBin, [
249
+ 'cli', 'list',
250
+ ], subprocessOpts());
251
+ return stdout.includes(paneId);
252
+ }
253
+ catch {
254
+ return false;
255
+ }
256
+ }
257
+ }
258
+ async getText(paneId, lines = 50) {
259
+ const { stdout } = await execFileAsync(this.weztermBin, [
260
+ 'cli', 'get-text', '--pane-id', paneId,
261
+ ], { ...subprocessOpts(), timeout: 2000 });
262
+ // Return last N lines
263
+ const allLines = stdout.split('\n');
264
+ return allLines.slice(-lines).join('\n');
265
+ }
266
+ async killPane(paneId) {
267
+ try {
268
+ // WezTerm: send exit command to gracefully close the pane
269
+ await this.sendText(paneId, 'exit');
270
+ }
271
+ catch { /* best effort */ }
272
+ }
273
+ }
274
+ // ---------------------------------------------------------------------------
275
+ // Auto-detection — tmux first (inner env when running wezterm+tmux)
276
+ // ---------------------------------------------------------------------------
277
+ export function detectBackend() {
278
+ if (process.env.TMUX || process.env.TMUX_PANE) {
279
+ return new TmuxBackend();
280
+ }
281
+ if (process.env.WEZTERM_PANE) {
282
+ return new WeztermBackend();
283
+ }
284
+ return null;
285
+ }
286
+ //# sourceMappingURL=terminal-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-backend.js","sourceRoot":"","sources":["../../src/agents/terminal-backend.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -12,11 +12,13 @@ import { registerSpecCommand } from './commands/spec.js';
12
12
  import { registerHooksCommand } from './commands/hooks.js';
13
13
  import { registerCoordinateCommand } from './commands/coordinate.js';
14
14
  import { registerLauncherCommand } from './commands/launcher.js';
15
+ import { registerDelegateCommand } from './commands/delegate.js';
16
+ import { registerMsgCommand } from './commands/msg.js';
15
17
  const program = new Command();
16
18
  program
17
19
  .name('maestro')
18
20
  .description('Workflow orchestration CLI with MCP support and extensible architecture')
19
- .version('0.1.0');
21
+ .version('0.1.1');
20
22
  registerServeCommand(program);
21
23
  registerRunCommand(program);
22
24
  registerExtCommand(program);
@@ -30,5 +32,7 @@ registerSpecCommand(program);
30
32
  registerHooksCommand(program);
31
33
  registerCoordinateCommand(program);
32
34
  registerLauncherCommand(program);
35
+ registerDelegateCommand(program);
36
+ registerMsgCommand(program);
33
37
  program.parse();
34
38
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,yEAAyE,CAAC;KACtF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,yEAAyE,CAAC;KACtF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"coordinate.d.ts","sourceRoot":"","sources":["../../src/commands/coordinate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgHzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8JhE"}
1
+ {"version":3,"file":"coordinate.d.ts","sourceRoot":"","sources":["../../src/commands/coordinate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0HzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiKhE"}
@@ -14,6 +14,8 @@ import { DefaultPromptAssembler } from '../coordinator/prompt-assembler.js';
14
14
  import { CliExecutor } from '../coordinator/cli-executor.js';
15
15
  import { DefaultExprEvaluator } from '../coordinator/expr-evaluator.js';
16
16
  import { DefaultOutputParser } from '../coordinator/output-parser.js';
17
+ import { DefaultParallelExecutor } from '../coordinator/parallel-executor.js';
18
+ import { ParallelCliRunner } from '../agents/parallel-cli-runner.js';
17
19
  const execFileAsync = promisify(execFile);
18
20
  // ---------------------------------------------------------------------------
19
21
  // Shared helpers
@@ -69,15 +71,20 @@ function createSpawnFn() {
69
71
  }
70
72
  };
71
73
  }
72
- function createWalker(workflowRoot) {
74
+ function createWalker(workflowRoot, opts) {
73
75
  const { chainsRoot, templateDir, sessionDir } = resolvePaths(workflowRoot);
74
76
  const loader = new GraphLoader(chainsRoot);
75
77
  const evaluator = new DefaultExprEvaluator();
76
78
  const parser = new DefaultOutputParser();
77
79
  const assembler = new DefaultPromptAssembler(workflowRoot, templateDir);
78
- const executor = new CliExecutor(createSpawnFn());
80
+ const spawnFn = createSpawnFn();
81
+ const executor = new CliExecutor(spawnFn);
79
82
  const router = new IntentRouter(loader, chainsRoot);
80
- const walker = new GraphWalker(loader, assembler, executor, null, parser, evaluator, undefined, sessionDir);
83
+ // Inject parallel executor when --parallel flag is set
84
+ const parallelExecutor = opts?.parallel
85
+ ? new DefaultParallelExecutor(new ParallelCliRunner(spawnFn))
86
+ : undefined;
87
+ const walker = new GraphWalker(loader, assembler, executor, null, parser, evaluator, undefined, sessionDir, parallelExecutor);
81
88
  return { walker, router, loader };
82
89
  }
83
90
  function printState(state) {
@@ -136,10 +143,11 @@ export function registerCoordinateCommand(program) {
136
143
  .option('--chain <name>', 'Force specific chain graph')
137
144
  .option('--tool <tool>', 'Agent tool to use', 'claude')
138
145
  .option('-y, --yes', 'Auto mode — inject auto-confirm flags')
146
+ .option('--parallel', 'Enable parallel execution for fork/join nodes')
139
147
  .action(async (intentWords, opts) => {
140
148
  const intent = intentWords.join(' ');
141
149
  const workflowRoot = resolve(process.cwd());
142
- const { walker, router } = createWalker(workflowRoot);
150
+ const { walker, router } = createWalker(workflowRoot, { parallel: opts.parallel });
143
151
  try {
144
152
  const graphId = router.resolve(intent, opts.chain);
145
153
  console.error(`[coordinate] Graph: ${graphId}`);
@@ -206,10 +214,11 @@ export function registerCoordinateCommand(program) {
206
214
  .option('--chain <name>', 'Force specific chain graph')
207
215
  .option('--tool <tool>', 'Agent tool to use', 'claude')
208
216
  .option('--dry-run', 'Show graph traversal plan without executing')
217
+ .option('--parallel', 'Enable parallel execution for fork/join nodes')
209
218
  .action(async (intentWords, opts) => {
210
219
  const intent = intentWords.join(' ');
211
220
  const workflowRoot = resolve(process.cwd());
212
- const { walker, router } = createWalker(workflowRoot);
221
+ const { walker, router } = createWalker(workflowRoot, { parallel: opts.parallel });
213
222
  try {
214
223
  let state;
215
224
  if (opts.continue) {
@@ -1 +1 @@
1
- {"version":3,"file":"coordinate.js","sourceRoot":"","sources":["../../src/commands/coordinate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinate.js","sourceRoot":"","sources":["../../src/commands/coordinate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerDelegateCommand(program: Command): void;
3
+ //# sourceMappingURL=delegate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/commands/delegate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgJ9D"}
@@ -0,0 +1,142 @@
1
+ // ---------------------------------------------------------------------------
2
+ // `maestro delegate` — prompt-first task delegation
3
+ // ---------------------------------------------------------------------------
4
+ import { resolve } from 'node:path';
5
+ import { CliAgentRunner } from '../agents/cli-agent-runner.js';
6
+ import { CliHistoryStore } from '../agents/cli-history-store.js';
7
+ import { loadCliToolsConfig, selectTool } from '../config/cli-tools-config.js';
8
+ function statusLabel(meta) {
9
+ if (meta.exitCode === undefined && !meta.completedAt)
10
+ return 'running';
11
+ if (meta.exitCode === 0)
12
+ return 'done';
13
+ return `exit:${meta.exitCode ?? '?'}`;
14
+ }
15
+ function truncate(text, max) {
16
+ const oneLine = text.replace(/\n/g, ' ').trim();
17
+ if (oneLine.length <= max)
18
+ return oneLine;
19
+ return oneLine.slice(0, max - 3) + '...';
20
+ }
21
+ function padRight(str, len) {
22
+ return str.length >= len ? str.slice(0, len) : str + ' '.repeat(len - str.length);
23
+ }
24
+ export function registerDelegateCommand(program) {
25
+ const delegate = program
26
+ .command('delegate [prompt]')
27
+ .description('Delegate a prompt to a CLI agent tool');
28
+ // ---- Main action ---------------------------------------------------------
29
+ delegate
30
+ .option('--to <tool>', 'CLI tool to delegate to (gemini, qwen, codex, claude, opencode)')
31
+ .option('--mode <mode>', 'Execution mode (analysis or write)', 'analysis')
32
+ .option('--model <model>', 'Model override')
33
+ .option('--cd <dir>', 'Working directory')
34
+ .option('--rule <template>', 'Template name — auto-loads protocol + template')
35
+ .option('--id <id>', 'Execution ID (auto-generated if omitted)')
36
+ .option('--resume [id]', 'Resume previous session (last if no id)')
37
+ .option('--includeDirs <dirs>', 'Additional directories (comma-separated)')
38
+ .action(async (prompt, opts) => {
39
+ if (!prompt) {
40
+ console.error('error: prompt is required. Usage: maestro delegate "your prompt"');
41
+ process.exit(1);
42
+ }
43
+ const config = await loadCliToolsConfig();
44
+ const selected = selectTool(opts.to, config);
45
+ const toolName = selected?.name ?? opts.to ?? 'gemini';
46
+ const model = opts.model ?? selected?.entry?.primaryModel;
47
+ const mode = opts.mode;
48
+ if (mode !== 'analysis' && mode !== 'write') {
49
+ console.error(`Invalid mode: ${opts.mode}. Use "analysis" or "write".`);
50
+ process.exit(1);
51
+ }
52
+ try {
53
+ const runner = new CliAgentRunner();
54
+ const exitCode = await runner.run({
55
+ prompt,
56
+ tool: toolName,
57
+ mode,
58
+ model,
59
+ workDir: resolve(opts.cd ?? process.cwd()),
60
+ rule: opts.rule,
61
+ execId: opts.id,
62
+ resume: opts.resume === true ? 'last' : opts.resume,
63
+ includeDirs: opts.includeDirs?.split(',').map(d => d.trim()).filter(Boolean),
64
+ });
65
+ process.exit(exitCode);
66
+ }
67
+ catch (err) {
68
+ const message = err instanceof Error ? err.message : String(err);
69
+ console.error(`Delegate failed: ${message}`);
70
+ process.exit(1);
71
+ }
72
+ });
73
+ // ---- show subcommand -----------------------------------------------------
74
+ delegate
75
+ .command('show')
76
+ .description('List recent delegated executions')
77
+ .option('--all', 'Include full history')
78
+ .action((opts) => {
79
+ const store = new CliHistoryStore();
80
+ const limit = opts.all ? 100 : 20;
81
+ const items = store.listRecent(limit);
82
+ if (items.length === 0) {
83
+ console.log('No recent executions.');
84
+ return;
85
+ }
86
+ const colId = 24;
87
+ const colTool = 10;
88
+ const colMode = 10;
89
+ const colStatus = 10;
90
+ const colPrompt = 50;
91
+ const header = [
92
+ padRight('ID', colId),
93
+ padRight('Tool', colTool),
94
+ padRight('Mode', colMode),
95
+ padRight('Status', colStatus),
96
+ padRight('Prompt', colPrompt),
97
+ ].join(' ');
98
+ console.log(header);
99
+ console.log('-'.repeat(header.length));
100
+ for (const meta of items) {
101
+ const row = [
102
+ padRight(meta.execId, colId),
103
+ padRight(meta.tool, colTool),
104
+ padRight(meta.mode, colMode),
105
+ padRight(statusLabel(meta), colStatus),
106
+ padRight(truncate(meta.prompt, colPrompt), colPrompt),
107
+ ].join(' ');
108
+ console.log(row);
109
+ }
110
+ });
111
+ // ---- output subcommand ---------------------------------------------------
112
+ delegate
113
+ .command('output <id>')
114
+ .description('Get assistant output for a delegated execution')
115
+ .option('--verbose', 'Show full metadata and raw output')
116
+ .action((id, opts) => {
117
+ const store = new CliHistoryStore();
118
+ const meta = store.loadMeta(id);
119
+ if (!meta) {
120
+ console.error(`Execution not found: ${id}`);
121
+ process.exit(1);
122
+ }
123
+ if (opts.verbose) {
124
+ console.log(`ID: ${meta.execId}`);
125
+ console.log(`Tool: ${meta.tool}`);
126
+ console.log(`Mode: ${meta.mode}`);
127
+ console.log(`Status: ${statusLabel(meta)}`);
128
+ console.log(`Start: ${meta.startedAt}`);
129
+ if (meta.completedAt) {
130
+ console.log(`End: ${meta.completedAt}`);
131
+ }
132
+ console.log('---');
133
+ }
134
+ const output = store.getOutput(id);
135
+ if (!output) {
136
+ console.error(`No output available for: ${id}`);
137
+ process.exit(1);
138
+ }
139
+ process.stdout.write(output);
140
+ });
141
+ }
142
+ //# sourceMappingURL=delegate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../src/commands/delegate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerMsgCommand(program: Command): void;
3
+ //# sourceMappingURL=msg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg.d.ts","sourceRoot":"","sources":["../../src/commands/msg.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkHzD"}