@simulacra-ai/orchestration 0.0.1 → 0.0.3

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 (38) hide show
  1. package/README.md +61 -61
  2. package/dist/background-agent-pool.d.ts +4 -1
  3. package/dist/background-agent-pool.d.ts.map +1 -1
  4. package/dist/background-agent-pool.js +7 -2
  5. package/dist/background-agent-pool.js.map +1 -1
  6. package/dist/background-agent.d.ts +1 -1
  7. package/dist/background-agent.d.ts.map +1 -1
  8. package/dist/background-agent.js +8 -0
  9. package/dist/background-agent.js.map +1 -1
  10. package/dist/orchestrator.d.ts +12 -7
  11. package/dist/orchestrator.d.ts.map +1 -1
  12. package/dist/orchestrator.js +21 -11
  13. package/dist/orchestrator.js.map +1 -1
  14. package/dist/subagent.d.ts +3 -2
  15. package/dist/subagent.d.ts.map +1 -1
  16. package/dist/subagent.js +3 -2
  17. package/dist/subagent.js.map +1 -1
  18. package/dist/tools/{background-worker-pool.d.ts → background-task-pool.d.ts} +7 -2
  19. package/dist/tools/background-task-pool.d.ts.map +1 -0
  20. package/dist/tools/{background-worker-pool.js → background-task-pool.js} +11 -4
  21. package/dist/tools/background-task-pool.js.map +1 -0
  22. package/dist/tools/index.d.ts +3 -3
  23. package/dist/tools/index.d.ts.map +1 -1
  24. package/dist/tools/index.js +6 -6
  25. package/dist/tools/index.js.map +1 -1
  26. package/dist/tools/parallel-agent-task.d.ts +5 -0
  27. package/dist/tools/parallel-agent-task.d.ts.map +1 -1
  28. package/dist/tools/parallel-agent-task.js +8 -1
  29. package/dist/tools/parallel-agent-task.js.map +1 -1
  30. package/dist/tools/subagent-task.d.ts +5 -0
  31. package/dist/tools/subagent-task.d.ts.map +1 -1
  32. package/dist/tools/subagent-task.js +8 -1
  33. package/dist/tools/subagent-task.js.map +1 -1
  34. package/dist/types.d.ts +1 -1
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +15 -2
  37. package/dist/tools/background-worker-pool.d.ts.map +0 -1
  38. package/dist/tools/background-worker-pool.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Simulacra Agent Orchestration
2
2
 
3
- Multi-agent orchestration patterns for the Simulacra conversation engine. Child agents run independently with their own conversations and tool access.
3
+ The orchestration package provides multi-agent patterns for Simulacra. Real workloads often call for delegation, parallelism, or long-running background tasks. Each worker agent gets its own conversation and tool access, and the orchestrator manages spawning, cancellation, and result collection.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,113 +10,113 @@ npm install @simulacra-ai/core @simulacra-ai/orchestration
10
10
 
11
11
  ## Setup
12
12
 
13
- All orchestration patterns require a `WorkflowManager` wrapping a conversation with tools:
13
+ All orchestration patterns build on top of a `WorkflowManager`. The orchestrator spawns child conversations from the parent, so each worker agent inherits the provider, tools, and system prompt.
14
14
 
15
15
  ```typescript
16
- import { Conversation, WorkflowManager } from "@simulacra-ai/core";
17
-
18
- const conversation = new Conversation(provider);
19
- conversation.toolkit = [/* your tools */];
20
- const workflowManager = new WorkflowManager(conversation);
16
+ // create a conversation and workflow manager
17
+ using conversation = new Conversation(provider);
18
+ conversation.toolkit = [/* tools */];
19
+ using workflowManager = new WorkflowManager(conversation);
21
20
  ```
22
21
 
23
- ## Usage
22
+ ## Patterns
23
+
24
+ Each pattern can be used in two ways. As a tool added to a conversation's toolkit, letting the model decide when and how to delegate. Or as a direct API call from application code for explicit control over orchestration.
24
25
 
25
26
  ### SubagentOrchestrator
26
27
 
27
- Spawns a child agent and blocks until it completes.
28
+ The simplest pattern. Spawns a child agent, blocks until it completes, and returns the result.
28
29
 
29
30
  ```typescript
30
- import { SubagentOrchestrator } from "@simulacra-ai/orchestration";
31
-
31
+ // spawn a subagent and wait for it to finish
32
32
  const agent = new SubagentOrchestrator(workflowManager);
33
33
  const result = await agent.execute("Analyze this data and report findings");
34
34
 
35
- console.log(result.end_reason); // "complete" | "cancel" | "error"
35
+ console.log(result.end_reason);
36
36
  console.log(result.messages);
37
37
  ```
38
38
 
39
- ### BackgroundOrchestrator
39
+ ### ParallelOrchestrator
40
40
 
41
- A single background worker. Call `execute` once to start, then inspect or collect.
41
+ Fans out multiple prompts concurrently and waits for all of them to complete. Each prompt gets its own agent, and all results are returned together.
42
42
 
