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.
Files changed (34) hide show
  1. package/esm/deno.js +1 -1
  2. package/esm/src/agent/ag-ui-handler.d.ts +6 -0
  3. package/esm/src/agent/ag-ui-handler.d.ts.map +1 -1
  4. package/esm/src/agent/ag-ui-handler.js +115 -19
  5. package/esm/src/agent/ag-ui-run-control.d.ts +33 -0
  6. package/esm/src/agent/ag-ui-run-control.d.ts.map +1 -0
  7. package/esm/src/agent/ag-ui-run-control.js +102 -0
  8. package/esm/src/agent/index.d.ts +1 -0
  9. package/esm/src/agent/index.d.ts.map +1 -1
  10. package/esm/src/agent/index.js +1 -0
  11. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  12. package/esm/src/agent/runtime/chat-stream-handler.js +1 -25
  13. package/esm/src/agent/runtime/error-utils.d.ts +4 -0
  14. package/esm/src/agent/runtime/error-utils.d.ts.map +1 -0
  15. package/esm/src/agent/runtime/error-utils.js +25 -0
  16. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  17. package/esm/src/agent/runtime/index.js +1 -25
  18. package/esm/src/observability/error-collector.d.ts +1 -0
  19. package/esm/src/observability/error-collector.d.ts.map +1 -1
  20. package/esm/src/observability/error-collector.js +6 -3
  21. package/esm/src/routing/api/module-loader/loader.js +26 -28
  22. package/esm/src/utils/version-constant.d.ts +1 -1
  23. package/esm/src/utils/version-constant.js +1 -1
  24. package/package.json +1 -1
  25. package/src/deno.js +1 -1
  26. package/src/src/agent/ag-ui-handler.ts +187 -27
  27. package/src/src/agent/ag-ui-run-control.ts +161 -0
  28. package/src/src/agent/index.ts +8 -0
  29. package/src/src/agent/runtime/chat-stream-handler.ts +1 -33
  30. package/src/src/agent/runtime/error-utils.ts +32 -0
  31. package/src/src/agent/runtime/index.ts +1 -33
  32. package/src/src/observability/error-collector.ts +13 -3
  33. package/src/src/routing/api/module-loader/loader.ts +37 -38
  34. package/src/src/utils/version-constant.ts +1 -1
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.152",
3
+ "version": "0.1.155",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "exclude": [
@@ -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;AAoCjD,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;AAoQ5D,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;CAChG;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
+ {"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(agent, request, baseContext) {
198
- const threadId = request.threadId ?? dntShim.crypto.randomUUID();
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: agent.id })) {
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: upstream.status,
278
- statusText: upstream.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
- return dntShim.Response.json({
314
- error: "Injected AG-UI tools are not supported by createAgUiHandler yet. Use package-level wait/resume runtime primitives instead.",
315
- }, { status: 501 });
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 createAgUiStreamResponse(agent, parsed, context);
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
+ }
@@ -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"}
@@ -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;AAUtF,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;AA6HD,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"}
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,4 @@
1
+ export declare function createAbortError(reason?: unknown): Error;
2
+ export declare function throwIfAborted(abortSignal?: AbortSignal): void;
3
+ export declare function stringifyToolError(error: unknown): string;
4
+ //# sourceMappingURL=error-utils.d.ts.map
@@ -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":"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"}
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+BzE,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAC1C,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAYlC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,OAAO,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAkB7B;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,yBAAyB,EAAE,GAAG,SAAS,GACnD,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAQxC;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CA6BxE;AAED,gEAAgE;AAChE,KAAK,iBAAiB,GAClB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,EACvC,kBAAkB,EAAE,OAAO,GAC1B,iBAAiB,CAiBnB;AAcD,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAuB;gBAEzB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAS3C;;OAEG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,aAAa,CAAC;IAgDzB;;;OAGG;IACG,MAAM,CACV,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;QAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;KAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAsHtC;;OAEG;YACW,gBAAgB;IAqR9B;;;;OAIG;YACW,yBAAyB;IAoTvC;;OAEG;YACW,eAAe;IAqC7B;;OAEG;YACW,mBAAmB;IAOjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC;IAI5B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAIF;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
@@ -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":"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"}
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.addTypedError("bundle", message, { file, context, slug });
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.addTypedError("hmr", message, { file, context, slug });
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.addTypedError("module", message, { file, context, slug });
113
+ return this.addFileContextError("module", message, file, context, slug);
111
114
  }
112
115
  getAll(filter) {
113
116
  const errors = Array.from(this.errors.values());