@ugm/desiagent 0.2.0 → 0.2.1

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 (65) hide show
  1. package/README.md +77 -3
  2. package/dist/core/execution/agents.d.ts.map +1 -1
  3. package/dist/core/execution/agents.js +18 -4
  4. package/dist/core/execution/agents.js.map +1 -1
  5. package/dist/core/execution/dagExecutor.d.ts +8 -1
  6. package/dist/core/execution/dagExecutor.d.ts.map +1 -1
  7. package/dist/core/execution/dagExecutor.js +156 -28
  8. package/dist/core/execution/dagExecutor.js.map +1 -1
  9. package/dist/core/execution/dags.d.ts +10 -0
  10. package/dist/core/execution/dags.d.ts.map +1 -1
  11. package/dist/core/execution/dags.js +152 -88
  12. package/dist/core/execution/dags.js.map +1 -1
  13. package/dist/core/execution/inference.d.ts +10 -10
  14. package/dist/core/providers/openrouter.d.ts.map +1 -1
  15. package/dist/core/providers/openrouter.js +13 -7
  16. package/dist/core/providers/openrouter.js.map +1 -1
  17. package/dist/core/providers/types.d.ts +9 -0
  18. package/dist/core/providers/types.d.ts.map +1 -1
  19. package/dist/core/skills/detector.d.ts +8 -0
  20. package/dist/core/skills/detector.d.ts.map +1 -0
  21. package/dist/core/skills/detector.js +60 -0
  22. package/dist/core/skills/detector.js.map +1 -0
  23. package/dist/core/skills/registry.d.ts +44 -0
  24. package/dist/core/skills/registry.d.ts.map +1 -0
  25. package/dist/core/skills/registry.js +149 -0
  26. package/dist/core/skills/registry.js.map +1 -0
  27. package/dist/core/tools/edit.d.ts +1 -1
  28. package/dist/core/tools/fetchPage.d.ts +1 -1
  29. package/dist/core/tools/llmExecute.d.ts +17 -16
  30. package/dist/core/tools/llmExecute.d.ts.map +1 -1
  31. package/dist/core/tools/llmExecute.js +1 -0
  32. package/dist/core/tools/llmExecute.js.map +1 -1
  33. package/dist/core/tools/readEmail.d.ts +1 -1
  34. package/dist/core/tools/sendEmail.d.ts +11 -11
  35. package/dist/core/tools/writeFile.d.ts +3 -3
  36. package/dist/core/workers/statsQueue.d.ts +69 -0
  37. package/dist/core/workers/statsQueue.d.ts.map +1 -0
  38. package/dist/core/workers/statsQueue.js +106 -0
  39. package/dist/core/workers/statsQueue.js.map +1 -0
  40. package/dist/core/workers/statsWorker.d.ts +11 -0
  41. package/dist/core/workers/statsWorker.d.ts.map +1 -0
  42. package/dist/core/workers/statsWorker.js +235 -0
  43. package/dist/core/workers/statsWorker.js.map +1 -0
  44. package/dist/index.d.ts +3 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +27 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/services/agentsSeedData.d.ts.map +1 -1
  49. package/dist/services/agentsSeedData.js +14 -0
  50. package/dist/services/agentsSeedData.js.map +1 -1
  51. package/dist/test/setup.d.ts +1 -0
  52. package/dist/test/setup.d.ts.map +1 -0
  53. package/dist/test/setup.js +3 -0
  54. package/dist/test/setup.js.map +1 -0
  55. package/dist/types/client.d.ts +1 -0
  56. package/dist/types/client.d.ts.map +1 -1
  57. package/dist/types/config.d.ts +7 -2
  58. package/dist/types/config.d.ts.map +1 -1
  59. package/dist/types/config.js +3 -0
  60. package/dist/types/config.js.map +1 -1
  61. package/dist/types/dag.d.ts +20 -20
  62. package/dist/types/dag.js +1 -1
  63. package/dist/types/dag.js.map +1 -1
  64. package/dist/util/sendEmailTool.d.ts +11 -11
  65. package/package.json +2 -1