43
43
  ```typescript
44
- import { BackgroundOrchestrator } from "@simulacra-ai/orchestration";
44
+ // fan out three tasks in parallel
45
+ const agent = new ParallelOrchestrator(workflowManager);
46
+ const results = await agent.execute([
47
+ { prompt: "Analyze dataset A" },
48
+ { prompt: "Analyze dataset B" },
49
+ { prompt: "Analyze dataset C", system: "Focus on outliers" },
50
+ ]);
51
+ ```
45
52
 
53
+ ### BackgroundOrchestrator
54
+
55
+ A background worker that runs independently. Start it with `execute`, then check on it or collect results later.
56
+
57
+ ```typescript
58
+ // start a background worker
46
59
  using worker = new BackgroundOrchestrator(workflowManager);
47
60
  worker.execute("Monitor the feed for changes");
48
61
 
49
- // later
50
- worker.status; // "running" | "completed" | "cancelled"
51
- worker.done; // true when completed or cancelled
52
- worker.rounds; // number of agentic turns
53
- worker.tool_call_count; // total tool calls made
54
- worker.latest_message; // last assistant text
62
+ // check on it later
63
+ setTimeout(() => {
64
+ console.log(worker.status);
65
+ }, 5000);
55
66
 
56
- const result = await worker.collect(); // await completion, get full result
57
- worker.cancel(); // cancel if still running
58
- // automatically disposed at end of scope
67
+ // wait for it to finish and get the full result
68
+ const result = await worker.collect();
59
69
  ```
60
70
 
61
71
  ### BackgroundAgentPool
62
72
 
63
- Manages multiple background workers with batch operations.
73
+ Manages multiple background workers with batch operations. Useful for parallelizing independent research or processing tasks where each worker runs on its own.
64
74
 
65
75
  ```typescript
66
- import { BackgroundAgentPool } from "@simulacra-ai/orchestration";
67
-
76
+ // create a pool and start some workers
68
77
  using pool = new BackgroundAgentPool(workflowManager);
69
78
 
70
- const id1 = pool.start("Research topic A");
71
- const id2 = pool.start("Research topic B");
72
- const id3 = pool.start("Research topic C");
73
-
74
- pool.list(); // [id1, id2, id3]
75
- pool.state(id1, id2); // WorkerState[] with status, rounds, tool_call_count, latest_message
76
- pool.cancel(id2); // cancel a specific worker
79
+ pool.start("Research topic A");
80
+ pool.start("Research topic B");
81
+ pool.start("Research topic C");
77
82
 
78
- const done = pool.ack(); // pop all completed workers, returns their states
79
- // all remaining workers cancelled and cleaned up at end of scope
83
+ // wait, then collect completed workers
84
+ setTimeout(() => {
85
+ const done = pool.ack();
86
+ }, 30000);
80
87
  ```
81
88
 
82
- ### ParallelOrchestrator
89
+ ### Recursive Depth
83
90
 
84
- Runs multiple prompts concurrently and waits for all to complete.
91
+ All three constructors (`SubagentOrchestrator`, `ParallelOrchestrator`, `BackgroundAgentPool`) accept a `{ recursive_depth }` option that controls how many levels of nested delegation the spawned agents are allowed to perform.
85
92
 
86
93
  ```typescript
87
- import { ParallelOrchestrator } from "@simulacra-ai/orchestration";
88
-
89
- const agent = new ParallelOrchestrator(workflowManager);
90
- const results = await agent.execute([
91
- { prompt: "Analyze dataset A" },
92
- { prompt: "Analyze dataset B" },
93
- { prompt: "Analyze dataset C", system: "Focus on outliers" },
94
- ]);
94
+ const agent = new SubagentOrchestrator(workflowManager, { recursive_depth: 2 });
95
95
  ```
96
96
 
97
- ## LLM Tools
97
+ ## Agentic Orchestration
98
98
 
99
- Each pattern is available as a `ToolClass` for model-driven orchestration.
100
-
101
- > **Note:** By default, orchestration tools are stripped from child agents to prevent recursive nesting. Pass `strip_tools: false` to the `Orchestrator` constructor to allow it.
99
+ Orchestration patterns are also available as task tools that can be added to a model's toolkit, allowing the model to decide when and how to delegate work.
102
100
 
103
101
  ```typescript
104
- import { OrchestrationToolkit } from "@simulacra-ai/orchestration";
105
-
102
+ // give the model access to all orchestration tools
106
103
  conversation.toolkit = [...conversation.toolkit, ...OrchestrationToolkit];
104
+
105
+ // give the model access to specific tools
106
+ conversation.toolkit = [...conversation.toolkit, SubagentTask, ParallelAgentTask, BackgroundTaskPool];
107
107
  ```
108
108
 
