diff --git a/typescript-sdk/packages/client/src/legacy/convert.ts b/typescript-sdk/packages/client/src/legacy/convert.ts index deda98bd1..b79335563 100644 --- a/typescript-sdk/packages/client/src/legacy/convert.ts +++ b/typescript-sdk/packages/client/src/legacy/convert.ts @@ -18,6 +18,7 @@ import { StateDeltaEvent, MessagesSnapshotEvent, ToolCall, + RunErrorEvent, } from "@ag-ui/core"; import { Observable } from "rxjs"; import { @@ -36,6 +37,7 @@ import { LegacyActionExecutionMessage, LegacyResultMessage, LegacyActionExecutionResult, + LegacyRunError } from "./types"; import untruncateJson from "untruncate-json"; @@ -317,9 +319,14 @@ export const convertToLegacyEvents = ]; } case EventType.RUN_ERROR: { - // legacy protocol does not have an event for errors - console.error("Run error", event); - return []; + const errorEvent = event as RunErrorEvent; + return [ + { + type: LegacyRuntimeEventTypes.enum.RunError, + message: errorEvent.message, + code: errorEvent.code, + } as LegacyRunError, + ]; } case EventType.STEP_STARTED: { const stepStarted = event as StepStartedEvent; diff --git a/typescript-sdk/packages/client/src/legacy/types.ts b/typescript-sdk/packages/client/src/legacy/types.ts index ee3935f6e..7a5490cdd 100644 --- a/typescript-sdk/packages/client/src/legacy/types.ts +++ b/typescript-sdk/packages/client/src/legacy/types.ts @@ -84,6 +84,13 @@ export const LegacyMetaEvent = z.object({ value: z.any(), }); + +export const LegacyRunError = z.object({ + type: z.literal(LegacyRuntimeEventTypes.enum.RunError), + message: z.string(), + code: z.string().optional(), +}); + export const LegacyRuntimeProtocolEvent = z.discriminatedUnion("type", [ LegacyTextMessageStart, LegacyTextMessageContent, @@ -94,6 +101,7 @@ export const LegacyRuntimeProtocolEvent = z.discriminatedUnion("type", [ LegacyActionExecutionResult, LegacyAgentStateMessage, LegacyMetaEvent, + LegacyRunError, ]); // Protocol Event type exports @@ -109,6 +117,7 @@ export type LegacyActionExecutionResult = z.infer; export type LegacyMetaEvent = z.infer; export type LegacyRuntimeProtocolEvent = z.infer; +export type LegacyRunError = z.infer; // Message schemas (with kind discriminator) export const LegacyTextMessageSchema = z.object({