@anvia/core 1.13.0 → 1.14.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/dist/agent/agent.js +7 -7
- package/dist/agent/index.d.ts +4 -4
- package/dist/agent/index.js +10 -10
- package/dist/agent/resolve-options.js +1 -1
- package/dist/agent/resolved-agent.js +8 -8
- package/dist/agent/snapshot.js +1 -1
- package/dist/agent/team/agent-team.js +10 -10
- package/dist/agent/team/index.js +10 -10
- package/dist/agent/tool-catalog.js +3 -3
- package/dist/{agent-BuX5AXsO.d.ts → agent-DdkrgyW0.d.ts} +1 -1
- package/dist/{chunk-NVALGVQG.js → chunk-4PV56T23.js} +7 -1
- package/dist/chunk-4PV56T23.js.map +1 -0
- package/dist/{chunk-22E25UM7.js → chunk-6S7ZON2E.js} +2 -2
- package/dist/{chunk-OZ2GZHWH.js → chunk-ATFSEEFX.js} +20 -11
- package/dist/chunk-ATFSEEFX.js.map +1 -0
- package/dist/{chunk-KL652GO5.js → chunk-EF26KTFU.js} +2 -2
- package/dist/{chunk-AGOZCYFP.js → chunk-ET5SCES6.js} +6 -6
- package/dist/{chunk-KDGMHES4.js → chunk-GEFG7VGF.js} +4 -4
- package/dist/{chunk-YNA3UR42.js → chunk-J5UQ5I76.js} +72 -21
- package/dist/chunk-J5UQ5I76.js.map +1 -0
- package/dist/{chunk-MG7JYQN2.js → chunk-LC23KCUN.js} +1 -1
- package/dist/chunk-LC23KCUN.js.map +1 -0
- package/dist/{chunk-L2JI2GDH.js → chunk-PNMBJMLB.js} +2 -2
- package/dist/{chunk-ED7RKQHE.js → chunk-RVGSTZD3.js} +7 -3
- package/dist/chunk-RVGSTZD3.js.map +1 -0
- package/dist/{chunk-D43A3KOF.js → chunk-SS52CC5R.js} +3 -3
- package/dist/{chunk-HF5SX5BQ.js → chunk-TJOIYN4O.js} +4 -4
- package/dist/{chunk-KLDNHX4Z.js → chunk-X4XULHDO.js} +4 -4
- package/dist/{chunk-CKWIXVXM.js → chunk-XIIVC5LY.js} +3 -3
- package/dist/embeddings/index.js +8 -8
- package/dist/evals/advanced-metrics.js +2 -2
- package/dist/evals/cli.js +3 -3
- package/dist/evals/index.d.ts +1 -1
- package/dist/evals/index.js +32 -32
- package/dist/evals/metrics.js +4 -4
- package/dist/evals/runner.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +12 -12
- package/dist/internal/agent-runtime/agent-run.js +4 -4
- package/dist/internal/agent-runtime/execution.js +1 -1
- package/dist/internal/agent-runtime/retrieval.js +1 -1
- package/dist/internal/agent-runtime/tool-execution.js +2 -2
- package/dist/internal/agent.d.ts +20 -4
- package/dist/internal/agent.js +9 -9
- package/dist/internal/team-runtime/run.js +9 -9
- package/dist/{middleware-D_kNSjzW.d.ts → middleware-rxi6GI2B.d.ts} +16 -1
- package/dist/observability/group.js +1 -1
- package/dist/observability/index.d.ts +1 -1
- package/dist/observability/index.js +1 -1
- package/dist/pipeline/index.d.ts +2 -2
- package/dist/skills/index.js +3 -3
- package/dist/skills/load.js +3 -3
- package/dist/skills/tools.js +1 -1
- package/dist/tool/dynamic-tools.js +1 -1
- package/dist/tool/index.d.ts +1 -1
- package/dist/tool/index.js +1 -1
- package/dist/vector-store/index.js +1 -1
- package/dist/vector-store/ingest.js +1 -1
- package/dist/vector-store/retrieve.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-ED7RKQHE.js.map +0 -1
- package/dist/chunk-MG7JYQN2.js.map +0 -1
- package/dist/chunk-NVALGVQG.js.map +0 -1
- package/dist/chunk-OZ2GZHWH.js.map +0 -1
- package/dist/chunk-YNA3UR42.js.map +0 -1
- /package/dist/{chunk-22E25UM7.js.map → chunk-6S7ZON2E.js.map} +0 -0
- /package/dist/{chunk-KL652GO5.js.map → chunk-EF26KTFU.js.map} +0 -0
- /package/dist/{chunk-AGOZCYFP.js.map → chunk-ET5SCES6.js.map} +0 -0
- /package/dist/{chunk-KDGMHES4.js.map → chunk-GEFG7VGF.js.map} +0 -0
- /package/dist/{chunk-L2JI2GDH.js.map → chunk-PNMBJMLB.js.map} +0 -0
- /package/dist/{chunk-D43A3KOF.js.map → chunk-SS52CC5R.js.map} +0 -0
- /package/dist/{chunk-HF5SX5BQ.js.map → chunk-TJOIYN4O.js.map} +0 -0
- /package/dist/{chunk-KLDNHX4Z.js.map → chunk-X4XULHDO.js.map} +0 -0
- /package/dist/{chunk-CKWIXVXM.js.map → chunk-XIIVC5LY.js.map} +0 -0
|
@@ -6,6 +6,12 @@ import {
|
|
|
6
6
|
} from "./chunk-HJ6KTQTZ.js";
|
|
7
7
|
|
|
8
8
|
// src/observability/group.ts
|
|
9
|
+
var defaultOnObserverError = (failure) => {
|
|
10
|
+
const message = failure.error instanceof Error ? failure.error.message : String(failure.error);
|
|
11
|
+
console.error(
|
|
12
|
+
`[anvia] observer "${failure.observer}" failed during ${failure.phase}: ${message}`
|
|
13
|
+
);
|
|
14
|
+
};
|
|
9
15
|
var AgentObserverDispatchError = class extends AggregateError {
|
|
10
16
|
phase;
|
|
11
17
|
failures;
|
|
@@ -47,18 +53,23 @@ async function startAgentRunObservers(observers, args, options) {
|
|
|
47
53
|
);
|
|
48
54
|
throw new AgentObserverDispatchError("startRun", [...failures, ...cleanupFailures]);
|
|
49
55
|
}
|
|
56
|
+
if (options.errorPolicy === "ignore") {
|
|
57
|
+
reportObserverFailures("startRun", failures, options.onObserverError ?? defaultOnObserverError);
|
|
58
|
+
}
|
|
50
59
|
return new ActiveAgentRunObservers(runObservers, options);
|
|
51
60
|
}
|
|
52
61
|
var ActiveAgentRunObservers = class {
|
|
53
62
|
constructor(runObservers, options) {
|
|
54
63
|
this.runObservers = runObservers;
|
|
55
64
|
this.options = options;
|
|
65
|
+
this.onObserverError = options.onObserverError ?? defaultOnObserverError;
|
|
56
66
|
const primary = options.primaryTrace === void 0 ? void 0 : runObservers.find((entry) => entry.name === options.primaryTrace);
|
|
57
67
|
this.trace = primary?.observer.trace === void 0 ? void 0 : Object.freeze({ observer: primary.name, ...primary.observer.trace });
|
|
58
68
|
}
|
|
59
69
|
runObservers;
|
|
60
70
|
options;
|
|
61
71
|
trace;
|
|
72
|
+
onObserverError;
|
|
62
73
|
async startGeneration(args) {
|
|
63
74
|
const generationObservers = [];
|
|
64
75
|
const failures = [];
|
|
@@ -81,7 +92,14 @@ var ActiveAgentRunObservers = class {
|
|
|
81
92
|
);
|
|
82
93
|
throw new AgentObserverDispatchError("startGeneration", [...failures, ...cleanupFailures]);
|
|
83
94
|
}
|
|
84
|
-
|
|
95
|
+
if (this.options.errorPolicy === "ignore") {
|
|
96
|
+
reportObserverFailures("startGeneration", failures, this.onObserverError);
|
|
97
|
+
}
|
|
98
|
+
return new ActiveGenerationObservers(
|
|
99
|
+
generationObservers,
|
|
100
|
+
this.options.errorPolicy,
|
|
101
|
+
this.onObserverError
|
|
102
|
+
);
|
|
85
103
|
}
|
|
86
104
|
async startTool(args) {
|
|
87
105
|
const toolObservers = [];
|
|
@@ -105,14 +123,18 @@ var ActiveAgentRunObservers = class {
|
|
|
105
123
|
);
|
|
106
124
|
throw new AgentObserverDispatchError("startTool", [...failures, ...cleanupFailures]);
|
|
107
125
|
}
|
|
108
|
-
|
|
126
|
+
if (this.options.errorPolicy === "ignore") {
|
|
127
|
+
reportObserverFailures("startTool", failures, this.onObserverError);
|
|
128
|
+
}
|
|
129
|
+
return new ActiveToolObservers(toolObservers, this.options.errorPolicy, this.onObserverError);
|
|
109
130
|
}
|
|
110
131
|
async end(args) {
|
|
111
132
|
await dispatchTerminalObservers(
|
|
112
133
|
this.runObservers,
|
|
113
134
|
"end",
|
|
114
135
|
(observer) => observer.end(observerSnapshot(args)),
|
|
115
|
-
this.options.errorPolicy
|
|
136
|
+
this.options.errorPolicy,
|
|
137
|
+
this.onObserverError
|
|
116
138
|
);
|
|
117
139
|
}
|
|
118
140
|
async error(args) {
|
|
@@ -120,7 +142,8 @@ var ActiveAgentRunObservers = class {
|
|
|
120
142
|
this.runObservers,
|
|
121
143
|
"error",
|
|
122
144
|
(observer) => observer.error?.(observerSnapshot(args)),
|
|
123
|
-
"ignore"
|
|
145
|
+
"ignore",
|
|
146
|
+
this.onObserverError
|
|
124
147
|
);
|
|
125
148
|
}
|
|
126
149
|
async event(args) {
|
|
@@ -128,23 +151,27 @@ var ActiveAgentRunObservers = class {
|
|
|
128
151
|
this.runObservers,
|
|
129
152
|
"event",
|
|
130
153
|
(observer) => observer.event?.(observerSnapshot(args)),
|
|
131
|
-
this.options.errorPolicy
|
|
154
|
+
this.options.errorPolicy,
|
|
155
|
+
this.onObserverError
|
|
132
156
|
);
|
|
133
157
|
}
|
|
134
158
|
};
|
|
135
159
|
var ActiveGenerationObservers = class {
|
|
136
|
-
constructor(observers, errorPolicy) {
|
|
160
|
+
constructor(observers, errorPolicy, onObserverError) {
|
|
137
161
|
this.observers = observers;
|
|
138
162
|
this.errorPolicy = errorPolicy;
|
|
163
|
+
this.onObserverError = onObserverError ?? defaultOnObserverError;
|
|
139
164
|
}
|
|
140
165
|
observers;
|
|
141
166
|
errorPolicy;
|
|
167
|
+
onObserverError;
|
|
142
168
|
async end(args) {
|
|
143
169
|
await dispatchTerminalObservers(
|
|
144
170
|
this.observers,
|
|
145
171
|
"generation.end",
|
|
146
172
|
(observer) => observer.end(observerSnapshot(args)),
|
|
147
|
-
this.errorPolicy
|
|
173
|
+
this.errorPolicy,
|
|
174
|
+
this.onObserverError
|
|
148
175
|
);
|
|
149
176
|
}
|
|
150
177
|
async error(args) {
|
|
@@ -152,7 +179,8 @@ var ActiveGenerationObservers = class {
|
|
|
152
179
|
this.observers,
|
|
153
180
|
"generation.error",
|
|
154
181
|
(observer) => observer.error?.(observerSnapshot(args)),
|
|
155
|
-
"ignore"
|
|
182
|
+
"ignore",
|
|
183
|
+
this.onObserverError
|
|
156
184
|
);
|
|
157
185
|
}
|
|
158
186
|
async update(args) {
|
|
@@ -160,23 +188,27 @@ var ActiveGenerationObservers = class {
|
|
|
160
188
|
this.observers,
|
|
161
189
|
"generation.update",
|
|
162
190
|
(observer) => observer.update?.(observerSnapshot(args)),
|
|
163
|
-
this.errorPolicy
|
|
191
|
+
this.errorPolicy,
|
|
192
|
+
this.onObserverError
|
|
164
193
|
);
|
|
165
194
|
}
|
|
166
195
|
};
|
|
167
196
|
var ActiveToolObservers = class {
|
|
168
|
-
constructor(observers, errorPolicy) {
|
|
197
|
+
constructor(observers, errorPolicy, onObserverError) {
|
|
169
198
|
this.observers = observers;
|
|
170
199
|
this.errorPolicy = errorPolicy;
|
|
200
|
+
this.onObserverError = onObserverError ?? defaultOnObserverError;
|
|
171
201
|
}
|
|
172
202
|
observers;
|
|
173
203
|
errorPolicy;
|
|
204
|
+
onObserverError;
|
|
174
205
|
async streamEvent(args) {
|
|
175
206
|
await dispatchObservers(
|
|
176
207
|
this.observers,
|
|
177
208
|
"tool.streamEvent",
|
|
178
209
|
(observer) => observer.streamEvent?.(observerSnapshot(args)),
|
|
179
|
-
this.errorPolicy
|
|
210
|
+
this.errorPolicy,
|
|
211
|
+
this.onObserverError
|
|
180
212
|
);
|
|
181
213
|
}
|
|
182
214
|
async end(args) {
|
|
@@ -184,7 +216,8 @@ var ActiveToolObservers = class {
|
|
|
184
216
|
this.observers,
|
|
185
217
|
"tool.end",
|
|
186
218
|
(observer) => observer.end(observerSnapshot(args)),
|
|
187
|
-
this.errorPolicy
|
|
219
|
+
this.errorPolicy,
|
|
220
|
+
this.onObserverError
|
|
188
221
|
);
|
|
189
222
|
}
|
|
190
223
|
async suspend(args) {
|
|
@@ -192,7 +225,8 @@ var ActiveToolObservers = class {
|
|
|
192
225
|
this.observers,
|
|
193
226
|
"tool.suspend",
|
|
194
227
|
(observer) => observer.suspend?.(observerSnapshot(args)),
|
|
195
|
-
this.errorPolicy
|
|
228
|
+
this.errorPolicy,
|
|
229
|
+
this.onObserverError
|
|
196
230
|
);
|
|
197
231
|
}
|
|
198
232
|
async error(args) {
|
|
@@ -200,11 +234,12 @@ var ActiveToolObservers = class {
|
|
|
200
234
|
this.observers,
|
|
201
235
|
"tool.error",
|
|
202
236
|
(observer) => observer.error?.(observerSnapshot(args)),
|
|
203
|
-
"ignore"
|
|
237
|
+
"ignore",
|
|
238
|
+
this.onObserverError
|
|
204
239
|
);
|
|
205
240
|
}
|
|
206
241
|
};
|
|
207
|
-
async function dispatchObservers(observers, phase, dispatch, errorPolicy) {
|
|
242
|
+
async function dispatchObservers(observers, phase, dispatch, errorPolicy, onObserverError) {
|
|
208
243
|
const failures = [];
|
|
209
244
|
for (const entry of observers) {
|
|
210
245
|
try {
|
|
@@ -213,11 +248,11 @@ async function dispatchObservers(observers, phase, dispatch, errorPolicy) {
|
|
|
213
248
|
failures.push({ observer: entry.name, error });
|
|
214
249
|
}
|
|
215
250
|
}
|
|
216
|
-
throwObserverFailures(phase, failures, errorPolicy);
|
|
251
|
+
throwObserverFailures(phase, failures, errorPolicy, onObserverError);
|
|
217
252
|
}
|
|
218
|
-
async function dispatchTerminalObservers(observers, phase, dispatch, errorPolicy) {
|
|
253
|
+
async function dispatchTerminalObservers(observers, phase, dispatch, errorPolicy, onObserverError) {
|
|
219
254
|
const failures = await terminateObservers(observers, dispatch);
|
|
220
|
-
throwObserverFailures(phase, failures, errorPolicy);
|
|
255
|
+
throwObserverFailures(phase, failures, errorPolicy, onObserverError);
|
|
221
256
|
}
|
|
222
257
|
async function terminateObservers(observers, dispatch) {
|
|
223
258
|
const failures = [];
|
|
@@ -232,10 +267,26 @@ async function terminateObservers(observers, dispatch) {
|
|
|
232
267
|
}
|
|
233
268
|
return failures;
|
|
234
269
|
}
|
|
235
|
-
function throwObserverFailures(phase, failures, errorPolicy) {
|
|
236
|
-
if (
|
|
270
|
+
function throwObserverFailures(phase, failures, errorPolicy, onObserverError) {
|
|
271
|
+
if (failures.length === 0) return;
|
|
272
|
+
if (errorPolicy === "throw") {
|
|
237
273
|
throw new AgentObserverDispatchError(phase, failures);
|
|
238
274
|
}
|
|
275
|
+
reportObserverFailures(phase, failures, onObserverError);
|
|
276
|
+
}
|
|
277
|
+
function reportObserverFailures(phase, failures, onObserverError) {
|
|
278
|
+
for (const failure of failures) {
|
|
279
|
+
const report = {
|
|
280
|
+
phase,
|
|
281
|
+
observer: failure.observer,
|
|
282
|
+
error: failure.error
|
|
283
|
+
};
|
|
284
|
+
try {
|
|
285
|
+
void Promise.resolve(onObserverError(report)).catch(() => {
|
|
286
|
+
});
|
|
287
|
+
} catch {
|
|
288
|
+
}
|
|
289
|
+
}
|
|
239
290
|
}
|
|
240
291
|
|
|
241
292
|
export {
|
|
@@ -245,4 +296,4 @@ export {
|
|
|
245
296
|
ActiveGenerationObservers,
|
|
246
297
|
ActiveToolObservers
|
|
247
298
|
};
|
|
248
|
-
//# sourceMappingURL=chunk-
|
|
299
|
+
//# sourceMappingURL=chunk-J5UQ5I76.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/observability/group.ts"],"sourcesContent":["import { Usage } from \"../completion\";\nimport { observerSnapshot } from \"./snapshot\";\nimport type {\n AgentGenerationEndArgs,\n AgentGenerationErrorArgs,\n AgentGenerationObserver,\n AgentGenerationStartArgs,\n AgentGenerationUpdateArgs,\n AgentObserverErrorHandler,\n AgentObserverErrorPolicy,\n AgentObserverFailureReport,\n AgentObserverMap,\n AgentRunEndArgs,\n AgentRunErrorArgs,\n AgentRunEventArgs,\n AgentRunObserver,\n AgentRunStartArgs,\n AgentToolEndArgs,\n AgentToolErrorArgs,\n AgentToolObserver,\n AgentToolStartArgs,\n AgentToolStreamEventArgs,\n AgentToolSuspendedArgs,\n AgentTraceInfo,\n} from \"./types\";\n\nexport type AgentObserverFailure = {\n readonly observer: string;\n readonly error: unknown;\n};\n\nconst defaultOnObserverError: AgentObserverErrorHandler = (failure) => {\n const message = failure.error instanceof Error ? failure.error.message : String(failure.error);\n console.error(\n `[anvia] observer \"${failure.observer}\" failed during ${failure.phase}: ${message}`,\n );\n};\n\nexport class AgentObserverDispatchError extends AggregateError {\n readonly phase: string;\n readonly failures: readonly AgentObserverFailure[];\n\n constructor(phase: string, failures: readonly AgentObserverFailure[]) {\n super(\n failures.map((failure) => failure.error),\n `Agent observer ${phase} failed for ${failures.map((failure) => failure.observer).join(\", \")}.`,\n );\n this.name = \"AgentObserverDispatchError\";\n this.phase = phase;\n this.failures = Object.freeze([...failures]);\n }\n}\n\ntype NamedObserver<T> = {\n readonly name: string;\n readonly observer: T;\n};\n\ntype ActiveNamedObserver<T> = NamedObserver<T> & {\n terminal: boolean;\n};\n\nexport async function startAgentRunObservers(\n observers: AgentObserverMap,\n args: AgentRunStartArgs,\n options: {\n readonly primaryTrace?: string | undefined;\n readonly errorPolicy: AgentObserverErrorPolicy;\n readonly onObserverError?: AgentObserverErrorHandler | undefined;\n },\n): Promise<ActiveAgentRunObservers> {\n const runObservers: ActiveNamedObserver<AgentRunObserver>[] = [];\n const failures: AgentObserverFailure[] = [];\n for (const [name, observer] of Object.entries(observers)) {\n try {\n const runObserver = await observer.startRun(observerSnapshot(args));\n if (runObserver !== undefined) {\n runObservers.push({ name, observer: runObserver, terminal: false });\n }\n } catch (error) {\n failures.push({ observer: name, error });\n }\n }\n if (options.errorPolicy === \"throw\" && failures.length > 0) {\n const startupError = new AgentObserverDispatchError(\"startRun\", failures);\n const cleanupFailures = await terminateObservers(runObservers, (observer) =>\n observer.error?.(\n observerSnapshot({\n status: \"failed\",\n error: startupError,\n usage: Usage.empty(),\n messages: [...args.history, args.prompt],\n }),\n ),\n );\n throw new AgentObserverDispatchError(\"startRun\", [...failures, ...cleanupFailures]);\n }\n if (options.errorPolicy === \"ignore\") {\n reportObserverFailures(\"startRun\", failures, options.onObserverError ?? defaultOnObserverError);\n }\n return new ActiveAgentRunObservers(runObservers, options);\n}\n\nexport class ActiveAgentRunObservers {\n readonly trace: AgentTraceInfo | undefined;\n private readonly onObserverError: AgentObserverErrorHandler;\n\n constructor(\n private readonly runObservers: readonly ActiveNamedObserver<AgentRunObserver>[],\n private readonly options: {\n readonly primaryTrace?: string | undefined;\n readonly errorPolicy: AgentObserverErrorPolicy;\n readonly onObserverError?: AgentObserverErrorHandler | undefined;\n },\n ) {\n this.onObserverError = options.onObserverError ?? defaultOnObserverError;\n const primary =\n options.primaryTrace === undefined\n ? undefined\n : runObservers.find((entry) => entry.name === options.primaryTrace);\n this.trace =\n primary?.observer.trace === undefined\n ? undefined\n : Object.freeze({ observer: primary.name, ...primary.observer.trace });\n }\n\n async startGeneration(args: AgentGenerationStartArgs): Promise<ActiveGenerationObservers> {\n const generationObservers: ActiveNamedObserver<AgentGenerationObserver>[] = [];\n const failures: AgentObserverFailure[] = [];\n for (const entry of this.runObservers) {\n if (entry.observer.startGeneration === undefined) continue;\n try {\n const observer = await entry.observer.startGeneration(observerSnapshot(args));\n if (observer !== undefined) {\n generationObservers.push({ name: entry.name, observer, terminal: false });\n }\n } catch (error) {\n failures.push({ observer: entry.name, error });\n }\n }\n if (this.options.errorPolicy === \"throw\" && failures.length > 0) {\n const startupError = new AgentObserverDispatchError(\"startGeneration\", failures);\n const cleanupFailures = await terminateObservers(generationObservers, (observer) =>\n observer.error?.(observerSnapshot({ turn: args.turn, error: startupError })),\n );\n throw new AgentObserverDispatchError(\"startGeneration\", [...failures, ...cleanupFailures]);\n }\n if (this.options.errorPolicy === \"ignore\") {\n reportObserverFailures(\"startGeneration\", failures, this.onObserverError);\n }\n return new ActiveGenerationObservers(\n generationObservers,\n this.options.errorPolicy,\n this.onObserverError,\n );\n }\n\n async startTool(args: AgentToolStartArgs): Promise<ActiveToolObservers> {\n const toolObservers: ActiveNamedObserver<AgentToolObserver>[] = [];\n const failures: AgentObserverFailure[] = [];\n for (const entry of this.runObservers) {\n if (entry.observer.startTool === undefined) continue;\n try {\n const observer = await entry.observer.startTool(observerSnapshot(args));\n if (observer !== undefined) {\n toolObservers.push({ name: entry.name, observer, terminal: false });\n }\n } catch (error) {\n failures.push({ observer: entry.name, error });\n }\n }\n if (this.options.errorPolicy === \"throw\" && failures.length > 0) {\n const startupError = new AgentObserverDispatchError(\"startTool\", failures);\n const cleanupFailures = await terminateObservers(toolObservers, (observer) =>\n observer.error?.(observerSnapshot({ ...args, error: startupError })),\n );\n throw new AgentObserverDispatchError(\"startTool\", [...failures, ...cleanupFailures]);\n }\n if (this.options.errorPolicy === \"ignore\") {\n reportObserverFailures(\"startTool\", failures, this.onObserverError);\n }\n return new ActiveToolObservers(toolObservers, this.options.errorPolicy, this.onObserverError);\n }\n\n async end(args: AgentRunEndArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.runObservers,\n \"end\",\n (observer) => observer.end(observerSnapshot(args)),\n this.options.errorPolicy,\n this.onObserverError,\n );\n }\n\n async error(args: AgentRunErrorArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.runObservers,\n \"error\",\n (observer) => observer.error?.(observerSnapshot(args)),\n \"ignore\",\n this.onObserverError,\n );\n }\n\n async event(args: AgentRunEventArgs): Promise<void> {\n await dispatchObservers(\n this.runObservers,\n \"event\",\n (observer) => observer.event?.(observerSnapshot(args)),\n this.options.errorPolicy,\n this.onObserverError,\n );\n }\n}\n\nexport class ActiveGenerationObservers {\n private readonly onObserverError: AgentObserverErrorHandler;\n\n constructor(\n private readonly observers: readonly ActiveNamedObserver<AgentGenerationObserver>[],\n private readonly errorPolicy: AgentObserverErrorPolicy,\n onObserverError?: AgentObserverErrorHandler,\n ) {\n this.onObserverError = onObserverError ?? defaultOnObserverError;\n }\n\n async end(args: AgentGenerationEndArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.observers,\n \"generation.end\",\n (observer) => observer.end(observerSnapshot(args)),\n this.errorPolicy,\n this.onObserverError,\n );\n }\n\n async error(args: AgentGenerationErrorArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.observers,\n \"generation.error\",\n (observer) => observer.error?.(observerSnapshot(args)),\n \"ignore\",\n this.onObserverError,\n );\n }\n\n async update(args: AgentGenerationUpdateArgs): Promise<void> {\n await dispatchObservers(\n this.observers,\n \"generation.update\",\n (observer) => observer.update?.(observerSnapshot(args)),\n this.errorPolicy,\n this.onObserverError,\n );\n }\n}\n\nexport class ActiveToolObservers {\n private readonly onObserverError: AgentObserverErrorHandler;\n\n constructor(\n private readonly observers: readonly ActiveNamedObserver<AgentToolObserver>[],\n private readonly errorPolicy: AgentObserverErrorPolicy,\n onObserverError?: AgentObserverErrorHandler,\n ) {\n this.onObserverError = onObserverError ?? defaultOnObserverError;\n }\n\n async streamEvent(args: AgentToolStreamEventArgs): Promise<void> {\n await dispatchObservers(\n this.observers,\n \"tool.streamEvent\",\n (observer) => observer.streamEvent?.(observerSnapshot(args)),\n this.errorPolicy,\n this.onObserverError,\n );\n }\n\n async end(args: AgentToolEndArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.observers,\n \"tool.end\",\n (observer) => observer.end(observerSnapshot(args)),\n this.errorPolicy,\n this.onObserverError,\n );\n }\n\n async suspend(args: AgentToolSuspendedArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.observers,\n \"tool.suspend\",\n (observer) => observer.suspend?.(observerSnapshot(args)),\n this.errorPolicy,\n this.onObserverError,\n );\n }\n\n async error(args: AgentToolErrorArgs): Promise<void> {\n await dispatchTerminalObservers(\n this.observers,\n \"tool.error\",\n (observer) => observer.error?.(observerSnapshot(args)),\n \"ignore\",\n this.onObserverError,\n );\n }\n}\n\nasync function dispatchObservers<T>(\n observers: readonly NamedObserver<T>[],\n phase: string,\n dispatch: (observer: T) => void | Promise<void> | undefined,\n errorPolicy: AgentObserverErrorPolicy,\n onObserverError: AgentObserverErrorHandler,\n): Promise<void> {\n const failures: AgentObserverFailure[] = [];\n for (const entry of observers) {\n try {\n await dispatch(entry.observer);\n } catch (error) {\n failures.push({ observer: entry.name, error });\n }\n }\n throwObserverFailures(phase, failures, errorPolicy, onObserverError);\n}\n\nasync function dispatchTerminalObservers<T>(\n observers: readonly ActiveNamedObserver<T>[],\n phase: string,\n dispatch: (observer: T) => void | Promise<void> | undefined,\n errorPolicy: AgentObserverErrorPolicy,\n onObserverError: AgentObserverErrorHandler,\n): Promise<void> {\n const failures = await terminateObservers(observers, dispatch);\n throwObserverFailures(phase, failures, errorPolicy, onObserverError);\n}\n\nasync function terminateObservers<T>(\n observers: readonly ActiveNamedObserver<T>[],\n dispatch: (observer: T) => void | Promise<void> | undefined,\n): Promise<AgentObserverFailure[]> {\n const failures: AgentObserverFailure[] = [];\n for (const entry of observers) {\n if (entry.terminal) continue;\n entry.terminal = true;\n try {\n await dispatch(entry.observer);\n } catch (error) {\n failures.push({ observer: entry.name, error });\n }\n }\n return failures;\n}\n\nfunction throwObserverFailures(\n phase: string,\n failures: readonly AgentObserverFailure[],\n errorPolicy: AgentObserverErrorPolicy,\n onObserverError: AgentObserverErrorHandler,\n): void {\n if (failures.length === 0) return;\n if (errorPolicy === \"throw\") {\n throw new AgentObserverDispatchError(phase, failures);\n }\n reportObserverFailures(phase, failures, onObserverError);\n}\n\nfunction reportObserverFailures(\n phase: string,\n failures: readonly AgentObserverFailure[],\n onObserverError: AgentObserverErrorHandler,\n): void {\n for (const failure of failures) {\n const report: AgentObserverFailureReport = {\n phase,\n observer: failure.observer,\n error: failure.error,\n };\n try {\n // Reporting must not block the run or leak a rejected handler promise.\n void Promise.resolve(onObserverError(report)).catch(() => {});\n } catch {\n // A faulty sink must not turn an ignored observer failure into a rejected run.\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/agent-runtime/execution.ts"],"sourcesContent":["import type { PreparedLoopContext, LoopContextCheckpoint } from \"./loop-context\";\nimport type {\n CompletionRequest,\n CompletionResponse,\n ToolCallPart,\n Message,\n UserMessage,\n} from \"../../completion\";\nimport type { NormalizedToolOutput, ToolCallContext } from \"../../tool\";\nimport type { AgentStreamEvent } from \"../../agent/run-types\";\n\n/** Runtime capability marker: older core versions must fail before accepting durable work. */\nexport const AGENT_RUN_EXECUTION_VERSION = 4;\n\n/** Normalized generation progress; never includes raw provider responses. */\nexport type AgentCompletionStreamEvent = Extract<\n AgentStreamEvent<unknown, unknown>,\n {\n type:\n | \"text_delta\"\n | \"reasoning_delta\"\n | \"tool_call_delta\"\n | \"tool_call\"\n | \"source\"\n | \"provider_tool_call\";\n }\n>;\n\nexport type AgentCompletionStream = AsyncGenerator<AgentCompletionStreamEvent, CompletionResponse>;\n\nexport type AgentToolExecutionResult =\n | { output: NormalizedToolOutput; failed: false }\n | { output: NormalizedToolOutput; failed: true; error: unknown };\n\n/** A run step the execution runtime may restore from a committed checkpoint. */\nexport type AgentRunExecutionStep =\n | { kind: \"context\"; turn: number }\n | { kind: \"model\"; turn: number }\n | { kind: \"tool\"; toolCall: ToolCallPart };\n\n/** Internal persistence boundary used by execution runtimes. Callbacks own external effects. */\nexport interface AgentRunExecution {\n /**\n * Whether a step is already committed and will be restored rather than executed. Queried before\n * the step starts; replayed steps are not observed or counted as run usage again.\n */\n replayed?(step: AgentRunExecutionStep): boolean;\n /** Synchronously checkpoint queued input at a safe boundary, including empty/closing drains. */\n drainSteering?(turn: number, closing: boolean): { id: string; messages: UserMessage[] }[];\n /** Persist the context selected before each model call, including skipped compaction decisions. */\n prepareMessages?(\n turn: number,\n messages: readonly Message[],\n checkpoint?: LoopContextCheckpoint,\n ): Promise<PreparedLoopContext>;\n completion(\n turn: number,\n request: CompletionRequest,\n execute: () => Promise<CompletionResponse>,\n ): Promise<CompletionResponse>;\n streamCompletion?(\n turn: number,\n request: CompletionRequest,\n execute: () => AgentCompletionStream,\n ): AgentCompletionStream;\n tool(\n call: { turn: number; toolCall: ToolCallPart; args: string },\n execute: (context?: Pick<ToolCallContext, \"operationId\">) => Promise<AgentToolExecutionResult>,\n ): Promise<AgentToolExecutionResult>;\n}\n"],"mappings":";AAYO,IAAM,8BAA8B;","names":[]}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-PLDJCCVL.js";
|
|
7
7
|
import {
|
|
8
8
|
cloneFrozenPlainData
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4PV56T23.js";
|
|
10
10
|
import {
|
|
11
11
|
assertFiniteMinScore,
|
|
12
12
|
assertPositiveSearchLimit
|
|
@@ -165,4 +165,4 @@ function snapshotToolIndex(index) {
|
|
|
165
165
|
export {
|
|
166
166
|
prepareAgentTools
|
|
167
167
|
};
|
|
168
|
-
//# sourceMappingURL=chunk-
|
|
168
|
+
//# sourceMappingURL=chunk-PNMBJMLB.js.map
|
|
@@ -125,7 +125,7 @@ var ToolCallExecutor = class {
|
|
|
125
125
|
}
|
|
126
126
|
if (toolDefinition !== void 0) toolStartArgs = { ...toolStartArgs, toolDefinition };
|
|
127
127
|
if (toolMetadata !== void 0) toolStartArgs = { ...toolStartArgs, toolMetadata };
|
|
128
|
-
const toolObservers = await observation?.runObservers.startTool(toolStartArgs);
|
|
128
|
+
const toolObservers = this.replayed(toolCall) ? void 0 : await observation?.runObservers.startTool(toolStartArgs);
|
|
129
129
|
const toolObservation = new ToolObserverScope(toolObservers);
|
|
130
130
|
let output;
|
|
131
131
|
let skipped = false;
|
|
@@ -399,7 +399,7 @@ var ToolCallExecutor = class {
|
|
|
399
399
|
}
|
|
400
400
|
if (toolDefinition !== void 0) toolStartArgs = { ...toolStartArgs, toolDefinition };
|
|
401
401
|
if (toolMetadata !== void 0) toolStartArgs = { ...toolStartArgs, toolMetadata };
|
|
402
|
-
const observers = await observation?.runObservers.startTool(toolStartArgs);
|
|
402
|
+
const observers = this.replayed(toolCall) ? void 0 : await observation?.runObservers.startTool(toolStartArgs);
|
|
403
403
|
const toolObservation = new ToolObserverScope(observers);
|
|
404
404
|
let output;
|
|
405
405
|
let failed = false;
|
|
@@ -610,6 +610,10 @@ var ToolCallExecutor = class {
|
|
|
610
610
|
throw error;
|
|
611
611
|
}
|
|
612
612
|
}
|
|
613
|
+
/** A restored result was observed when the tool ran; observing it again duplicates it. */
|
|
614
|
+
replayed(toolCall) {
|
|
615
|
+
return this.execution?.replayed?.({ kind: "tool", toolCall }) === true;
|
|
616
|
+
}
|
|
613
617
|
runApprovedToolCall(prepared, toolCall, hookArgs, effectiveArgs, toolObservation, observation, onStreamEvent) {
|
|
614
618
|
const execute = (context) => this.runUncachedToolCall(
|
|
615
619
|
prepared,
|
|
@@ -967,4 +971,4 @@ function agentToolEventPayload(toolCall, internalCallId, event) {
|
|
|
967
971
|
export {
|
|
968
972
|
ToolCallExecutor
|
|
969
973
|
};
|
|
970
|
-
//# sourceMappingURL=chunk-
|
|
974
|
+
//# sourceMappingURL=chunk-RVGSTZD3.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 = this.replayed(toolCall)\n ? undefined\n : 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 = this.replayed(toolCall)\n ? undefined\n : 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 /** A restored result was observed when the tool ran; observing it again duplicates it. */\n private replayed(toolCall: ToolCallPart): boolean {\n return this.execution?.replayed?.({ kind: \"tool\", toolCall }) === true;\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"]}
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
} from "./chunk-X6WS3XWL.js";
|
|
4
4
|
import {
|
|
5
5
|
TeamRun
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XIIVC5LY.js";
|
|
7
7
|
import {
|
|
8
8
|
TeamStream
|
|
9
9
|
} from "./chunk-3TAQXJBC.js";
|
|
10
10
|
import {
|
|
11
11
|
Agent
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TJOIYN4O.js";
|
|
13
13
|
import {
|
|
14
14
|
assertPositiveSafeInteger
|
|
15
15
|
} from "./chunk-NPJ2T3L5.js";
|
|
@@ -104,4 +104,4 @@ var AgentTeam = class {
|
|
|
104
104
|
export {
|
|
105
105
|
AgentTeam
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-SS52CC5R.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentRun
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ATFSEEFX.js";
|
|
4
4
|
import {
|
|
5
5
|
normalizeMemoryScope
|
|
6
6
|
} from "./chunk-LAIATEUB.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-NPJ2T3L5.js";
|
|
13
13
|
import {
|
|
14
14
|
prepareAgentTools
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PNMBJMLB.js";
|
|
16
16
|
import {
|
|
17
17
|
getRegisteredAgentTool,
|
|
18
18
|
registerAgentToolState
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
snapshotAgentMemory,
|
|
30
30
|
snapshotAgentObservability,
|
|
31
31
|
snapshotGuardrailPolicies
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-4PV56T23.js";
|
|
33
33
|
import {
|
|
34
34
|
createAgentStream
|
|
35
35
|
} from "./chunk-KY4VXIN2.js";
|
|
@@ -155,4 +155,4 @@ var Agent = class {
|
|
|
155
155
|
export {
|
|
156
156
|
Agent
|
|
157
157
|
};
|
|
158
|
-
//# sourceMappingURL=chunk-
|
|
158
|
+
//# sourceMappingURL=chunk-TJOIYN4O.js.map
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defaultEvalTraceSelector
|
|
3
3
|
} from "./chunk-PHLGGRHC.js";
|
|
4
|
-
import {
|
|
5
|
-
EvalOutcome
|
|
6
|
-
} from "./chunk-EJR6VVB3.js";
|
|
7
4
|
import {
|
|
8
5
|
EvalAbortError,
|
|
9
6
|
EvalTimeoutError,
|
|
@@ -11,6 +8,9 @@ import {
|
|
|
11
8
|
createConcurrencyLimiter,
|
|
12
9
|
createEvalCaseSignal
|
|
13
10
|
} from "./chunk-4OSA3MMA.js";
|
|
11
|
+
import {
|
|
12
|
+
EvalOutcome
|
|
13
|
+
} from "./chunk-EJR6VVB3.js";
|
|
14
14
|
import {
|
|
15
15
|
errorMessage
|
|
16
16
|
} from "./chunk-ZYXMWEL4.js";
|
|
@@ -660,4 +660,4 @@ export {
|
|
|
660
660
|
EvalFailFastError,
|
|
661
661
|
runEvalSuite
|
|
662
662
|
};
|
|
663
|
-
//# sourceMappingURL=chunk-
|
|
663
|
+
//# sourceMappingURL=chunk-X4XULHDO.js.map
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
createResolvedAgent,
|
|
21
21
|
getResolvedAgentOptions
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-6S7ZON2E.js";
|
|
23
23
|
import {
|
|
24
24
|
AgentRun
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-ATFSEEFX.js";
|
|
26
26
|
import {
|
|
27
27
|
withInternalAgentRunOptions
|
|
28
28
|
} from "./chunk-7FBSGD6E.js";
|
|
@@ -619,4 +619,4 @@ var TeamRun = class {
|
|
|
619
619
|
export {
|
|
620
620
|
TeamRun
|
|
621
621
|
};
|
|
622
|
-
//# sourceMappingURL=chunk-
|
|
622
|
+
//# sourceMappingURL=chunk-XIIVC5LY.js.map
|
package/dist/embeddings/index.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import "../chunk-ERN7P6Q4.js";
|
|
2
|
-
import {
|
|
3
|
-
embedDocuments,
|
|
4
|
-
embedSparseQuery,
|
|
5
|
-
embedSparseTexts,
|
|
6
|
-
embedText,
|
|
7
|
-
embedTexts
|
|
8
|
-
} from "../chunk-YCTXTOOQ.js";
|
|
9
|
-
import "../chunk-DU4WA6LQ.js";
|
|
10
2
|
import {
|
|
11
3
|
angularDistance,
|
|
12
4
|
chebyshevDistance,
|
|
@@ -15,6 +7,14 @@ import {
|
|
|
15
7
|
euclideanDistance,
|
|
16
8
|
manhattanDistance
|
|
17
9
|
} from "../chunk-7F53DOML.js";
|
|
10
|
+
import {
|
|
11
|
+
embedDocuments,
|
|
12
|
+
embedSparseQuery,
|
|
13
|
+
embedSparseTexts,
|
|
14
|
+
embedText,
|
|
15
|
+
embedTexts
|
|
16
|
+
} from "../chunk-YCTXTOOQ.js";
|
|
17
|
+
import "../chunk-DU4WA6LQ.js";
|
|
18
18
|
import "../chunk-4FIVU53H.js";
|
|
19
19
|
import "../chunk-POXHJF3H.js";
|
|
20
20
|
import "../chunk-USRKPEQN.js";
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
turnRelevancy
|
|
12
12
|
} from "../chunk-R4AJ2EE3.js";
|
|
13
13
|
import "../chunk-V5KBSXAJ.js";
|
|
14
|
-
import "../chunk-3P3YVJ7V.js";
|
|
15
|
-
import "../chunk-VCOGUS3Q.js";
|
|
16
14
|
import "../chunk-ZPXOBQDS.js";
|
|
17
15
|
import "../chunk-EJR6VVB3.js";
|
|
18
16
|
import "../chunk-ZYXMWEL4.js";
|
|
17
|
+
import "../chunk-3P3YVJ7V.js";
|
|
18
|
+
import "../chunk-VCOGUS3Q.js";
|
|
19
19
|
import "../chunk-TP3MCUXS.js";
|
|
20
20
|
import "../chunk-6RQYWZI3.js";
|
|
21
21
|
import "../chunk-NF6WBPFG.js";
|
package/dist/evals/cli.js
CHANGED
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
formatEvalResult,
|
|
8
8
|
printEvalResult,
|
|
9
9
|
runEvalCli
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-EF26KTFU.js";
|
|
11
|
+
import "../chunk-X4XULHDO.js";
|
|
12
12
|
import "../chunk-PHLGGRHC.js";
|
|
13
|
-
import "../chunk-EJR6VVB3.js";
|
|
14
13
|
import "../chunk-4OSA3MMA.js";
|
|
14
|
+
import "../chunk-EJR6VVB3.js";
|
|
15
15
|
import "../chunk-ZYXMWEL4.js";
|
|
16
16
|
import "../chunk-TP3MCUXS.js";
|
|
17
17
|
import "../chunk-6RQYWZI3.js";
|