109
- Individual tools (`SubagentTask`, `BackgroundWorkerPool`, `ParallelAgentTask`) are also exported if you want to pick selectively.
109
+ By default, spawned agents cannot delegate further. Nested delegation can be enabled by setting `ORCHESTRATION_DEPTH_KEY` in `context_data`.
110
+
111
+ ```typescript
112
+ import { ORCHESTRATION_DEPTH_KEY } from "@simulacra-ai/orchestration";
110
113
 
111
- `BackgroundWorkerPool` exposes a worker pool to the model with these actions:
114
+ // allows one level of nested delegation (agent > subagent > sub-subagent)
115
+ using manager = new WorkflowManager(conversation, {
116
+ context_data: { [ORCHESTRATION_DEPTH_KEY]: 1 },
117
+ });
118
+ ```
112
119
 
113
- Action|Description
114
- -|-
115
- `start`|Launch one or more background workers (requires `prompts`)
116
- `list`|List all worker IDs
117
- `state`|Get status, rounds, tool calls, latest message (optional `ids`)
118
- `cancel`|Stop workers (requires `ids`)
119
- `ack`|Pop completed workers and return their states (optional `ids`)
120
120
 
121
121
  ## License
122
122
 
@@ -10,8 +10,11 @@ export declare class BackgroundAgentPool {
10
10
  #private;
11
11
  /**
12
12
  * @param source - A `WorkflowManager` or `Workflow` to spawn workers from.
13
+ * @param options.recursive_depth - How many levels of recursive orchestration to allow in workers. Defaults to `0`.
13
14
  */
14
- constructor(source: WorkflowManager | Workflow);
15
+ constructor(source: WorkflowManager | Workflow, { recursive_depth }?: {
16
+ recursive_depth?: number | undefined;
17
+ });
15
18
  /**
16
19
  * Update the workflow/manager reference used to spawn new workers.
17
20
  * This must be called when a persisted pool is reused by a new workflow,
@@ -1 +1 @@
1
- {"version":3,"file":"background-agent-pool.d.ts","sourceRoot":"","sources":["../src/background-agent-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,mBAAmB;;IAI9B;;OAEG;gBACS,MAAM,EAAE,eAAe,GAAG,QAAQ;IAI9C;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,GAAG,IAAI;IAIvD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM;IAOxD;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAWtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQxB;;;;OAIG;IACH,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAiBpC;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAMzB"}
1
+ {"version":3,"file":"background-agent-pool.d.ts","sourceRoot":"","sources":["../src/background-agent-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;GAKG;AACH,qBAAa,mBAAmB;;IAK9B;;;OAGG;gBACS,MAAM,EAAE,eAAe,GAAG,QAAQ,EAAE,EAAE,eAAmB,EAAE;;KAAK;IAK5E;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,GAAG,IAAI;IAIvD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM;IASxD;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAWtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQxB;;;;OAIG;IACH,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;IAiBpC;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAMzB"}
@@ -7,12 +7,15 @@ import { BackgroundOrchestrator } from "./background-agent.js";
7
7
  */
8
8
  export class BackgroundAgentPool {
9
9
  #source;
10
+ #recursive_depth;
10
11
  #agents = new Map();
11
12
  /**
12
13
  * @param source - A `WorkflowManager` or `Workflow` to spawn workers from.
14
+ * @param options.recursive_depth - How many levels of recursive orchestration to allow in workers. Defaults to `0`.
13
15
  */
14
- constructor(source) {
16
+ constructor(source, { recursive_depth = 0 } = {}) {
15
17
  this.#source = source;
18
+ this.#recursive_depth = recursive_depth;
16
19
  }
17
20
  /**
18
21
  * Update the workflow/manager reference used to spawn new workers.
@@ -30,7 +33,9 @@ export class BackgroundAgentPool {
30
33
  * @param options - Configuration for the worker (system prompt, tools, session forking, custom ID).
31
34
  */
32
35
  start(prompt, options) {
33
- const agent = new BackgroundOrchestrator(this.#source);
36
+ const agent = new BackgroundOrchestrator(this.#source, {
37
+ recursive_depth: this.#recursive_depth,
38
+ });
34
39
  agent.execute(prompt, options);
35
40
  this.#agents.set(agent.id, agent);
36
41
  return agent.id;
@@ -1 +1 @@
1
- {"version":3,"file":"background-agent-pool.js","sourceRoot":"","sources":["../src/background-agent-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAC9B,OAAO,CAA6B;IAC3B,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IAE7D;;OAEG;IACH,YAAY,MAAkC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAkC;QAC9C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAc,EAAE,OAAyB;QAC7C,MAAM,KAAK,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,GAAa;QACpB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,GAAa;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"background-agent-pool.js","sourceRoot":"","sources":["../src/background-agent-pool.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export declare class BackgroundOrchestrator extends Orchestrator {
22
22
  /**
23
23
  * Current state: `idle`, `running`, `completed`, or `cancelled`.
24
24
  */
25
- get status(): "running" | "completed" | "cancelled" | "idle";
25
+ get status(): "idle" | "running" | "completed" | "cancelled";
26
26
  /**
27
27
  * `true` when the worker has completed or been cancelled.
28
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"background-agent.d.ts","sourceRoot":"","sources":["../src/background-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAoB,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEjG;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;;IAItD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAaxD;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAKf;IAED;;OAEG;IACH,IAAI,MAAM,mDAET;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CAElB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAKnB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAO5B;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAevC;IAED;;OAEG;IACH,SAAS,IAAI,WAAW;IAUxB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAOxC;;OAEG;IACH,MAAM,IAAI,IAAI;IAUd;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CASzB"}
1
+ {"version":3,"file":"background-agent.d.ts","sourceRoot":"","sources":["../src/background-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAoB,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEjG;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;;IAItD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAaxD;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAKf;IAED;;OAEG;IACH,IAAI,MAAM,mDAET;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CAElB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAKnB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAO5B;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAevC;IAED;;OAEG;IACH,SAAS,IAAI,WAAW;IAkBxB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAOxC;;OAEG;IACH,MAAM,IAAI,IAAI;IAUd;;OAEG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CASzB"}
@@ -90,6 +90,14 @@ export class BackgroundOrchestrator extends Orchestrator {
90
90
  * Snapshot of the worker's current state.
91
91
  */
92
92
  get_state() {
93
+ if (this.#status === "idle") {
94
+ return {
95
+ id: "",
96
+ status: "idle",
97
+ rounds: 0,
98
+ tool_call_count: 0,
99
+ };
100
+ }
93
101
  return {
94
102
  id: this.id,
95
103
  status: this.#status,
@@ -1 +1 @@
1
- {"version":3,"file":"background-agent.js","sourceRoot":"","sources":["../src/background-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background-agent.js","sourceRoot":"","sources":["../src/background-agent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { Workflow, WorkflowManager } from "@simulacra-ai/core";
2
2
  import type { Conversation } from "@simulacra-ai/core";
3
3
  import type { BackgroundHandle, SubagentOptions } from "./types.ts";
4
+ /**
5
+ * Context key used to propagate the remaining orchestration depth to child agents.
6
+ */
7
+ export declare const ORCHESTRATION_DEPTH_KEY = "__orchestration_depth";
4
8
  /**
5
9
  * Base class for orchestration patterns.
6
10
  *
@@ -8,17 +12,18 @@ import type { BackgroundHandle, SubagentOptions } from "./types.ts";
8
12
  * (for tool integration). Provides the shared child-spawning logic
9
13
  * that all orchestration patterns build on.
10
14
  *
11
- * By default, orchestration tools are stripped from child agents to
12
- * prevent nesting. Pass `strip_tools: false` to allow it.
15
+ * By default, `recursive_depth` is `0`, which strips orchestration tools
16
+ * from child agents to prevent nesting. Set to a positive number to allow
17
+ * that many levels of recursive orchestration, or `-1` for unlimited depth.
13
18
  */
14
19
  export declare abstract class Orchestrator {
15
20
  #private;
16
21
  /**
17
22
  * @param source - A `WorkflowManager` or `Workflow` to spawn children from.
18
- * @param options.strip_tools - Remove orchestration tools from child agents. Defaults to `true`.
23
+ * @param options.recursive_depth - How many levels of recursive orchestration to allow. `0` (default) strips orchestration tools from children, `-1` allows unlimited nesting.
19
24
  */
20
- constructor(source: WorkflowManager | Workflow, { strip_tools }?: {
21
- strip_tools?: boolean | undefined;
25
+ constructor(source: WorkflowManager | Workflow, { recursive_depth }?: {
26
+ recursive_depth?: number | undefined;
22
27
  });
23
28
  /**
24
29
  * The conversation associated with the orchestrator.
@@ -32,8 +37,8 @@ export declare abstract class Orchestrator {
32
37
  * Spawn a child agent with its own conversation and workflow.
33
38
  *
34
39
  * Creates a child conversation, assigns tools (stripping orchestration
35
- * tools unless disabled), and starts the workflow. Returns a handle
36
- * for awaiting, inspecting, or cancelling the child.
40
+ * tools when depth is exhausted), and starts the workflow. Returns a
41
+ * handle for awaiting, inspecting, or cancelling the child.
37
42
  *
38
43
  * @param prompt - The instruction to send to the child agent.
39
44
  * @param options - Configuration for the child agent (system prompt, tools, session forking, custom ID).
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AAapF;;;;;;;;;GASG;AACH,8BAAsB,YAAY;;IAKhC;;;OAGG;gBACS,MAAM,EAAE,eAAe,GAAG,QAAQ,EAAE,EAAE,WAAkB,EAAE;;KAAK;IAS3E;;OAEG;IACH,SAAS,KAAK,YAAY,IAAI,YAAY,CAQzC;IAED;;OAEG;IACH,SAAS,KAAK,eAAe,IAAI,QAAQ,GAAG,SAAS,CAKpD;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB;CA+D7E"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AAIpF;;GAEG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAW/D;;;;;;;;;;GAUG;AACH,8BAAsB,YAAY;;IAKhC;;;OAGG;gBACS,MAAM,EAAE,eAAe,GAAG,QAAQ,EAAE,EAAE,eAAmB,EAAE;;KAAK;IAY5E;;OAEG;IACH,SAAS,KAAK,YAAY,IAAI,YAAY,CAQzC;IAED;;OAEG;IACH,SAAS,KAAK,eAAe,IAAI,QAAQ,GAAG,SAAS,CAKpD;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB;CAkE7E"}
@@ -1,5 +1,9 @@
1
1
  import { Workflow, WorkflowManager } from "@simulacra-ai/core";
2
2
  const ORCHESTRATION_TOOL_NAMES = new Set(["subagent", "background", "parallel"]);
3
+ /**
4
+ * Context key used to propagate the remaining orchestration depth to child agents.
5
+ */
6
+ export const ORCHESTRATION_DEPTH_KEY = "__orchestration_depth";
3
7
  /**
4
8
  * Remove orchestration tools from a toolkit to prevent child agents from nesting.
5
9
  *
@@ -15,25 +19,29 @@ function strip_orchestration_tools(toolkit) {
15
19
  * (for tool integration). Provides the shared child-spawning logic
16
20
  * that all orchestration patterns build on.
17
21
  *
18
- * By default, orchestration tools are stripped from child agents to
19
- * prevent nesting. Pass `strip_tools: false` to allow it.
22
+ * By default, `recursive_depth` is `0`, which strips orchestration tools
23
+ * from child agents to prevent nesting. Set to a positive number to allow
24
+ * that many levels of recursive orchestration, or `-1` for unlimited depth.
20
25
  */
21
26
  export class Orchestrator {
22
27
  #manager;
23
28
  #workflow;
24
- #strip_tools;
29
+ #recursive_depth;
25
30
  /**
26
31
  * @param source - A `WorkflowManager` or `Workflow` to spawn children from.
27
- * @param options.strip_tools - Remove orchestration tools from child agents. Defaults to `true`.
32
+ * @param options.recursive_depth - How many levels of recursive orchestration to allow. `0` (default) strips orchestration tools from children, `-1` allows unlimited nesting.
28
33
  */
29
- constructor(source, { strip_tools = true } = {}) {
34
+ constructor(source, { recursive_depth = 0 } = {}) {
35
+ if (!Number.isInteger(recursive_depth) || recursive_depth < -1) {
36
+ throw new Error("invalid value for recursive_depth");
37
+ }
30
38
  if (source instanceof WorkflowManager) {
31
39
  this.#manager = source;
32
40
  }
33
41
  else {
34
42
  this.#workflow = source;
35
43
  }
36
- this.#strip_tools = strip_tools;
44
+ this.#recursive_depth = recursive_depth;
37
45
  }
38
46
  /**
39
47
  * The conversation associated with the orchestrator.
@@ -60,8 +68,8 @@ export class Orchestrator {
60
68
  * Spawn a child agent with its own conversation and workflow.
61
69
  *
62
70
  * Creates a child conversation, assigns tools (stripping orchestration
63
- * tools unless disabled), and starts the workflow. Returns a handle
64
- * for awaiting, inspecting, or cancelling the child.
71
+ * tools when depth is exhausted), and starts the workflow. Returns a
72
+ * handle for awaiting, inspecting, or cancelling the child.
65
73
  *
66
74
  * @param prompt - The instruction to send to the child agent.
67
75
  * @param options - Configuration for the child agent (system prompt, tools, session forking, custom ID).
@@ -70,11 +78,13 @@ export class Orchestrator {
70
78
  const conversation = this.conversation;
71
79
  const child = conversation.spawn_child(options?.fork_session, options?.id, options?.system ?? conversation.system);
72
80
  const toolkit = options?.toolkit ?? [...conversation.toolkit];
73
- child.toolkit = this.#strip_tools ? strip_orchestration_tools(toolkit) : toolkit;
81
+ child.toolkit = this.#recursive_depth === 0 ? strip_orchestration_tools(toolkit) : toolkit;
82
+ const next_depth = this.#recursive_depth === -1 ? -1 : Math.max(0, this.#recursive_depth - 1);
83
+ const child_context = { [ORCHESTRATION_DEPTH_KEY]: next_depth };
74
84
  const parent = this.parent_workflow;
75
85
  const child_workflow = parent && parent.state !== "disposed"
76
- ? parent.spawn_child(child, options?.id)
77
- : new Workflow(child);
86
+ ? parent.spawn_child(child, options?.id, child_context)
87
+ : new Workflow(child, { context_data: child_context });
78
88
  let settled = false;
79
89
  const promise = new Promise((resolve) => {
80
90
  child_workflow.once("workflow_end", (event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import type { SubagentOptions, SubagentResult } from "./types.ts";
3
3
  /**
4
4
  * Spawns a child agent and blocks until it completes.
5
5
  *
6
- * The child runs its own agentic loop with access to the parent's tools
7
- * (minus orchestration tools).
6
+ * The child runs its own agentic loop with access to the parent's tools.
7
+ * Orchestration tools are excluded when `recursive_depth` is 0 (the default)
8
+ * and included when a positive depth is configured.
8
9
  */
9
10
  export declare class SubagentOrchestrator extends Orchestrator {
10
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../src/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAGlF"}
1
+ {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../src/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAGlF"}
package/dist/subagent.js CHANGED
@@ -2,8 +2,9 @@ import { Orchestrator } from "./orchestrator.js";
2
2
  /**
3
3
  * Spawns a child agent and blocks until it completes.
4
4
  *
5
- * The child runs its own agentic loop with access to the parent's tools
6
- * (minus orchestration tools).
5
+ * The child runs its own agentic loop with access to the parent's tools.
6
+ * Orchestration tools are excluded when `recursive_depth` is 0 (the default)
7
+ * and included when a positive depth is configured.
7
8
  */
8
9
  export class SubagentOrchestrator extends Orchestrator {
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../src/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;;GAKG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAyB;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../src/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAyB;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IAC7C,CAAC;CACF"}
@@ -11,6 +11,11 @@ type BackgroundToolSuccess = ToolSuccessResult & {
11
11
  ids?: string[];
12
12
  workers?: WorkerState[];
13
13
  };
14
- export declare const BackgroundWorkerPool: ToolClass<BackgroundParams, BackgroundToolSuccess>;
14
+ /**
15
+ * Tool that lets a model manage a pool of background worker agents. Supports
16
+ * starting tasks, listing workers, checking state, cancelling, and collecting
17
+ * results without blocking the main conversation.
18
+ */
19
+ export declare const BackgroundTaskPool: ToolClass<BackgroundParams, BackgroundToolSuccess>;
15
20
  export {};
16
- //# sourceMappingURL=background-worker-pool.d.ts.map
21
+ //# sourceMappingURL=background-task-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-task-pool.d.ts","sourceRoot":"","sources":["../../src/tools/background-task-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAIT,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC/C,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAkIF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,gBAAgB,EAAE,qBAAqB,CAC1D,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { BackgroundAgentPool } from "../background-agent-pool.js";
2
- class BackgroundWorkerPoolImpl {
2
+ import { ORCHESTRATION_DEPTH_KEY } from "../orchestrator.js";
3
+ class BackgroundTaskPoolImpl {
3
4
  #pool;
4
5
  constructor(context) {
5
6
  const POOL_KEY = "__background_agent_pool";
6
7
  if (!context[POOL_KEY]) {
7
- context[POOL_KEY] = new BackgroundAgentPool(context.workflow);
8
+ const depth = context[ORCHESTRATION_DEPTH_KEY] ?? 0;
9
+ context[POOL_KEY] = new BackgroundAgentPool(context.workflow, { recursive_depth: depth });
8
10
  }
9
11
  const pool = context[POOL_KEY];
10
12
  pool.update_source(context.workflow);
@@ -122,5 +124,10 @@ class BackgroundWorkerPoolImpl {
122
124
  };
123
125
  }
124
126
  }
125
- export const BackgroundWorkerPool = BackgroundWorkerPoolImpl;
126
- //# sourceMappingURL=background-worker-pool.js.map
127
+ /**
128
+ * Tool that lets a model manage a pool of background worker agents. Supports
129
+ * starting tasks, listing workers, checking state, cancelling, and collecting
130
+ * results without blocking the main conversation.
131
+ */
132
+ export const BackgroundTaskPool = BackgroundTaskPoolImpl;
133
+ //# sourceMappingURL=background-task-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-task-pool.js","sourceRoot":"","sources":["../../src/tools/background-task-pool.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import type { ToolClass } from "@simulacra-ai/core";
2
- export { SubagentTask } from "./subagent-task.ts";
3
- export { BackgroundWorkerPool } from "./background-worker-pool.ts";
2
+ export { BackgroundTaskPool } from "./background-task-pool.ts";
4
3
  export { ParallelAgentTask } from "./parallel-agent-task.ts";
4
+ export { SubagentTask } from "./subagent-task.ts";
5
5
  /**
6
- * All orchestration tools (`SubagentTask`, `BackgroundWorkerPool`, `ParallelAgentTask`) as a ready-to-use toolkit.
6
+ * All orchestration tools as a ready-to-use toolkit.
7
7
  */
8
8
  export declare const OrchestrationToolkit: ToolClass[];
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAM7D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAI3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAI3C,CAAC"}
@@ -1,15 +1,15 @@
1
- export { SubagentTask } from "./subagent-task.js";
2
- export { BackgroundWorkerPool } from "./background-worker-pool.js";
1
+ export { BackgroundTaskPool } from "./background-task-pool.js";
3
2
  export { ParallelAgentTask } from "./parallel-agent-task.js";
4
- import { SubagentTask } from "./subagent-task.js";
5
- import { BackgroundWorkerPool } from "./background-worker-pool.js";
3
+ export { SubagentTask } from "./subagent-task.js";
4
+ import { BackgroundTaskPool } from "./background-task-pool.js";
6
5
  import { ParallelAgentTask } from "./parallel-agent-task.js";
6
+ import { SubagentTask } from "./subagent-task.js";
7
7
  /**
8
- * All orchestration tools (`SubagentTask`, `BackgroundWorkerPool`, `ParallelAgentTask`) as a ready-to-use toolkit.
8
+ * All orchestration tools as a ready-to-use toolkit.
9
9
  */
10
10
  export const OrchestrationToolkit = [
11
11
  SubagentTask,
12
- BackgroundWorkerPool,
13
12
  ParallelAgentTask,
13
+ BackgroundTaskPool,
14
14
  ];
15
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,YAAY;IACZ,oBAAoB;IACpB,iBAAiB;CAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;CACnB,CAAC"}
@@ -11,6 +11,11 @@ type ParallelToolSuccess = ToolSuccessResult & {
11
11
  end_reason: string;
12
12
  }>;
13
13
  };
14
+ /**
15
+ * Tool that lets a model run multiple subtasks concurrently, each handled by its
16
+ * own subagent with a separate conversation. All subagents start immediately and
17
+ * the tool returns once every subagent has completed.
18
+ */
14
19
  export declare const ParallelAgentTask: ToolClass<ParallelParams, ParallelToolSuccess>;
15
20
  export {};
16
21
  //# sourceMappingURL=parallel-agent-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-agent-task.d.ts","sourceRoot":"","sources":["../../src/tools/parallel-agent-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAIT,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAI5B,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,iBAAiB,GAAG;IAC7C,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,CAAC;AAsEF,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,cAAc,EAAE,mBAAmB,CACtD,CAAC"}
1
+ {"version":3,"file":"parallel-agent-task.d.ts","sourceRoot":"","sources":["../../src/tools/parallel-agent-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAIT,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAK5B,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,iBAAiB,GAAG;IAC7C,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,CAAC;AAuEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,cAAc,EAAE,mBAAmB,CACtD,CAAC"}
@@ -1,9 +1,11 @@
1
+ import { ORCHESTRATION_DEPTH_KEY } from "../orchestrator.js";
1
2
  import { ParallelOrchestrator } from "../parallel-agent.js";
2
3
  import { extract_response } from "./utils.js";
3
4
  class ParallelAgentTaskImpl {
4
5
  #agent;
5
6
  constructor(context) {
6
- this.#agent = new ParallelOrchestrator(context.workflow);
7
+ const depth = context[ORCHESTRATION_DEPTH_KEY] ?? 0;
8
+ this.#agent = new ParallelOrchestrator(context.workflow, { recursive_depth: depth });
7
9
  }
8
10
  async execute({ prompts, system, fork_session }) {
9
11
  try {
@@ -64,5 +66,10 @@ class ParallelAgentTaskImpl {
64
66
  };
65
67
  }
66
68
  }
69
+ /**
70
+ * Tool that lets a model run multiple subtasks concurrently, each handled by its
71
+ * own subagent with a separate conversation. All subagents start immediately and
72
+ * the tool returns once every subagent has completed.
73
+ */
67
74
  export const ParallelAgentTask = ParallelAgentTaskImpl;
68
75
  //# sourceMappingURL=parallel-agent-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-agent-task.js","sourceRoot":"","sources":["../../src/tools/parallel-agent-task.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgB9C,MAAM,qBAAqB;IAChB,MAAM,CAAuB;IAEtC,YAAY,OAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAkB;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBACrB,OAAO;oBACL,MAAM,EAAE,KAAc;oBACtB,OAAO,EAAE,2CAA2C;iBAClC,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,IAAa;gBACrB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBAC7B,UAAU,EAAE,CAAC,CAAC,UAAU;iBACzB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,KAAc;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,KAAK;aACa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,8EAA8E;gBAC9E,8EAA8E;gBAC9E,gFAAgF;gBAChF,4CAA4C;YAC9C,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,0CAA0C;oBACvD,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;oBAC5D,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,sEAAsE;oBACnF,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAC5B,qBAAqB,CAAC"}
1
+ {"version":3,"file":"parallel-agent-task.js","sourceRoot":"","sources":["../../src/tools/parallel-agent-task.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgB9C,MAAM,qBAAqB;IAChB,MAAM,CAAuB;IAEtC,YAAY,OAAoB;QAC9B,MAAM,KAAK,GAAI,OAAO,CAAC,uBAAuB,CAAY,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAkB;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBACrB,OAAO;oBACL,MAAM,EAAE,KAAc;oBACtB,OAAO,EAAE,2CAA2C;iBAClC,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,IAAa;gBACrB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBAC7B,UAAU,EAAE,CAAC,CAAC,UAAU;iBACzB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,KAAc;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,KAAK;aACa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,8EAA8E;gBAC9E,8EAA8E;gBAC9E,gFAAgF;gBAChF,4CAA4C;YAC9C,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,0CAA0C;oBACvD,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;oBAC5D,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,sEAAsE;oBACnF,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,qBAAqB,CAAC"}
@@ -9,6 +9,11 @@ type SubagentToolSuccess = ToolSuccessResult & {
9
9
  response: string;
10
10
  end_reason: string;
11
11
  };
12
+ /**
13
+ * Tool that lets a model spawn an autonomous subagent with its own conversation
14
+ * to handle a subtask independently. The subagent runs to completion and returns
15
+ * its final response.
16
+ */
12
17
  export declare const SubagentTask: ToolClass<SubagentParams, SubagentToolSuccess>;
13
18
  export {};
14
19
  //# sourceMappingURL=subagent-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-task.d.ts","sourceRoot":"","sources":["../../src/tools/subagent-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAIT,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAI5B,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,iBAAiB,GAAG;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA6DF,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAoB,CAAC"}
1
+ {"version":3,"file":"subagent-task.d.ts","sourceRoot":"","sources":["../../src/tools/subagent-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAIT,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAK5B,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG,iBAAiB,GAAG;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA8DF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAoB,CAAC"}
@@ -1,9 +1,11 @@
1
+ import { ORCHESTRATION_DEPTH_KEY } from "../orchestrator.js";
1
2
  import { SubagentOrchestrator } from "../subagent.js";
2
3
  import { extract_response } from "./utils.js";
3
4
  class SubagentTaskImpl {
4
5
  #agent;
5
6
  constructor(context) {
6
- this.#agent = new SubagentOrchestrator(context.workflow);
7
+ const depth = context[ORCHESTRATION_DEPTH_KEY] ?? 0;
8
+ this.#agent = new SubagentOrchestrator(context.workflow, { recursive_depth: depth });
7
9
  }
8
10
  async execute({ prompt, system, fork_session }) {
9
11
  try {
@@ -54,5 +56,10 @@ class SubagentTaskImpl {
54
56
  };
55
57
  }
56
58
  }
59
+ /**
60
+ * Tool that lets a model spawn an autonomous subagent with its own conversation
61
+ * to handle a subtask independently. The subagent runs to completion and returns
62
+ * its final response.
63
+ */
57
64
  export const SubagentTask = SubagentTaskImpl;
58
65
  //# sourceMappingURL=subagent-task.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-task.js","sourceRoot":"","sources":["../../src/tools/subagent-task.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAc9C,MAAM,gBAAgB;IACX,MAAM,CAAuB;IAEtC,YAAY,OAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAkB;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3E,OAAO;gBACL,MAAM,EAAE,IAAa;gBACrB,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBAClC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,KAAc;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,KAAK;aACa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,qEAAqE;gBACrE,qEAAqE;gBACrE,uEAAuE;gBACvE,mCAAmC;YACrC,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;oBAChD,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;oBAC5D,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,WAAW,EACT,+EAA+E;oBACjF,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,YAAY,GAAmD,gBAAgB,CAAC"}
1
+ {"version":3,"file":"subagent-task.js","sourceRoot":"","sources":["../../src/tools/subagent-task.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAc9C,MAAM,gBAAgB;IACX,MAAM,CAAuB;IAEtC,YAAY,OAAoB;QAC9B,MAAM,KAAK,GAAI,OAAO,CAAC,uBAAuB,CAAY,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAkB;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3E,OAAO;gBACL,MAAM,EAAE,IAAa;gBACrB,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBAClC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,KAAc;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,KAAK;aACa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EACT,qEAAqE;gBACrE,qEAAqE;gBACrE,uEAAuE;gBACvE,mCAAmC;YACrC,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;oBAChD,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;oBAC5D,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,WAAW,EACT,+EAA+E;oBACjF,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmD,gBAAgB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -73,7 +73,7 @@ export interface WorkerState {
73
73
  /**
74
74
  * The worker's current execution state.
75
75
  */
76
- status: "running" | "completed" | "cancelled";
76
+ status: "idle" | "running" | "completed" | "cancelled";
77
77
  /**
78
78
  * Number of agentic turns (assistant messages) completed.
79
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,SAAS,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACvC;;OAEG;IACH,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,EAAE,SAAS,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACvC;;OAEG;IACH,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;IACvD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simulacra-ai/orchestration",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Subagent, background, and parallel workflow orchestration for the Simulacra conversation engine",
5
5
  "type": "module",
6
6
  "exports": {
@@ -17,7 +17,20 @@
17
17
  "clean": "rm -rf dist *.tsbuildinfo"
18
18
  },
19
19
  "peerDependencies": {
20
- "@simulacra-ai/core": "0.0.1"
20
+ "@simulacra-ai/core": "0.0.3"
21
21
  },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/simulacra-ai/simulacra.git",
25
+ "directory": "packages/orchestration"
26
+ },
27
+ "homepage": "https://github.com/simulacra-ai/simulacra",
28
+ "keywords": [
29
+ "ai",
30
+ "llm",
31
+ "agent",
32
+ "orchestration",
33
+ "subagent"
34
+ ],
22
35
  "license": "MIT"
23
36
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-worker-pool.d.ts","sourceRoot":"","sources":["../../src/tools/background-worker-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAIT,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG,iBAAiB,GAAG;IAC/C,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAiIF,eAAO,MAAM,oBAAoB,EAAE,SAAS,CAAC,gBAAgB,EAAE,qBAAqB,CAC1D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-worker-pool.js","sourceRoot":"","sources":["../../src/tools/background-worker-pool.ts"],"names":[],"mappings":"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"}