daedalus-cli 1.10.1 → 1.12.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 (47) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +16 -0
  3. package/dist/agents/orchestrator.d.ts +22 -1
  4. package/dist/agents/orchestrator.d.ts.map +1 -1
  5. package/dist/agents/orchestrator.js +251 -21
  6. package/dist/agents/orchestrator.js.map +1 -1
  7. package/dist/agents/orchestrator.test.js +186 -11
  8. package/dist/agents/orchestrator.test.js.map +1 -1
  9. package/dist/agents/roles.d.ts.map +1 -1
  10. package/dist/agents/roles.js +3 -1
  11. package/dist/agents/roles.js.map +1 -1
  12. package/dist/commands.d.ts.map +1 -1
  13. package/dist/commands.js +37 -1
  14. package/dist/commands.js.map +1 -1
  15. package/dist/index.js +6 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/indexing/indexer.js +1 -1
  18. package/dist/indexing/indexer.js.map +1 -1
  19. package/dist/indexing/watcher.js +1 -1
  20. package/dist/indexing/watcher.js.map +1 -1
  21. package/dist/model.d.ts.map +1 -1
  22. package/dist/model.js +47 -15
  23. package/dist/model.js.map +1 -1
  24. package/dist/model.test.d.ts +2 -0
  25. package/dist/model.test.d.ts.map +1 -0
  26. package/dist/model.test.js +167 -0
  27. package/dist/model.test.js.map +1 -0
  28. package/dist/repl.d.ts.map +1 -1
  29. package/dist/repl.js +1 -0
  30. package/dist/repl.js.map +1 -1
  31. package/dist/router/index.d.ts.map +1 -1
  32. package/dist/router/index.js +93 -46
  33. package/dist/router/index.js.map +1 -1
  34. package/dist/router/index.test.js +31 -2
  35. package/dist/router/index.test.js.map +1 -1
  36. package/dist/session/manager.d.ts +2 -0
  37. package/dist/session/manager.d.ts.map +1 -1
  38. package/dist/session/manager.js +11 -1
  39. package/dist/session/manager.js.map +1 -1
  40. package/dist/tools/builtin/delegation.d.ts.map +1 -1
  41. package/dist/tools/builtin/delegation.js +3 -1
  42. package/dist/tools/builtin/delegation.js.map +1 -1
  43. package/dist/tools/builtin/delegation.test.js +21 -0
  44. package/dist/tools/builtin/delegation.test.js.map +1 -1
  45. package/dist/types.d.ts +1 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [1.12.0](https://github.com/bgill55/daedalus/compare/v1.11.0...v1.12.0) (2026-06-21)
2
+
3
+
4
+ ### Features
5
+
6
+ * **orchestration:** add interactive task checklist, failure checkpoints, state resume, and planner sizing rules ([19ebe8d](https://github.com/bgill55/daedalus/commit/19ebe8d9776f621c564f9ecba5342058f9936aef))
7
+
8
+ # [1.11.0](https://github.com/bgill55/daedalus/compare/v1.10.1...v1.11.0) (2026-06-21)
9
+
10
+
11
+ ### Features
12
+
13
+ * implement resumable, gated orchestration and single-agent proceed checkpoints ([d6c48b9](https://github.com/bgill55/daedalus/commit/d6c48b994d31966a86cd2b84f71b4d6cb64ba8e0))
14
+
1
15
  ## [1.10.1](https://github.com/bgill55/daedalus/compare/v1.10.0...v1.10.1) (2026-06-20)
2
16
 
3
17
 
package/README.md CHANGED
@@ -159,6 +159,22 @@ Run sub-agents concurrently in the background by adding the `--bg` flag to `/spa
159
159
  * **Notification Queueing**: Agent task completions are queued and printed synchronously in a prompt-safe manner right before your next REPL prompt redraw to keep your terminal output clean.
160
160
  * **Management**: View running jobs via `/tasks`, cancel running jobs via `/task kill <id>`, and read results of completed tasks using `/task <id>`.
161
161
 
162
+ ### Multi-Agent Orchestration & Task Control
163
+ When you run the `/orchestrate <goal>` command, Daedalus plans and delegates work to sub-agents (planner, coder, researcher, reviewer, debugger) with enhanced visibility and recovery options:
164
+ * **Interactive Task Checklist**: Displays a dynamically wrapped, real-time updated checklist in your console:
165
+ * `[ ]` (Pending)
166
+ * `[▶]` (In Progress)
167
+ * `[✓]` (Completed)
168
+ * `[✗]` (Failed)
169
+ * `[S]` (Skipped)
170
+ * **Failure Checkpoints & Recovery**: If a sub-agent task fails or reaches its turn limit, the orchestrator pauses, shows the failed task, and prompts you to select an action:
171
+ * `[r]etry`: Re-runs the task with a clean turn budget and error feedback.
172
+ * `[e]dit`: Prompts you to rephrase the task goal before retrying.
173
+ * `[s]kip`: Skips the current step and moves to the next.
174
+ * `[a]bort`: Pauses execution and keeps the orchestration session state alive.
175
+ * **Persistent Sessions & Resuming**: If you pause or abort execution, running `/orchestrate` later will prompt you to resume the pending plan, automatically checking off previously completed tasks in the checklist.
176
+ * **Granular Task Planning**: The planner agent automatically decomposes complex goals into small, file-scoped or function-scoped tasks that easily fit within the coder's 10-turn limit, preventing agents from getting stuck on oversized requests.
177
+
162
178
  ### Updating Configuration via CLI
163
179
  You can view and modify global configuration options directly within the CLI without manually editing files. The values are automatically validated before saving to prevent corrupting your settings:
164
180
  * **View Config**: Run `/config` to display your current active configuration.
@@ -1,13 +1,33 @@
1
1
  import { LocalRouter } from '../router/index.js';
2
2
  import { ToolContext, ChatMessage } from '../types.js';
3
+ import { SessionManager } from '../session/manager.js';
4
+ interface DelegationTask {
5
+ goal: string;
6
+ context: string;
7
+ role: string;
8
+ toolsets?: string[];
9
+ status?: 'pending' | 'in_progress' | 'completed' | 'failed' | 'skipped';
10
+ error?: string;
11
+ }
12
+ interface AgentResult {
13
+ role: string;
14
+ goal: string;
15
+ summary: string;
16
+ success: boolean;
17
+ evidence?: string;
18
+ }
3
19
  export declare class Orchestrator {
4
20
  private router;
5
21
  private messages;
6
22
  private toolContext;
23
+ private sessionManager?;
7
24
  private results;
8
- constructor(router: LocalRouter, messages: ChatMessage[], toolContext: ToolContext);
25
+ constructor(router: LocalRouter, messages: ChatMessage[], toolContext: ToolContext, sessionManager?: SessionManager);
9
26
  run(goal: string): Promise<string>;
27
+ resume(goal: string, planText: string, tasks: DelegationTask[], startIndex: number, previousResults: AgentResult[]): Promise<string>;
10
28
  private createPlan;
29
+ private formatGoal;
30
+ private printTaskList;
11
31
  private executePlan;
12
32
  private parseDelegationTasks;
13
33
  private isDeclaredError;
@@ -20,4 +40,5 @@ export declare class Orchestrator {
20
40
  private executeOpenAIToolCalls;
21
41
  private synthesize;
22
42
  }
43
+ export {};
23
44
  //# sourceMappingURL=orchestrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AAmBjE,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAqB;gBAExB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,WAAW;IAM5E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB1B,UAAU;YA+DV,WAAW;IAWzB,OAAO,CAAC,oBAAoB;IAoC5B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;YAkBd,eAAe;YA+Bf,aAAa;YA+Bb,YAAY;YAiCZ,QAAQ;YAiER,sBAAsB;IASpC,OAAO,CAAC,UAAU;CAsBnB"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAqB;gBAExB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc;IAO7G,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmClC,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,WAAW,EAAE,GAC7B,OAAO,CAAC,MAAM,CAAC;YA+BJ,UAAU;IA+DxB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,aAAa;YAuBP,WAAW;IA4HzB,OAAO,CAAC,oBAAoB;IA0C5B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;YAkBd,eAAe;YAgCf,aAAa;YAqCb,YAAY;YAoDZ,QAAQ;YAsER,sBAAsB;IASpC,OAAO,CAAC,UAAU;CAyBnB"}
@@ -1,4 +1,5 @@
1
1
  // Multi-agent orchestrator - coordinates delegation and synthesis
2
+ import readline from 'readline';
2
3
  import { BUILTIN_TOOLS } from '../tools/definitions.js';
3
4
  import { executeToolCalls } from '../tools/executor.js';
4
5
  import { getAgentRole, filterToolsForRole } from './roles.js';
@@ -8,11 +9,13 @@ export class Orchestrator {
8
9
  router;
9
10
  messages;
10
11
  toolContext;
12
+ sessionManager;
11
13
  results = [];
12
- constructor(router, messages, toolContext) {
14
+ constructor(router, messages, toolContext, sessionManager) {
13
15
  this.router = router;
14
16
  this.messages = messages;
15
17
  this.toolContext = toolContext;
18
+ this.sessionManager = sessionManager;
16
19
  }
17
20
  async run(goal) {
18
21
  this.results = [];
@@ -21,11 +24,54 @@ export class Orchestrator {
21
24
  if (this.toolContext.abortSignal.aborted) {
22
25
  return 'Orchestration stopped by user';
23
26
  }
24
- await this.executePlan(plan);
27
+ const tasks = this.parseDelegationTasks(plan);
28
+ if (this.sessionManager) {
29
+ this.sessionManager.saveState('orchestrate_plan', tasks);
30
+ this.sessionManager.saveState('orchestrate_goal', goal);
31
+ this.sessionManager.saveState('orchestrate_task_index', 0);
32
+ this.sessionManager.saveState('orchestrate_results', []);
33
+ this.sessionManager.saveState('orchestrate_plan_text', plan);
34
+ }
35
+ await this.executePlan(plan, tasks, 0);
25
36
  }
26
37
  catch (err) {
27
38
  return `Orchestration failed: ${err.message}`;
28
39
  }
40
+ if (this.sessionManager && !this.toolContext.abortSignal.aborted) {
41
+ this.sessionManager.saveState('orchestrate_plan', null);
42
+ this.sessionManager.saveState('orchestrate_goal', null);
43
+ this.sessionManager.saveState('orchestrate_task_index', null);
44
+ this.sessionManager.saveState('orchestrate_results', null);
45
+ this.sessionManager.saveState('orchestrate_plan_text', null);
46
+ }
47
+ return this.synthesize(goal);
48
+ }
49
+ async resume(goal, planText, tasks, startIndex, previousResults) {
50
+ this.results = [...previousResults];
51
+ tasks.forEach((t, idx) => {
52
+ if (idx < startIndex) {
53
+ t.status = 'completed';
54
+ }
55
+ else if (!t.status) {
56
+ t.status = 'pending';
57
+ }
58
+ });
59
+ try {
60
+ if (this.toolContext.abortSignal.aborted) {
61
+ return 'Orchestration stopped by user';
62
+ }
63
+ await this.executePlan(planText, tasks, startIndex);
64
+ }
65
+ catch (err) {
66
+ return `Orchestration failed: ${err.message}`;
67
+ }
68
+ if (this.sessionManager && !this.toolContext.abortSignal.aborted) {
69
+ this.sessionManager.saveState('orchestrate_plan', null);
70
+ this.sessionManager.saveState('orchestrate_goal', null);
71
+ this.sessionManager.saveState('orchestrate_task_index', null);
72
+ this.sessionManager.saveState('orchestrate_results', null);
73
+ this.sessionManager.saveState('orchestrate_plan_text', null);
74
+ }
29
75
  return this.synthesize(goal);
30
76
  }
31
77
  async createPlan(goal) {
@@ -85,42 +131,196 @@ export class Orchestrator {
85
131
  }
86
132
  return assistantMessage.content || 'No plan generated';
87
133
  }
88
- async executePlan(plan) {
89
- const delegationTasks = this.parseDelegationTasks(plan);
90
- for (const task of delegationTasks) {
134
+ formatGoal(goal, indentLength, width = 80) {
135
+ const words = goal.split(/\s+/);
136
+ const lines = [];
137
+ let currentLine = '';
138
+ const targetWidth = Math.max(40, width - indentLength);
139
+ for (const word of words) {
140
+ if ((currentLine + (currentLine ? ' ' : '') + word).length > targetWidth) {
141
+ lines.push(currentLine);
142
+ currentLine = word;
143
+ }
144
+ else {
145
+ currentLine += (currentLine ? ' ' : '') + word;
146
+ }
147
+ }
148
+ if (currentLine) {
149
+ lines.push(currentLine);
150
+ }
151
+ const indent = ' '.repeat(indentLength);
152
+ return lines.join('\n' + indent);
153
+ }
154
+ printTaskList(tasks) {
155
+ console.log(pc.bold(pc.cyan('\n--- Orchestration Task List ---')));
156
+ tasks.forEach((task, idx) => {
157
+ let icon = pc.gray('[ ]');
158
+ if (task.status === 'in_progress') {
159
+ icon = pc.blue('[▶]');
160
+ }
161
+ else if (task.status === 'completed') {
162
+ icon = pc.green('[✓]');
163
+ }
164
+ else if (task.status === 'failed') {
165
+ icon = pc.red('[✗]');
166
+ }
167
+ else if (task.status === 'skipped') {
168
+ icon = pc.yellow('[S]');
169
+ }
170
+ const roleStr = pc.bold(`[${task.role}]`);
171
+ const indentLength = 2 + 3 + 1 + 5 + (idx + 1).toString().length + 2 + 1 + task.role.length + 2;
172
+ const goalStr = this.formatGoal(task.goal, indentLength);
173
+ const errorStr = task.error ? pc.red(` (Error: ${task.error})`) : '';
174
+ console.log(` ${icon} Task ${idx + 1}: ${roleStr} ${goalStr}${errorStr}`);
175
+ });
176
+ console.log(pc.bold(pc.cyan('--------------------------------')));
177
+ }
178
+ async executePlan(plan, tasks, startIndex = 0) {
179
+ for (let i = startIndex; i < tasks.length; i++) {
91
180
  if (this.toolContext.abortSignal.aborted) {
92
181
  break;
93
182
  }
183
+ const task = tasks[i];
184
+ task.status = 'in_progress';
185
+ this.printTaskList(tasks);
94
186
  await this.delegateTask(task);
187
+ this.printTaskList(tasks);
188
+ if (this.sessionManager) {
189
+ this.sessionManager.saveState('orchestrate_task_index', i + 1);
190
+ this.sessionManager.saveState('orchestrate_results', this.results);
191
+ }
192
+ if (task.status === 'failed') {
193
+ console.log(`\n${pc.bold(pc.red('--- Task Failure Checkpoint ---'))}`);
194
+ console.log(`${pc.red('[ERROR] Task failed:')} ${task.role} - ${task.goal}`);
195
+ const ask = this.toolContext.askLine || (async (p) => {
196
+ return new Promise((resolve) => {
197
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
198
+ rl.question(p, (ans) => { rl.close(); resolve(ans); });
199
+ });
200
+ });
201
+ let resolved = false;
202
+ while (!resolved) {
203
+ const answer = await ask(`\nTask failed. Choose action: [r]etry / [e]dit / [s]kip / [a]bort: `);
204
+ const norm = answer.trim().toLowerCase();
205
+ if (norm === 'r' || norm === 'retry') {
206
+ console.log(pc.cyan(`\nRetrying task: ${task.goal}`));
207
+ task.status = 'in_progress';
208
+ task.error = undefined;
209
+ this.printTaskList(tasks);
210
+ this.results.pop();
211
+ await this.delegateTask(task);
212
+ this.printTaskList(tasks);
213
+ if (task.status !== 'failed') {
214
+ resolved = true;
215
+ }
216
+ }
217
+ else if (norm === 'e' || norm === 'edit') {
218
+ const editGoal = await ask(`Enter new goal for task: `);
219
+ if (editGoal.trim()) {
220
+ task.goal = editGoal.trim();
221
+ task.status = 'in_progress';
222
+ task.error = undefined;
223
+ this.printTaskList(tasks);
224
+ this.results.pop();
225
+ await this.delegateTask(task);
226
+ this.printTaskList(tasks);
227
+ if (task.status !== 'failed') {
228
+ resolved = true;
229
+ }
230
+ }
231
+ }
232
+ else if (norm === 's' || norm === 'skip') {
233
+ console.log(pc.yellow(`\nSkipping failed task: ${task.goal}`));
234
+ task.status = 'skipped';
235
+ this.printTaskList(tasks);
236
+ resolved = true;
237
+ }
238
+ else if (norm === 'a' || norm === 'abort') {
239
+ console.log(pc.yellow('\nOrchestration aborted on task failure. You can resume it later.'));
240
+ if (this.toolContext.abortSignal) {
241
+ Object.defineProperty(this.toolContext.abortSignal, 'aborted', { value: true, writable: true });
242
+ }
243
+ resolved = true;
244
+ break;
245
+ }
246
+ }
247
+ if (this.toolContext.abortSignal.aborted) {
248
+ break;
249
+ }
250
+ }
251
+ if (i < tasks.length - 1 && process.env.DAEDALUS_AUTO_APPROVE !== 'true') {
252
+ console.log(`\n${pc.bold(pc.yellow('--- Task Checkpoint ---'))}`);
253
+ console.log(`${pc.green('[OK] Completed task:')} ${task.goal}`);
254
+ const nextTask = tasks[i + 1];
255
+ console.log(`${pc.cyan('Next task:')} [${nextTask.role}] ${nextTask.goal}`);
256
+ const ask = this.toolContext.askLine || (async (p) => {
257
+ return new Promise((resolve) => {
258
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
259
+ rl.question(p, (ans) => { rl.close(); resolve(ans); });
260
+ });
261
+ });
262
+ const answer = await ask(`\nProceed to next task? [y]es / [n]o / [s]kip / [e]dit: `);
263
+ const norm = answer.trim().toLowerCase();
264
+ if (norm === 'n' || norm === 'no') {
265
+ console.log(pc.yellow('\n[INFO] Orchestration paused. You can resume it later.'));
266
+ if (this.toolContext.abortSignal) {
267
+ Object.defineProperty(this.toolContext.abortSignal, 'aborted', { value: true, writable: true });
268
+ }
269
+ break;
270
+ }
271
+ else if (norm === 's' || norm === 'skip') {
272
+ console.log(pc.yellow(`\n[INFO] Skipping task: ${nextTask.goal}`));
273
+ if (this.sessionManager) {
274
+ this.sessionManager.saveState('orchestrate_task_index', i + 2);
275
+ }
276
+ i++;
277
+ }
278
+ else if (norm === 'e' || norm === 'edit') {
279
+ const editGoal = await ask(`Enter new goal for next task: `);
280
+ if (editGoal.trim()) {
281
+ nextTask.goal = editGoal.trim();
282
+ if (this.sessionManager) {
283
+ this.sessionManager.saveState('orchestrate_plan', tasks);
284
+ }
285
+ console.log(pc.green(`[OK] Task goal updated.`));
286
+ }
287
+ }
288
+ }
95
289
  }
96
290
  }
97
291
  parseDelegationTasks(plan) {
98
292
  const tasks = [];
293
+ const activeFilesText = this.toolContext.activeFiles.size > 0
294
+ ? `Files in context: ${Array.from(this.toolContext.activeFiles.values()).join(', ')}`
295
+ : '';
99
296
  const lines = plan.split('\n');
100
297
  let currentRole = '';
101
298
  let currentGoal = '';
102
299
  for (const line of lines) {
103
- const roleMatch = line.match(/(?:delegate to|have|assign to)\s+(planner|coder|reviewer|debugger|researcher)/i);
300
+ const roleMatch = line.match(/^\s*(?:-|\*|\d+\.)?\s*(?:delegate to|assign to|have|assign|role|agent:)?\s*(planner|coder|reviewer|debugger|researcher)\b/i);
104
301
  if (roleMatch) {
105
302
  if (currentRole && currentGoal) {
106
- tasks.push({ goal: currentGoal, context: '', role: currentRole });
303
+ tasks.push({ goal: currentGoal, context: activeFilesText, role: currentRole, status: 'pending' });
107
304
  }
108
305
  currentRole = roleMatch[1].toLowerCase();
109
- currentGoal = line.replace(roleMatch[0], '').trim();
306
+ const matchIndex = line.indexOf(roleMatch[0]);
307
+ let goalPart = line.substring(matchIndex + roleMatch[0].length);
308
+ goalPart = goalPart.replace(/^[:\s\-]+/, '');
309
+ currentGoal = goalPart.trim();
110
310
  }
111
311
  else if (currentRole && line.trim()) {
112
312
  currentGoal += ' ' + line.trim();
113
313
  }
114
314
  }
115
315
  if (currentRole && currentGoal) {
116
- tasks.push({ goal: currentGoal, context: '', role: currentRole });
316
+ tasks.push({ goal: currentGoal, context: activeFilesText, role: currentRole, status: 'pending' });
117
317
  }
118
- // If no explicit delegation found, default to coder for implementation tasks
119
318
  if (tasks.length === 0) {
120
319
  tasks.push({
121
320
  goal: plan,
122
321
  context: `Files in context: ${Array.from(this.toolContext.activeFiles.values()).join(', ')}`,
123
- role: 'coder'
322
+ role: 'coder',
323
+ status: 'pending'
124
324
  });
125
325
  }
126
326
  return tasks;
@@ -153,17 +353,18 @@ export class Orchestrator {
153
353
  }
154
354
  return paths;
155
355
  }
156
- async verifyArtifacts(role, goal, result) {
356
+ async verifyArtifacts(role, goal, result, historyStartIndex = 0) {
157
357
  if (!this.requiresRealArtifacts(role, goal))
158
358
  return true;
159
359
  if (this.isDeclaredError(result))
160
360
  return true;
161
- if (!this.toolContext.patchHistory || this.toolContext.patchHistory.length === 0) {
361
+ if (!this.toolContext.patchHistory || this.toolContext.patchHistory.length <= historyStartIndex) {
162
362
  return false;
163
363
  }
164
364
  const rawPaths = this.extractPendingWrites(result);
165
365
  const paths = rawPaths.map(p => p.replace(/\\/g, '/'));
166
- const normalizedHistory = this.toolContext.patchHistory.map(h => ({
366
+ const currentPatches = this.toolContext.patchHistory.slice(historyStartIndex);
367
+ const normalizedHistory = currentPatches.map(h => ({
167
368
  ...h,
168
369
  normalizedPath: h.filePath.replace(/\\/g, '/')
169
370
  }));
@@ -190,10 +391,14 @@ export class Orchestrator {
190
391
  break;
191
392
  }
192
393
  attempt++;
193
- console.log(`\n[REPAIR] Attempt ${attempt}/${maxRetries} to repair task: ${task.goal.slice(0, 60)}...`);
394
+ console.log(`\n[REPAIR] Attempt ${attempt}/${maxRetries} to repair task: ${task.goal}`);
194
395
  const repairContext = `${task.context}\n\nPrevious attempt failed verification. Output was:\n${currentSummary}\n\nPlease retry and ensure you actually write the required files/artifacts.`;
396
+ const historyStartIndex = this.toolContext.patchHistory?.length || 0;
195
397
  const result = await this.runAgent(role, task.goal, repairContext, tools);
196
- const verified = await this.verifyArtifacts(task.role, task.goal, result);
398
+ if (this.toolContext.abortSignal.aborted) {
399
+ return { success: false, summary: 'Task aborted by user' };
400
+ }
401
+ const verified = await this.verifyArtifacts(task.role, task.goal, result, historyStartIndex);
197
402
  if (verified && !this.isDeclaredError(result)) {
198
403
  return { success: true, summary: result };
199
404
  }
@@ -203,10 +408,22 @@ export class Orchestrator {
203
408
  }
204
409
  async delegateTask(task) {
205
410
  const role = getAgentRole(task.role);
206
- console.log(`\n[SPAWN] Delegating to ${role.name}: ${task.goal.slice(0, 80)}...`);
411
+ console.log(`\n[SPAWN] Delegating to ${role.name}: ${task.goal}`);
207
412
  const tools = filterToolsForRole(BUILTIN_TOOLS, task.role);
413
+ const historyStartIndex = this.toolContext.patchHistory?.length || 0;
208
414
  let result = await this.runAgent(role, task.goal, task.context, tools);
209
- let verified = await this.verifyArtifacts(task.role, task.goal, result);
415
+ if (this.toolContext.abortSignal.aborted) {
416
+ this.results.push({
417
+ role: task.role,
418
+ goal: task.goal,
419
+ summary: 'Task aborted by user',
420
+ success: false,
421
+ });
422
+ task.status = 'failed';
423
+ task.error = 'Task aborted by user';
424
+ return;
425
+ }
426
+ let verified = await this.verifyArtifacts(task.role, task.goal, result, historyStartIndex);
210
427
  let evidence = '';
211
428
  if (!verified) {
212
429
  const repaired = await this.attemptRepair(task, {
@@ -219,23 +436,33 @@ export class Orchestrator {
219
436
  verified = repaired.success;
220
437
  evidence = repaired.evidence || '';
221
438
  }
439
+ const success = verified && !this.isDeclaredError(result);
440
+ task.status = success ? 'completed' : 'failed';
441
+ if (!success) {
442
+ task.error = result.split('\n')[0] || 'Unknown failure';
443
+ }
222
444
  this.results.push({
223
445
  role: task.role,
224
446
  goal: task.goal,
225
447
  summary: result,
226
- success: verified && !this.isDeclaredError(result),
448
+ success,
227
449
  ...(evidence ? { evidence } : {}),
228
450
  });
229
451
  console.log(`[OK] ${role.name} completed`);
230
452
  }
231
453
  async runAgent(role, goal, context, tools) {
454
+ const currentDateStr = new Date().toLocaleString();
455
+ const dynamicSystemPrompt = `${role.systemPrompt}\n\n## CURRENT TIME\nThe current date and local time is: ${currentDateStr}.\n`;
232
456
  const messages = [
233
- { role: 'system', content: role.systemPrompt },
457
+ { role: 'system', content: dynamicSystemPrompt },
234
458
  { role: 'user', content: `${context}\n\nTask: ${goal}` },
235
459
  ];
236
460
  let turns = 0;
237
461
  const maxTurns = role.maxTurns ?? 10;
238
462
  while (turns < maxTurns) {
463
+ if (this.toolContext.abortSignal.aborted) {
464
+ return 'Agent execution aborted by user';
465
+ }
239
466
  const agentSpinner = new DaedalusSpinner({ text: `${role.name} running (turn ${turns + 1})`, color: (s) => pc.cyan(s) });
240
467
  agentSpinner.start();
241
468
  let completion;
@@ -286,13 +513,16 @@ export class Orchestrator {
286
513
  return executeToolCalls(tc, this.toolContext);
287
514
  }
288
515
  synthesize(goal) {
516
+ if (this.toolContext.abortSignal.aborted) {
517
+ return `## Orchestration Paused: ${goal}\n\nUse /orchestrate to resume the pending tasks.`;
518
+ }
289
519
  const hasFailures = this.results.some(r => !r.success);
290
520
  let output = hasFailures
291
521
  ? `## Orchestration Hit Verification Failures: ${goal}\n\n`
292
522
  : `## Orchestration Complete: ${goal}\n\n`;
293
523
  for (const result of this.results) {
294
524
  const status = result.success ? '[OK]' : '[ERROR]';
295
- output += `${status} **${result.role}**: ${result.goal.slice(0, 100)}\n`;
525
+ output += `${status} **${result.role}**: ${result.goal}\n`;
296
526
  const indented = result.summary
297
527
  .split('\n')
298
528
  .map(line => ' ' + line)
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAiB/D,MAAM,OAAO,YAAY;IACf,MAAM,CAAc;IACpB,QAAQ,CAAgB;IACxB,WAAW,CAAc;IACzB,OAAO,GAAkB,EAAE,CAAC;IAEpC,YAAY,MAAmB,EAAE,QAAuB,EAAE,WAAwB;QAChF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzC,OAAO,+BAA+B,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAY;QACnC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAE3D,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QAC9C,MAAM,QAAQ,GAAkB;YAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,IAAI,iBAAiB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE;SAC5N,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvG,WAAW,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACrD,KAAK,EAAE,MAAM;gBACb,QAAQ;gBACR,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,GAAG;gBAC3C,KAAK;gBACL,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC;QAE9C,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,8CAA8C;YAC9C,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAEhC,iEAAiE;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC7D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,YAAY,EAAE,MAAM,CAAC,UAAU;iBAChC,CAAC,CAAC;YACL,CAAC;YAED,mEAAmE;YACnE,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3G,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACnD,KAAK,EAAE,MAAM;oBACb,QAAQ;oBACR,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,GAAG;oBAC3C,KAAK;oBACL,WAAW,EAAE,MAAM,EAAE,kDAAkD;iBACxE,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,eAAe,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC;QACtE,CAAC;QAED,OAAO,gBAAgB,CAAC,OAAO,IAAI,mBAAmB,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAY;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;YAC/G,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACzC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,CAAC;iBAAM,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtC,WAAW,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,6EAA6E;QAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5F,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAEO,qBAAqB,CAAC,IAAY,EAAE,IAAY;QACtD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACpI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,oBAAoB,CAAC,MAAc;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,sFAAsF,CAAC;QACrG,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,eAAe,GAAG,2CAA2C,CAAC;QACpE,IAAI,eAAe,CAAC;QACpB,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;QACtE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAEvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,GAAG,CAAC;YACJ,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SAC/C,CAAC,CAAC,CAAC;QAEJ,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrD,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAClH,CAAC;QACF,IAAI,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAErC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAClD,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,gBAAgB;YAAE,OAAO,IAAI,CAAC;QAElC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,IAAoB,EACpB,QAAqB;QAErB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEtC,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,IAAI,UAAU,oBAAoB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAExG,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,OAAO,0DAA0D,cAAc,8EAA8E,CAAC;YAE5L,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAE1E,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC5C,CAAC;YACD,cAAc,GAAG,MAAM,CAAC;QAC1B,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAoB;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAElF,MAAM,KAAK,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEvE,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxE,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBAC9C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC5B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAClD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,IAAe,EACf,IAAY,EACZ,OAAe,EACf,KAAY;QAEZ,MAAM,QAAQ,GAAkB;YAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,aAAa,IAAI,EAAE,EAAE;SACzD,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAErC,OAAO,KAAK,GAAG,QAAQ,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,kBAAkB,KAAK,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzH,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,UAAU,CAAC;YACf,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACrD,KAAK,EAAE,MAAM;oBACb,QAAQ;oBACR,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;oBACpC,KAAK;oBACL,WAAW,EAAE,MAAM;iBACpB,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1E,OAAO,kCAAkC,CAAC;YAC5C,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEvB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;oBACnC,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,UAAmB;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;iBACvE,CAAC,CAAC,EACH,IAAI,CAAC,WAAW,CACjB,CAAC;gBAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,YAAY,EAAE,MAAM,CAAC,UAAU;qBAChC,CAAC,CAAC;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YAED,gCAAgC;YAChC,OAAO,OAAO,CAAC,OAAO,IAAI,kCAAkC,CAAC;QAC/D,CAAC;QAED,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,SAAgB;QACnD,MAAM,EAAE,GAAe,SAAS,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;YACpD,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;SAC7E,CAAC,CAAC,CAAC;QACJ,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,MAAM,GAAG,WAAW;YACtB,CAAC,CAAC,+CAA+C,IAAI,MAAM;YAC3D,CAAC,CAAC,8BAA8B,IAAI,MAAM,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,MAAM,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;YACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO;iBAC5B,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;iBACzB,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,MAAM,CAAC,QAAQ,IAAI,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"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"}