diff --git a/packages/coding-agent/src/core/gateway-runtime.ts b/packages/coding-agent/src/core/gateway-runtime.ts index 71d919c4..84cd28bc 100644 --- a/packages/coding-agent/src/core/gateway-runtime.ts +++ b/packages/coding-agent/src/core/gateway-runtime.ts @@ -638,7 +638,12 @@ export class GatewayRuntime { if (result.ok) { finishVercelStream(response, "stop"); } else { - errorVercelStream(response, result.error ?? "Unknown error"); + const isAbort = result.error?.includes("aborted"); + if (isAbort) { + finishVercelStream(response, "error"); + } else { + errorVercelStream(response, result.error ?? "Unknown error"); + } } } } catch (error) { diff --git a/packages/coding-agent/src/core/vercel-ai-stream.ts b/packages/coding-agent/src/core/vercel-ai-stream.ts index 728b5eb7..5ff7dd01 100644 --- a/packages/coding-agent/src/core/vercel-ai-stream.ts +++ b/packages/coding-agent/src/core/vercel-ai-stream.ts @@ -125,6 +125,25 @@ export function createVercelStreamListener( input: inner.toolCall.arguments, }); return; + case "thinking_start": + writeChunk(response, { + type: "reasoning-start", + id: `reasoning_${inner.contentIndex}`, + }); + return; + case "thinking_delta": + writeChunk(response, { + type: "reasoning-delta", + id: `reasoning_${inner.contentIndex}`, + delta: inner.delta, + }); + return; + case "thinking_end": + writeChunk(response, { + type: "reasoning-end", + id: `reasoning_${inner.contentIndex}`, + }); + return; } return; }