@lleverage-ai/agent-sdk 0.0.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.
- package/LICENSE +21 -0
- package/README.md +2321 -0
- package/dist/agent.d.ts +52 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +2122 -0
- package/dist/agent.js.map +1 -0
- package/dist/backend.d.ts +378 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +71 -0
- package/dist/backend.js.map +1 -0
- package/dist/backends/composite.d.ts +258 -0
- package/dist/backends/composite.d.ts.map +1 -0
- package/dist/backends/composite.js +437 -0
- package/dist/backends/composite.js.map +1 -0
- package/dist/backends/filesystem.d.ts +268 -0
- package/dist/backends/filesystem.d.ts.map +1 -0
- package/dist/backends/filesystem.js +623 -0
- package/dist/backends/filesystem.js.map +1 -0
- package/dist/backends/index.d.ts +14 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +14 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/persistent.d.ts +312 -0
- package/dist/backends/persistent.d.ts.map +1 -0
- package/dist/backends/persistent.js +519 -0
- package/dist/backends/persistent.js.map +1 -0
- package/dist/backends/sandbox.d.ts +315 -0
- package/dist/backends/sandbox.d.ts.map +1 -0
- package/dist/backends/sandbox.js +490 -0
- package/dist/backends/sandbox.js.map +1 -0
- package/dist/backends/state.d.ts +225 -0
- package/dist/backends/state.d.ts.map +1 -0
- package/dist/backends/state.js +396 -0
- package/dist/backends/state.js.map +1 -0
- package/dist/checkpointer/file-saver.d.ts +182 -0
- package/dist/checkpointer/file-saver.d.ts.map +1 -0
- package/dist/checkpointer/file-saver.js +298 -0
- package/dist/checkpointer/file-saver.js.map +1 -0
- package/dist/checkpointer/index.d.ts +40 -0
- package/dist/checkpointer/index.d.ts.map +1 -0
- package/dist/checkpointer/index.js +40 -0
- package/dist/checkpointer/index.js.map +1 -0
- package/dist/checkpointer/kv-saver.d.ts +142 -0
- package/dist/checkpointer/kv-saver.d.ts.map +1 -0
- package/dist/checkpointer/kv-saver.js +176 -0
- package/dist/checkpointer/kv-saver.js.map +1 -0
- package/dist/checkpointer/memory-saver.d.ts +158 -0
- package/dist/checkpointer/memory-saver.d.ts.map +1 -0
- package/dist/checkpointer/memory-saver.js +222 -0
- package/dist/checkpointer/memory-saver.js.map +1 -0
- package/dist/checkpointer/types.d.ts +353 -0
- package/dist/checkpointer/types.d.ts.map +1 -0
- package/dist/checkpointer/types.js +159 -0
- package/dist/checkpointer/types.js.map +1 -0
- package/dist/context-manager.d.ts +627 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +1039 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/context.d.ts +57 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +76 -0
- package/dist/context.js.map +1 -0
- package/dist/errors/index.d.ts +611 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1023 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/generation-helpers.d.ts +126 -0
- package/dist/generation-helpers.d.ts.map +1 -0
- package/dist/generation-helpers.js +181 -0
- package/dist/generation-helpers.js.map +1 -0
- package/dist/hooks/audit.d.ts +210 -0
- package/dist/hooks/audit.d.ts.map +1 -0
- package/dist/hooks/audit.js +305 -0
- package/dist/hooks/audit.js.map +1 -0
- package/dist/hooks/cache.d.ts +180 -0
- package/dist/hooks/cache.d.ts.map +1 -0
- package/dist/hooks/cache.js +273 -0
- package/dist/hooks/cache.js.map +1 -0
- package/dist/hooks/guardrails.d.ts +145 -0
- package/dist/hooks/guardrails.d.ts.map +1 -0
- package/dist/hooks/guardrails.js +326 -0
- package/dist/hooks/guardrails.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +32 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/logging.d.ts +193 -0
- package/dist/hooks/logging.d.ts.map +1 -0
- package/dist/hooks/logging.js +345 -0
- package/dist/hooks/logging.js.map +1 -0
- package/dist/hooks/parallel-guardrails.d.ts +268 -0
- package/dist/hooks/parallel-guardrails.d.ts.map +1 -0
- package/dist/hooks/parallel-guardrails.js +416 -0
- package/dist/hooks/parallel-guardrails.js.map +1 -0
- package/dist/hooks/rate-limit.d.ts +305 -0
- package/dist/hooks/rate-limit.d.ts.map +1 -0
- package/dist/hooks/rate-limit.js +372 -0
- package/dist/hooks/rate-limit.js.map +1 -0
- package/dist/hooks/retry.d.ts +144 -0
- package/dist/hooks/retry.d.ts.map +1 -0
- package/dist/hooks/retry.js +210 -0
- package/dist/hooks/retry.js.map +1 -0
- package/dist/hooks/secrets.d.ts +174 -0
- package/dist/hooks/secrets.d.ts.map +1 -0
- package/dist/hooks/secrets.js +306 -0
- package/dist/hooks/secrets.js.map +1 -0
- package/dist/hooks.d.ts +229 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +352 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +97 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/env.d.ts +25 -0
- package/dist/mcp/env.d.ts.map +1 -0
- package/dist/mcp/env.js +18 -0
- package/dist/mcp/env.js.map +1 -0
- package/dist/mcp/index.d.ts +16 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +17 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +184 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +446 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/types.d.ts +58 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +7 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/validation.d.ts +119 -0
- package/dist/mcp/validation.d.ts.map +1 -0
- package/dist/mcp/validation.js +407 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/mcp/virtual-server.d.ts +78 -0
- package/dist/mcp/virtual-server.d.ts.map +1 -0
- package/dist/mcp/virtual-server.js +137 -0
- package/dist/mcp/virtual-server.js.map +1 -0
- package/dist/memory/filesystem-store.d.ts +217 -0
- package/dist/memory/filesystem-store.d.ts.map +1 -0
- package/dist/memory/filesystem-store.js +343 -0
- package/dist/memory/filesystem-store.js.map +1 -0
- package/dist/memory/index.d.ts +46 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +46 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/loader.d.ts +396 -0
- package/dist/memory/loader.d.ts.map +1 -0
- package/dist/memory/loader.js +419 -0
- package/dist/memory/loader.js.map +1 -0
- package/dist/memory/permissions.d.ts +282 -0
- package/dist/memory/permissions.d.ts.map +1 -0
- package/dist/memory/permissions.js +297 -0
- package/dist/memory/permissions.js.map +1 -0
- package/dist/memory/rules.d.ts +249 -0
- package/dist/memory/rules.d.ts.map +1 -0
- package/dist/memory/rules.js +362 -0
- package/dist/memory/rules.js.map +1 -0
- package/dist/memory/store.d.ts +286 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +263 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/middleware/apply.d.ts +73 -0
- package/dist/middleware/apply.d.ts.map +1 -0
- package/dist/middleware/apply.js +219 -0
- package/dist/middleware/apply.js.map +1 -0
- package/dist/middleware/context.d.ts +33 -0
- package/dist/middleware/context.d.ts.map +1 -0
- package/dist/middleware/context.js +176 -0
- package/dist/middleware/context.js.map +1 -0
- package/dist/middleware/index.d.ts +31 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +32 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/logging.d.ts +137 -0
- package/dist/middleware/logging.d.ts.map +1 -0
- package/dist/middleware/logging.js +374 -0
- package/dist/middleware/logging.js.map +1 -0
- package/dist/middleware/types.d.ts +183 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +11 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/observability/events.d.ts +183 -0
- package/dist/observability/events.d.ts.map +1 -0
- package/dist/observability/events.js +305 -0
- package/dist/observability/events.js.map +1 -0
- package/dist/observability/index.d.ts +55 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +87 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +318 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +436 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +341 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +490 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/preset.d.ts +161 -0
- package/dist/observability/preset.d.ts.map +1 -0
- package/dist/observability/preset.js +133 -0
- package/dist/observability/preset.js.map +1 -0
- package/dist/observability/streaming.d.ts +113 -0
- package/dist/observability/streaming.d.ts.map +1 -0
- package/dist/observability/streaming.js +114 -0
- package/dist/observability/streaming.js.map +1 -0
- package/dist/observability/tracing.d.ts +378 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +539 -0
- package/dist/observability/tracing.js.map +1 -0
- package/dist/plugins.d.ts +55 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +63 -0
- package/dist/plugins.js.map +1 -0
- package/dist/presets/index.d.ts +7 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +7 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/production.d.ts +262 -0
- package/dist/presets/production.d.ts.map +1 -0
- package/dist/presets/production.js +295 -0
- package/dist/presets/production.js.map +1 -0
- package/dist/security/index.d.ts +179 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +323 -0
- package/dist/security/index.js.map +1 -0
- package/dist/subagents/advanced.d.ts +413 -0
- package/dist/subagents/advanced.d.ts.map +1 -0
- package/dist/subagents/advanced.js +396 -0
- package/dist/subagents/advanced.js.map +1 -0
- package/dist/subagents/index.d.ts +14 -0
- package/dist/subagents/index.d.ts.map +1 -0
- package/dist/subagents/index.js +15 -0
- package/dist/subagents/index.js.map +1 -0
- package/dist/subagents.d.ts +73 -0
- package/dist/subagents.d.ts.map +1 -0
- package/dist/subagents.js +213 -0
- package/dist/subagents.js.map +1 -0
- package/dist/task-store/file-store.d.ts +76 -0
- package/dist/task-store/file-store.d.ts.map +1 -0
- package/dist/task-store/file-store.js +190 -0
- package/dist/task-store/file-store.js.map +1 -0
- package/dist/task-store/index.d.ts +11 -0
- package/dist/task-store/index.d.ts.map +1 -0
- package/dist/task-store/index.js +10 -0
- package/dist/task-store/index.js.map +1 -0
- package/dist/task-store/kv-store.d.ts +140 -0
- package/dist/task-store/kv-store.d.ts.map +1 -0
- package/dist/task-store/kv-store.js +169 -0
- package/dist/task-store/kv-store.js.map +1 -0
- package/dist/task-store/memory-store.d.ts +66 -0
- package/dist/task-store/memory-store.d.ts.map +1 -0
- package/dist/task-store/memory-store.js +125 -0
- package/dist/task-store/memory-store.js.map +1 -0
- package/dist/task-store/types.d.ts +235 -0
- package/dist/task-store/types.d.ts.map +1 -0
- package/dist/task-store/types.js +110 -0
- package/dist/task-store/types.js.map +1 -0
- package/dist/testing/assertions.d.ts +401 -0
- package/dist/testing/assertions.d.ts.map +1 -0
- package/dist/testing/assertions.js +630 -0
- package/dist/testing/assertions.js.map +1 -0
- package/dist/testing/index.d.ts +343 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +360 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-agent.d.ts +214 -0
- package/dist/testing/mock-agent.d.ts.map +1 -0
- package/dist/testing/mock-agent.js +448 -0
- package/dist/testing/mock-agent.js.map +1 -0
- package/dist/testing/recorder.d.ts +288 -0
- package/dist/testing/recorder.d.ts.map +1 -0
- package/dist/testing/recorder.js +499 -0
- package/dist/testing/recorder.js.map +1 -0
- package/dist/tools/execute.d.ts +104 -0
- package/dist/tools/execute.d.ts.map +1 -0
- package/dist/tools/execute.js +191 -0
- package/dist/tools/execute.js.map +1 -0
- package/dist/tools/factory.d.ts +260 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +241 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/filesystem.d.ts +215 -0
- package/dist/tools/filesystem.d.ts.map +1 -0
- package/dist/tools/filesystem.js +311 -0
- package/dist/tools/filesystem.js.map +1 -0
- package/dist/tools/index.d.ts +33 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +33 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/search.d.ts +59 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +94 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/skills.d.ts +354 -0
- package/dist/tools/skills.d.ts.map +1 -0
- package/dist/tools/skills.js +413 -0
- package/dist/tools/skills.js.map +1 -0
- package/dist/tools/task.d.ts +272 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +521 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/todos.d.ts +131 -0
- package/dist/tools/todos.d.ts.map +1 -0
- package/dist/tools/todos.js +120 -0
- package/dist/tools/todos.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +424 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +607 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/user-interaction.d.ts +116 -0
- package/dist/tools/user-interaction.d.ts.map +1 -0
- package/dist/tools/user-interaction.js +147 -0
- package/dist/tools/user-interaction.js.map +1 -0
- package/dist/tools/utils.d.ts +124 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +189 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools.d.ts +74 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +73 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +2421 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +55 -0
- package/dist/types.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced subagent system with context isolation and parallel execution.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import type { LanguageModel, ToolSet } from "ai";
|
|
7
|
+
import type { AgentState, TodoItem } from "../backends/state.js";
|
|
8
|
+
import type { Agent, GenerateResult } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Enhanced subagent definition with additional capabilities.
|
|
11
|
+
*
|
|
12
|
+
* Extends the basic SubagentDefinition with:
|
|
13
|
+
* - Structured output schemas
|
|
14
|
+
* - Tool specification (subset or custom)
|
|
15
|
+
* - Interrupt conditions for human-in-the-loop
|
|
16
|
+
* - Model override
|
|
17
|
+
* - Maximum steps
|
|
18
|
+
*
|
|
19
|
+
* @category Subagents
|
|
20
|
+
*/
|
|
21
|
+
export interface EnhancedSubagentDefinition {
|
|
22
|
+
/** Unique type identifier for this subagent */
|
|
23
|
+
type: string;
|
|
24
|
+
/** Description of what this subagent specializes in */
|
|
25
|
+
description: string;
|
|
26
|
+
/** System prompt for this subagent */
|
|
27
|
+
systemPrompt: string;
|
|
28
|
+
/**
|
|
29
|
+
* Tools available to this subagent.
|
|
30
|
+
* - If ToolSet: use these specific tools
|
|
31
|
+
* - If string[]: subset of parent tools by name
|
|
32
|
+
* - If undefined: inherit all parent tools
|
|
33
|
+
*/
|
|
34
|
+
tools?: ToolSet | string[];
|
|
35
|
+
/**
|
|
36
|
+
* Model to use for this subagent.
|
|
37
|
+
* If not specified, inherits from parent.
|
|
38
|
+
*/
|
|
39
|
+
model?: LanguageModel;
|
|
40
|
+
/** Maximum steps/turns for this subagent */
|
|
41
|
+
maxSteps?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Options for creating an isolated subagent context.
|
|
45
|
+
*
|
|
46
|
+
* @category Subagents
|
|
47
|
+
*/
|
|
48
|
+
export interface SubagentContextOptions {
|
|
49
|
+
/** Parent agent state to derive from */
|
|
50
|
+
parentState: AgentState;
|
|
51
|
+
/**
|
|
52
|
+
* Whether to share files with parent.
|
|
53
|
+
* @defaultValue true
|
|
54
|
+
*/
|
|
55
|
+
shareFiles?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether to isolate todos (give subagent empty todos).
|
|
58
|
+
* @defaultValue true
|
|
59
|
+
*/
|
|
60
|
+
isolateTodos?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Initial todos for the subagent (only used if isolateTodos is true).
|
|
63
|
+
*/
|
|
64
|
+
initialTodos?: TodoItem[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Isolated context for a subagent execution.
|
|
68
|
+
*
|
|
69
|
+
* @category Subagents
|
|
70
|
+
*/
|
|
71
|
+
export interface SubagentContext {
|
|
72
|
+
/** The subagent's isolated state */
|
|
73
|
+
state: AgentState;
|
|
74
|
+
/** Reference to the parent state (for merging back) */
|
|
75
|
+
parentState: AgentState;
|
|
76
|
+
/** Whether files are shared with parent */
|
|
77
|
+
filesShared: boolean;
|
|
78
|
+
/** Whether todos are isolated */
|
|
79
|
+
todosIsolated: boolean;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Options for executing a subagent.
|
|
83
|
+
*
|
|
84
|
+
* @category Subagents
|
|
85
|
+
*/
|
|
86
|
+
export interface SubagentExecutionOptions {
|
|
87
|
+
/** The subagent definition to execute */
|
|
88
|
+
definition: EnhancedSubagentDefinition;
|
|
89
|
+
/** The task/prompt for the subagent */
|
|
90
|
+
prompt: string;
|
|
91
|
+
/** Parent agent for inheriting configuration */
|
|
92
|
+
parentAgent: Agent;
|
|
93
|
+
/**
|
|
94
|
+
* Isolated context for the subagent.
|
|
95
|
+
* If not provided, context is created automatically.
|
|
96
|
+
*/
|
|
97
|
+
context?: SubagentContext;
|
|
98
|
+
/**
|
|
99
|
+
* Maximum tokens for generation.
|
|
100
|
+
* If not specified, uses definition.maxSteps * 4096.
|
|
101
|
+
*/
|
|
102
|
+
maxTokens?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Abort signal for cancellation.
|
|
105
|
+
*/
|
|
106
|
+
signal?: AbortSignal;
|
|
107
|
+
/**
|
|
108
|
+
* Callback when the subagent starts.
|
|
109
|
+
*/
|
|
110
|
+
onStart?: (event: SubagentStartEvent) => void;
|
|
111
|
+
/**
|
|
112
|
+
* Callback for each step the subagent takes.
|
|
113
|
+
*/
|
|
114
|
+
onStep?: (event: SubagentStepEvent) => void;
|
|
115
|
+
/**
|
|
116
|
+
* Callback when the subagent finishes.
|
|
117
|
+
*/
|
|
118
|
+
onFinish?: (event: SubagentFinishEvent) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Callback when an error occurs.
|
|
121
|
+
*/
|
|
122
|
+
onError?: (event: SubagentErrorEvent) => void;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Result from executing a subagent.
|
|
126
|
+
*
|
|
127
|
+
* @category Subagents
|
|
128
|
+
*/
|
|
129
|
+
export interface SubagentExecutionResult {
|
|
130
|
+
/** Whether execution succeeded */
|
|
131
|
+
success: boolean;
|
|
132
|
+
/** The generated text response */
|
|
133
|
+
text: string;
|
|
134
|
+
/** Structured output if schema was provided */
|
|
135
|
+
output?: unknown;
|
|
136
|
+
/** Number of steps taken */
|
|
137
|
+
steps: number;
|
|
138
|
+
/** Why generation finished */
|
|
139
|
+
finishReason: string;
|
|
140
|
+
/** Execution duration in milliseconds */
|
|
141
|
+
duration: number;
|
|
142
|
+
/** Error message if failed */
|
|
143
|
+
error?: string;
|
|
144
|
+
/** The subagent's final context (for merging back) */
|
|
145
|
+
context: SubagentContext;
|
|
146
|
+
/** Full generation result */
|
|
147
|
+
result?: GenerateResult;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Result from parallel subagent execution.
|
|
151
|
+
*
|
|
152
|
+
* @category Subagents
|
|
153
|
+
*/
|
|
154
|
+
export interface ParallelExecutionResult {
|
|
155
|
+
/** Individual results for each subagent */
|
|
156
|
+
results: SubagentExecutionResult[];
|
|
157
|
+
/** Number of successful executions */
|
|
158
|
+
successCount: number;
|
|
159
|
+
/** Number of failed executions */
|
|
160
|
+
failureCount: number;
|
|
161
|
+
/** Total duration (max of individual durations) */
|
|
162
|
+
totalDuration: number;
|
|
163
|
+
/** Whether all executions succeeded */
|
|
164
|
+
allSucceeded: boolean;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Base event for subagent lifecycle.
|
|
168
|
+
*
|
|
169
|
+
* @category Subagents
|
|
170
|
+
*/
|
|
171
|
+
export interface SubagentEvent {
|
|
172
|
+
/** Unique identifier for this execution */
|
|
173
|
+
executionId: string;
|
|
174
|
+
/** The subagent type */
|
|
175
|
+
subagentType: string;
|
|
176
|
+
/** Timestamp of the event */
|
|
177
|
+
timestamp: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Event emitted when a subagent starts.
|
|
181
|
+
*
|
|
182
|
+
* @category Subagents
|
|
183
|
+
*/
|
|
184
|
+
export interface SubagentStartEvent extends SubagentEvent {
|
|
185
|
+
type: "subagent-start";
|
|
186
|
+
/** The task prompt */
|
|
187
|
+
prompt: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Event emitted for each subagent step.
|
|
191
|
+
*
|
|
192
|
+
* @category Subagents
|
|
193
|
+
*/
|
|
194
|
+
export interface SubagentStepEvent extends SubagentEvent {
|
|
195
|
+
type: "subagent-step";
|
|
196
|
+
/** Step number (1-indexed) */
|
|
197
|
+
stepNumber: number;
|
|
198
|
+
/** Tool calls made in this step */
|
|
199
|
+
toolCalls: Array<{
|
|
200
|
+
toolName: string;
|
|
201
|
+
args: unknown;
|
|
202
|
+
result: unknown;
|
|
203
|
+
}>;
|
|
204
|
+
/** Text generated in this step */
|
|
205
|
+
text: string;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Event emitted when a subagent finishes.
|
|
209
|
+
*
|
|
210
|
+
* @category Subagents
|
|
211
|
+
*/
|
|
212
|
+
export interface SubagentFinishEvent extends SubagentEvent {
|
|
213
|
+
type: "subagent-finish";
|
|
214
|
+
/** Whether execution succeeded */
|
|
215
|
+
success: boolean;
|
|
216
|
+
/** Summary of the result */
|
|
217
|
+
summary: string;
|
|
218
|
+
/** Total steps taken */
|
|
219
|
+
steps: number;
|
|
220
|
+
/** Execution duration in milliseconds */
|
|
221
|
+
duration: number;
|
|
222
|
+
/** Finish reason */
|
|
223
|
+
finishReason: string;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Event emitted when an error occurs.
|
|
227
|
+
*
|
|
228
|
+
* @category Subagents
|
|
229
|
+
*/
|
|
230
|
+
export interface SubagentErrorEvent extends SubagentEvent {
|
|
231
|
+
type: "subagent-error";
|
|
232
|
+
/** The error that occurred */
|
|
233
|
+
error: Error;
|
|
234
|
+
/** Step number where error occurred (if applicable) */
|
|
235
|
+
stepNumber?: number;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Event emitter interface for subagent events.
|
|
239
|
+
*
|
|
240
|
+
* @category Subagents
|
|
241
|
+
*/
|
|
242
|
+
export interface SubagentEventEmitter {
|
|
243
|
+
/** Register a listener for start events */
|
|
244
|
+
onStart(handler: (event: SubagentStartEvent) => void): void;
|
|
245
|
+
/** Register a listener for step events */
|
|
246
|
+
onStep(handler: (event: SubagentStepEvent) => void): void;
|
|
247
|
+
/** Register a listener for finish events */
|
|
248
|
+
onFinish(handler: (event: SubagentFinishEvent) => void): void;
|
|
249
|
+
/** Register a listener for error events */
|
|
250
|
+
onError(handler: (event: SubagentErrorEvent) => void): void;
|
|
251
|
+
/** Remove all listeners */
|
|
252
|
+
removeAllListeners(): void;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Creates an isolated context for subagent execution.
|
|
256
|
+
*
|
|
257
|
+
* By default:
|
|
258
|
+
* - Files are shared (subagent sees parent's files)
|
|
259
|
+
* - Todos are isolated (subagent gets empty todos)
|
|
260
|
+
*
|
|
261
|
+
* This follows the DeepAgentSDK pattern where files represent shared
|
|
262
|
+
* work product but todos represent the agent's internal planning.
|
|
263
|
+
*
|
|
264
|
+
* @param options - Context creation options
|
|
265
|
+
* @returns Isolated subagent context
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* ```typescript
|
|
269
|
+
* const context = createSubagentContext({
|
|
270
|
+
* parentState: parentAgent.state,
|
|
271
|
+
* shareFiles: true,
|
|
272
|
+
* isolateTodos: true,
|
|
273
|
+
* });
|
|
274
|
+
*
|
|
275
|
+
* // Subagent can see parent's files
|
|
276
|
+
* // Subagent has empty todos
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* @category Subagents
|
|
280
|
+
*/
|
|
281
|
+
export declare function createSubagentContext(options: SubagentContextOptions): SubagentContext;
|
|
282
|
+
/**
|
|
283
|
+
* Merges subagent context changes back to parent.
|
|
284
|
+
*
|
|
285
|
+
* Only file changes are merged back (if files were shared).
|
|
286
|
+
* Todo changes are NOT merged (todos are isolated by design).
|
|
287
|
+
*
|
|
288
|
+
* @param context - The subagent context to merge
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* // After subagent completes
|
|
293
|
+
* mergeSubagentContext(result.context);
|
|
294
|
+
*
|
|
295
|
+
* // Parent now has any files the subagent created/modified
|
|
296
|
+
* ```
|
|
297
|
+
*
|
|
298
|
+
* @category Subagents
|
|
299
|
+
*/
|
|
300
|
+
export declare function mergeSubagentContext(context: SubagentContext): void;
|
|
301
|
+
/**
|
|
302
|
+
* Executes a subagent with isolated context.
|
|
303
|
+
*
|
|
304
|
+
* Creates a subagent from the definition, executes the prompt,
|
|
305
|
+
* and returns the result with the final context for merging.
|
|
306
|
+
*
|
|
307
|
+
* @param options - Execution options
|
|
308
|
+
* @returns Execution result with context
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* ```typescript
|
|
312
|
+
* const result = await executeSubagent({
|
|
313
|
+
* definition: {
|
|
314
|
+
* type: "researcher",
|
|
315
|
+
* description: "Researches topics",
|
|
316
|
+
* systemPrompt: "You are a research assistant.",
|
|
317
|
+
* },
|
|
318
|
+
* prompt: "Research the history of TypeScript",
|
|
319
|
+
* parentAgent,
|
|
320
|
+
* hooks,
|
|
321
|
+
* onStep: (event) => console.log(`Step ${event.stepNumber}`),
|
|
322
|
+
* });
|
|
323
|
+
*
|
|
324
|
+
* if (result.success) {
|
|
325
|
+
* mergeSubagentContext(result.context);
|
|
326
|
+
* console.log(result.text);
|
|
327
|
+
* }
|
|
328
|
+
* ```
|
|
329
|
+
*
|
|
330
|
+
* @category Subagents
|
|
331
|
+
*/
|
|
332
|
+
export declare function executeSubagent(options: SubagentExecutionOptions): Promise<SubagentExecutionResult>;
|
|
333
|
+
/**
|
|
334
|
+
* Options for a single parallel execution task.
|
|
335
|
+
*
|
|
336
|
+
* @category Subagents
|
|
337
|
+
*/
|
|
338
|
+
export interface ParallelTask {
|
|
339
|
+
/** The subagent definition */
|
|
340
|
+
definition: EnhancedSubagentDefinition;
|
|
341
|
+
/** The prompt for this task */
|
|
342
|
+
prompt: string;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Executes multiple subagents in parallel.
|
|
346
|
+
*
|
|
347
|
+
* All subagents share the same parent context initially.
|
|
348
|
+
* After completion, file changes from all subagents are merged back.
|
|
349
|
+
*
|
|
350
|
+
* Note: If multiple subagents modify the same file, the last one wins.
|
|
351
|
+
* For better conflict handling, consider using different file paths.
|
|
352
|
+
*
|
|
353
|
+
* @param tasks - Array of tasks to execute
|
|
354
|
+
* @param parentAgent - Parent agent for configuration
|
|
355
|
+
* @param onResult - Optional callback for each completed task
|
|
356
|
+
* @returns Combined results from all executions
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* ```typescript
|
|
360
|
+
* const results = await executeSubagentsParallel(
|
|
361
|
+
* [
|
|
362
|
+
* {
|
|
363
|
+
* definition: researcherDef,
|
|
364
|
+
* prompt: "Research TypeScript history",
|
|
365
|
+
* },
|
|
366
|
+
* {
|
|
367
|
+
* definition: coderDef,
|
|
368
|
+
* prompt: "Write a utility function",
|
|
369
|
+
* },
|
|
370
|
+
* ],
|
|
371
|
+
* parentAgent,
|
|
372
|
+
* (result, index) => console.log(`Task ${index} completed`),
|
|
373
|
+
* );
|
|
374
|
+
*
|
|
375
|
+
* console.log(`${results.successCount}/${results.results.length} succeeded`);
|
|
376
|
+
* ```
|
|
377
|
+
*
|
|
378
|
+
* @category Subagents
|
|
379
|
+
*/
|
|
380
|
+
export declare function executeSubagentsParallel(tasks: ParallelTask[], parentAgent: Agent, onResult?: (result: SubagentExecutionResult, index: number) => void): Promise<ParallelExecutionResult>;
|
|
381
|
+
/**
|
|
382
|
+
* Creates an event emitter for subagent lifecycle events.
|
|
383
|
+
*
|
|
384
|
+
* Provides a convenient way to handle all subagent events
|
|
385
|
+
* without passing individual callbacks.
|
|
386
|
+
*
|
|
387
|
+
* @returns Event emitter instance
|
|
388
|
+
*
|
|
389
|
+
* @example
|
|
390
|
+
* ```typescript
|
|
391
|
+
* const emitter = createSubagentEventEmitter();
|
|
392
|
+
*
|
|
393
|
+
* emitter.onStart((event) => {
|
|
394
|
+
* console.log(`Starting ${event.subagentType}: ${event.prompt}`);
|
|
395
|
+
* });
|
|
396
|
+
*
|
|
397
|
+
* emitter.onStep((event) => {
|
|
398
|
+
* console.log(`Step ${event.stepNumber}: ${event.toolCalls.length} tool calls`);
|
|
399
|
+
* });
|
|
400
|
+
*
|
|
401
|
+
* emitter.onFinish((event) => {
|
|
402
|
+
* console.log(`Finished in ${event.duration}ms: ${event.summary}`);
|
|
403
|
+
* });
|
|
404
|
+
*
|
|
405
|
+
* emitter.onError((event) => {
|
|
406
|
+
* console.error(`Error: ${event.error.message}`);
|
|
407
|
+
* });
|
|
408
|
+
* ```
|
|
409
|
+
*
|
|
410
|
+
* @category Subagents
|
|
411
|
+
*/
|
|
412
|
+
export declare function createSubagentEventEmitter(): SubagentEventEmitter;
|
|
413
|
+
//# sourceMappingURL=advanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/subagents/advanced.ts"],"names":[],"mappings":"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"}
|