@anvia/core 1.6.1 → 1.7.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/README.md +9 -0
- package/dist/agent/agent-tool.js +6 -6
- package/dist/agent/agent.js +21 -21
- package/dist/agent/index.d.ts +8 -8
- package/dist/agent/index.js +25 -25
- package/dist/agent/resolve-options.js +6 -6
- package/dist/agent/resolved-agent.js +22 -22
- package/dist/agent/team/agent-team.js +25 -25
- package/dist/agent/team/index.js +25 -25
- package/dist/agent/tool-catalog.js +6 -6
- package/dist/{agent-BUc18r6A.d.ts → agent-BOoZ3jbr.d.ts} +5 -5
- package/dist/{chunk-LGMH6PCB.js → chunk-3BYFZYEV.js} +8 -8
- package/dist/{chunk-HILMAFZK.js → chunk-3YN5B5UW.js} +3 -3
- package/dist/{chunk-LW6F3IGP.js → chunk-5CKB7RQY.js} +2 -2
- package/dist/chunk-5H5EHU5O.js +7 -0
- package/dist/chunk-5H5EHU5O.js.map +1 -0
- package/dist/{chunk-5CQRCTIN.js → chunk-5ZS3DPPC.js} +4 -4
- package/dist/{chunk-B57NNDEF.js → chunk-C36RVQHF.js} +27 -8
- package/dist/chunk-C36RVQHF.js.map +1 -0
- package/dist/{chunk-CJKGTEN4.js → chunk-E5MIZ6Z5.js} +2 -2
- package/dist/{chunk-MWG2PMTE.js → chunk-F5BPVVC2.js} +2 -2
- package/dist/{chunk-W2XPREWL.js → chunk-GI6APIEU.js} +2 -2
- package/dist/{chunk-AMPQJMDG.js → chunk-GXVJGJAN.js} +2 -2
- package/dist/{chunk-T3ZOZEAB.js → chunk-IZH2ZAE3.js} +2 -2
- package/dist/{chunk-AQ47TF5K.js → chunk-JJSMONFE.js} +2 -2
- package/dist/{chunk-Y365ABZY.js → chunk-JU3RX364.js} +2 -2
- package/dist/{chunk-BI3T62GL.js → chunk-KHUWYYOH.js} +27 -20
- package/dist/chunk-KHUWYYOH.js.map +1 -0
- package/dist/{chunk-HG6ASDNI.js → chunk-LGPXCJJO.js} +2 -2
- package/dist/{chunk-O7NN7PF4.js → chunk-M7X36BQ7.js} +3 -3
- package/dist/{chunk-7OHHMYRO.js → chunk-MA3TYOKF.js} +2 -2
- package/dist/{chunk-MKY7KTZY.js → chunk-MIPBH5S7.js} +22 -6
- package/dist/chunk-MIPBH5S7.js.map +1 -0
- package/dist/{chunk-PV6KJWYO.js → chunk-MYHGOXHQ.js} +2 -2
- package/dist/{chunk-7V3DKQTI.js → chunk-NWCJXAE5.js} +6 -6
- package/dist/{chunk-XJ5X3NI4.js → chunk-OBM7JJCK.js} +2 -2
- package/dist/{chunk-LWF6AHDG.js → chunk-OXIK4SIH.js} +2 -2
- package/dist/{chunk-KITX3HDN.js → chunk-SBWSXEIH.js} +1 -1
- package/dist/chunk-SBWSXEIH.js.map +1 -0
- package/dist/{chunk-YSR6KLCS.js → chunk-V5KBSXAJ.js} +2 -2
- package/dist/{chunk-YKWUFYXT.js → chunk-VCOGUS3Q.js} +2 -2
- package/dist/{chunk-SCFWN3T2.js → chunk-VHPT2C4P.js} +1 -1
- package/dist/chunk-VHPT2C4P.js.map +1 -0
- package/dist/{chunk-7G3YQQVE.js → chunk-WBXRVW5I.js} +3 -3
- package/dist/{chunk-647TQE3E.js → chunk-WCJRGYF7.js} +5 -5
- package/dist/{chunk-5TGVDMGM.js → chunk-XH2CVR4V.js} +2 -2
- package/dist/{chunk-6E6ABRJ6.js → chunk-ZMAF3I4H.js} +2 -2
- package/dist/completion/generate-completion.js +2 -2
- package/dist/completion/index.js +2 -2
- package/dist/completion/stream-accumulator.js +1 -1
- package/dist/{dynamic-tools-BXXLc34l.d.ts → dynamic-tools-B3OjYyhC.d.ts} +1 -1
- package/dist/evals/advanced-metrics.js +5 -5
- package/dist/evals/cli.js +2 -2
- package/dist/evals/index.d.ts +2 -2
- package/dist/evals/index.js +6 -6
- package/dist/evals/judge.js +4 -4
- package/dist/evals/metrics.js +4 -4
- package/dist/evals/runner.js +2 -2
- package/dist/extractor/extractor.js +3 -3
- package/dist/extractor/index.js +3 -3
- package/dist/index.d.ts +7 -7
- package/dist/index.js +31 -31
- package/dist/internal/agent-runtime/agent-run.js +17 -17
- package/dist/internal/agent-runtime/continuation-state.js +2 -2
- package/dist/internal/agent-runtime/execution.js +7 -0
- package/dist/internal/agent-runtime/execution.js.map +1 -0
- package/dist/internal/agent-runtime/interaction-suspension.js +2 -2
- package/dist/internal/agent-runtime/memory.js +4 -4
- package/dist/internal/agent-runtime/prepared-tool-call.js +2 -2
- package/dist/internal/agent-runtime/retrieval.js +4 -4
- package/dist/internal/agent-runtime/run-options.js +1 -1
- package/dist/internal/agent-runtime/tool-execution.js +11 -11
- package/dist/internal/agent.d.ts +30 -8
- package/dist/internal/agent.js +26 -22
- package/dist/internal/team-runtime/member.js +2 -2
- package/dist/internal/team-runtime/run.js +24 -24
- package/dist/internal/team-runtime/tools.js +4 -4
- package/dist/mcp/index.d.ts +3 -3
- package/dist/memory/compaction.js +3 -3
- package/dist/memory/index.js +3 -3
- package/dist/{middleware-BxzML2hK.d.ts → middleware-BNxyEpUX.d.ts} +1 -1
- package/dist/observability/group.js +2 -2
- package/dist/observability/index.d.ts +2 -2
- package/dist/observability/index.js +2 -2
- package/dist/pipeline/index.d.ts +6 -6
- package/dist/pipeline/index.js +4 -4
- package/dist/pipeline/pipeline.js +4 -4
- package/dist/skills/index.d.ts +3 -3
- package/dist/skills/index.js +11 -11
- package/dist/skills/load.js +10 -10
- package/dist/skills/tools.js +9 -9
- package/dist/speech-generation/index.js +1 -1
- package/dist/{think-tool-2unWbq1w.d.ts → think-tool-DJbtUDZm.d.ts} +1 -1
- package/dist/tool/create-tool.js +3 -3
- package/dist/tool/dynamic-tools.js +5 -5
- package/dist/tool/index.d.ts +4 -4
- package/dist/tool/index.js +12 -12
- package/dist/tool/question-tool.js +4 -4
- package/dist/tool/think-tool.js +4 -4
- package/dist/tool/tool.js +1 -1
- package/dist/{tool-D_jV3cRZ.d.ts → tool-W1cAPuRF.d.ts} +2 -0
- package/dist/{types-0t3BczrD.d.ts → types-94Q2mPRa.d.ts} +1 -1
- package/dist/{types-Cu2tEf3V.d.ts → types-CIG2loIE.d.ts} +1 -1
- package/dist/vector-store/index.d.ts +1 -1
- package/dist/vector-store/index.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-B57NNDEF.js.map +0 -1
- package/dist/chunk-BI3T62GL.js.map +0 -1
- package/dist/chunk-KITX3HDN.js.map +0 -1
- package/dist/chunk-MKY7KTZY.js.map +0 -1
- package/dist/chunk-SCFWN3T2.js.map +0 -1
- /package/dist/{chunk-LGMH6PCB.js.map → chunk-3BYFZYEV.js.map} +0 -0
- /package/dist/{chunk-HILMAFZK.js.map → chunk-3YN5B5UW.js.map} +0 -0
- /package/dist/{chunk-LW6F3IGP.js.map → chunk-5CKB7RQY.js.map} +0 -0
- /package/dist/{chunk-5CQRCTIN.js.map → chunk-5ZS3DPPC.js.map} +0 -0
- /package/dist/{chunk-CJKGTEN4.js.map → chunk-E5MIZ6Z5.js.map} +0 -0
- /package/dist/{chunk-MWG2PMTE.js.map → chunk-F5BPVVC2.js.map} +0 -0
- /package/dist/{chunk-W2XPREWL.js.map → chunk-GI6APIEU.js.map} +0 -0
- /package/dist/{chunk-AMPQJMDG.js.map → chunk-GXVJGJAN.js.map} +0 -0
- /package/dist/{chunk-T3ZOZEAB.js.map → chunk-IZH2ZAE3.js.map} +0 -0
- /package/dist/{chunk-AQ47TF5K.js.map → chunk-JJSMONFE.js.map} +0 -0
- /package/dist/{chunk-Y365ABZY.js.map → chunk-JU3RX364.js.map} +0 -0
- /package/dist/{chunk-HG6ASDNI.js.map → chunk-LGPXCJJO.js.map} +0 -0
- /package/dist/{chunk-O7NN7PF4.js.map → chunk-M7X36BQ7.js.map} +0 -0
- /package/dist/{chunk-7OHHMYRO.js.map → chunk-MA3TYOKF.js.map} +0 -0
- /package/dist/{chunk-PV6KJWYO.js.map → chunk-MYHGOXHQ.js.map} +0 -0
- /package/dist/{chunk-7V3DKQTI.js.map → chunk-NWCJXAE5.js.map} +0 -0
- /package/dist/{chunk-XJ5X3NI4.js.map → chunk-OBM7JJCK.js.map} +0 -0
- /package/dist/{chunk-LWF6AHDG.js.map → chunk-OXIK4SIH.js.map} +0 -0
- /package/dist/{chunk-YSR6KLCS.js.map → chunk-V5KBSXAJ.js.map} +0 -0
- /package/dist/{chunk-YKWUFYXT.js.map → chunk-VCOGUS3Q.js.map} +0 -0
- /package/dist/{chunk-7G3YQQVE.js.map → chunk-WBXRVW5I.js.map} +0 -0
- /package/dist/{chunk-647TQE3E.js.map → chunk-WCJRGYF7.js.map} +0 -0
- /package/dist/{chunk-5TGVDMGM.js.map → chunk-XH2CVR4V.js.map} +0 -0
- /package/dist/{chunk-6E6ABRJ6.js.map → chunk-ZMAF3I4H.js.map} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { b as RetrySetting } from './retry-CjvSlKGW.js';
|
|
2
2
|
import { D as Document, d as CompletionModel, P as ProviderTool, J as JsonObject, C as CompletionControlValues, f as CompletionModelControlsOf, z as ToolChoice } from './types-DYqZKDA8.js';
|
|
3
3
|
import { d as GuardrailPolicyInput, c as GuardrailPolicy } from './types-CqiX-4_C.js';
|
|
4
|
-
import { a as McpServer } from './types-
|
|
4
|
+
import { a as McpServer } from './types-94Q2mPRa.js';
|
|
5
5
|
import { F as MemoryStore, A as MemorySavePolicy, G as MemoryTokenCounter, o as MemoryCompactor, d as MemoryCompactionConflictRetryOptions, z as MemoryOptions, k as MemoryCompactionResult } from './types-B8KBVXuH.js';
|
|
6
|
-
import { h as AgentLifecycle, P as AgentObservabilityOptions, k as AgentMiddleware, o as AgentRunOptions, l as AgentOutcome, p as AgentRunSettings, u as AgentStream, j as AgentMemoryCompactionOptions } from './middleware-
|
|
6
|
+
import { h as AgentLifecycle, P as AgentObservabilityOptions, k as AgentMiddleware, o as AgentRunOptions, l as AgentOutcome, p as AgentRunSettings, u as AgentStream, j as AgentMemoryCompactionOptions } from './middleware-BNxyEpUX.js';
|
|
7
7
|
import { Z as ZodSchema } from './zod-schema-C7F4clpm.js';
|
|
8
|
-
import { A as AnyTool, T as Tool, c as ToolCallContext, N as NormalizedToolOutput } from './tool-
|
|
8
|
+
import { A as AnyTool, T as Tool, c as ToolCallContext, N as NormalizedToolOutput } from './tool-W1cAPuRF.js';
|
|
9
9
|
import { AgentContinuation, AgentInteractionResponse } from './agent/interactions/index.js';
|
|
10
|
-
import { a as SkillSet } from './types-
|
|
11
|
-
import { T as ToolIndex } from './dynamic-tools-
|
|
10
|
+
import { a as SkillSet } from './types-CIG2loIE.js';
|
|
11
|
+
import { T as ToolIndex } from './dynamic-tools-B3OjYyhC.js';
|
|
12
12
|
import { E as EmbeddingModel, c as SparseEmbeddingModel } from './types-Cr4uiYo5.js';
|
|
13
13
|
import { V as VectorFilter, a as VectorSearchResult, d as VectorStore, H as HybridVectorStore, e as VectorFusion } from './types-ChyQISt-.js';
|
|
14
14
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentRun
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KHUWYYOH.js";
|
|
4
4
|
import {
|
|
5
5
|
normalizeMemoryScope
|
|
6
6
|
} from "./chunk-LAIATEUB.js";
|
|
7
7
|
import {
|
|
8
8
|
AgentRunMemory
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MA3TYOKF.js";
|
|
10
10
|
import {
|
|
11
11
|
assertNonnegativeSafeInteger
|
|
12
12
|
} from "./chunk-NPJ2T3L5.js";
|
|
13
13
|
import {
|
|
14
14
|
prepareAgentTools
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JJSMONFE.js";
|
|
16
16
|
import {
|
|
17
17
|
getRegisteredAgentTool,
|
|
18
18
|
registerAgentToolState
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "./chunk-GLMYZ6OA.js";
|
|
23
23
|
import {
|
|
24
24
|
resolveAgentOptions
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-OXIK4SIH.js";
|
|
26
26
|
import {
|
|
27
27
|
cloneFrozenPlainData,
|
|
28
28
|
snapshotAgentContext,
|
|
@@ -35,16 +35,16 @@ import {
|
|
|
35
35
|
} from "./chunk-KY4VXIN2.js";
|
|
36
36
|
import {
|
|
37
37
|
createAgentTool
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-3YN5B5UW.js";
|
|
39
39
|
import {
|
|
40
40
|
isStreamingCompletionModel
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-LGPXCJJO.js";
|
|
42
42
|
import {
|
|
43
43
|
assertJsonObject
|
|
44
44
|
} from "./chunk-4ONUNWGC.js";
|
|
45
45
|
import {
|
|
46
46
|
prepareToolCall
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-WCJRGYF7.js";
|
|
48
48
|
import {
|
|
49
49
|
ToolNotFoundError
|
|
50
50
|
} from "./chunk-J6S6MT7O.js";
|
|
@@ -155,4 +155,4 @@ var Agent = class {
|
|
|
155
155
|
export {
|
|
156
156
|
Agent
|
|
157
157
|
};
|
|
158
|
-
//# sourceMappingURL=chunk-
|
|
158
|
+
//# sourceMappingURL=chunk-3BYFZYEV.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isStreamingCompletionModel
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LGPXCJJO.js";
|
|
4
4
|
import {
|
|
5
5
|
createTool
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JU3RX364.js";
|
|
7
7
|
import {
|
|
8
8
|
AgentRunBlockedError,
|
|
9
9
|
AgentToolSuspensionError
|
|
@@ -78,4 +78,4 @@ function createAgentTool(agent, options) {
|
|
|
78
78
|
export {
|
|
79
79
|
createAgentTool
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-3YN5B5UW.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-ZPJFXRQZ.js";
|
|
8
8
|
import {
|
|
9
9
|
generateCompletion
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LGPXCJJO.js";
|
|
11
11
|
|
|
12
12
|
// src/memory/compaction.ts
|
|
13
13
|
var defaultSummaryInstructions = `Summarize the conversation transcript for use as future agent memory.
|
|
@@ -213,4 +213,4 @@ export {
|
|
|
213
213
|
createMemoryCompactionSummary,
|
|
214
214
|
cumulativeCompactedMessageCount
|
|
215
215
|
};
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
216
|
+
//# sourceMappingURL=chunk-5CKB7RQY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/agent-runtime/execution.ts"],"sourcesContent":["import type { CompletionRequest, CompletionResponse, ToolCallPart } from \"../../completion\";\nimport type { NormalizedToolOutput, ToolCallContext } from \"../../tool\";\n\n/** Runtime capability marker: older core versions must fail before accepting durable work. */\nexport const AGENT_RUN_EXECUTION_VERSION = 1;\n\nexport type AgentToolExecutionResult =\n | { output: NormalizedToolOutput; failed: false }\n | { output: NormalizedToolOutput; failed: true; error: unknown };\n\n/** Internal persistence boundary used by execution runtimes. Callbacks own external effects. */\nexport interface AgentRunExecution {\n completion(\n turn: number,\n request: CompletionRequest,\n execute: () => Promise<CompletionResponse>,\n ): Promise<CompletionResponse>;\n tool(\n call: { turn: number; toolCall: ToolCallPart; args: string },\n execute: (context?: Pick<ToolCallContext, \"operationId\">) => Promise<AgentToolExecutionResult>,\n ): Promise<AgentToolExecutionResult>;\n}\n"],"mappings":";AAIO,IAAM,8BAA8B;","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createSkillTools
|
|
3
|
+
} from "./chunk-OBM7JJCK.js";
|
|
1
4
|
import {
|
|
2
5
|
skillInstructions
|
|
3
6
|
} from "./chunk-JBQNCUXA.js";
|
|
4
|
-
import {
|
|
5
|
-
createSkillTools
|
|
6
|
-
} from "./chunk-XJ5X3NI4.js";
|
|
7
7
|
|
|
8
8
|
// src/skills/load.ts
|
|
9
9
|
async function loadSkills(loaders) {
|
|
@@ -26,4 +26,4 @@ async function loadSkills(loaders) {
|
|
|
26
26
|
export {
|
|
27
27
|
loadSkills
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-5ZS3DPPC.js.map
|
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
AgentInteractionSignal,
|
|
3
3
|
ToolExecutionSuspension
|
|
4
4
|
} from "./chunk-5IURMWFN.js";
|
|
5
|
+
import {
|
|
6
|
+
isQuestionTool
|
|
7
|
+
} from "./chunk-IZH2ZAE3.js";
|
|
5
8
|
import {
|
|
6
9
|
isSkillTool
|
|
7
10
|
} from "./chunk-2NLINXRF.js";
|
|
8
|
-
import {
|
|
9
|
-
isQuestionTool
|
|
10
|
-
} from "./chunk-T3ZOZEAB.js";
|
|
11
11
|
import {
|
|
12
12
|
runControl,
|
|
13
13
|
toolCallControl
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
prepareToolCall,
|
|
32
32
|
prepareToolCallFromInput
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-WCJRGYF7.js";
|
|
34
34
|
import {
|
|
35
35
|
assertToolApprovalRequirement,
|
|
36
36
|
toolMayRequireApproval
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
normalizeToolResultOutput,
|
|
41
41
|
parseToolArgs,
|
|
42
42
|
toolResultContentToText
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-VHPT2C4P.js";
|
|
44
44
|
import {
|
|
45
45
|
Usage
|
|
46
46
|
} from "./chunk-HJ6KTQTZ.js";
|
|
@@ -65,7 +65,7 @@ function sanitizeToolErrorMessage(error) {
|
|
|
65
65
|
return String(error);
|
|
66
66
|
}
|
|
67
67
|
var ToolCallExecutor = class {
|
|
68
|
-
constructor(agent, activeHook, approvalHandler, lifecycle, runContext, concurrency, requestMiddlewares, abortSignal, cancel) {
|
|
68
|
+
constructor(agent, activeHook, approvalHandler, lifecycle, runContext, concurrency, requestMiddlewares, abortSignal, cancel, execution) {
|
|
69
69
|
this.agent = agent;
|
|
70
70
|
this.activeHook = activeHook;
|
|
71
71
|
this.approvalHandler = approvalHandler;
|
|
@@ -75,6 +75,7 @@ var ToolCallExecutor = class {
|
|
|
75
75
|
this.requestMiddlewares = requestMiddlewares;
|
|
76
76
|
this.abortSignal = abortSignal;
|
|
77
77
|
this.cancel = cancel;
|
|
78
|
+
this.execution = execution;
|
|
78
79
|
}
|
|
79
80
|
agent;
|
|
80
81
|
activeHook;
|
|
@@ -85,6 +86,7 @@ var ToolCallExecutor = class {
|
|
|
85
86
|
requestMiddlewares;
|
|
86
87
|
abortSignal;
|
|
87
88
|
cancel;
|
|
89
|
+
execution;
|
|
88
90
|
async execute(toolCalls, onResult, onStreamEvent, observation) {
|
|
89
91
|
assertCompletionResponseIntegrity({
|
|
90
92
|
response: {
|
|
@@ -608,9 +610,26 @@ var ToolCallExecutor = class {
|
|
|
608
610
|
throw error;
|
|
609
611
|
}
|
|
610
612
|
}
|
|
611
|
-
|
|
613
|
+
runApprovedToolCall(prepared, toolCall, hookArgs, effectiveArgs, toolObservation, observation, onStreamEvent) {
|
|
614
|
+
const execute = (context) => this.runUncachedToolCall(
|
|
615
|
+
prepared,
|
|
616
|
+
toolCall,
|
|
617
|
+
hookArgs,
|
|
618
|
+
effectiveArgs,
|
|
619
|
+
toolObservation,
|
|
620
|
+
observation,
|
|
621
|
+
onStreamEvent,
|
|
622
|
+
context
|
|
623
|
+
);
|
|
624
|
+
return this.execution === void 0 ? execute() : this.execution.tool(
|
|
625
|
+
{ turn: observation?.turn ?? 0, toolCall, args: effectiveArgs },
|
|
626
|
+
execute
|
|
627
|
+
);
|
|
628
|
+
}
|
|
629
|
+
async runUncachedToolCall(prepared, toolCall, hookArgs, effectiveArgs, toolObservation, observation, onStreamEvent, context) {
|
|
612
630
|
try {
|
|
613
631
|
const toolContext = {
|
|
632
|
+
...context,
|
|
614
633
|
abortSignal: this.abortSignal,
|
|
615
634
|
emitStreamEvent: async (event) => {
|
|
616
635
|
let streamEventArgs = {
|
|
@@ -948,4 +967,4 @@ function agentToolEventPayload(toolCall, internalCallId, event) {
|
|
|
948
967
|
export {
|
|
949
968
|
ToolCallExecutor
|
|
950
969
|
};
|
|
951
|
-
//# sourceMappingURL=chunk-
|
|
970
|
+
//# sourceMappingURL=chunk-C36RVQHF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/agent-runtime/tool-execution.ts"],"sourcesContent":["import type { Agent } from \"../../agent/agent\";\nimport { parseAgentQuestionPrompts } from \"../../agent/interactions\";\nimport { type AgentLifecycle, lifecycleSnapshot } from \"../../agent/lifecycle\";\nimport type { AgentChildStreamEvent } from \"../../agent/run-types\";\nimport type {\n JsonObject,\n ToolCallPart,\n ToolDefinition,\n ToolResultContentPart,\n ToolResultOutput,\n ToolResultPart,\n} from \"../../completion\";\nimport { isJsonValue, Usage } from \"../../completion\";\nimport { assertCompletionResponseIntegrity } from \"../../completion/provider-output-error\";\nimport type { AgentHook, ToolApprovalRequestOptions, ToolHookArgs } from \"../../hooks\";\nimport { runControl, toolCallControl } from \"../../hooks\";\nimport { isMcpTool } from \"../../mcp\";\nimport type { ActiveAgentRunObservers, ActiveToolObservers } from \"../../observability/group\";\nimport type {\n AgentToolEndArgs,\n AgentToolErrorArgs,\n AgentToolStartArgs,\n AgentToolStreamEventArgs,\n AgentToolSuspendedArgs,\n} from \"../../observability/types\";\nimport type {\n AnyTool,\n NormalizedToolOutput,\n ToolApprovalContext,\n ToolApprovalRunContext,\n ToolCallContext,\n ToolCallStreamEvent,\n ToolRequiresApproval,\n} from \"../../tool\";\nimport {\n normalizeToolResultOutput,\n parseToolArgs,\n ToolOutput,\n toolResultContentToText,\n} from \"../../tool\";\nimport type {\n AgentMiddleware,\n ToolOutputMiddlewareArgs,\n ToolOutputMiddlewareResult,\n} from \"../../tool/middleware\";\nimport { isQuestionTool } from \"../../tool/question-tool\";\nimport { isSkillTool } from \"../../tool/skill-tool-marker\";\nimport { throwIfAborted } from \"../abort\";\nimport type { AgentRunExecution, AgentToolExecutionResult } from \"./execution\";\nimport { mapWithConcurrency } from \"../concurrency\";\nimport type { ToolApprovalRequest } from \"./approval-request\";\nimport { assertToolApprovalRequirement, toolMayRequireApproval } from \"./approval-requirement\";\nimport {\n AgentInteractionSignal,\n type PendingToolExecution,\n ToolExecutionSuspension,\n} from \"./interaction-suspension\";\nimport {\n type PreparedToolCall,\n prepareToolCall as prepareRegisteredToolCall,\n prepareToolCallFromInput,\n} from \"./prepared-tool-call\";\n\nexport type ToolResultEventPayload = {\n type: \"tool_result\";\n toolName: string;\n toolCallId: string;\n callId?: string;\n internalCallId: string;\n args: string;\n output: ToolResultOutput;\n result: string;\n structuredResult?: readonly ToolResultContentPart[] | undefined;\n};\n\nexport type AgentToolEventPayload = {\n type: \"agent_tool_event\";\n toolName: string;\n toolCallId?: string;\n internalCallId: string;\n agentId: string;\n agentName?: string;\n event: AgentChildStreamEvent<unknown, unknown>;\n};\n\nexport type ToolExecutionEventPayload = ToolResultEventPayload | AgentToolEventPayload;\n\nexport type ToolExecutionObservation = {\n turn: number;\n runObservers: ActiveAgentRunObservers;\n toolDefinitions?: ToolDefinition[];\n};\n\nexport type ToolExecutionRunContext = {\n runId: string;\n sessionId?: string | undefined;\n metadata?: JsonObject | undefined;\n};\n\nexport type ToolApprovalDecision =\n | { approved: true; reason?: string }\n | { approved: false; reason?: string };\n\nexport type ToolApprovalHandler = (request: ToolApprovalRequest) => Promise<ToolApprovalDecision>;\n\ntype ToolExecutionAgent = Pick<Agent, \"id\" | \"getTool\" | \"callTool\" | \"middlewares\">;\ntype ToolExecutionLifecycle = Pick<AgentLifecycle, \"onToolStart\" | \"onToolFinish\">;\n\nfunction sanitizeToolErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n // Return only name and message, omitting stack traces and internal details\n return `${error.name}: ${error.message}`;\n }\n\n if (typeof error === \"string\") {\n // Strings are JSON values, but JSON.stringify would add surrounding quotes.\n return error;\n }\n\n if (isJsonValue(error)) {\n return JSON.stringify(error);\n }\n\n // Non-Error thrown values\n return String(error);\n}\n\nexport class ToolCallExecutor {\n constructor(\n private readonly agent: ToolExecutionAgent,\n private readonly activeHook: AgentHook | undefined,\n private readonly approvalHandler: ToolApprovalHandler,\n private readonly lifecycle: ToolExecutionLifecycle | undefined,\n private readonly runContext: ToolExecutionRunContext,\n private readonly concurrency: number,\n private readonly requestMiddlewares: readonly AgentMiddleware[],\n private readonly abortSignal: AbortSignal,\n private readonly cancel: (reason: string) => Error,\n private readonly execution?: AgentRunExecution,\n ) {}\n\n async execute(\n toolCalls: readonly ToolCallPart[],\n onResult?: (result: ToolResultEventPayload) => void,\n onStreamEvent?: (event: AgentToolEventPayload) => void,\n observation?: ToolExecutionObservation,\n ): Promise<ToolResultPart[]> {\n assertCompletionResponseIntegrity({\n response: {\n choice: [...toolCalls],\n usage: Usage.empty(),\n rawResponse: undefined,\n },\n });\n\n const executeOne = async (toolCall: ToolCallPart): Promise<ToolResultPart> => {\n throwIfAborted(this.abortSignal);\n const args = JSON.stringify(toolCall.input);\n const internalCallId = globalThis.crypto.randomUUID();\n const hookArgs: ToolHookArgs = {\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n args,\n };\n if (toolCall.callId !== undefined) {\n hookArgs.callId = toolCall.callId;\n }\n const tool = this.agent.getTool(toolCall.toolName);\n const toolDefinition = observation?.toolDefinitions?.find(\n (definition) => definition.name === toolCall.toolName,\n );\n const toolMetadata = toolTraceMetadata(tool);\n\n let toolStartArgs: AgentToolStartArgs = {\n turn: observation?.turn ?? 0,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args,\n };\n if (toolCall.callId !== undefined) {\n toolStartArgs = { ...toolStartArgs, toolCallId: toolCall.callId };\n }\n if (toolDefinition !== undefined) toolStartArgs = { ...toolStartArgs, toolDefinition };\n if (toolMetadata !== undefined) toolStartArgs = { ...toolStartArgs, toolMetadata };\n const toolObservers = await observation?.runObservers.startTool(toolStartArgs);\n const toolObservation = new ToolObserverScope(toolObservers);\n\n let output: NormalizedToolOutput | undefined;\n let skipped = false;\n let toolExecutionFailed = false;\n let effectiveArgs = args;\n\n try {\n const callAction = await this.activeHook?.onToolCall?.({\n ...hookArgs,\n tool: toolCallControl,\n });\n if (callAction?.type === \"terminate\") {\n throw this.cancel(callAction.reason);\n }\n if (callAction?.type === \"skip\") {\n output = { type: \"text\", value: callAction.reason };\n skipped = true;\n } else {\n try {\n effectiveArgs = await this.runToolInputMiddlewares({\n ...hookArgs,\n turn: observation?.turn ?? 0,\n originalArgs: args,\n });\n hookArgs.args = effectiveArgs;\n\n let prepared: PreparedToolCall | undefined;\n try {\n prepared = this.prepareToolCall(tool, toolCall.toolName, effectiveArgs);\n } catch (error) {\n const outcome = await this.handleToolError(\n toolCall,\n hookArgs,\n effectiveArgs,\n error,\n toolObservation,\n observation,\n );\n output = outcome.output;\n toolExecutionFailed = outcome.failed;\n }\n if (prepared !== undefined && isQuestionTool(tool)) {\n try {\n const questions = parseAgentQuestionPrompts(\n (prepared.input as { questions?: unknown }).questions,\n );\n const interaction = {\n type: \"tool-question\",\n id: globalThis.crypto.randomUUID(),\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n questions,\n } as const;\n if (toolCall.callId !== undefined) {\n Object.assign(interaction, { callId: toolCall.callId });\n }\n throw new AgentInteractionSignal(interaction);\n } catch (error) {\n if (error instanceof AgentInteractionSignal) throw error;\n const outcome = await this.handleToolError(\n toolCall,\n hookArgs,\n effectiveArgs,\n error,\n toolObservation,\n observation,\n );\n output = outcome.output;\n toolExecutionFailed = outcome.failed;\n prepared = undefined;\n }\n }\n if (prepared !== undefined) {\n const approvalContext = createApprovalContext(\n prepared.input,\n hookArgs,\n this.agent,\n this.runContext,\n );\n const approvalDecision =\n callAction?.type === \"approval_request\"\n ? await this.requestApproval(approvalContext, callAction, observation)\n : ((await this.evaluateToolApproval(tool, approvalContext, observation)) ?? {\n approved: true as const,\n });\n if (!approvalDecision.approved) {\n output = { type: \"execution-denied\", reason: approvalDecision.result };\n skipped = true;\n } else {\n const step = observation?.turn ?? 0;\n const lifecycleEvent = {\n runId: this.runContext.runId,\n step,\n toolName: toolCall.toolName,\n input: lifecycleSnapshot(prepared.input),\n };\n if (toolCall.callId !== undefined) {\n Object.assign(lifecycleEvent, { toolCallId: toolCall.callId });\n }\n await this.lifecycle?.onToolStart?.(lifecycleEvent);\n const startedAt = Date.now();\n const outcome = await this.runApprovedToolCall(\n prepared,\n toolCall,\n hookArgs,\n effectiveArgs,\n toolObservation,\n observation,\n onStreamEvent,\n );\n output = outcome.output;\n toolExecutionFailed = outcome.failed;\n const durationMs = Date.now() - startedAt;\n await this.lifecycle?.onToolFinish?.(\n outcome.failed\n ? {\n ...lifecycleEvent,\n durationMs,\n success: false,\n error: lifecycleSnapshot(outcome.error),\n }\n : {\n ...lifecycleEvent,\n durationMs,\n success: true,\n output: lifecycleSnapshot(output),\n },\n );\n }\n }\n } catch (error) {\n if (error instanceof AgentInteractionSignal) {\n await toolObservation.suspend({\n ...toolStartArgs,\n interaction: error.interaction,\n });\n throw error;\n }\n await toolObservation.error(\n toolErrorArgs(observation?.turn ?? 0, toolCall, internalCallId, effectiveArgs, error),\n );\n throw error;\n }\n }\n\n if (output === undefined) {\n throw new Error(`Tool \"${toolCall.toolName}\" did not produce an execution result.`);\n }\n let result = toolOutputToText(output);\n let structuredResult = toolOutputToStructuredResult(output);\n if (!isSkillTool(tool)) {\n const middlewareReplacement = await this.runToolResultMiddlewares({\n ...hookArgs,\n args: effectiveArgs,\n result,\n originalResult: result,\n structuredResult,\n originalStructuredResult: structuredResult,\n turn: observation?.turn ?? 0,\n });\n if (middlewareReplacement !== undefined) {\n output = middlewareReplacement;\n result = toolOutputToText(middlewareReplacement);\n structuredResult = toolOutputToStructuredResult(middlewareReplacement);\n }\n }\n\n const resultAction = await this.activeHook?.onToolResult?.({\n ...hookArgs,\n args: effectiveArgs,\n result,\n structuredResult,\n run: runControl,\n });\n if (!toolExecutionFailed) {\n await toolObservation.end({\n turn: observation?.turn ?? 0,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args: effectiveArgs,\n result,\n structuredResult,\n skipped,\n toolCallId: toolCall.callId,\n });\n }\n if (resultAction?.type === \"terminate\") {\n throw this.cancel(resultAction.reason);\n }\n\n const resultPayload: ToolResultEventPayload = {\n type: \"tool_result\",\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n args: effectiveArgs,\n output,\n result,\n structuredResult,\n };\n if (toolCall.callId !== undefined) resultPayload.callId = toolCall.callId;\n onResult?.(resultPayload);\n let resultPart: ToolResultPart = {\n type: \"tool-result\" as const,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n output,\n };\n if (toolCall.callId !== undefined) {\n resultPart = { ...resultPart, callId: toolCall.callId };\n }\n return resultPart;\n } catch (error) {\n if (error instanceof AgentInteractionSignal) {\n const pending: PendingToolExecution = {\n toolCall,\n effectiveArgs,\n input:\n error.interaction.type === \"tool-approval\"\n ? error.interaction.input\n : parseToolArgs(effectiveArgs),\n internalCallId,\n };\n if (error.rejectMessage !== undefined) pending.rejectMessage = error.rejectMessage;\n throw new ToolExecutionSuspension(error.interaction, pending);\n }\n await toolObservation.error(\n toolErrorArgs(observation?.turn ?? 0, toolCall, internalCallId, effectiveArgs, error),\n );\n throw error;\n }\n };\n\n if (this.concurrency === 1) {\n const results: ToolResultPart[] = [];\n for (const toolCall of toolCalls) {\n try {\n results.push(await executeOne(toolCall));\n } catch (error) {\n if (error instanceof ToolExecutionSuspension) {\n error.completedResults = [...results];\n error.remainingToolCalls = toolCalls.slice(results.length + 1);\n }\n throw error;\n }\n }\n return results;\n }\n return mapWithConcurrency(toolCalls, this.concurrency, executeOne);\n }\n\n async executeResumed(\n pending: PendingToolExecution,\n onResult?: (result: ToolResultEventPayload) => void,\n onStreamEvent?: (event: AgentToolEventPayload) => void,\n observation?: ToolExecutionObservation,\n ): Promise<ToolResultPart> {\n throwIfAborted(this.abortSignal);\n const { toolCall, internalCallId, effectiveArgs } = pending;\n const tool = this.agent.getTool(toolCall.toolName);\n if (tool === undefined) {\n throw new Error(\n `Cannot resume tool interaction because tool \"${toolCall.toolName}\" is no longer registered.`,\n );\n }\n if (isQuestionTool(tool)) {\n throw new TypeError(\"Question interactions are resolved from their submitted answers.\");\n }\n\n const hookArgs: ToolHookArgs = {\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n args: effectiveArgs,\n };\n if (toolCall.callId !== undefined) hookArgs.callId = toolCall.callId;\n const toolDefinition = observation?.toolDefinitions?.find(\n (definition) => definition.name === toolCall.toolName,\n );\n const toolMetadata = toolTraceMetadata(tool);\n let toolStartArgs: AgentToolStartArgs = {\n turn: observation?.turn ?? 0,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args: effectiveArgs,\n };\n if (toolCall.callId !== undefined) {\n toolStartArgs = { ...toolStartArgs, toolCallId: toolCall.callId };\n }\n if (toolDefinition !== undefined) toolStartArgs = { ...toolStartArgs, toolDefinition };\n if (toolMetadata !== undefined) toolStartArgs = { ...toolStartArgs, toolMetadata };\n const observers = await observation?.runObservers.startTool(toolStartArgs);\n const toolObservation = new ToolObserverScope(observers);\n let output: NormalizedToolOutput;\n let failed = false;\n\n try {\n const prepared = prepareToolCallFromInput(tool, pending.input);\n const step = observation?.turn ?? 0;\n const lifecycleEvent = {\n runId: this.runContext.runId,\n step,\n toolName: toolCall.toolName,\n input: lifecycleSnapshot(prepared.input),\n };\n if (toolCall.callId !== undefined) {\n Object.assign(lifecycleEvent, { toolCallId: toolCall.callId });\n }\n await this.lifecycle?.onToolStart?.(lifecycleEvent);\n const startedAt = Date.now();\n const outcome = await this.runApprovedToolCall(\n prepared,\n toolCall,\n hookArgs,\n effectiveArgs,\n toolObservation,\n observation,\n onStreamEvent,\n );\n output = outcome.output;\n failed = outcome.failed;\n const durationMs = Date.now() - startedAt;\n await this.lifecycle?.onToolFinish?.(\n outcome.failed\n ? {\n ...lifecycleEvent,\n durationMs,\n success: false,\n error: lifecycleSnapshot(outcome.error),\n }\n : {\n ...lifecycleEvent,\n durationMs,\n success: true,\n output: lifecycleSnapshot(output),\n },\n );\n\n let result = toolOutputToText(output);\n let structuredResult = toolOutputToStructuredResult(output);\n if (!isSkillTool(tool)) {\n const replacement = await this.runToolResultMiddlewares({\n ...hookArgs,\n args: effectiveArgs,\n result,\n originalResult: result,\n structuredResult,\n originalStructuredResult: structuredResult,\n turn: step,\n });\n if (replacement !== undefined) {\n output = replacement;\n result = toolOutputToText(replacement);\n structuredResult = toolOutputToStructuredResult(replacement);\n }\n }\n const resultAction = await this.activeHook?.onToolResult?.({\n ...hookArgs,\n result,\n structuredResult,\n run: runControl,\n });\n if (!failed) {\n await toolObservation.end({\n turn: step,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args: effectiveArgs,\n result,\n structuredResult,\n skipped: false,\n toolCallId: toolCall.callId,\n });\n }\n if (resultAction?.type === \"terminate\") {\n throw this.cancel(resultAction.reason);\n }\n const resultPayload: ToolResultEventPayload = {\n type: \"tool_result\",\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n args: effectiveArgs,\n output,\n result,\n structuredResult,\n };\n if (toolCall.callId !== undefined) resultPayload.callId = toolCall.callId;\n onResult?.(resultPayload);\n let resultPart: ToolResultPart = {\n type: \"tool-result\",\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n output,\n };\n if (toolCall.callId !== undefined) resultPart = { ...resultPart, callId: toolCall.callId };\n return resultPart;\n } catch (error) {\n await toolObservation.error(\n toolErrorArgs(observation?.turn ?? 0, toolCall, internalCallId, effectiveArgs, error),\n );\n throw error;\n }\n }\n\n async resolveResumed(\n pending: PendingToolExecution,\n initialOutput: NormalizedToolOutput,\n onResult?: (result: ToolResultEventPayload) => void,\n observation?: ToolExecutionObservation,\n ): Promise<ToolResultPart> {\n throwIfAborted(this.abortSignal);\n const { toolCall, internalCallId, effectiveArgs } = pending;\n const tool = this.agent.getTool(toolCall.toolName);\n if (tool === undefined) {\n throw new Error(\n `Cannot resume tool interaction because tool \"${toolCall.toolName}\" is no longer registered.`,\n );\n }\n\n const hookArgs: ToolHookArgs = {\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n args: effectiveArgs,\n };\n if (toolCall.callId !== undefined) hookArgs.callId = toolCall.callId;\n const toolDefinition = observation?.toolDefinitions?.find(\n (definition) => definition.name === toolCall.toolName,\n );\n const toolMetadata = toolTraceMetadata(tool);\n let toolStartArgs: AgentToolStartArgs = {\n turn: observation?.turn ?? 0,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args: effectiveArgs,\n };\n if (toolCall.callId !== undefined) {\n toolStartArgs = { ...toolStartArgs, toolCallId: toolCall.callId };\n }\n if (toolDefinition !== undefined) toolStartArgs = { ...toolStartArgs, toolDefinition };\n if (toolMetadata !== undefined) toolStartArgs = { ...toolStartArgs, toolMetadata };\n const observers = await observation?.runObservers.startTool(toolStartArgs);\n const toolObservation = new ToolObserverScope(observers);\n\n try {\n let output = initialOutput;\n let result = toolOutputToText(output);\n let structuredResult = toolOutputToStructuredResult(output);\n if (!isSkillTool(tool)) {\n const replacement = await this.runToolResultMiddlewares({\n ...hookArgs,\n args: effectiveArgs,\n result,\n originalResult: result,\n structuredResult,\n originalStructuredResult: structuredResult,\n turn: observation?.turn ?? 0,\n });\n if (replacement !== undefined) {\n output = replacement;\n result = toolOutputToText(replacement);\n structuredResult = toolOutputToStructuredResult(replacement);\n }\n }\n const resultAction = await this.activeHook?.onToolResult?.({\n ...hookArgs,\n result,\n structuredResult,\n run: runControl,\n });\n await toolObservation.end({\n turn: observation?.turn ?? 0,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args: effectiveArgs,\n result,\n structuredResult,\n skipped: true,\n toolCallId: toolCall.callId,\n });\n if (resultAction?.type === \"terminate\") {\n throw this.cancel(resultAction.reason);\n }\n const resultPayload: ToolResultEventPayload = {\n type: \"tool_result\",\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n internalCallId,\n args: effectiveArgs,\n output,\n result,\n structuredResult,\n };\n if (toolCall.callId !== undefined) resultPayload.callId = toolCall.callId;\n onResult?.(resultPayload);\n let resultPart: ToolResultPart = {\n type: \"tool-result\",\n toolName: toolCall.toolName,\n toolCallId: toolCall.toolCallId,\n output,\n };\n if (toolCall.callId !== undefined) resultPart = { ...resultPart, callId: toolCall.callId };\n return resultPart;\n } catch (error) {\n await toolObservation.error(\n toolErrorArgs(observation?.turn ?? 0, toolCall, internalCallId, effectiveArgs, error),\n );\n throw error;\n }\n }\n\n private runApprovedToolCall(\n prepared: PreparedToolCall,\n toolCall: ToolCallPart,\n hookArgs: ToolHookArgs,\n effectiveArgs: string,\n toolObservation: ToolObserverScope,\n observation: ToolExecutionObservation | undefined,\n onStreamEvent?: (event: AgentToolEventPayload) => void,\n ): Promise<\n | { output: NormalizedToolOutput; failed: false }\n | { output: NormalizedToolOutput; failed: true; error: unknown }\n > {\n const execute = (context?: Pick<ToolCallContext, \"operationId\">) =>\n this.runUncachedToolCall(\n prepared,\n toolCall,\n hookArgs,\n effectiveArgs,\n toolObservation,\n observation,\n onStreamEvent,\n context,\n );\n return this.execution === undefined\n ? execute()\n : this.execution.tool(\n { turn: observation?.turn ?? 0, toolCall, args: effectiveArgs },\n execute,\n );\n }\n\n private async runUncachedToolCall(\n prepared: PreparedToolCall,\n toolCall: ToolCallPart,\n hookArgs: ToolHookArgs,\n effectiveArgs: string,\n toolObservation: ToolObserverScope,\n observation: ToolExecutionObservation | undefined,\n onStreamEvent: ((event: AgentToolEventPayload) => void) | undefined,\n context: Pick<ToolCallContext, \"operationId\"> | undefined,\n ): Promise<AgentToolExecutionResult> {\n try {\n const toolContext: ToolCallContext = {\n ...context,\n abortSignal: this.abortSignal,\n emitStreamEvent: async (event) => {\n let streamEventArgs: AgentToolStreamEventArgs = {\n turn: observation?.turn ?? 0,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId: hookArgs.internalCallId,\n args: effectiveArgs,\n event,\n };\n if (toolCall.callId !== undefined) {\n streamEventArgs = { ...streamEventArgs, toolCallId: toolCall.callId };\n }\n await toolObservation.streamEvent(streamEventArgs);\n const payload = agentToolEventPayload(toolCall, hookArgs.internalCallId, event);\n if (payload !== undefined) {\n onStreamEvent?.(payload);\n }\n },\n };\n return {\n output: await prepared.call(toolContext),\n failed: false,\n };\n } catch (error) {\n return this.handleToolError(\n toolCall,\n hookArgs,\n effectiveArgs,\n error,\n toolObservation,\n observation,\n );\n }\n }\n\n private prepareToolCall(\n tool: AnyTool | undefined,\n toolName: string,\n args: string,\n ): PreparedToolCall {\n if (tool !== undefined) {\n return prepareRegisteredToolCall(tool, args);\n }\n const input = parseToolArgs(args);\n return {\n input,\n call: (context) => this.agent.callTool(toolName, args, context),\n };\n }\n\n private async handleToolError(\n toolCall: ToolCallPart,\n hookArgs: ToolHookArgs,\n args: string,\n error: unknown,\n toolObservation: ToolObserverScope,\n observation: ToolExecutionObservation | undefined,\n ): Promise<{ output: NormalizedToolOutput; failed: true; error: unknown }> {\n const errorAction = await this.activeHook?.onToolError?.({\n ...hookArgs,\n args,\n error,\n run: runControl,\n });\n await toolObservation.error(\n toolErrorArgs(observation?.turn ?? 0, toolCall, hookArgs.internalCallId, args, error),\n );\n if (errorAction?.type === \"terminate\") {\n throw this.cancel(errorAction.reason);\n }\n return {\n output: {\n type: \"error-text\",\n value: sanitizeToolErrorMessage(error),\n },\n failed: true,\n error,\n };\n }\n\n private async runToolResultMiddlewares(\n args: ToolOutputMiddlewareArgs,\n ): Promise<NormalizedToolOutput | undefined> {\n let result = args.result;\n let structuredResult = args.structuredResult;\n let replaced = false;\n for (const middleware of this.activeMiddlewares()) {\n const outputReplacement = await middleware.onToolOutput?.({\n ...args,\n result,\n structuredResult,\n });\n if (outputReplacement !== undefined) {\n const normalized = normalizeToolOutputMiddlewareResult(outputReplacement);\n if (normalized.result !== undefined) {\n result = normalized.result;\n structuredResult = undefined;\n }\n if (normalized.structuredResult !== undefined) {\n structuredResult = normalized.structuredResult;\n result = toolResultContentToText(normalized.structuredResult);\n }\n replaced = true;\n }\n }\n return replaced\n ? structuredResult === undefined\n ? { type: \"text\", value: result }\n : { type: \"content\", value: structuredResult }\n : undefined;\n }\n\n private async runToolInputMiddlewares(\n args: ToolHookArgs & { turn: number; originalArgs: string },\n ): Promise<string> {\n let current = args.args;\n for (const middleware of this.activeMiddlewares()) {\n const replacement = await middleware.onToolInput?.({\n ...args,\n args: current,\n });\n if (replacement?.args !== undefined) {\n if (typeof replacement.args === \"string\") {\n current = replacement.args;\n } else {\n if (!isJsonValue(replacement.args)) {\n throw new TypeError(\"Tool input middleware args must be a strict JSON value.\");\n }\n current = JSON.stringify(replacement.args);\n }\n }\n }\n return current;\n }\n\n private activeMiddlewares(): AgentMiddleware[] {\n return [...this.agent.middlewares, ...this.requestMiddlewares];\n }\n\n private async evaluateToolApproval(\n tool: AnyTool | undefined,\n context: ToolApprovalContext,\n observation: ToolExecutionObservation | undefined,\n ): Promise<{ approved: true } | { approved: false; result: string } | undefined> {\n const requirement = tool?.requiresApproval as ToolRequiresApproval<unknown> | undefined;\n if (requirement === undefined) return undefined;\n const resolved =\n typeof requirement === \"function\" ? await requirement(context.args, context) : requirement;\n assertToolApprovalRequirement(resolved, { allowFunction: false });\n if (resolved === false) return { approved: true };\n const reason = resolved === true ? undefined : resolved.reason;\n return this.requestApproval(context, reason === undefined ? {} : { reason }, observation);\n }\n\n private async requestApproval(\n context: ToolApprovalContext,\n options: ToolApprovalRequestOptions,\n observation: ToolExecutionObservation | undefined,\n ): Promise<{ approved: true } | { approved: false; result: string }> {\n const request: ToolApprovalRequest = {\n ...context,\n id: globalThis.crypto.randomUUID(),\n };\n if (options.reason !== undefined) {\n request.reason = options.reason;\n }\n if (options.rejectMessage !== undefined) {\n request.rejectMessage = options.rejectMessage;\n }\n await observation?.runObservers.event({\n name: \"tool.approval_requested\",\n attributes: approvalEventAttributes(request, observation.turn),\n });\n let decision: ToolApprovalDecision;\n try {\n decision = await this.approvalHandler(request);\n } catch (error) {\n if (error instanceof AgentInteractionSignal) {\n throw error;\n }\n await observation?.runObservers.event({\n name: \"tool.approval_failed\",\n level: \"ERROR\",\n attributes: {\n ...approvalEventAttributes(request, observation.turn),\n errorName: error instanceof Error ? error.name : typeof error,\n },\n });\n throw error;\n }\n const attributes: JsonObject = {\n ...approvalEventAttributes(request, observation?.turn ?? 0),\n approved: decision.approved,\n };\n if (decision.reason !== undefined) attributes.decisionReason = decision.reason;\n await observation?.runObservers.event({\n name: \"tool.approval_resolved\",\n attributes,\n });\n if (decision.approved) {\n return { approved: true };\n }\n return {\n approved: false,\n result: decision.reason ?? request.rejectMessage ?? \"Tool approval was rejected.\",\n };\n }\n}\n\nfunction createApprovalContext(\n input: unknown,\n hookArgs: ToolHookArgs,\n agent: Pick<Agent, \"id\">,\n run: ToolExecutionRunContext,\n): ToolApprovalContext {\n const approvalRun: ToolApprovalRunContext = {\n agentId: agent.id,\n runId: run.runId,\n };\n if (run.sessionId !== undefined) {\n approvalRun.sessionId = run.sessionId;\n }\n if (run.metadata !== undefined) {\n approvalRun.metadata = run.metadata;\n }\n const context: ToolApprovalContext = {\n toolName: hookArgs.toolName,\n args: lifecycleSnapshot(input),\n rawArgs: hookArgs.args,\n toolCallId: hookArgs.toolCallId,\n internalCallId: hookArgs.internalCallId,\n run: approvalRun,\n };\n if (hookArgs.callId !== undefined) {\n context.callId = hookArgs.callId;\n }\n return context;\n}\n\nfunction approvalEventAttributes(request: ToolApprovalRequest, turn: number): JsonObject {\n const attributes: JsonObject = {\n turn,\n approvalId: request.id,\n toolName: request.toolName,\n internalCallId: request.internalCallId,\n };\n if (request.toolCallId !== undefined) attributes.toolCallId = request.toolCallId;\n if (request.reason !== undefined) attributes.reason = request.reason;\n return attributes;\n}\n\nfunction normalizeToolOutputMiddlewareResult(result: ToolOutputMiddlewareResult): {\n result?: string | undefined;\n structuredResult?: readonly ToolResultContentPart[] | undefined;\n} {\n if (typeof result === \"string\") {\n return { result };\n }\n if (typeof result !== \"object\" || result === null) {\n throw new TypeError(\"Tool output middleware must return text or structured content.\");\n }\n const prototype = Object.getPrototypeOf(result);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new TypeError(\"Tool output middleware must return text or structured content.\");\n }\n const keys = Reflect.ownKeys(result);\n const hasResult = keys.includes(\"result\");\n const hasStructuredResult = keys.includes(\"structuredResult\");\n if (\n hasResult === hasStructuredResult ||\n keys.some((key) => key !== \"result\" && key !== \"structuredResult\")\n ) {\n throw new TypeError(\n \"Tool output middleware must return exactly one of result or structuredResult.\",\n );\n }\n if (hasResult) {\n const descriptor = Object.getOwnPropertyDescriptor(result, \"result\");\n if (\n descriptor === undefined ||\n !(\"value\" in descriptor) ||\n typeof descriptor.value !== \"string\"\n ) {\n throw new TypeError(\"Tool output middleware result must be a string.\");\n }\n return { result: descriptor.value };\n }\n const descriptor = Object.getOwnPropertyDescriptor(result, \"structuredResult\");\n if (descriptor === undefined || !(\"value\" in descriptor)) {\n throw new TypeError(\"Tool output middleware structuredResult must be valid tool content.\");\n }\n const normalized = normalizeToolResultOutput(ToolOutput.content(descriptor.value as never));\n if (normalized.type !== \"content\") {\n throw new TypeError(\"Tool output middleware structuredResult must be valid tool content.\");\n }\n return { structuredResult: normalized.value };\n}\n\nfunction toolTraceMetadata(tool: AnyTool | undefined): JsonObject | undefined {\n if (tool === undefined) {\n return undefined;\n }\n const result: JsonObject = {\n approvalRequired: toolMayRequireApproval(tool.requiresApproval),\n };\n if (isMcpTool(tool)) {\n result.mcpServerName = tool.mcp.serverName;\n result.mcpRemoteName = tool.mcp.remoteName;\n }\n return result;\n}\n\nfunction toolErrorArgs(\n turn: number,\n toolCall: ToolCallPart,\n internalCallId: string,\n args: string,\n error: unknown,\n): AgentToolErrorArgs {\n let observerArgs: AgentToolErrorArgs = {\n turn,\n toolCall,\n toolName: toolCall.toolName,\n internalCallId,\n args,\n error,\n };\n if (toolCall.callId !== undefined) {\n observerArgs = { ...observerArgs, toolCallId: toolCall.callId };\n }\n return observerArgs;\n}\n\nclass ToolObserverScope {\n private terminal = false;\n\n constructor(private readonly observers: ActiveToolObservers | undefined) {}\n\n streamEvent(args: AgentToolStreamEventArgs): Promise<void> | undefined {\n return this.observers?.streamEvent(args);\n }\n\n async end(args: AgentToolEndArgs): Promise<void> {\n if (this.terminal) return;\n this.terminal = true;\n await this.observers?.end(args);\n }\n\n async suspend(args: AgentToolSuspendedArgs): Promise<void> {\n if (this.terminal) return;\n this.terminal = true;\n await this.observers?.suspend(args);\n }\n\n async error(args: AgentToolErrorArgs): Promise<void> {\n if (this.terminal) return;\n this.terminal = true;\n await this.observers?.error(args);\n }\n}\n\nfunction toolOutputToText(output: NormalizedToolOutput): string {\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n return output.value;\n case \"json\":\n case \"error-json\":\n return JSON.stringify(output.value);\n case \"content\":\n return toolResultContentToText(output.value);\n case \"execution-denied\":\n return output.reason ?? \"Tool execution was denied.\";\n }\n}\n\nfunction toolOutputToStructuredResult(\n output: NormalizedToolOutput,\n): readonly ToolResultContentPart[] | undefined {\n return output.type === \"content\" ? output.value : undefined;\n}\n\nfunction agentToolEventPayload(\n toolCall: ToolCallPart,\n internalCallId: string,\n event: ToolCallStreamEvent,\n): AgentToolEventPayload | undefined {\n if (typeof event.agentId !== \"string\" || event.agentId.length === 0) {\n return undefined;\n }\n const payload: AgentToolEventPayload = {\n type: \"agent_tool_event\" as const,\n toolName: toolCall.toolName,\n internalCallId,\n agentId: event.agentId,\n event: event.event as AgentChildStreamEvent<unknown, unknown>,\n };\n if (toolCall.callId !== undefined) {\n payload.toolCallId = toolCall.callId;\n }\n if (event.agentName !== undefined) {\n payload.agentName = event.agentName;\n }\n return payload;\n}\n"],"mappings":"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","names":["descriptor"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createTool
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JU3RX364.js";
|
|
4
4
|
|
|
5
5
|
// src/internal/team-runtime/tools.ts
|
|
6
6
|
import { z } from "zod";
|
|
@@ -64,4 +64,4 @@ export {
|
|
|
64
64
|
teamTools,
|
|
65
65
|
TEAM_INSTRUCTIONS
|
|
66
66
|
};
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-E5MIZ6Z5.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-ZPXOBQDS.js";
|
|
7
7
|
import {
|
|
8
8
|
extract
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VCOGUS3Q.js";
|
|
10
10
|
import {
|
|
11
11
|
evalValuesEqual,
|
|
12
12
|
formatValue
|
|
@@ -328,4 +328,4 @@ export {
|
|
|
328
328
|
llmJudge,
|
|
329
329
|
llmScore
|
|
330
330
|
};
|
|
331
|
-
//# sourceMappingURL=chunk-
|
|
331
|
+
//# sourceMappingURL=chunk-F5BPVVC2.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
addUsage,
|
|
3
3
|
evaluationMetadata,
|
|
4
4
|
runJudge
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-V5KBSXAJ.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveActualText,
|
|
8
8
|
resolveExpected
|
|
@@ -1113,4 +1113,4 @@ export {
|
|
|
1113
1113
|
turnRelevancy,
|
|
1114
1114
|
knowledgeRetention
|
|
1115
1115
|
};
|
|
1116
|
-
//# sourceMappingURL=chunk-
|
|
1116
|
+
//# sourceMappingURL=chunk-GI6APIEU.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-V3FFZWF3.js";
|
|
24
24
|
import {
|
|
25
25
|
extract
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-VCOGUS3Q.js";
|
|
27
27
|
import {
|
|
28
28
|
mapWithConcurrency
|
|
29
29
|
} from "./chunk-4FIVU53H.js";
|
|
@@ -372,4 +372,4 @@ function normalizeParallelBranches(branches) {
|
|
|
372
372
|
export {
|
|
373
373
|
Pipeline
|
|
374
374
|
};
|
|
375
|
-
//# sourceMappingURL=chunk-
|
|
375
|
+
//# sourceMappingURL=chunk-GXVJGJAN.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createTool
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JU3RX364.js";
|
|
4
4
|
|
|
5
5
|
// src/tool/question-tool.ts
|
|
6
6
|
import { z } from "zod";
|
|
@@ -44,4 +44,4 @@ export {
|
|
|
44
44
|
createQuestionTool,
|
|
45
45
|
isQuestionTool
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-IZH2ZAE3.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isToolIndex
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XH2CVR4V.js";
|
|
4
4
|
import {
|
|
5
5
|
isMcpTool
|
|
6
6
|
} from "./chunk-PLDJCCVL.js";
|
|
@@ -165,4 +165,4 @@ function snapshotToolIndex(index) {
|
|
|
165
165
|
export {
|
|
166
166
|
prepareAgentTools
|
|
167
167
|
};
|
|
168
|
-
//# sourceMappingURL=chunk-
|
|
168
|
+
//# sourceMappingURL=chunk-JJSMONFE.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
attachPreparedToolOwner,
|
|
3
3
|
preparedToolInput,
|
|
4
4
|
withoutPreparedToolInput
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WCJRGYF7.js";
|
|
6
6
|
import {
|
|
7
7
|
assertToolApprovalRequirement
|
|
8
8
|
} from "./chunk-YZVFIW5D.js";
|
|
@@ -55,4 +55,4 @@ function snapshotApprovalRequirement(requirement) {
|
|
|
55
55
|
export {
|
|
56
56
|
createTool
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-JU3RX364.js.map
|
|
@@ -1,19 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
STRUCTURED_OUTPUT_RETRY_PROMPT,
|
|
3
|
+
STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT,
|
|
4
|
+
normalizeStructuredOutput,
|
|
5
|
+
structuredOutputRepairPreview
|
|
6
|
+
} from "./chunk-SXE4J43E.js";
|
|
1
7
|
import {
|
|
2
8
|
ToolCallExecutor
|
|
3
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-C36RVQHF.js";
|
|
10
|
+
import {
|
|
11
|
+
AgentInteractionSignal,
|
|
12
|
+
ToolExecutionSuspension,
|
|
13
|
+
approvalInteraction
|
|
14
|
+
} from "./chunk-5IURMWFN.js";
|
|
4
15
|
import {
|
|
5
16
|
normalizeMemoryScope
|
|
6
17
|
} from "./chunk-LAIATEUB.js";
|
|
7
18
|
import {
|
|
8
19
|
AgentRunMemory
|
|
9
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-MA3TYOKF.js";
|
|
10
21
|
import {
|
|
11
22
|
fetchContextDocuments,
|
|
12
23
|
fetchToolDefinitions
|
|
13
24
|
} from "./chunk-PFJN5OIQ.js";
|
|
14
25
|
import {
|
|
15
26
|
getInternalAgentRunOptions
|
|
16
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-SBWSXEIH.js";
|
|
17
28
|
import {
|
|
18
29
|
assertNonnegativeSafeInteger,
|
|
19
30
|
assertPositiveSafeInteger
|
|
@@ -23,25 +34,14 @@ import {
|
|
|
23
34
|
addTurnToToolCallDelta,
|
|
24
35
|
isGenerationDeltaEvent
|
|
25
36
|
} from "./chunk-YWRXOPHC.js";
|
|
26
|
-
import {
|
|
27
|
-
STRUCTURED_OUTPUT_RETRY_PROMPT,
|
|
28
|
-
STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT,
|
|
29
|
-
normalizeStructuredOutput,
|
|
30
|
-
structuredOutputRepairPreview
|
|
31
|
-
} from "./chunk-SXE4J43E.js";
|
|
32
37
|
import {
|
|
33
38
|
parseContinuationState,
|
|
34
39
|
questionResult,
|
|
35
40
|
serializeContinuationState
|
|
36
41
|
} from "./chunk-5I2NVRHC.js";
|
|
37
|
-
import {
|
|
38
|
-
AgentInteractionSignal,
|
|
39
|
-
ToolExecutionSuspension,
|
|
40
|
-
approvalInteraction
|
|
41
|
-
} from "./chunk-5IURMWFN.js";
|
|
42
42
|
import {
|
|
43
43
|
isQuestionTool
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-IZH2ZAE3.js";
|
|
45
45
|
import {
|
|
46
46
|
startAgentRunObservers
|
|
47
47
|
} from "./chunk-YNA3UR42.js";
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
} from "./chunk-6BTJC3ES.js";
|
|
86
86
|
import {
|
|
87
87
|
isStreamingCompletionModel
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-LGPXCJJO.js";
|
|
89
89
|
import {
|
|
90
90
|
createCompletionRequest
|
|
91
91
|
} from "./chunk-GSVOMQEE.js";
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
} from "./chunk-4ONUNWGC.js";
|
|
95
95
|
import {
|
|
96
96
|
CompletionStreamAccumulator
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-MIPBH5S7.js";
|
|
98
98
|
import {
|
|
99
99
|
assertCompletionResponseIntegrity
|
|
100
100
|
} from "./chunk-XQV3XNVT.js";
|
|
@@ -152,6 +152,7 @@ var AgentRun = class _AgentRun {
|
|
|
152
152
|
"maxTurns"
|
|
153
153
|
);
|
|
154
154
|
const internalOptions = getInternalAgentRunOptions(options);
|
|
155
|
+
this.execution = internalOptions?.execution;
|
|
155
156
|
this.activeHook = internalOptions?.hook;
|
|
156
157
|
this.onInternalFailure = internalOptions?.onFailure;
|
|
157
158
|
this.beforeFinish = internalOptions?.beforeFinish;
|
|
@@ -202,6 +203,7 @@ var AgentRun = class _AgentRun {
|
|
|
202
203
|
requestMiddlewares;
|
|
203
204
|
controls;
|
|
204
205
|
steeringMessages = [];
|
|
206
|
+
execution;
|
|
205
207
|
runState = "idle";
|
|
206
208
|
memoryRecorder;
|
|
207
209
|
memoryScope;
|
|
@@ -941,7 +943,11 @@ var AgentRun = class _AgentRun {
|
|
|
941
943
|
}
|
|
942
944
|
}
|
|
943
945
|
}
|
|
944
|
-
|
|
946
|
+
runCompletion(request, turn, runObservers) {
|
|
947
|
+
const execute = () => this.runUncachedCompletion(request, turn, runObservers);
|
|
948
|
+
return this.execution === void 0 ? execute() : this.execution.completion(turn, request, execute);
|
|
949
|
+
}
|
|
950
|
+
async runUncachedCompletion(request, turn, runObservers) {
|
|
945
951
|
assertCompletionRequestSupported(this.agent.model, request);
|
|
946
952
|
this.validatedStructuredOutput = void 0;
|
|
947
953
|
this.failedCompletionUsage = Usage.empty();
|
|
@@ -1348,7 +1354,8 @@ var AgentRun = class _AgentRun {
|
|
|
1348
1354
|
this.concurrency,
|
|
1349
1355
|
this.requestMiddlewares,
|
|
1350
1356
|
this.abortController.signal,
|
|
1351
|
-
(reason) => this.cancelled(newMessages, reason)
|
|
1357
|
+
(reason) => this.cancelled(newMessages, reason),
|
|
1358
|
+
this.execution
|
|
1352
1359
|
);
|
|
1353
1360
|
}
|
|
1354
1361
|
async resolveContinuationTools(runId, newMessages, onResult, onStreamEvent, observation) {
|
|
@@ -2336,4 +2343,4 @@ function observerRunEnd(outcome) {
|
|
|
2336
2343
|
export {
|
|
2337
2344
|
AgentRun
|
|
2338
2345
|
};
|
|
2339
|
-
//# sourceMappingURL=chunk-
|
|
2346
|
+
//# sourceMappingURL=chunk-KHUWYYOH.js.map
|