@n8n/agents 0.26.3 → 0.27.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 (70) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/runtime/loop/agent-runtime.d.ts +24 -51
  3. package/dist/runtime/loop/agent-runtime.js +321 -318
  4. package/dist/runtime/loop/agent-runtime.js.map +1 -1
  5. package/dist/runtime/loop/checkpoint-data.d.ts +12 -0
  6. package/dist/runtime/loop/checkpoint-data.js +65 -0
  7. package/dist/runtime/loop/checkpoint-data.js.map +1 -0
  8. package/dist/runtime/loop/execution-counter.js +1 -5
  9. package/dist/runtime/loop/execution-counter.js.map +1 -1
  10. package/dist/runtime/loop/generate-sink.d.ts +2 -2
  11. package/dist/runtime/loop/generate-sink.js +3 -5
  12. package/dist/runtime/loop/generate-sink.js.map +1 -1
  13. package/dist/runtime/loop/run-output-sink.d.ts +3 -78
  14. package/dist/runtime/loop/run-output-sink.js +7 -0
  15. package/dist/runtime/loop/run-output-sink.js.map +1 -1
  16. package/dist/runtime/loop/runtime-context.d.ts +17 -1
  17. package/dist/runtime/loop/runtime-context.js +49 -20
  18. package/dist/runtime/loop/runtime-context.js.map +1 -1
  19. package/dist/runtime/loop/runtime-helpers.d.ts +1 -1
  20. package/dist/runtime/loop/stream-sink.d.ts +9 -2
  21. package/dist/runtime/loop/stream-sink.js +78 -56
  22. package/dist/runtime/loop/stream-sink.js.map +1 -1
  23. package/dist/runtime/memory/memory-orchestrator.d.ts +1 -1
  24. package/dist/runtime/memory/memory-orchestrator.js +8 -8
  25. package/dist/runtime/memory/memory-orchestrator.js.map +1 -1
  26. package/dist/runtime/memory/memory-store.d.ts +1 -1
  27. package/dist/runtime/memory/memory-store.js +7 -2
  28. package/dist/runtime/memory/memory-store.js.map +1 -1
  29. package/dist/runtime/memory/tool-result-memory.d.ts +7 -0
  30. package/dist/runtime/memory/tool-result-memory.js +65 -0
  31. package/dist/runtime/memory/tool-result-memory.js.map +1 -0
  32. package/dist/runtime/model/messages.js +20 -9
  33. package/dist/runtime/model/messages.js.map +1 -1
  34. package/dist/runtime/model/raw-error.d.ts +1 -1
  35. package/dist/runtime/state/run-state.d.ts +2 -2
  36. package/dist/runtime/state/run-state.js +4 -4
  37. package/dist/runtime/state/run-state.js.map +1 -1
  38. package/dist/runtime/telemetry/runtime-telemetry.d.ts +1 -1
  39. package/dist/runtime/tools/delegate-sub-agent-runner.d.ts +13 -0
  40. package/dist/runtime/tools/delegate-sub-agent-runner.js +361 -0
  41. package/dist/runtime/tools/delegate-sub-agent-runner.js.map +1 -0
  42. package/dist/runtime/tools/delegate-sub-agent-tool.d.ts +5 -241
  43. package/dist/runtime/tools/delegate-sub-agent-tool.js +94 -487
  44. package/dist/runtime/tools/delegate-sub-agent-tool.js.map +1 -1
  45. package/dist/runtime/tools/tool-adapter.js +28 -28
  46. package/dist/runtime/tools/tool-adapter.js.map +1 -1
  47. package/dist/runtime/tools/tool-call-executor.d.ts +19 -86
  48. package/dist/runtime/tools/tool-call-executor.js +236 -579
  49. package/dist/runtime/tools/tool-call-executor.js.map +1 -1
  50. package/dist/runtime/tools/tool-call-runner.d.ts +25 -0
  51. package/dist/runtime/tools/tool-call-runner.js +328 -0
  52. package/dist/runtime/tools/tool-call-runner.js.map +1 -0
  53. package/dist/runtime/tools/tool-result-guard.d.ts +2 -7
  54. package/dist/runtime/tools/tool-result-guard.js +13 -70
  55. package/dist/runtime/tools/tool-result-guard.js.map +1 -1
  56. package/dist/types/runtime/agent-loop.d.ts +73 -0
  57. package/dist/types/runtime/agent-loop.js +3 -0
  58. package/dist/types/runtime/agent-loop.js.map +1 -0
  59. package/dist/types/runtime/agent-runtime.d.ts +51 -0
  60. package/dist/types/runtime/agent-runtime.js +3 -0
  61. package/dist/types/runtime/agent-runtime.js.map +1 -0
  62. package/dist/types/runtime/delegation.d.ts +234 -0
  63. package/dist/types/runtime/delegation.js +82 -0
  64. package/dist/types/runtime/delegation.js.map +1 -0
  65. package/dist/types/runtime/tool-execution.d.ts +103 -0
  66. package/dist/types/runtime/tool-execution.js +3 -0
  67. package/dist/types/runtime/tool-execution.js.map +1 -0
  68. package/dist/types/sdk/agent-builder.d.ts +1 -1
  69. package/dist/types/sdk/memory.d.ts +2 -1
  70. package/package.json +6 -6
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleDelegateSubAgent = handleDelegateSubAgent;
4
+ exports.cancelDelegatedSubAgent = cancelDelegatedSubAgent;
5
+ exports.renderDelegateSubAgentPrompt = renderDelegateSubAgentPrompt;
6
+ exports.failedDelegatedChildSuspendOutput = failedDelegatedChildSuspendOutput;
7
+ exports.generateResultToDelegateSubAgentOutput = generateResultToDelegateSubAgentOutput;
8
+ const is_record_1 = require("@n8n/utils/is-record");
9
+ const sub_agent_task_path_1 = require("./sub-agent-task-path");
10
+ const abort_1 = require("../../sdk/abort");
11
+ const message_1 = require("../../sdk/message");
12
+ const delegation_1 = require("../../types/runtime/delegation");
13
+ const execution_counter_1 = require("../loop/execution-counter");
14
+ const SUB_AGENT_FORWARD_CHAR_BUDGET = 20_000;
15
+ const FORWARDED_CHILD_CHUNK_TYPES = new Set([
16
+ 'text-delta',
17
+ 'reasoning-start',
18
+ 'reasoning-delta',
19
+ 'reasoning-end',
20
+ 'tool-input-start',
21
+ 'tool-execution-start',
22
+ 'tool-execution-end',
23
+ ]);
24
+ function isForwardedChildChunk(chunk) {
25
+ return FORWARDED_CHILD_CHUNK_TYPES.has(chunk.type);
26
+ }
27
+ function createEmitChunkHelper(ctx, request) {
28
+ let forwardedChars = 0;
29
+ return (chunk) => {
30
+ if (request.parentToolCallId === undefined)
31
+ return;
32
+ if (!isForwardedChildChunk(chunk))
33
+ return;
34
+ let forwarded = chunk;
35
+ if (chunk.type === 'text-delta' || chunk.type === 'reasoning-delta') {
36
+ const remaining = SUB_AGENT_FORWARD_CHAR_BUDGET - forwardedChars;
37
+ if (remaining <= 0)
38
+ return;
39
+ const delta = chunk.delta.slice(0, remaining);
40
+ forwardedChars += delta.length;
41
+ forwarded = { ...chunk, delta };
42
+ }
43
+ ctx.emitEvent?.({
44
+ type: "subagent_chunk",
45
+ ...subAgentLifecycleBase(request),
46
+ chunk: forwarded,
47
+ });
48
+ };
49
+ }
50
+ async function handleDelegateSubAgent(input, ctx, options, childPathIndexes) {
51
+ let taskPath;
52
+ let request;
53
+ let startedAt;
54
+ try {
55
+ if (options.resumeSubAgent !== undefined &&
56
+ isInterruptibleToolContext(ctx) &&
57
+ ctx.continuation !== undefined) {
58
+ const restored = restoreDelegateRequest(input, ctx, ctx.continuation, options.policy, childPathIndexes);
59
+ const { checkpoint } = restored;
60
+ taskPath = checkpoint.taskPath;
61
+ request = restored.request;
62
+ startedAt = Date.now();
63
+ emitSubAgentStarted(ctx, request, startedAt);
64
+ return await resumeDelegatedChild(ctx, restored, startedAt, options, options.resumeSubAgent);
65
+ }
66
+ const childPathIndexKey = getChildPathIndexKey(ctx);
67
+ const childPathIndex = childPathIndexes.get(childPathIndexKey) ?? 0;
68
+ taskPath = (0, sub_agent_task_path_1.createChildSubAgentTaskPath)(input.taskName, childPathIndex);
69
+ childPathIndexes.set(childPathIndexKey, childPathIndex + 1);
70
+ request = createDelegateSubAgentRequest(input, ctx, taskPath, childPathIndex, options.policy);
71
+ startedAt = Date.now();
72
+ emitSubAgentStarted(ctx, request, startedAt);
73
+ return await runDelegatedChild(ctx, request, startedAt, options);
74
+ }
75
+ catch (error) {
76
+ return handleDelegateFailure(error, ctx, taskPath, request, startedAt);
77
+ }
78
+ }
79
+ async function resumeDelegatedChild(ctx, { request, checkpoint }, startedAt, options, resumeSubAgent) {
80
+ let output;
81
+ try {
82
+ output = await resumeSubAgent({
83
+ ...request,
84
+ ...getChildCheckpointTarget(checkpoint),
85
+ resumeData: ctx.resumeData,
86
+ }, createRunnerHelpers(ctx, request, options.name));
87
+ }
88
+ catch (error) {
89
+ if (ctx.abortSignal?.aborted || (0, abort_1.isAbortError)(error))
90
+ throw error;
91
+ if (options.shouldRetrySubAgentResumeError?.(error) === false)
92
+ throw error;
93
+ return await ctx.suspend(ctx.suspendPayload);
94
+ }
95
+ emitSubAgentCompleted(ctx, request, output, startedAt);
96
+ if (output.status === 'suspended') {
97
+ return await cascadeChildSuspension(ctx, request, output);
98
+ }
99
+ return output;
100
+ }
101
+ async function runDelegatedChild(ctx, request, startedAt, options) {
102
+ const toolName = options.name ?? delegation_1.DELEGATE_SUB_AGENT_TOOL_NAME;
103
+ if (!options.runSubAgent) {
104
+ throw new Error(`${toolName} was registered without a runSubAgent callback, and no host runner was provided. Register it on an Agent (for inline delegation) or pass runSubAgent.`);
105
+ }
106
+ const output = await options.runSubAgent(request, createRunnerHelpers(ctx, request, options.name));
107
+ emitSubAgentCompleted(ctx, request, output, startedAt);
108
+ if (output.status === 'suspended' &&
109
+ options.resumeSubAgent !== undefined &&
110
+ isInterruptibleToolContext(ctx)) {
111
+ return await cascadeChildSuspension(ctx, request, output);
112
+ }
113
+ return output;
114
+ }
115
+ function handleDelegateFailure(error, ctx, taskPath, request, startedAt) {
116
+ const aborted = ctx.abortSignal ? ctx.abortSignal.aborted : (0, abort_1.isAbortError)(error);
117
+ const output = {
118
+ status: aborted ? 'cancelled' : 'failed',
119
+ ...(taskPath !== undefined ? { taskPath } : {}),
120
+ answer: '',
121
+ ...(aborted ? {} : { error: stringifyUnknown(error) }),
122
+ };
123
+ if (request !== undefined && startedAt !== undefined) {
124
+ emitSubAgentCompleted(ctx, request, output, startedAt);
125
+ }
126
+ if (aborted)
127
+ throw error;
128
+ return output;
129
+ }
130
+ function createDelegateSubAgentRequest(input, ctx, taskPath, childCount, policy) {
131
+ return {
132
+ ...input,
133
+ taskPath,
134
+ childCount,
135
+ ...(ctx.runId !== undefined ? { parentRunId: ctx.runId } : {}),
136
+ ...(ctx.persistence?.threadId !== undefined
137
+ ? { parentThreadId: ctx.persistence.threadId }
138
+ : {}),
139
+ ...(ctx.persistence?.resourceId !== undefined
140
+ ? { parentResourceId: ctx.persistence.resourceId }
141
+ : {}),
142
+ ...(ctx.persistence?.hostMetadata !== undefined
143
+ ? { parentHostMetadata: ctx.persistence.hostMetadata }
144
+ : {}),
145
+ ...(ctx.abortSignal !== undefined ? { parentAbortSignal: ctx.abortSignal } : {}),
146
+ ...(ctx.toolCallId !== undefined ? { parentToolCallId: ctx.toolCallId } : {}),
147
+ ...(ctx.executionCounter !== undefined
148
+ ? { parentExecutionCounter: (0, execution_counter_1.withoutMessageCount)(ctx.executionCounter) }
149
+ : {}),
150
+ ...(ctx.parentTelemetry !== undefined ? { parentTelemetry: ctx.parentTelemetry } : {}),
151
+ ...(policy !== undefined ? { policy } : {}),
152
+ };
153
+ }
154
+ function isJsonSchemaObject(value) {
155
+ return (0, is_record_1.isRecord)(value);
156
+ }
157
+ async function cancelDelegatedSubAgent(input, ctx, options, childPathIndexes) {
158
+ if (options.cancelSubAgent === undefined || ctx.continuation === undefined)
159
+ return;
160
+ const { checkpoint, request } = restoreDelegateRequest(input, ctx, ctx.continuation, options.policy, childPathIndexes);
161
+ await options.cancelSubAgent({
162
+ ...request,
163
+ ...getChildCheckpointTarget(checkpoint),
164
+ reason: ctx.cancellation.message,
165
+ }, createRunnerHelpers(ctx, request, options.name));
166
+ }
167
+ function restoreDelegateRequest(input, ctx, continuation, policy, childPathIndexes) {
168
+ const checkpoint = (0, delegation_1.parseDelegateSubAgentContinuation)(continuation);
169
+ if (!checkpoint) {
170
+ throw new Error('Delegated child checkpoint metadata is missing or invalid');
171
+ }
172
+ if (checkpoint.subAgentId !== input.subAgentId) {
173
+ throw new Error('Delegated child checkpoint does not match the selected sub-agent');
174
+ }
175
+ const { taskPath } = checkpoint;
176
+ (0, sub_agent_task_path_1.assertSubAgentTaskPath)(taskPath);
177
+ const key = getChildPathIndexKey(ctx);
178
+ childPathIndexes.set(key, Math.max(childPathIndexes.get(key) ?? 0, checkpoint.childCount + 1));
179
+ const request = createDelegateSubAgentRequest(input, ctx, taskPath, checkpoint.childCount, policy);
180
+ return { checkpoint: { ...checkpoint, taskPath }, request };
181
+ }
182
+ function getChildCheckpointTarget(checkpoint) {
183
+ return {
184
+ childRunId: checkpoint.runId,
185
+ childToolCallId: checkpoint.toolCallId,
186
+ ...(checkpoint.threadId !== undefined ? { childThreadId: checkpoint.threadId } : {}),
187
+ ...(checkpoint.resumeContext !== undefined ? { resumeContext: checkpoint.resumeContext } : {}),
188
+ };
189
+ }
190
+ function createRunnerHelpers(ctx, request, configuredToolName) {
191
+ const toolName = configuredToolName ?? delegation_1.DELEGATE_SUB_AGENT_TOOL_NAME;
192
+ return {
193
+ runInlineSubAgent: () => {
194
+ throw new Error(`${toolName} host runner does not support inline delegation without helpers.runInlineSubAgent from an Agent build.`);
195
+ },
196
+ emitChunk: createEmitChunkHelper(ctx, request),
197
+ };
198
+ }
199
+ function isInterruptibleToolContext(ctx) {
200
+ return 'suspend' in ctx;
201
+ }
202
+ async function cascadeChildSuspension(ctx, request, output) {
203
+ const suspension = output.pendingSuspend?.[0];
204
+ if (!suspension || !isJsonSchemaObject(suspension.resumeSchema)) {
205
+ throw new Error(delegation_1.DELEGATED_CHILD_SUSPEND_UNSUPPORTED_MESSAGE);
206
+ }
207
+ return await ctx.suspend(suspension.suspendPayload, {
208
+ resumeSchema: suspension.resumeSchema,
209
+ continuation: {
210
+ runId: suspension.runId,
211
+ toolCallId: suspension.toolCallId,
212
+ taskPath: request.taskPath,
213
+ subAgentId: request.subAgentId,
214
+ childCount: request.childCount,
215
+ ...(output.threadId !== undefined ? { threadId: output.threadId } : {}),
216
+ ...(output.resumeContext !== undefined ? { resumeContext: output.resumeContext } : {}),
217
+ },
218
+ });
219
+ }
220
+ function emitSubAgentStarted(ctx, request, startedAt) {
221
+ ctx.emitEvent?.({
222
+ type: "subagent_started",
223
+ ...subAgentLifecycleBase(request),
224
+ startedAt,
225
+ });
226
+ }
227
+ function emitSubAgentCompleted(ctx, request, output, startedAt) {
228
+ const finishedAt = Date.now();
229
+ ctx.emitEvent?.({
230
+ type: "subagent_completed",
231
+ ...subAgentLifecycleBase(request),
232
+ status: output.status,
233
+ startedAt,
234
+ finishedAt,
235
+ durationMs: finishedAt - startedAt,
236
+ ...(output.runId !== undefined ? { runId: output.runId } : {}),
237
+ ...(output.threadId !== undefined ? { threadId: output.threadId } : {}),
238
+ ...(output.usage !== undefined ? { usage: output.usage } : {}),
239
+ ...(output.finishReason !== undefined ? { finishReason: output.finishReason } : {}),
240
+ ...(output.model !== undefined ? { model: output.model } : {}),
241
+ ...(output.error !== undefined ? { error: output.error } : {}),
242
+ });
243
+ }
244
+ function subAgentLifecycleBase(request) {
245
+ return {
246
+ taskName: request.taskName,
247
+ taskPath: request.taskPath,
248
+ ...(request.parentRunId !== undefined ? { parentRunId: request.parentRunId } : {}),
249
+ ...(request.parentToolCallId !== undefined
250
+ ? { parentToolCallId: request.parentToolCallId }
251
+ : {}),
252
+ ...(request.subAgentId !== undefined ? { subAgentId: request.subAgentId } : {}),
253
+ };
254
+ }
255
+ function getChildPathIndexKey(ctx) {
256
+ return ctx.runId ?? ctx.persistence?.threadId ?? ctx.persistence?.resourceId ?? 'adhoc';
257
+ }
258
+ function stringifyUnknown(value) {
259
+ if (value instanceof Error)
260
+ return value.message;
261
+ if (typeof value === 'string')
262
+ return value;
263
+ if (typeof value === 'number' || typeof value === 'boolean' || value === null) {
264
+ return String(value);
265
+ }
266
+ try {
267
+ return JSON.stringify(value) ?? 'Unknown error';
268
+ }
269
+ catch {
270
+ return 'Unknown error';
271
+ }
272
+ }
273
+ function renderDelegateSubAgentPrompt(request) {
274
+ const sections = [
275
+ 'You are a focused subagent working on a specific delegated task.',
276
+ `YOUR TASK:\n${request.goal}`,
277
+ ];
278
+ if (request.context) {
279
+ sections.push(`CONTEXT:\n${request.context}`);
280
+ }
281
+ if (request.expectedOutput) {
282
+ sections.push(`EXPECTED OUTPUT:\n${request.expectedOutput}`);
283
+ }
284
+ sections.push([
285
+ 'Complete this task using the tools available to you. When finished, provide a clear, concise summary of:',
286
+ '- What you did',
287
+ '- What you found or accomplished',
288
+ '- Important outputs, decisions, or evidence',
289
+ '- Any issues, assumptions, or limitations',
290
+ '',
291
+ 'If the information above is insufficient, do your best with explicitly stated assumptions and note what was missing, rather than stopping to ask.',
292
+ '',
293
+ 'Be thorough but concise -- your response is returned to the parent agent as a summary.',
294
+ ].join('\n'));
295
+ return sections.join('\n\n');
296
+ }
297
+ function resolveDelegateSubAgentStatus(result) {
298
+ if (result.finishReason === 'error' || result.error !== undefined) {
299
+ return result.getState().status === 'cancelled' ? 'cancelled' : 'failed';
300
+ }
301
+ if (result.pendingSuspend !== undefined && result.pendingSuspend.length > 0) {
302
+ return 'suspended';
303
+ }
304
+ return 'completed';
305
+ }
306
+ function failedDelegatedChildSuspendOutput(taskPath, model) {
307
+ return {
308
+ status: 'failed',
309
+ taskPath,
310
+ answer: '',
311
+ error: delegation_1.DELEGATED_CHILD_SUSPEND_UNSUPPORTED_MESSAGE,
312
+ ...(model !== undefined ? { model } : {}),
313
+ };
314
+ }
315
+ function generateResultToDelegateSubAgentOutput(taskPath, result, threadId) {
316
+ const status = resolveDelegateSubAgentStatus(result);
317
+ return {
318
+ status,
319
+ taskPath,
320
+ runId: result.runId,
321
+ ...(threadId !== undefined ? { threadId } : {}),
322
+ ...(result.model !== undefined ? { model: result.model } : {}),
323
+ answer: lastText(result.messages),
324
+ ...(result.structuredOutput !== undefined ? { structuredOutput: result.structuredOutput } : {}),
325
+ ...(result.usage !== undefined
326
+ ? {
327
+ usage: toDelegateUsage(result.usage),
328
+ }
329
+ : {}),
330
+ ...(result.finishReason !== undefined ? { finishReason: result.finishReason } : {}),
331
+ ...(result.error !== undefined ? { error: stringifyUnknown(result.error) } : {}),
332
+ ...(status === 'suspended' && result.pendingSuspend !== undefined
333
+ ? { pendingSuspend: result.pendingSuspend }
334
+ : {}),
335
+ };
336
+ }
337
+ function toDelegateUsage(usage) {
338
+ return {
339
+ promptTokens: usage.promptTokens,
340
+ completionTokens: usage.completionTokens,
341
+ totalTokens: usage.totalTokens,
342
+ ...(usage.cost !== undefined ? { cost: usage.cost } : {}),
343
+ };
344
+ }
345
+ function lastText(messages) {
346
+ const llmMessages = (0, message_1.filterLlmMessages)(messages);
347
+ for (let i = llmMessages.length - 1; i >= 0; i--) {
348
+ const message = llmMessages[i];
349
+ if (!message)
350
+ continue;
351
+ const text = message.content
352
+ .filter((content) => content.type === 'text')
353
+ .map((content) => content.text)
354
+ .join('\n')
355
+ .trim();
356
+ if (text)
357
+ return text;
358
+ }
359
+ return '';
360
+ }
361
+ //# sourceMappingURL=delegate-sub-agent-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-sub-agent-runner.js","sourceRoot":"","sources":["../../../src/runtime/tools/delegate-sub-agent-runner.ts"],"names":[],"mappings":"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"}
@@ -1,244 +1,8 @@
1
- import { z } from 'zod';
2
- import { type SubAgentTaskPath, type SubAgentTaskPathPolicy } from './sub-agent-task-path';
3
- import type { AgentExecutionCounter, FinishReason, GenerateResult, ModelConfig, StreamChunk, TokenUsage } from '../../types/sdk/agent';
4
- import type { BuiltProviderTool, BuiltTool } from '../../types/sdk/tool';
5
- import type { BuiltTelemetry } from '../../types/telemetry';
6
- import type { JSONObject, JSONValue } from '../../types/utils/json';
7
- export declare const DELEGATE_SUB_AGENT_TOOL_NAME = "delegate_subagent";
8
- export declare const INLINE_SUB_AGENT_ID = "inline";
9
- export declare const DELEGATED_CHILD_SUSPEND_UNSUPPORTED_MESSAGE = "agents.chat.delegate.childSuspendUnsupported";
10
- export declare const INLINE_DELEGATE_SUB_AGENT_TOOL_METADATA_KEY = "inlineDelegateSubAgent";
11
- export declare const SUB_AGENT_TASK_DIFFICULTIES: readonly ['low', 'medium', 'high'];
12
- declare const SubAgentTaskDifficultySchema: z.ZodEnum<["low", "medium", "high"]>;
13
- export type SubAgentTaskDifficulty = z.infer<typeof SubAgentTaskDifficultySchema>;
14
- declare const delegateSubAgentInputSchema: z.ZodObject<{
15
- subAgentId: z.ZodString;
16
- taskName: z.ZodString;
17
- goal: z.ZodString;
18
- context: z.ZodOptional<z.ZodString>;
19
- expectedOutput: z.ZodOptional<z.ZodString>;
20
- difficulty: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
21
- }, "strip", z.ZodTypeAny, {
22
- subAgentId: string;
23
- taskName: string;
24
- goal: string;
25
- context?: string | undefined;
26
- expectedOutput?: string | undefined;
27
- difficulty?: "high" | "low" | "medium" | undefined;
28
- }, {
29
- subAgentId: string;
30
- taskName: string;
31
- goal: string;
32
- context?: string | undefined;
33
- expectedOutput?: string | undefined;
34
- difficulty?: "high" | "low" | "medium" | undefined;
35
- }>;
36
- declare const delegateSubAgentOutputSchema: z.ZodObject<{
37
- status: z.ZodEnum<["completed", "failed", "suspended", "cancelled"]>;
38
- taskPath: z.ZodOptional<z.ZodString>;
39
- runId: z.ZodOptional<z.ZodString>;
40
- threadId: z.ZodOptional<z.ZodString>;
41
- model: z.ZodOptional<z.ZodString>;
42
- answer: z.ZodString;
43
- structuredOutput: z.ZodOptional<z.ZodUnknown>;
44
- usage: z.ZodOptional<z.ZodObject<{
45
- promptTokens: z.ZodOptional<z.ZodNumber>;
46
- completionTokens: z.ZodOptional<z.ZodNumber>;
47
- totalTokens: z.ZodOptional<z.ZodNumber>;
48
- cost: z.ZodOptional<z.ZodNumber>;
49
- }, "strip", z.ZodTypeAny, {
50
- promptTokens?: number | undefined;
51
- completionTokens?: number | undefined;
52
- totalTokens?: number | undefined;
53
- cost?: number | undefined;
54
- }, {
55
- promptTokens?: number | undefined;
56
- completionTokens?: number | undefined;
57
- totalTokens?: number | undefined;
58
- cost?: number | undefined;
59
- }>>;
60
- finishReason: z.ZodOptional<z.ZodString>;
61
- error: z.ZodOptional<z.ZodString>;
62
- resumeContext: z.ZodOptional<z.ZodType<JSONValue, z.ZodTypeDef, JSONValue>>;
63
- pendingSuspend: z.ZodOptional<z.ZodArray<z.ZodObject<{
64
- runId: z.ZodString;
65
- toolCallId: z.ZodString;
66
- toolName: z.ZodString;
67
- input: z.ZodUnknown;
68
- suspendPayload: z.ZodUnknown;
69
- resumeSchema: z.ZodOptional<z.ZodUnknown>;
70
- }, "strip", z.ZodTypeAny, {
71
- runId: string;
72
- toolCallId: string;
73
- toolName: string;
74
- input?: unknown;
75
- suspendPayload?: unknown;
76
- resumeSchema?: unknown;
77
- }, {
78
- runId: string;
79
- toolCallId: string;
80
- toolName: string;
81
- input?: unknown;
82
- suspendPayload?: unknown;
83
- resumeSchema?: unknown;
84
- }>, "many">>;
85
- }, "strip", z.ZodTypeAny, {
86
- status: "cancelled" | "completed" | "failed" | "suspended";
87
- taskPath?: string | undefined;
88
- runId?: string | undefined;
89
- threadId?: string | undefined;
90
- model?: string | undefined;
91
- answer: string;
92
- structuredOutput?: unknown;
93
- usage?: {
94
- promptTokens?: number | undefined;
95
- completionTokens?: number | undefined;
96
- totalTokens?: number | undefined;
97
- cost?: number | undefined;
98
- } | undefined;
99
- finishReason?: string | undefined;
100
- error?: string | undefined;
101
- resumeContext?: JSONValue | undefined;
102
- pendingSuspend?: {
103
- runId: string;
104
- toolCallId: string;
105
- toolName: string;
106
- input?: unknown;
107
- suspendPayload?: unknown;
108
- resumeSchema?: unknown;
109
- }[] | undefined;
110
- }, {
111
- status: "cancelled" | "completed" | "failed" | "suspended";
112
- taskPath?: string | undefined;
113
- runId?: string | undefined;
114
- threadId?: string | undefined;
115
- model?: string | undefined;
116
- answer: string;
117
- structuredOutput?: unknown;
118
- usage?: {
119
- promptTokens?: number | undefined;
120
- completionTokens?: number | undefined;
121
- totalTokens?: number | undefined;
122
- cost?: number | undefined;
123
- } | undefined;
124
- finishReason?: string | undefined;
125
- error?: string | undefined;
126
- resumeContext?: JSONValue | undefined;
127
- pendingSuspend?: {
128
- runId: string;
129
- toolCallId: string;
130
- toolName: string;
131
- input?: unknown;
132
- suspendPayload?: unknown;
133
- resumeSchema?: unknown;
134
- }[] | undefined;
135
- }>;
136
- declare const delegateSubAgentContinuationSchema: z.ZodObject<{
137
- runId: z.ZodString;
138
- toolCallId: z.ZodString;
139
- taskPath: z.ZodString;
140
- subAgentId: z.ZodString;
141
- childCount: z.ZodNumber;
142
- threadId: z.ZodOptional<z.ZodString>;
143
- resumeContext: z.ZodOptional<z.ZodType<JSONValue, z.ZodTypeDef, JSONValue>>;
144
- }, "strip", z.ZodTypeAny, {
145
- runId: string;
146
- toolCallId: string;
147
- taskPath: string;
148
- subAgentId: string;
149
- childCount: number;
150
- threadId?: string | undefined;
151
- resumeContext?: JSONValue | undefined;
152
- }, {
153
- runId: string;
154
- toolCallId: string;
155
- taskPath: string;
156
- subAgentId: string;
157
- childCount: number;
158
- threadId?: string | undefined;
159
- resumeContext?: JSONValue | undefined;
160
- }>;
161
- export type DelegateSubAgentContinuation = z.infer<typeof delegateSubAgentContinuationSchema>;
162
- export declare function parseDelegateSubAgentContinuation(value: unknown): DelegateSubAgentContinuation | undefined;
163
- export type DelegateSubAgentInput = z.infer<typeof delegateSubAgentInputSchema>;
164
- export type DelegateSubAgentPolicy = SubAgentTaskPathPolicy;
165
- export interface DelegateSubAgentRequest extends DelegateSubAgentInput {
166
- taskPath: SubAgentTaskPath;
167
- parentRunId?: string;
168
- parentThreadId?: string;
169
- parentResourceId?: string;
170
- parentHostMetadata?: JSONObject;
171
- parentToolCallId?: string;
172
- parentAbortSignal?: AbortSignal;
173
- parentExecutionCounter?: AgentExecutionCounter;
174
- parentTelemetry?: BuiltTelemetry;
175
- childCount: number;
176
- policy?: DelegateSubAgentPolicy;
177
- }
178
- export interface DelegateSubAgentToolOutput {
179
- status: 'completed' | 'failed' | 'suspended' | 'cancelled';
180
- taskPath?: SubAgentTaskPath;
181
- runId?: string;
182
- threadId?: string;
183
- model?: string;
184
- answer: string;
185
- structuredOutput?: unknown;
186
- usage?: Pick<TokenUsage, 'promptTokens' | 'completionTokens' | 'totalTokens' | 'cost'>;
187
- finishReason?: FinishReason;
188
- error?: string;
189
- resumeContext?: JSONValue;
190
- pendingSuspend?: GenerateResult['pendingSuspend'];
191
- }
192
- export interface DelegateSubAgentRunnerHelpers {
193
- runInlineSubAgent: (request: DelegateSubAgentRequest) => Promise<DelegateSubAgentToolOutput>;
194
- emitChunk: (chunk: StreamChunk) => void;
195
- }
196
- export type InlineSubAgentProviderToolsResolver = (modelConfig: ModelConfig) => BuiltProviderTool[] | Promise<BuiltProviderTool[]>;
197
- export type DelegateSubAgentRunner = (request: DelegateSubAgentRequest, helpers: DelegateSubAgentRunnerHelpers) => Promise<DelegateSubAgentToolOutput>;
198
- export interface DelegateSubAgentResumeRequest extends DelegateSubAgentRequest {
199
- childRunId: string;
200
- childToolCallId: string;
201
- childThreadId?: string;
202
- resumeContext?: JSONValue;
203
- resumeData: unknown;
204
- }
205
- export type DelegateSubAgentResumeRunner = (request: DelegateSubAgentResumeRequest, helpers: DelegateSubAgentRunnerHelpers) => Promise<DelegateSubAgentToolOutput>;
206
- export interface DelegateSubAgentCancelRequest extends DelegateSubAgentRequest {
207
- childRunId: string;
208
- childToolCallId: string;
209
- childThreadId?: string;
210
- resumeContext?: JSONValue;
211
- reason: string;
212
- }
213
- export type DelegateSubAgentCancelRunner = (request: DelegateSubAgentCancelRequest, helpers: DelegateSubAgentRunnerHelpers) => Promise<void>;
214
- export interface CreateDelegateSubAgentToolOptions {
215
- name?: string;
216
- description?: string | null;
217
- systemInstruction?: string | null;
218
- availableSubAgents?: Array<{
219
- id: string;
220
- name: string;
221
- useWhen?: string;
222
- }>;
223
- policy?: DelegateSubAgentPolicy;
224
- inlineSubAgentBlockedTools?: string[];
225
- inlineSubAgentModelsByDifficulty?: Partial<Record<SubAgentTaskDifficulty, ModelConfig>>;
226
- resolveInlineSubAgentProviderTools?: InlineSubAgentProviderToolsResolver;
227
- runSubAgent?: DelegateSubAgentRunner;
228
- resumeSubAgent?: DelegateSubAgentResumeRunner;
229
- shouldRetrySubAgentResumeError?: (error: unknown) => boolean;
230
- cancelSubAgent?: DelegateSubAgentCancelRunner;
231
- toModelOutput?: (output: z.infer<typeof delegateSubAgentOutputSchema>) => unknown;
232
- }
233
- export type DelegateSubAgentToolMetadata = CreateDelegateSubAgentToolOptions;
1
+ import { type CreateDelegateSubAgentToolOptions, type DelegateSubAgentToolMetadata } from '../../types/runtime/delegation';
2
+ import type { BuiltTool } from '../../types/sdk/tool';
3
+ export { failedDelegatedChildSuspendOutput, generateResultToDelegateSubAgentOutput, renderDelegateSubAgentPrompt, } from './delegate-sub-agent-runner';
4
+ export { DELEGATE_SUB_AGENT_TOOL_NAME, INLINE_SUB_AGENT_ID, DELEGATED_CHILD_SUSPEND_UNSUPPORTED_MESSAGE, INLINE_DELEGATE_SUB_AGENT_TOOL_METADATA_KEY, SUB_AGENT_TASK_DIFFICULTIES, parseDelegateSubAgentContinuation, } from '../../types/runtime/delegation';
5
+ export type { SubAgentTaskDifficulty, DelegateSubAgentContinuation, DelegateSubAgentInput, DelegateSubAgentPolicy, DelegateSubAgentRequest, DelegateSubAgentToolOutput, DelegateSubAgentRunnerHelpers, InlineSubAgentProviderToolsResolver, DelegateSubAgentRunner, DelegateSubAgentResumeRequest, DelegateSubAgentResumeRunner, DelegateSubAgentCancelRequest, DelegateSubAgentCancelRunner, CreateDelegateSubAgentToolOptions, DelegateSubAgentToolMetadata, } from '../../types/runtime/delegation';
234
6
  export declare function createDelegateSubAgentTool(options?: CreateDelegateSubAgentToolOptions): BuiltTool;
235
7
  export declare function getInlineDelegateSubAgentToolOptions(tool: Pick<BuiltTool, 'metadata'>): DelegateSubAgentToolMetadata | undefined;
236
8
  export declare function isDelegateSubAgentTool(tool: Pick<BuiltTool, 'name' | 'metadata'>): boolean;
237
- export declare function renderDelegateSubAgentPrompt(request: {
238
- goal: string;
239
- context?: string;
240
- expectedOutput?: string;
241
- }): string;
242
- export declare function failedDelegatedChildSuspendOutput(taskPath: SubAgentTaskPath, model?: string): DelegateSubAgentToolOutput;
243
- export declare function generateResultToDelegateSubAgentOutput(taskPath: SubAgentTaskPath, result: GenerateResult, threadId?: string): DelegateSubAgentToolOutput;
244
- export {};