package/README.md CHANGED
@@ -13,6 +13,7 @@ A library-first async agent system for building autonomous workflows with TypeSc
13
13
  - **Cron Scheduling** — Schedule DAGs to run on a cron expression with timezone support.
14
14
  - **Artifacts** — Tools can write output files (reports, code, images) that are automatically stored and retrievable.
15
15
  - **Cost Tracking** — Token usage and USD cost are recorded per execution step.
16
+ - **Skills** — Drop a `SKILL.md` file into your workspace or global config and the agent discovers it automatically. Skills can be injected as context into LLM prompts or executed as sub-tasks in a DAG.
16
17
  - **Experiments API** — Compare models and temperatures on the same goal in one call.
17
18
 
18
19
  ## Installation
@@ -71,7 +72,7 @@ const client = await setupDesiAgent({
71
72
 
72
73
  const result = await client.dags.createAndExecuteFromGoal({
73
74
  goalText: 'Research the top 5 trends in AI agents for 2025 and write a concise briefing document to ai-trends.md',
74
- agentName: 'DecomposerV8',
75
+ agentName: 'DecomposerV9',
75
76
  temperature: 0.7,
76
77
  });
77
78
 
@@ -111,7 +112,7 @@ const client = await setupDesiAgent({
111
112
  // Step 1 — Plan
112
113
  const plan = await client.dags.createFromGoal({
113
114
  goalText: 'Create a tutorial on processing driftwood into handicrafts — cover cleaning, tools, finishes — and write it to driftwood.md',
114
- agentName: 'DecomposerV8',
115
+ agentName: 'DecomposerV9',
115
116
  temperature: 0.7,
116
117
  });
117
118
 
@@ -185,7 +186,7 @@ const client = await setupDesiAgent({
185
186
 
186
187
  const plan = await client.dags.createFromGoal({
187
188
  goalText: 'Build the app',
188
- agentName: 'DecomposerV8',
189
+ agentName: 'DecomposerV9',
189
190
  });
190
191
 
191
192
  if (plan.status === 'clarification_required') {
@@ -242,6 +243,75 @@ bun run examples/list-agents.ts
242
243
  bun run examples/list-tools.ts --names
243
244
  ```
244
245
 
246
+ ## Skills
247
+
248
+ Skills are reusable instruction files (`SKILL.md`) that extend what the agent can do. Each skill is a Markdown file with YAML frontmatter describing its name, description, and type. When a goal is submitted, desiAgent automatically discovers skills, detects which ones are relevant, and either injects their content into the LLM prompt or executes them as sub-tasks inside a DAG.
249
+
250
+ ### Skill Types
251
+
252
+ | Type | Behaviour |
253
+ |---|---|
254
+ | `context` | The skill's Markdown body is loaded and injected as instructions into an LLM inference call during DAG execution. |
255
+ | `executable` | A sibling `handler.ts` file is imported and its default export is called with the task parameters. |
256
+
257
+ ### SKILL.md Format
258
+
259
+ ```markdown
260
+ ---
261
+ name: my-skill
262
+ description: A short sentence describing what this skill does (min 10 chars).
263
+ type: context # or "executable"
264
+ model: openai/gpt-4o # optional — override model for this skill
265
+ provider: openrouter # optional — override provider
266
+ ---
267
+
268
+ Your skill instructions in Markdown go here.
269
+ The agent receives this content when the skill is used.
270
+ ```
271
+
272
+ > The `name` field **must** match the enclosing directory name (e.g., `my-skill/SKILL.md` must have `name: my-skill`).
273
+
274
+ ### Discovery
275
+
276
+ On startup, `SkillRegistry.discover()` scans the following locations **in order**. The first skill registered for a given name wins — later duplicates are silently skipped.
277
+
278
+ | Priority | Location | Scope |
279
+ |---|---|---|
280
+ | 1 | `<workspace>/.agents/skills/<name>/SKILL.md` | Local (workspace) |
281
+ | 2 | `<workspace>/skills/<name>/SKILL.md` | Local (workspace) |
282
+ | 3 | `<workspace>/SKILL.md` | Local (workspace root) |
283
+ | 4 | `~/.config/agents/skills/<name>/SKILL.md` | Global |
284
+ | 5 | `~/.desiAgent/skills/<name>/SKILL.md` | Global |
285
+
286
+ **Local wins over global.** If a workspace defines a skill named `summarizer` in `.agents/skills/summarizer/SKILL.md` and a global skill with the same name exists in `~/.desiAgent/skills/summarizer/SKILL.md`, the workspace version is used.
287
+
288
+ ### How Skills Are Selected
289
+
290
+ When you submit a goal, a `MinimalSkillDetector` checks for:
291
+
292
+ 1. **Explicit triggers** — phrases like `use skill <name>` or `use <name> skill` in the goal text.
293
+ 2. **Keyword matching** — if no explicit trigger is found, skill descriptions are matched against keywords in the goal.
294
+
295
+ Matched skills are listed in the agent's system prompt so the LLM can plan DAG tasks with `action_type: 'skill'`.
296
+
297
+ ### Using Skills Programmatically
298
+
299
+ ```typescript
300
+ import { SkillRegistry } from '@ugm/desiagent';
301
+
302
+ const registry = new SkillRegistry(process.cwd());
303
+ await registry.discover();
304
+
305
+ // List all discovered skills
306
+ for (const skill of registry.getAll()) {
307
+ console.log(`${skill.name} (${skill.type}) — ${skill.description}`);
308
+ }
309
+
310
+ // Load a skill's content
311
+ const content = await registry.loadContent('my-skill');
312
+ console.log(content);
313
+ ```
314
+
245
315
  ## Configuration Reference
246
316
 
247
317
  ```typescript
@@ -269,9 +339,13 @@ interface DesiAgentConfig {
269
339
  onExecutionStart?: (executionId: string) => void;
270
340
  onExecutionEnd?: (executionId: string, result: Record<string, any>) => void;
271
341
 
342
+ // Workspace root for skill discovery
343
+ workspaceRoot?: string; // default: process.cwd()
344
+
272
345
  // Feature flags
273
346
  autoStartScheduler?: boolean; // default: true
274
347
  enableToolValidation?: boolean; // default: true
348
+ skipGenerationStats?: boolean; // default: false
275
349
  }
276
350
  ```
277
351
 
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/core/execution/agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAUD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkC;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAU;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;gBAEhC,EAAE,EAAE,SAAS;IAIzB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3C;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,OAAO,CAAC,KAAK,CAAC;IA2CjB;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAYrC;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAmB1D;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAoEjE;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAiC1C;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA+BlD;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvC;;OAEG;IACH,OAAO,CAAC,QAAQ;CAgBjB"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/core/execution/agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAUD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkC;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAU;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;gBAEhC,EAAE,EAAE,SAAS;IAIzB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3C;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,OAAO,CAAC,KAAK,CAAC;IA2CjB;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAYrC;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAmB1D;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAkFjE;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAiC1C;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA+BlD;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvC;;OAEG;IACH,OAAO,CAAC,QAAQ;CAgBjB"}
@@ -133,11 +133,25 @@ export class AgentsService {
133
133
  if (updates.systemPrompt !== undefined) {
134
134
  updateData.promptTemplate = updates.systemPrompt;
135
135
  }
136
- if (updates.constraints?.maxTokens !== undefined) {
137
- updateData.model = updates.constraints.maxTokens;
136
+ if (updates.provider !== undefined) {
137
+ updateData.provider = updates.provider;
138
138
  }
139
- if (updates.metadata !== undefined) {
140
- updateData.metadata = updates.metadata;
139
+ if (updates.model !== undefined) {
140
+ updateData.model = updates.model;
141
+ }
142
+ // Build metadata: if metadata is explicitly provided, it replaces existing;
143
+ // description and constraints are merged on top of existing metadata
144
+ if (updates.metadata !== undefined || updates.description !== undefined || updates.constraints !== undefined) {
145
+ const currentMetadata = existing.metadata || {};
146
+ const baseMetadata = updates.metadata !== undefined ? updates.metadata : currentMetadata;
147
+ updateData.metadata = {
148
+ ...baseMetadata,
149
+ ...(updates.constraints !== undefined ? { constraints: updates.constraints } : {}),
150
+ ...(updates.description !== undefined ? { description: updates.description } : {}),
151
+ };
152
+ }
153
+ if (updates.isActive !== undefined) {
154
+ updateData.active = updates.isActive;
141
155
  }
142
156
  await this.db.update(agents).set(updateData).where(eq(agents.id, id));
143
157
  // Invalidate cache for this agent
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/core/execution/agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC;AAUD;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,EAAE,CAAY;IACd,MAAM,GAAG,SAAS,EAAE,CAAC;IAE7B,gDAAgD;IACxC,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IACnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,CAAC,eAAe;IACtD,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IAE5C,YAAY,EAAa;QACvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,SAAkB;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAe,EACf,YAAoB,EACpB,MAA4B;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QAExD,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC/D,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CACvB,oBAAoB,IAAI,kBAAkB,OAAO,kBAAkB,EACnE,cAAc,EACd,EAAE,IAAI,EAAE,OAAO,EAAE,CAClB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YAClC,EAAE,EAAE,OAAO;YACX,IAAI;YACJ,OAAO;YACP,cAAc,EAAE,YAAY;YAC5B,QAAQ,EAAE,MAAM,EAAE,QAAQ;YAC1B,KAAK,EAAE,MAAM,EAAE,KAAK;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;YAChC,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,KAAK,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7D,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxD,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAuB;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,4DAA4D;QAC5D,IACE,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,EACxE,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;gBACrD,KAAK,EAAE,GAAG,CACR,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAC9C,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CACxD;aACF,CAAC,CAAC;YAEH,IAAI,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,eAAe,CACvB,4CAA4C,EAC5C,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAwB;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;QACnD,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACjD,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;QACnD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAEtE,kCAAkC;QAClC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACnD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,iDAAiD;QACjD,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aACzB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC7C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,sBAAsB;QACtB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aACzB,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC5C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5B,uCAAuC;QACvC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACnD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,oBAAoB;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,wCAAwC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC3D,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEzC,gCAAgC;YAChC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;gBAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC9D,IAAI,QAAQ;oBAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;YAED,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,eAAe,CACvB,6DAA6D,EAC7D,QAAQ,EACR,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,MAAW;QAC1B,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW;YACzC,YAAY,EAAE,MAAM,CAAC,cAAc;YACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAuC;YAC7E,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,QAAQ;YAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW;YACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/core/execution/agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC;AAUD;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,EAAE,CAAY;IACd,MAAM,GAAG,SAAS,EAAE,CAAC;IAE7B,gDAAgD;IACxC,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IACnD,MAAM,CAAU,YAAY,GAAG,MAAM,CAAC,CAAC,eAAe;IACtD,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IAE5C,YAAY,EAAa;QACvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,SAAkB;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAe,EACf,YAAoB,EACpB,MAA4B;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QAExD,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC/D,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CACvB,oBAAoB,IAAI,kBAAkB,OAAO,kBAAkB,EACnE,cAAc,EACd,EAAE,IAAI,EAAE,OAAO,EAAE,CAClB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YAClC,EAAE,EAAE,OAAO;YACX,IAAI;YACJ,OAAO;YACP,cAAc,EAAE,YAAY;YAC5B,QAAQ,EAAE,MAAM,EAAE,QAAQ;YAC1B,KAAK,EAAE,MAAM,EAAE,KAAK;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;YAChC,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,KAAK,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7D,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxD,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAuB;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,4DAA4D;QAC5D,IACE,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,EACxE,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;gBACrD,KAAK,EAAE,GAAG,CACR,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAC9C,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CACxD;aACF,CAAC,CAAC;YAEH,IAAI,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,eAAe,CACvB,4CAA4C,EAC5C,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAwB;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;QACnD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,CAAC;QACD,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC7G,MAAM,eAAe,GAAI,QAAQ,CAAC,QAAgC,IAAI,EAAE,CAAC;YACzE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC;YACzF,UAAU,CAAC,QAAQ,GAAG;gBACpB,GAAG,YAAY;gBACf,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAEtE,kCAAkC;QAClC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACnD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,iDAAiD;QACjD,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aACzB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC7C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,sBAAsB;QACtB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aACzB,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC5C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5B,uCAAuC;QACvC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACnD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,oBAAoB;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAED,wCAAwC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC3D,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEzC,gCAAgC;YAChC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;gBAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC9D,IAAI,QAAQ;oBAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;YAED,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,eAAe,CACvB,6DAA6D,EAC7D,QAAQ,EACR,KAAK,CAAC,MAAM,CACb,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,MAAW;QAC1B,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW;YACzC,YAAY,EAAE,MAAM,CAAC,cAAc;YACnC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAuC;YAC7E,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,QAAQ;YAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW;YACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC"}
@@ -7,11 +7,13 @@
7
7
  import type { DrizzleDB } from '../../db/client.js';
8
8
  import type { LLMProvider } from '../providers/types.js';
9
9
  import type { ToolRegistry } from '../tools/registry.js';
10
+ import type { SkillRegistry } from '../skills/registry.js';
11
+ import type { StatsQueue } from '../workers/statsQueue.js';
10
12
  export interface SubTask {
11
13
  id: string;
12
14
  description: string;
13
15
  thought: string;
14
- action_type: 'tool' | 'inference';
16
+ action_type: 'tool' | 'inference' | 'skill';
15
17
  tool_or_prompt: {
16
18
  name: string;
17
19
  params?: Record<string, any>;
@@ -49,6 +51,8 @@ export interface DAGExecutorConfig {
49
51
  apiKey?: string;
50
52
  ollamaBaseUrl?: string;
51
53
  skipGenerationStats?: boolean;
54
+ skillRegistry?: SkillRegistry;
55
+ statsQueue?: StatsQueue;
52
56
  }
53
57
  /**
54
58
  * Execution configuration for performance tuning
@@ -82,6 +86,7 @@ export interface TaskExecutionResult {
82
86
  };
83
87
  costUsd?: number;
84
88
  generationStats?: Record<string, any>;
89
+ generationId?: string;
85
90
  }
86
91
  export declare class DAGExecutor {
87
92
  private db;
@@ -91,6 +96,8 @@ export declare class DAGExecutor {
91
96
  private apiKey?;
92
97
  private ollamaBaseUrl?;
93
98
  private skipGenerationStats?;
99
+ private skillRegistry?;
100
+ private statsQueue?;
94
101
  private logger;
95
102
  constructor(config: DAGExecutorConfig);
96
103
  private extractUrls;
@@ -1 +1 @@
1
- {"version":3,"file":"dagExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/execution/dagExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dagExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/execution/dagExecutor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAYD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAU;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,iBAAiB;IAgBrC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,yBAAyB;IA0BjC;;;OAGG;YACW,cAAc;IAsC5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAMpB,OAAO,CACX,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,GAAE,eAAoB,GAC3B,OAAO,CAAC,MAAM,CAAC;YAqiBJ,gBAAgB;IAuB9B,OAAO,CAAC,qBAAqB;YA6Bf,UAAU;YAiFV,QAAQ;IAKtB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,aAAa;CAatB"}
@@ -22,6 +22,8 @@ export class DAGExecutor {
22
22
  apiKey;
23
23
  ollamaBaseUrl;
24
24
  skipGenerationStats;
25
+ skillRegistry;
26
+ statsQueue;
25
27
  logger = getLogger();
26
28
  constructor(config) {
27
29
  this.db = config.db;
@@ -31,6 +33,8 @@ export class DAGExecutor {
31
33
  this.apiKey = config.apiKey;
32
34
  this.ollamaBaseUrl = config.ollamaBaseUrl;
33
35
  this.skipGenerationStats = config.skipGenerationStats;
36
+ this.skillRegistry = config.skillRegistry;
37
+ this.statsQueue = config.statsQueue;
34
38
  this.logger.debug({
35
39
  provider: this.llmProvider.name,
36
40
  }, 'DAGExecutor created');
@@ -355,6 +359,69 @@ Respond with ONLY the expected output format. Build upon dependencies for cohere
355
359
  task: agent.promptTemplate,
356
360
  prompt: fullPrompt,
357
361
  }, toolCtx);
362
+ return {
363
+ content: result.content,
364
+ usage: result.usage,
365
+ costUsd: result.costUsd,
366
+ generationStats: result.generationStats,
367
+ generationId: result.generationId,
368
+ };
369
+ }
370
+ else if (task.action_type === 'skill') {
371
+ const skillName = task.tool_or_prompt.name;
372
+ if (!this.skillRegistry) {
373
+ throw new Error(`Skill "${skillName}" requested but no SkillRegistry configured`);
374
+ }
375
+ const skillMeta = this.skillRegistry.getByName(skillName);
376
+ if (!skillMeta) {
377
+ throw new Error(`Skill not found: ${skillName}`);
378
+ }
379
+ if (skillMeta.type === 'executable') {
380
+ const handlerPath = skillMeta.filePath.replace(/SKILL\.md$/, 'handler.ts');
381
+ try {
382
+ const mod = await import(`file://${handlerPath}`);
383
+ const handler = mod.default || mod.handler;
384
+ if (!handler) {
385
+ throw new Error(`Skill "${skillName}" is not executable or missing handler`);
386
+ }
387
+ const handlerResult = await handler(task.tool_or_prompt.params || {});
388
+ return { content: handlerResult };
389
+ }
390
+ catch (err) {
391
+ if (err instanceof Error && err.message.includes('is not executable or missing handler')) {
392
+ throw err;
393
+ }
394
+ throw new Error(`Skill "${skillName}" is not executable or missing handler`);
395
+ }
396
+ }
397
+ // Context skill: load content and run via LlmExecuteTool
398
+ const skillBody = await this.skillRegistry.loadContent(skillName);
399
+ if (!skillBody) {
400
+ throw new Error(`Skill not found: ${skillName}`);
401
+ }
402
+ const fullPrompt = this.buildInferencePrompt(task, globalContext, taskResults);
403
+ // Resolve provider/model from skill frontmatter, falling back to inference agent
404
+ let skillProvider = 'openai';
405
+ let skillModel = 'gpt-4o';
406
+ if (skillMeta.provider && skillMeta.model) {
407
+ skillProvider = skillMeta.provider;
408
+ skillModel = skillMeta.model;
409
+ }
410
+ else {
411
+ // Fall back to inference agent from cache
412
+ const inferenceAgent = agentCache.get(task.tool_or_prompt.name) || agentCache.values().next().value;
413
+ if (inferenceAgent) {
414
+ skillProvider = inferenceAgent.provider;
415
+ skillModel = inferenceAgent.model;
416
+ }
417
+ }
418
+ const llmExecuteTool = new LlmExecuteTool({ apiKey: this.apiKey, baseUrl: this.ollamaBaseUrl, skipGenerationStats: this.skipGenerationStats });
419
+ const result = await llmExecuteTool.execute({
420
+ provider: skillProvider,
421
+ model: skillModel,
422
+ task: skillBody,
423
+ prompt: fullPrompt,
424
+ }, toolCtx);
358
425
  return {
359
426
  content: result.content,
360
427
  usage: result.usage,
@@ -409,16 +476,29 @@ Respond with ONLY the expected output format. Build upon dependencies for cohere
409
476
  this.logger.debug({ taskId: task.id, result: serializedResult }, `╰─task ${task.id} result after executeTask():`);
410
477
  // Skip individual DB update if batching - will batch at wave end
411
478
  if (!execConfig.batchDbUpdates) {
412
- await this.db.update(dagSubSteps)
413
- .set({
479
+ const subStepUpdate = {
414
480
  status: 'completed',
415
481
  result: serializedResult,
416
482
  completedAt: new Date(),
417
483
  durationMs: Date.now() - taskExecStartTime,
418
484
  usage: execResult.usage,
419
- costUsd: execResult.costUsd?.toString(),
420
- generationStats: execResult.generationStats,
421
- })
485
+ };
486
+ // When statsQueue is available, defer stats to background worker
487
+ if (this.statsQueue && execResult.generationId) {
488
+ this.statsQueue.enqueue({
489
+ table: 'sub_steps',
490
+ id: task.id,
491
+ taskId: task.id,
492
+ executionId: execId,
493
+ generationId: execResult.generationId,
494
+ });
495
+ }
496
+ else {
497
+ subStepUpdate.costUsd = execResult.costUsd?.toString();
498
+ subStepUpdate.generationStats = execResult.generationStats;
499
+ }
500
+ await this.db.update(dagSubSteps)
501
+ .set(subStepUpdate)
422
502
  .where(and(eq(dagSubSteps.taskId, task.id), eq(dagSubSteps.executionId, execId)));
423
503
  }
424
504
  this.emitEventIfEnabled(execConfig, {
@@ -467,16 +547,29 @@ Respond with ONLY the expected output format. Build upon dependencies for cohere
467
547
  const serializedResult = typeof wr.result.content === 'string'
468
548
  ? wr.result.content
469
549
  : JSON.stringify(wr.result.content);
470
- return this.db.update(dagSubSteps)
471
- .set({
550
+ const batchUpdate = {
472
551
  status: 'completed',
473
552
  result: serializedResult,
474
553
  completedAt: new Date(),
475
554
  durationMs: Date.now() - wr.startTime,
476
555
  usage: wr.result.usage,
477
- costUsd: wr.result.costUsd?.toString(),
478
- generationStats: wr.result.generationStats,
479
- })
556
+ };
557
+ // When statsQueue is available, defer stats to background worker
558
+ if (this.statsQueue && wr.result.generationId) {
559
+ this.statsQueue.enqueue({
560
+ table: 'sub_steps',
561
+ id: wr.taskId,
562
+ taskId: wr.taskId,
563
+ executionId: execId,
564
+ generationId: wr.result.generationId,
565
+ });
566
+ }
567
+ else {
568
+ batchUpdate.costUsd = wr.result.costUsd?.toString();
569
+ batchUpdate.generationStats = wr.result.generationStats;
570
+ }
571
+ return this.db.update(dagSubSteps)
572
+ .set(batchUpdate)
480
573
  .where(and(eq(dagSubSteps.taskId, wr.taskId), eq(dagSubSteps.executionId, execId)));
481
574
  });
482
575
  await Promise.all(batchUpdatePromises);
@@ -520,22 +613,45 @@ Respond with ONLY the expected output format. Build upon dependencies for cohere
520
613
  where: eq(dagSubSteps.executionId, execId),
521
614
  });
522
615
  const statusData = this.deriveExecutionStatus(allSubSteps);
523
- const totalUsage = this.aggregateUsage(allSubSteps);
524
- const totalCostUsd = this.aggregateCost(allSubSteps);
525
- await this.db.update(dagExecutions)
526
- .set({
527
- status: statusData.status,
528
- completedTasks: statusData.completedTasks,
529
- failedTasks: statusData.failedTasks,
530
- waitingTasks: statusData.waitingTasks,
531
- finalResult: validatedResult,
532
- synthesisResult: synthesisResult.content,
533
- completedAt: new Date(),
534
- durationMs: Date.now() - startTime,
535
- totalUsage,
536
- totalCostUsd: totalCostUsd?.toString(),
537
- })
538
- .where(eq(dagExecutions.id, execId));
616
+ if (this.statsQueue) {
617
+ // Write execution status without cost aggregates — worker will fill them in
618
+ await this.db.update(dagExecutions)
619
+ .set({
620
+ status: statusData.status,
621
+ completedTasks: statusData.completedTasks,
622
+ failedTasks: statusData.failedTasks,
623
+ waitingTasks: statusData.waitingTasks,
624
+ finalResult: validatedResult,
625
+ synthesisResult: synthesisResult.content,
626
+ completedAt: new Date(),
627
+ durationMs: Date.now() - startTime,
628
+ })
629
+ .where(eq(dagExecutions.id, execId));
630
+ // Enqueue aggregation to the background worker (generationId not needed for aggregation)
631
+ this.statsQueue.enqueue({
632
+ table: 'dag_executions',
633
+ id: execId,
634
+ generationId: '',
635
+ });
636
+ }
637
+ else {
638
+ const totalUsage = this.aggregateUsage(allSubSteps);
639
+ const totalCostUsd = this.aggregateCost(allSubSteps);
640
+ await this.db.update(dagExecutions)
641
+ .set({
642
+ status: statusData.status,
643
+ completedTasks: statusData.completedTasks,
644
+ failedTasks: statusData.failedTasks,
645
+ waitingTasks: statusData.waitingTasks,
646
+ finalResult: validatedResult,
647
+ synthesisResult: synthesisResult.content,
648
+ completedAt: new Date(),
649
+ durationMs: Date.now() - startTime,
650
+ totalUsage,
651
+ totalCostUsd: totalCostUsd?.toString(),
652
+ })
653
+ .where(eq(dagExecutions.id, execId));
654
+ }
539
655
  if (statusData.status === 'completed' || statusData.status === 'partial') {
540
656
  this.emitEventIfEnabled(execConfig, {
541
657
  type: ExecutionEventType.Completed,
@@ -642,6 +758,17 @@ Generate the final report in Markdown format as specified in the synthesis plan.
642
758
  abortSignal,
643
759
  });
644
760
  const synthesisSubStepId = generateSubStepId();
761
+ const deferStats = !!(this.statsQueue && response.generationId);
762
+ // When statsQueue is available, defer stats to background worker
763
+ if (deferStats) {
764
+ this.statsQueue.enqueue({
765
+ table: 'sub_steps',
766
+ id: '__SYNTHESIS__',
767
+ taskId: '__SYNTHESIS__',
768
+ executionId,
769
+ generationId: response.generationId,
770
+ });
771
+ }
645
772
  await this.db.insert(dagSubSteps).values({
646
773
  id: synthesisSubStepId,
647
774
  executionId,
@@ -657,8 +784,8 @@ Generate the final report in Markdown format as specified in the synthesis plan.
657
784
  completedAt: new Date(),
658
785
  durationMs: Date.now() - startTime,
659
786
  usage: response.usage,
660
- costUsd: response.costUsd?.toString(),
661
- generationStats: response.generationStats,
787
+ costUsd: deferStats ? undefined : response.costUsd?.toString(),
788
+ generationStats: deferStats ? undefined : response.generationStats,
662
789
  result: response.content,
663
790
  });
664
791
  this.logger.debug({ synthesisSubStepId, usage: response.usage }, 'Synthesis sub-step created');
@@ -667,6 +794,7 @@ Generate the final report in Markdown format as specified in the synthesis plan.
667
794
  usage: response.usage,
668
795
  costUsd: response.costUsd,
669
796
  generationStats: response.generationStats,
797
+ generationId: response.generationId,
670
798
  };
671
799
  }
672
800
  async validate(output) {