veryfront 0.1.152 → 0.1.155
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/esm/deno.js +1 -1
- package/esm/src/agent/ag-ui-handler.d.ts +6 -0
- package/esm/src/agent/ag-ui-handler.d.ts.map +1 -1
- package/esm/src/agent/ag-ui-handler.js +115 -19
- package/esm/src/agent/ag-ui-run-control.d.ts +33 -0
- package/esm/src/agent/ag-ui-run-control.d.ts.map +1 -0
- package/esm/src/agent/ag-ui-run-control.js +102 -0
- package/esm/src/agent/index.d.ts +1 -0
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +1 -0
- package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
- package/esm/src/agent/runtime/chat-stream-handler.js +1 -25
- package/esm/src/agent/runtime/error-utils.d.ts +4 -0
- package/esm/src/agent/runtime/error-utils.d.ts.map +1 -0
- package/esm/src/agent/runtime/error-utils.js +25 -0
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +1 -25
- package/esm/src/observability/error-collector.d.ts +1 -0
- package/esm/src/observability/error-collector.d.ts.map +1 -1
- package/esm/src/observability/error-collector.js +6 -3
- package/esm/src/routing/api/module-loader/loader.js +26 -28
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
- package/src/deno.js +1 -1
- package/src/src/agent/ag-ui-handler.ts +187 -27
- package/src/src/agent/ag-ui-run-control.ts +161 -0
- package/src/src/agent/index.ts +8 -0
- package/src/src/agent/runtime/chat-stream-handler.ts +1 -33
- package/src/src/agent/runtime/error-utils.ts +32 -0
- package/src/src/agent/runtime/index.ts +1 -33
- package/src/src/observability/error-collector.ts +13 -3
- package/src/src/routing/api/module-loader/loader.ts +37 -38
- package/src/src/utils/version-constant.ts +1 -1
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as dntShim from "../../_dnt.shims.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import type { Agent } from "./types.js";
|
|
4
|
+
import { type RunResumeSessionManager } from "./runtime/index.js";
|
|
4
5
|
declare const AgUiInjectedToolSchema: z.ZodObject<{
|
|
5
6
|
name: z.ZodString;
|
|
6
7
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -65,8 +66,13 @@ export declare const AgUiRequestSchema: z.ZodObject<{
|
|
|
65
66
|
export type AgUiInjectedTool = z.infer<typeof AgUiInjectedToolSchema>;
|
|
66
67
|
export type AgUiContextItem = z.infer<typeof AgUiContextItemSchema>;
|
|
67
68
|
export type AgUiRequest = z.infer<typeof AgUiRequestSchema>;
|
|
69
|
+
type AgUiResumeValue = {
|
|
70
|
+
result: unknown;
|
|
71
|
+
isError: boolean;
|
|
72
|
+
};
|
|
68
73
|
export interface AgUiHandlerOptions {
|
|
69
74
|
context?: Record<string, unknown> | ((request: dntShim.Request) => Record<string, unknown> | Promise<Record<string, unknown>>);
|
|
75
|
+
sessionManager?: RunResumeSessionManager<AgUiResumeValue>;
|
|
70
76
|
}
|
|
71
77
|
export interface AgUiHandlerConfigWithAgent extends AgUiHandlerOptions {
|
|
72
78
|
agent: Agent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ag-ui-handler.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ag-ui-handler.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,KAAK,EAAW,MAAM,YAAY,CAAC;AACjD,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAsC5B,QAAA,MAAM,sBAAsB;;;;iBAO1B,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;2BAqBzB,CAAC;AAYH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,KAAK,eAAe,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AA4Y7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F,cAAc,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,KAAK,EAAE,KAAK,CAAC;CACd;AAUD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import * as dntShim from "../../_dnt.shims.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { getAgent } from "./composition/index.js";
|
|
4
|
+
import { AgentRuntime, RunAlreadyExistsError, } from "./runtime/index.js";
|
|
4
5
|
import { INVALID_ARGUMENT } from "../errors/index.js";
|
|
6
|
+
import { SKILL_TOOL_IDS } from "../skill/types.js";
|
|
7
|
+
import { toolRegistry } from "../tool/index.js";
|
|
5
8
|
import { createStreamTransformState, finalizeRunEvents, formatAgUiEvent, mapRuntimeEventToAgUi, parseSseJsonEvents, } from "../internal-agents/ag-ui-sse.js";
|
|
6
9
|
const AGENT_ID_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
7
10
|
const MAX_TOOL_PARAMETERS_BYTES = 16_384;
|
|
@@ -194,25 +197,15 @@ function enqueueEvent(controller, event, payload) {
|
|
|
194
197
|
return false;
|
|
195
198
|
}
|
|
196
199
|
}
|
|
197
|
-
async function createAgUiStreamResponse(
|
|
198
|
-
const
|
|
199
|
-
const runId = request.runId ?? generateRunId();
|
|
200
|
-
await agent.clearMemory();
|
|
201
|
-
const result = await agent.stream({
|
|
202
|
-
messages: normalizeMessages(request.messages),
|
|
203
|
-
context: buildStreamContext(request, baseContext, threadId, runId),
|
|
204
|
-
...(request.model ? { model: request.model } : {}),
|
|
205
|
-
...(request.maxOutputTokens ? { maxOutputTokens: request.maxOutputTokens } : {}),
|
|
206
|
-
});
|
|
207
|
-
const upstream = result.toDataStreamResponse();
|
|
208
|
-
const upstreamBody = upstream.body;
|
|
200
|
+
async function createAgUiStreamResponse(options) {
|
|
201
|
+
const { agentId, request, runId, threadId, upstreamBody, upstreamStatus, upstreamStatusText, onFinish, onError, } = options;
|
|
209
202
|
const stream = new ReadableStream({
|
|
210
203
|
start: async (controller) => {
|
|
211
204
|
const state = createStreamTransformState();
|
|
212
205
|
let reader = null;
|
|
213
206
|
let remainder = "";
|
|
214
207
|
const decoder = new TextDecoder();
|
|
215
|
-
if (!enqueueEvent(controller, "RunStarted", { runId, threadId, agentId
|
|
208
|
+
if (!enqueueEvent(controller, "RunStarted", { runId, threadId, agentId })) {
|
|
216
209
|
return;
|
|
217
210
|
}
|
|
218
211
|
if (!enqueueEvent(controller, "StateSnapshot", { snapshot: {} })) {
|
|
@@ -228,6 +221,7 @@ async function createAgUiStreamResponse(agent, request, baseContext) {
|
|
|
228
221
|
return;
|
|
229
222
|
}
|
|
230
223
|
}
|
|
224
|
+
onFinish?.();
|
|
231
225
|
closeController(controller);
|
|
232
226
|
return;
|
|
233
227
|
}
|
|
@@ -261,8 +255,10 @@ async function createAgUiStreamResponse(agent, request, baseContext) {
|
|
|
261
255
|
return;
|
|
262
256
|
}
|
|
263
257
|
}
|
|
258
|
+
onFinish?.();
|
|
264
259
|
}
|
|
265
260
|
catch (error) {
|
|
261
|
+
onError?.(error);
|
|
266
262
|
enqueueEvent(controller, "RunError", {
|
|
267
263
|
message: error instanceof Error ? error.message : "Agent run failed",
|
|
268
264
|
});
|
|
@@ -274,11 +270,105 @@ async function createAgUiStreamResponse(agent, request, baseContext) {
|
|
|
274
270
|
},
|
|
275
271
|
});
|
|
276
272
|
return new dntShim.Response(stream, {
|
|
277
|
-
status:
|
|
278
|
-
statusText:
|
|
273
|
+
status: upstreamStatus,
|
|
274
|
+
statusText: upstreamStatusText,
|
|
279
275
|
headers: { ...AG_UI_HEADERS },
|
|
280
276
|
});
|
|
281
277
|
}
|
|
278
|
+
async function createAgUiDirectStreamResponse(agent, request, baseContext) {
|
|
279
|
+
const threadId = request.threadId ?? dntShim.crypto.randomUUID();
|
|
280
|
+
const runId = request.runId ?? generateRunId();
|
|
281
|
+
await agent.clearMemory();
|
|
282
|
+
const result = await agent.stream({
|
|
283
|
+
messages: normalizeMessages(request.messages),
|
|
284
|
+
context: buildStreamContext(request, baseContext, threadId, runId),
|
|
285
|
+
...(request.model ? { model: request.model } : {}),
|
|
286
|
+
...(request.maxOutputTokens ? { maxOutputTokens: request.maxOutputTokens } : {}),
|
|
287
|
+
});
|
|
288
|
+
const upstream = result.toDataStreamResponse();
|
|
289
|
+
return await createAgUiStreamResponse({
|
|
290
|
+
agentId: agent.id,
|
|
291
|
+
request,
|
|
292
|
+
runId,
|
|
293
|
+
threadId,
|
|
294
|
+
upstreamBody: upstream.body,
|
|
295
|
+
upstreamStatus: upstream.status,
|
|
296
|
+
upstreamStatusText: upstream.statusText,
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
function createInjectedAgUiTool(runId, tool, sessionManager) {
|
|
300
|
+
return {
|
|
301
|
+
id: tool.name,
|
|
302
|
+
type: "function",
|
|
303
|
+
description: tool.description ?? tool.name,
|
|
304
|
+
inputSchema: z.record(z.string(), z.unknown()),
|
|
305
|
+
inputSchemaJson: (tool.parameters ??
|
|
306
|
+
{ type: "object", properties: {}, additionalProperties: true }),
|
|
307
|
+
execute: async (_input, context) => {
|
|
308
|
+
const toolCallId = typeof context?.toolCallId === "string" ? context.toolCallId : null;
|
|
309
|
+
if (!toolCallId) {
|
|
310
|
+
throw new Error(`Missing toolCallId for injected tool "${tool.name}"`);
|
|
311
|
+
}
|
|
312
|
+
const submitted = await sessionManager.waitForSignal(runId, toolCallId);
|
|
313
|
+
if (submitted.isError) {
|
|
314
|
+
throw new Error(typeof submitted.result === "string"
|
|
315
|
+
? submitted.result
|
|
316
|
+
: JSON.stringify(submitted.result));
|
|
317
|
+
}
|
|
318
|
+
return submitted.result;
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
async function createAgUiInjectedToolsStreamResponse(agent, request, baseContext, sessionManager) {
|
|
323
|
+
const threadId = request.threadId ?? dntShim.crypto.randomUUID();
|
|
324
|
+
const runId = request.runId ?? generateRunId();
|
|
325
|
+
try {
|
|
326
|
+
sessionManager.startRun({ runId, threadId });
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
if (error instanceof RunAlreadyExistsError) {
|
|
330
|
+
return dntShim.Response.json({ error: "Run already active" }, { status: 409 });
|
|
331
|
+
}
|
|
332
|
+
throw error;
|
|
333
|
+
}
|
|
334
|
+
const injectedTools = Object.fromEntries(request.tools.map((tool) => [tool.name, createInjectedAgUiTool(runId, tool, sessionManager)]));
|
|
335
|
+
const mergedTools = !agent.config.tools
|
|
336
|
+
? injectedTools
|
|
337
|
+
: agent.config.tools === true
|
|
338
|
+
? {
|
|
339
|
+
...Object.fromEntries([...toolRegistry.getAll()]
|
|
340
|
+
.filter(([toolId]) => agent.config.skills || !SKILL_TOOL_IDS.has(toolId))
|
|
341
|
+
.map(([toolId]) => [toolId, true])),
|
|
342
|
+
...injectedTools,
|
|
343
|
+
}
|
|
344
|
+
: { ...agent.config.tools, ...injectedTools };
|
|
345
|
+
const runtime = new AgentRuntime(agent.id, {
|
|
346
|
+
...agent.config,
|
|
347
|
+
tools: mergedTools,
|
|
348
|
+
});
|
|
349
|
+
let upstreamBody;
|
|
350
|
+
try {
|
|
351
|
+
upstreamBody = await runtime.stream(normalizeMessages(request.messages), buildStreamContext(request, baseContext, threadId, runId), undefined, request.model, request.maxOutputTokens);
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
sessionManager.failRun(runId);
|
|
355
|
+
throw error;
|
|
356
|
+
}
|
|
357
|
+
return await createAgUiStreamResponse({
|
|
358
|
+
agentId: agent.id,
|
|
359
|
+
request,
|
|
360
|
+
runId,
|
|
361
|
+
threadId,
|
|
362
|
+
upstreamBody,
|
|
363
|
+
upstreamStatus: 200,
|
|
364
|
+
onFinish: () => {
|
|
365
|
+
sessionManager.completeRun(runId);
|
|
366
|
+
},
|
|
367
|
+
onError: () => {
|
|
368
|
+
sessionManager.failRun(runId);
|
|
369
|
+
},
|
|
370
|
+
});
|
|
371
|
+
}
|
|
282
372
|
function mergeConfig(config, options) {
|
|
283
373
|
if (!options)
|
|
284
374
|
return config;
|
|
@@ -310,14 +400,20 @@ export function createAgUiHandler(agentIdOrConfig, options) {
|
|
|
310
400
|
try {
|
|
311
401
|
const parsed = AgUiRequestSchema.parse(await request.json());
|
|
312
402
|
if (parsed.tools.length > 0) {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
403
|
+
if (!options?.sessionManager) {
|
|
404
|
+
return dntShim.Response.json({
|
|
405
|
+
error: "Injected AG-UI tools require a public RunResumeSessionManager on createAgUiHandler().",
|
|
406
|
+
}, { status: 501 });
|
|
407
|
+
}
|
|
408
|
+
const context = typeof options?.context === "function"
|
|
409
|
+
? await options.context(request)
|
|
410
|
+
: options?.context ?? {};
|
|
411
|
+
return await createAgUiInjectedToolsStreamResponse(agent, parsed, context, options.sessionManager);
|
|
316
412
|
}
|
|
317
413
|
const context = typeof options?.context === "function"
|
|
318
414
|
? await options.context(request)
|
|
319
415
|
: options?.context ?? {};
|
|
320
|
-
return await
|
|
416
|
+
return await createAgUiDirectStreamResponse(agent, parsed, context);
|
|
321
417
|
}
|
|
322
418
|
catch (error) {
|
|
323
419
|
if (error instanceof z.ZodError) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { RunResumeSessionManager } from "./runtime/resume-session.js";
|
|
4
|
+
export declare const AgUiResumeSignalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5
|
+
type: z.ZodLiteral<"tool_result">;
|
|
6
|
+
toolCallId: z.ZodString;
|
|
7
|
+
result: z.ZodUnknown;
|
|
8
|
+
isError: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
9
|
+
}, z.core.$strip>], "type">;
|
|
10
|
+
export type AgUiResumeSignal = z.infer<typeof AgUiResumeSignalSchema>;
|
|
11
|
+
type ResumeValue = {
|
|
12
|
+
result: unknown;
|
|
13
|
+
isError: boolean;
|
|
14
|
+
};
|
|
15
|
+
export interface AgUiRunControlHandlerOptions {
|
|
16
|
+
resolveRunId?: ((input: {
|
|
17
|
+
request: dntShim.Request;
|
|
18
|
+
requestOrCtx: unknown;
|
|
19
|
+
}) => string | null) | ((input: {
|
|
20
|
+
request: dntShim.Request;
|
|
21
|
+
requestOrCtx: unknown;
|
|
22
|
+
}) => Promise<string | null>);
|
|
23
|
+
}
|
|
24
|
+
export interface AgUiResumeHandlerOptions extends AgUiRunControlHandlerOptions {
|
|
25
|
+
sessionManager: RunResumeSessionManager<ResumeValue>;
|
|
26
|
+
}
|
|
27
|
+
export interface AgUiCancelHandlerOptions<T = unknown> extends AgUiRunControlHandlerOptions {
|
|
28
|
+
sessionManager: RunResumeSessionManager<T>;
|
|
29
|
+
}
|
|
30
|
+
export declare function createAgUiResumeHandler(options: AgUiResumeHandlerOptions): (requestOrCtx: unknown) => Promise<dntShim.Response>;
|
|
31
|
+
export declare function createAgUiCancelHandler<T = unknown>(options: AgUiCancelHandlerOptions<T>): (requestOrCtx: unknown) => Promise<dntShim.Response>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=ag-ui-run-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ag-ui-run-control.d.ts","sourceRoot":"","sources":["../../../src/src/agent/ag-ui-run-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAEL,uBAAuB,EAGxB,MAAM,6BAA6B,CAAC;AAKrC,eAAO,MAAM,sBAAsB;;;;;2BAOjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAgCF,MAAM,WAAW,4BAA4B;IAC3C,YAAY,CAAC,EACT,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,GAAG,IAAI,CAAC,GAC/E,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAC9F;AAED,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B;IAC5E,cAAc,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,4BAA4B;IACzF,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;CAC5C;AAaD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAsDtD;AAED,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,OAAO,EACjD,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAgBtD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { INVALID_ARGUMENT } from "../errors/index.js";
|
|
4
|
+
import { RunNotActiveError, WaitConflictError, WaitNotPendingError, } from "./runtime/resume-session.js";
|
|
5
|
+
const RESUME_PATH_REGEX = /^\/api\/ag-ui\/runs\/([^/]+)\/resume$/;
|
|
6
|
+
const CANCEL_PATH_REGEX = /^\/api\/ag-ui\/runs\/([^/]+)$/;
|
|
7
|
+
export const AgUiResumeSignalSchema = z.discriminatedUnion("type", [
|
|
8
|
+
z.object({
|
|
9
|
+
type: z.literal("tool_result"),
|
|
10
|
+
toolCallId: z.string().min(1).max(128),
|
|
11
|
+
result: z.unknown(),
|
|
12
|
+
isError: z.boolean().optional().default(false),
|
|
13
|
+
}),
|
|
14
|
+
]);
|
|
15
|
+
function isRequest(value) {
|
|
16
|
+
return (typeof value === "object" &&
|
|
17
|
+
value !== null &&
|
|
18
|
+
"json" in value &&
|
|
19
|
+
typeof value.json === "function" &&
|
|
20
|
+
"url" in value &&
|
|
21
|
+
typeof value.url === "string" &&
|
|
22
|
+
"method" in value &&
|
|
23
|
+
typeof value.method === "string");
|
|
24
|
+
}
|
|
25
|
+
function extractRequest(requestOrCtx) {
|
|
26
|
+
if (isRequest(requestOrCtx))
|
|
27
|
+
return requestOrCtx;
|
|
28
|
+
if (typeof requestOrCtx === "object" && requestOrCtx !== null && "request" in requestOrCtx) {
|
|
29
|
+
const candidate = requestOrCtx.request;
|
|
30
|
+
if (isRequest(candidate))
|
|
31
|
+
return candidate;
|
|
32
|
+
}
|
|
33
|
+
throw INVALID_ARGUMENT.create({
|
|
34
|
+
detail: "Invalid handler argument: expected Request or APIContext",
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function getRunId(pathname, regex) {
|
|
38
|
+
return regex.exec(pathname)?.[1] ?? null;
|
|
39
|
+
}
|
|
40
|
+
async function resolveRunId(requestOrCtx, request, options, regex) {
|
|
41
|
+
const explicit = await options?.resolveRunId?.({ request, requestOrCtx });
|
|
42
|
+
if (explicit)
|
|
43
|
+
return explicit;
|
|
44
|
+
return getRunId(new URL(request.url).pathname, regex);
|
|
45
|
+
}
|
|
46
|
+
export function createAgUiResumeHandler(options) {
|
|
47
|
+
return async function POST(requestOrCtx) {
|
|
48
|
+
const request = extractRequest(requestOrCtx);
|
|
49
|
+
const runId = await resolveRunId(requestOrCtx, request, options, RESUME_PATH_REGEX);
|
|
50
|
+
if (!runId) {
|
|
51
|
+
return dntShim.Response.json({ error: "Run not found" }, { status: 404 });
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const parsed = AgUiResumeSignalSchema.parse(await request.json());
|
|
55
|
+
const outcome = options.sessionManager.submitSignal(runId, {
|
|
56
|
+
waitKey: parsed.toolCallId,
|
|
57
|
+
value: {
|
|
58
|
+
result: parsed.result,
|
|
59
|
+
isError: parsed.isError,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
return dntShim.Response.json(outcome, { status: 200 });
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error instanceof z.ZodError) {
|
|
66
|
+
return dntShim.Response.json({
|
|
67
|
+
error: "Invalid AG-UI resume request",
|
|
68
|
+
details: error.issues.map((issue) => ({
|
|
69
|
+
path: issue.path,
|
|
70
|
+
message: issue.message,
|
|
71
|
+
})),
|
|
72
|
+
}, { status: 400 });
|
|
73
|
+
}
|
|
74
|
+
if (error instanceof WaitConflictError) {
|
|
75
|
+
return dntShim.Response.json({ error: "TOOL_RESULT_CONFLICT" }, { status: 409 });
|
|
76
|
+
}
|
|
77
|
+
if (error instanceof WaitNotPendingError) {
|
|
78
|
+
return dntShim.Response.json({ error: "TOOL_RESULT_NOT_WAITING" }, { status: 409 });
|
|
79
|
+
}
|
|
80
|
+
if (error instanceof RunNotActiveError) {
|
|
81
|
+
return dntShim.Response.json({ error: "RUN_NOT_ACTIVE" }, { status: 410 });
|
|
82
|
+
}
|
|
83
|
+
return dntShim.Response.json({
|
|
84
|
+
error: error instanceof Error ? error.message : "Internal resume failed",
|
|
85
|
+
}, { status: 500 });
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export function createAgUiCancelHandler(options) {
|
|
90
|
+
return async function DELETE(requestOrCtx) {
|
|
91
|
+
const request = extractRequest(requestOrCtx);
|
|
92
|
+
const runId = await resolveRunId(requestOrCtx, request, options, CANCEL_PATH_REGEX);
|
|
93
|
+
if (!runId) {
|
|
94
|
+
return dntShim.Response.json({ error: "Run not found" }, { status: 404 });
|
|
95
|
+
}
|
|
96
|
+
const accepted = options.sessionManager.cancelRun(runId);
|
|
97
|
+
if (accepted) {
|
|
98
|
+
return dntShim.Response.json({ accepted: true }, { status: 202 });
|
|
99
|
+
}
|
|
100
|
+
return new dntShim.Response(null, { status: 204 });
|
|
101
|
+
};
|
|
102
|
+
}
|
package/esm/src/agent/index.d.ts
CHANGED
|
@@ -85,6 +85,7 @@ export { BufferMemory, ConversationMemory, createMemory, createRedisMemory, type
|
|
|
85
85
|
export { agentAsTool, createWorkflow, getAgent, getAgentsAsTools, getAllAgentIds, registerAgent, type WorkflowConfig, type WorkflowResult, type WorkflowStep, } from "./composition/index.js";
|
|
86
86
|
export { agent } from "./factory.js";
|
|
87
87
|
export { type AgUiRuntimeContextItem, AgUiRuntimeContextItemSchema, type AgUiRuntimeInjectedTool, AgUiRuntimeInjectedToolSchema, type AgUiRuntimeMessage, AgUiRuntimeMessageSchema, type AgUiRuntimeRequest, AgUiRuntimeRequestSchema, } from "./runtime-ag-ui-contract.js";
|
|
88
|
+
export { type AgUiCancelHandlerOptions, type AgUiResumeHandlerOptions, type AgUiResumeSignal, AgUiResumeSignalSchema, createAgUiCancelHandler, createAgUiResumeHandler, } from "./ag-ui-run-control.js";
|
|
88
89
|
export { type AgUiContextItem, type AgUiHandlerConfigWithAgent, type AgUiHandlerOptions, type AgUiInjectedTool, type AgUiRequest, AgUiRequestSchema, createAgUiHandler, } from "./ag-ui-handler.js";
|
|
89
90
|
export { type ChatHandlerBeforeStream, type ChatHandlerBeforeStreamContext, type ChatHandlerBeforeStreamResult, type ChatHandlerConfigWithAgent, type ChatHandlerMessageInput, type ChatHandlerOptions, createChatHandler, } from "./chat-handler.js";
|
|
90
91
|
export { AgentRuntime, RunAlreadyExistsError, RunCancelledError, RunNotActiveError, RunResumeSessionManager, type RunResumeSessionManagerOptions, type RunSessionStatus, type SubmitResumeValueOutcome, WaitConflictError, WaitNotPendingError, } from "./runtime/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,KAAK,MAAM,EACX,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,iBAAiB,EACtB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,OAAO,IAAI,YAAY,EACvB,WAAW,EACX,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,KAAK,MAAM,EACX,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,iBAAiB,EACtB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
package/esm/src/agent/index.js
CHANGED
|
@@ -84,6 +84,7 @@ export { BufferMemory, ConversationMemory, createMemory, createRedisMemory, Redi
|
|
|
84
84
|
export { agentAsTool, createWorkflow, getAgent, getAgentsAsTools, getAllAgentIds, registerAgent, } from "./composition/index.js";
|
|
85
85
|
export { agent } from "./factory.js";
|
|
86
86
|
export { AgUiRuntimeContextItemSchema, AgUiRuntimeInjectedToolSchema, AgUiRuntimeMessageSchema, AgUiRuntimeRequestSchema, } from "./runtime-ag-ui-contract.js";
|
|
87
|
+
export { AgUiResumeSignalSchema, createAgUiCancelHandler, createAgUiResumeHandler, } from "./ag-ui-run-control.js";
|
|
87
88
|
export { AgUiRequestSchema, createAgUiHandler, } from "./ag-ui-handler.js";
|
|
88
89
|
export { createChatHandler, } from "./chat-handler.js";
|
|
89
90
|
export { AgentRuntime, RunAlreadyExistsError, RunCancelledError, RunNotActiveError, RunResumeSessionManager, WaitConflictError, WaitNotPendingError, } from "./runtime/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/chat-stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAqB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAWtF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ;AA4FD,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,+BAA+B,EAC3C,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC,CA0Nf"}
|
|
@@ -13,6 +13,7 @@ import { serverLogger } from "../../utils/index.js";
|
|
|
13
13
|
import { isAnyDebugEnabled } from "../../utils/constants/env.js";
|
|
14
14
|
import { setActiveSpanAttributes, withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
15
15
|
import { getHostEnv } from "../../platform/compat/process.js";
|
|
16
|
+
import { stringifyToolError, throwIfAborted } from "./error-utils.js";
|
|
16
17
|
const logger = serverLogger.component("agent");
|
|
17
18
|
function isRecord(value) {
|
|
18
19
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -40,31 +41,6 @@ function normalizeToolInputObject(input) {
|
|
|
40
41
|
}
|
|
41
42
|
return {};
|
|
42
43
|
}
|
|
43
|
-
function createAbortError(reason) {
|
|
44
|
-
if (reason instanceof Error) {
|
|
45
|
-
return reason;
|
|
46
|
-
}
|
|
47
|
-
return new DOMException(typeof reason === "string" && reason.length > 0 ? reason : "The operation was aborted", "AbortError");
|
|
48
|
-
}
|
|
49
|
-
function throwIfAborted(abortSignal) {
|
|
50
|
-
if (abortSignal?.aborted) {
|
|
51
|
-
throw createAbortError(abortSignal.reason);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function stringifyToolError(output) {
|
|
55
|
-
if (typeof output === "string" && output.length > 0) {
|
|
56
|
-
return output;
|
|
57
|
-
}
|
|
58
|
-
if (output instanceof Error && typeof output.message === "string" && output.message.length > 0) {
|
|
59
|
-
return output.message;
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
return JSON.stringify(output);
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return String(output);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
44
|
function summarizeDebugValue(value) {
|
|
69
45
|
if (value instanceof Error) {
|
|
70
46
|
return {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-utils.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/error-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CASxD;AAED,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAI9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAczD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function createAbortError(reason) {
|
|
2
|
+
if (reason instanceof Error) {
|
|
3
|
+
return reason;
|
|
4
|
+
}
|
|
5
|
+
return new DOMException(typeof reason === "string" && reason.length > 0 ? reason : "The operation was aborted", "AbortError");
|
|
6
|
+
}
|
|
7
|
+
export function throwIfAborted(abortSignal) {
|
|
8
|
+
if (abortSignal?.aborted) {
|
|
9
|
+
throw createAbortError(abortSignal.reason);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function stringifyToolError(error) {
|
|
13
|
+
if (typeof error === "string" && error.length > 0) {
|
|
14
|
+
return error;
|
|
15
|
+
}
|
|
16
|
+
if (error instanceof Error && typeof error.message === "string" && error.message.length > 0) {
|
|
17
|
+
return error.message;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
return JSON.stringify(error);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return String(error);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAGlB,KAAK,OAAO,EAEZ,KAAK,QAAQ,EACb,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAS/D,OAAO,EACL,KAAK,eAAe,EAGpB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,8BAA8B,EAC9B,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,39 +39,15 @@ import { executeConfiguredTool, getAvailableTools, isDynamicTool, parseToolArgs,
|
|
|
39
39
|
import { accumulateUsage, getMaxSteps, normalizeInput } from "./input-utils.js";
|
|
40
40
|
import { filterToolsForSkill, isToolAllowedBySkill, validateAllowedToolPatterns, } from "../../skill/allowed-tools.js";
|
|
41
41
|
import { resolveConfiguredAgentModel, resolveRuntimeModel } from "./model-resolution.js";
|
|
42
|
+
import { stringifyToolError, throwIfAborted } from "./error-utils.js";
|
|
42
43
|
const logger = serverLogger.component("agent");
|
|
43
44
|
const LOAD_SKILL_TOOL_ID = "load-skill";
|
|
44
|
-
function createAbortError(reason) {
|
|
45
|
-
if (reason instanceof Error) {
|
|
46
|
-
return reason;
|
|
47
|
-
}
|
|
48
|
-
return new DOMException(typeof reason === "string" && reason.length > 0 ? reason : "The operation was aborted", "AbortError");
|
|
49
|
-
}
|
|
50
|
-
function throwIfAborted(abortSignal) {
|
|
51
|
-
if (abortSignal?.aborted) {
|
|
52
|
-
throw createAbortError(abortSignal.reason);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
45
|
function isAbortError(error, abortSignal) {
|
|
56
46
|
if (abortSignal?.aborted && error === abortSignal.reason) {
|
|
57
47
|
return true;
|
|
58
48
|
}
|
|
59
49
|
return error instanceof DOMException && error.name === "AbortError";
|
|
60
50
|
}
|
|
61
|
-
function stringifyToolError(error) {
|
|
62
|
-
if (typeof error === "string" && error.length > 0) {
|
|
63
|
-
return error;
|
|
64
|
-
}
|
|
65
|
-
if (error instanceof Error && typeof error.message === "string" && error.message.length > 0) {
|
|
66
|
-
return error.message;
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
return JSON.stringify(error);
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return String(error);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
51
|
function getToolResultError(result) {
|
|
76
52
|
if (!result || typeof result !== "object" || !("error" in result)) {
|
|
77
53
|
return undefined;
|
|
@@ -69,6 +69,7 @@ export declare class ErrorCollector {
|
|
|
69
69
|
* @param slug Error slug from registry (optional)
|
|
70
70
|
*/
|
|
71
71
|
addRuntimeError(message: string, stack?: string, context?: Record<string, unknown>, slug?: string): DevError;
|
|
72
|
+
private addFileContextError;
|
|
72
73
|
/**
|
|
73
74
|
* Add a bundle error
|
|
74
75
|
* @param message Error message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-collector.d.ts","sourceRoot":"","sources":["../../../src/src/observability/error-collector.ts"],"names":[],"mappings":"AAAA;;;;;4BAK4B;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAa5E,MAAM,WAAW,QAAQ;IACvB,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,QAAQ,EAAE,aAAa,CAAC;IACxB,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IAC3C,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAExD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAIhD,OAAO,CAAC,UAAU;IAIlB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,QAAQ;IAiCxD,OAAO,CAAC,aAAa;IAUrB;;;;;;;OAOG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ;IAIX;;;;;;OAMG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ;IAIX;;;;;;OAMG;IACH,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ;IAIX;;;;;;OAMG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ;IAIX;;;;;;OAMG;IACH,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,QAAQ;IAIX,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,EAAE;IAuCxC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/B,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAIlC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM;IAI9C,KAAK,IAAI,IAAI;IAIb,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;IAgBxC;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC;IAsBhD,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAKhD,MAAM,IAAI,QAAQ,EAAE;IAIpB,OAAO,CAAC,UAAU;CAWnB;AAID,wBAAgB,iBAAiB,IAAI,cAAc,CAGlD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAsC1E"}
|
|
1
|
+
{"version":3,"file":"error-collector.d.ts","sourceRoot":"","sources":["../../../src/src/observability/error-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,9 @@ export class ErrorCollector {
|
|
|
79
79
|
addRuntimeError(message, stack, context, slug) {
|
|
80
80
|
return this.addTypedError("runtime", message, { stack, context, slug });
|
|
81
81
|
}
|
|
82
|
+
addFileContextError(type, message, file, context, slug) {
|
|
83
|
+
return this.addTypedError(type, message, { file, context, slug });
|
|
84
|
+
}
|
|
82
85
|
/**
|
|
83
86
|
* Add a bundle error
|
|
84
87
|
* @param message Error message
|
|
@@ -87,7 +90,7 @@ export class ErrorCollector {
|
|
|
87
90
|
* @param slug Error slug from registry (optional)
|
|
88
91
|
*/
|
|
89
92
|
addBundleError(message, file, context, slug) {
|
|
90
|
-
return this.
|
|
93
|
+
return this.addFileContextError("bundle", message, file, context, slug);
|
|
91
94
|
}
|
|
92
95
|
/**
|
|
93
96
|
* Add an HMR error
|
|
@@ -97,7 +100,7 @@ export class ErrorCollector {
|
|
|
97
100
|
* @param slug Error slug from registry (optional)
|
|
98
101
|
*/
|
|
99
102
|
addHMRError(message, file, context, slug) {
|
|
100
|
-
return this.
|
|
103
|
+
return this.addFileContextError("hmr", message, file, context, slug);
|
|
101
104
|
}
|
|
102
105
|
/**
|
|
103
106
|
* Add a module error
|
|
@@ -107,7 +110,7 @@ export class ErrorCollector {
|
|
|
107
110
|
* @param slug Error slug from registry (optional)
|
|
108
111
|
*/
|
|
109
112
|
addModuleError(message, file, context, slug) {
|
|
110
|
-
return this.
|
|
113
|
+
return this.addFileContextError("module", message, file, context, slug);
|
|
111
114
|
}
|
|
112
115
|
getAll(filter) {
|
|
113
116
|
const errors = Array.from(this.errors.values());
|