@mastra/ai-sdk 0.2.6 → 1.0.0-beta.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/index.js CHANGED
@@ -8,6 +8,20 @@ import { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '@mastra/core
8
8
  var isDataChunkType = (chunk) => {
9
9
  return chunk && typeof chunk === "object" && "type" in chunk && chunk.type?.startsWith("data-");
10
10
  };
11
+ function safeParseErrorObject(obj) {
12
+ if (typeof obj !== "object" || obj === null) {
13
+ return String(obj);
14
+ }
15
+ try {
16
+ const stringified = JSON.stringify(obj);
17
+ if (stringified === "{}") {
18
+ return String(obj);
19
+ }
20
+ return stringified;
21
+ } catch {
22
+ return String(obj);
23
+ }
24
+ }
11
25
  var isAgentExecutionDataChunkType = (chunk) => {
12
26
  return chunk && typeof chunk === "object" && "type" in chunk && chunk.type?.startsWith("agent-execution-event-") && "payload" in chunk && typeof chunk.payload === "object" && "type" in chunk.payload && chunk.payload.type?.startsWith("data-");
13
27
  };
@@ -343,6 +357,14 @@ function convertFullStreamChunkToUIMessageStream({
343
357
  toolCallId: part.toolCallId,
344
358
  payload: part.output
345
359
  };
360
+ } else if (isDataChunkType(part.output)) {
361
+ if (!("data" in part.output)) {
362
+ throw new Error(
363
+ `UI Messages require a data property when using data- prefixed chunks
364
+ ${JSON.stringify(part)}`
365
+ );
366
+ }
367
+ return part.output;
346
368
  }
347
369
  return;
348
370
  }
@@ -459,8 +481,8 @@ function AgentStreamToAISDKTransformer(lastMessageId) {
459
481
  sendStart: true,
460
482
  sendFinish: true,
461
483
  responseMessageId: lastMessageId,
462
- onError() {
463
- return "Error";
484
+ onError(error) {
485
+ return safeParseErrorObject(error);
464
486
  }
465
487
  });
466
488
  if (transformedChunk) {
@@ -965,8 +987,8 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
965
987
  }
966
988
  }
967
989
 
968
- // src/to-ai-sdk-format.ts
969
- function toAISdkFormat(stream, options = { from: "agent" }) {
990
+ // src/convert-streams.ts
991
+ function toAISdkV5Stream(stream, options = { from: "agent" }) {
970
992
  const from = options?.from;
971
993
  if (from === "workflow") {
972
994
  return stream.pipeThrough(WorkflowStreamToAISDKTransformer());
@@ -1083,7 +1105,7 @@ function chatRoute({
1083
1105
  handler: async (c) => {
1084
1106
  const { messages, ...rest } = await c.req.json();
1085
1107
  const mastra = c.get("mastra");
1086
- const runtimeContext = c.get("runtimeContext");
1108
+ const requestContext = c.get("requestContext");
1087
1109
  let agentToUse = agent;
1088
1110
  if (!agent) {
1089
1111
  const agentId = c.req.param("agentId");
@@ -1094,8 +1116,8 @@ function chatRoute({
1094
1116
  `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`
1095
1117
  );
1096
1118
  }
1097
- if (runtimeContext && defaultOptions?.runtimeContext) {
1098
- mastra.getLogger()?.warn(`"runtimeContext" set in the route options will be overridden by the request's "runtimeContext".`);
1119
+ if (requestContext && defaultOptions?.requestContext) {
1120
+ mastra.getLogger()?.warn(`"requestContext" set in the route options will be overridden by the request's "requestContext".`);
1099
1121
  }
1100
1122
  if (!agentToUse) {
1101
1123
  throw new Error("Agent ID is required");
@@ -1107,7 +1129,7 @@ function chatRoute({
1107
1129
  const result = await agentObj.stream(messages, {
1108
1130
  ...defaultOptions,
1109
1131
  ...rest,
1110
- runtimeContext: runtimeContext || defaultOptions?.runtimeContext
1132
+ requestContext: requestContext || defaultOptions?.requestContext
1111
1133
  });
1112
1134
  let lastMessageId;
1113
1135
  if (messages.length > 0 && messages[messages.length - 1].role === "assistant") {
@@ -1116,7 +1138,7 @@ function chatRoute({
1116
1138
  const uiMessageStream = createUIMessageStream({
1117
1139
  originalMessages: messages,
1118
1140
  execute: async ({ writer }) => {
1119
- for await (const part of toAISdkFormat(result, { from: "agent", lastMessageId })) {
1141
+ for await (const part of toAISdkV5Stream(result, { from: "agent", lastMessageId })) {
1120
1142
  writer.write(part);
1121
1143
  }
1122
1144
  }
@@ -1157,7 +1179,7 @@ function workflowRoute({
1157
1179
  type: "object",
1158
1180
  properties: {
1159
1181
  inputData: { type: "object", additionalProperties: true },
1160
- runtimeContext: { type: "object", additionalProperties: true },
1182
+ requestContext: { type: "object", additionalProperties: true },
1161
1183
  tracingOptions: { type: "object", additionalProperties: true }
1162
1184
  }
1163
1185
  }
@@ -1195,11 +1217,11 @@ function workflowRoute({
1195
1217
  if (!workflowObj) {
1196
1218
  throw new Error(`Workflow ${workflowToUse} not found`);
1197
1219
  }
1198
- const run = await workflowObj.createRunAsync();
1220
+ const run = await workflowObj.createRun();
1199
1221
  const stream = resumeData ? run.resumeStream({ resumeData, ...rest }) : run.stream({ inputData, ...rest });
1200
1222
  const uiMessageStream = createUIMessageStream({
1201
1223
  execute: async ({ writer }) => {
1202
- for await (const part of toAISdkFormat(stream, { from: "workflow" })) {
1224
+ for await (const part of toAISdkV5Stream(stream, { from: "workflow" })) {
1203
1225
  writer.write(part);
1204
1226
  }
1205
1227
  }
@@ -1239,13 +1261,12 @@ function networkRoute({
1239
1261
  type: "object",
1240
1262
  properties: {
1241
1263
  messages: { type: "array", items: { type: "object" } },
1242
- runtimeContext: { type: "object", additionalProperties: true },
1264
+ requestContext: { type: "object", additionalProperties: true },
1243
1265
  runId: { type: "string" },
1244
1266
  maxSteps: { type: "number" },
1245
1267
  threadId: { type: "string" },
1246
1268
  resourceId: { type: "string" },
1247
1269
  modelSettings: { type: "object", additionalProperties: true },
1248
- telemetry: { type: "object", additionalProperties: true },
1249
1270
  tools: { type: "array", items: { type: "object" } }
1250
1271
  },
1251
1272
  required: ["messages"]
@@ -1294,7 +1315,7 @@ function networkRoute({
1294
1315
  });
1295
1316
  const uiMessageStream = createUIMessageStream({
1296
1317
  execute: async ({ writer }) => {
1297
- for await (const part of toAISdkFormat(result, { from: "network" })) {
1318
+ for await (const part of toAISdkV5Stream(result, { from: "network" })) {
1298
1319
  writer.write(part);
1299
1320
  }
1300
1321
  }
@@ -1304,6 +1325,13 @@ function networkRoute({
1304
1325
  });
1305
1326
  }
1306
1327
 
1307
- export { chatRoute, networkRoute, toAISdkFormat, workflowRoute };
1328
+ // src/to-ai-sdk-format.ts
1329
+ function toAISdkFormat() {
1330
+ throw new Error(
1331
+ 'toAISdkFormat() has been deprecated. Please use toAISdkStream() instead.\n\nMigration:\n import { toAISdkFormat } from "@mastra/ai-sdk";\n // Change to:\n import { toAISdkStream } from "@mastra/ai-sdk";\n\nThe function signature remains the same.'
1332
+ );
1333
+ }
1334
+
1335
+ export { chatRoute, networkRoute, toAISdkFormat, toAISdkV5Stream as toAISdkStream, workflowRoute };
1308
1336
  //# sourceMappingURL=index.js.map
1309
1337
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/helpers.ts","../src/transformers.ts","../src/to-ai-sdk-format.ts","../src/chat-route.ts","../src/workflow-route.ts","../src/network-route.ts"],"names":["rest","registerApiRoute","createUIMessageStream","createUIMessageStreamResponse"],"mappings":"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","file":"index.js","sourcesContent":["import type { DataChunkType, NetworkChunkType } from '@mastra/core/stream';\n\nexport const isDataChunkType = (chunk: any): chunk is DataChunkType => {\n return chunk && typeof chunk === 'object' && 'type' in chunk && chunk.type?.startsWith('data-');\n};\n\nexport const isAgentExecutionDataChunkType = (\n chunk: any,\n): chunk is Omit<NetworkChunkType, 'payload'> & { payload: DataChunkType } => {\n return (\n chunk &&\n typeof chunk === 'object' &&\n 'type' in chunk &&\n chunk.type?.startsWith('agent-execution-event-') &&\n 'payload' in chunk &&\n typeof chunk.payload === 'object' &&\n 'type' in chunk.payload &&\n chunk.payload.type?.startsWith('data-')\n );\n};\n\nexport const isWorkflowExecutionDataChunkType = (\n chunk: any,\n): chunk is Omit<NetworkChunkType, 'payload'> & { payload: DataChunkType } => {\n return (\n chunk &&\n typeof chunk === 'object' &&\n 'type' in chunk &&\n chunk.type?.startsWith('workflow-execution-event-') &&\n 'payload' in chunk &&\n typeof chunk.payload === 'object' &&\n 'type' in chunk.payload &&\n chunk.payload.type?.startsWith('data-')\n );\n};\n","import type { ChunkType } from '@mastra/core';\nimport { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '@mastra/core/stream';\nimport type { PartialSchemaOutput, OutputSchema, DataChunkType } from '@mastra/core/stream';\n\nimport type { InferUIMessageChunk, ObjectStreamPart, TextStreamPart, ToolSet, UIMessage } from 'ai';\nimport { isDataChunkType } from './utils';\n\nexport type OutputChunkType<OUTPUT extends OutputSchema = undefined> =\n | TextStreamPart<ToolSet>\n | ObjectStreamPart<PartialSchemaOutput<OUTPUT>>\n | undefined;\n\nexport type ToolAgentChunkType = { type: 'tool-agent'; toolCallId: string; payload: any };\nexport type ToolWorkflowChunkType = { type: 'tool-workflow'; toolCallId: string; payload: any };\nexport type ToolNetworkChunkType = { type: 'tool-network'; toolCallId: string; payload: any };\n\nexport function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType<OUTPUT>;\n mode?: 'generate' | 'stream';\n}): OutputChunkType<OUTPUT> {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings || [],\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n };\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n if (chunk.payload.sourceType === 'url') {\n return {\n type: 'source',\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url!,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n };\n } else {\n return {\n type: 'source',\n sourceType: 'document',\n id: chunk.payload.id,\n mediaType: chunk.payload.mimeType!,\n title: chunk.payload.title,\n filename: chunk.payload.filename,\n providerMetadata: chunk.payload.providerMetadata,\n };\n }\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: {\n id: chunk.payload.id || '',\n timestamp: new Date(),\n modelId: (rest.modelId as string) || '',\n ...rest,\n },\n usage: chunk.payload.output.usage,\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n\n case 'object':\n return {\n type: 'object',\n object: chunk.object,\n };\n\n default:\n if (chunk.type && 'payload' in chunk && chunk.payload) {\n return {\n type: chunk.type as string,\n ...(chunk.payload || {}),\n } as OutputChunkType<OUTPUT>;\n }\n if ('type' in chunk && chunk.type?.startsWith('data-')) {\n return chunk as any;\n }\n return;\n }\n}\n\nexport function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n // tool-output is a custom mastra chunk type used in ToolStream\n part: TextStreamPart<ToolSet> | DataChunkType | { type: 'tool-output'; toolCallId: string; output: any };\n messageMetadataValue?: unknown;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: unknown) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined {\n const partType = part?.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-output': {\n if (part.output.from === 'AGENT') {\n return {\n type: 'tool-agent',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'WORKFLOW') {\n return {\n type: 'tool-workflow',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'NETWORK') {\n return {\n type: 'tool-network',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n }\n return;\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n // return the chunk as is if it's not a known type\n if (isDataChunkType(part)) {\n if (!('data' in part)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(part)}`,\n );\n }\n return part;\n }\n return;\n }\n }\n}\n","import type { LLMStepResult } from '@mastra/core/agent';\nimport type { ChunkType, DataChunkType, NetworkChunkType } from '@mastra/core/stream';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodType } from 'zod';\nimport { convertMastraChunkToAISDKv5, convertFullStreamChunkToUIMessageStream } from './helpers';\nimport { isAgentExecutionDataChunkType, isDataChunkType, isWorkflowExecutionDataChunkType } from './utils';\n\ntype LanguageModelV2Usage = {\n /**\nThe number of input (prompt) tokens used.\n */\n inputTokens: number | undefined;\n /**\nThe number of output (completion) tokens used.\n */\n outputTokens: number | undefined;\n /**\nThe total number of tokens as reported by the provider.\nThis number might be different from the sum of `inputTokens` and `outputTokens`\nand e.g. include reasoning tokens or other overhead.\n */\n totalTokens: number | undefined;\n /**\nThe number of reasoning tokens used.\n */\n reasoningTokens?: number | undefined;\n /**\nThe number of cached input tokens.\n */\n cachedInputTokens?: number | undefined;\n};\n\ntype StepResult = {\n name: string;\n status: WorkflowStepStatus;\n input: Record<string, unknown> | null;\n output: unknown | null;\n suspendPayload: Record<string, unknown> | null;\n resumePayload: Record<string, unknown> | null;\n};\n\nexport type WorkflowDataPart = {\n type: 'data-workflow' | 'data-tool-workflow';\n id: string;\n data: {\n name: string;\n status: WorkflowRunStatus;\n steps: Record<string, StepResult>;\n output: {\n usage: {\n inputTokens: number;\n outputTokens: number;\n totalTokens: number;\n };\n } | null;\n };\n};\n\nexport type NetworkDataPart = {\n type: 'data-network' | 'data-tool-network';\n id: string;\n data: {\n name: string;\n status: 'running' | 'finished';\n steps: StepResult[];\n usage: LanguageModelV2Usage | null;\n output: unknown | null;\n };\n};\n\nexport type AgentDataPart = {\n type: 'data-tool-agent';\n id: string;\n data: LLMStepResult;\n};\n\nexport function WorkflowStreamToAISDKTransformer() {\n const bufferedWorkflows = new Map<\n string,\n {\n name: string;\n steps: Record<string, StepResult>;\n }\n >();\n return new TransformStream<\n ChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | WorkflowDataPart\n | ChunkType\n >({\n start(controller) {\n controller.enqueue({\n type: 'start',\n });\n },\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n });\n },\n transform(chunk, controller) {\n const transformed = transformWorkflow<any>(chunk, bufferedWorkflows);\n\n if (transformed) controller.enqueue(transformed);\n },\n });\n}\n\nexport function AgentNetworkToAISDKTransformer() {\n const bufferedNetworks = new Map<\n string,\n { name: string; steps: StepResult[]; usage: LanguageModelV2Usage | null; output: unknown | null }\n >();\n\n return new TransformStream<\n NetworkChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | NetworkDataPart\n | InferUIMessageChunk<UIMessage>\n | DataChunkType\n >({\n start(controller) {\n controller.enqueue({\n type: 'start',\n });\n },\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n });\n },\n transform(chunk, controller) {\n const transformed = transformNetwork(chunk, bufferedNetworks);\n if (transformed) controller.enqueue(transformed);\n },\n });\n}\n\nexport function AgentStreamToAISDKTransformer<TOutput extends ZodType<any>>(lastMessageId?: string) {\n let bufferedSteps = new Map<string, any>();\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning: false,\n sendSources: false,\n sendStart: true,\n sendFinish: true,\n responseMessageId: lastMessageId,\n onError() {\n return 'Error';\n },\n });\n\n if (transformedChunk) {\n if (transformedChunk.type === 'tool-agent') {\n const payload = transformedChunk.payload;\n const agentTransformed = transformAgent<TOutput>(payload, bufferedSteps);\n if (agentTransformed) controller.enqueue(agentTransformed);\n } else if (transformedChunk.type === 'tool-workflow') {\n const payload = transformedChunk.payload;\n const workflowChunk = transformWorkflow(payload, bufferedSteps, true);\n if (workflowChunk) controller.enqueue(workflowChunk);\n } else if (transformedChunk.type === 'tool-network') {\n const payload = transformedChunk.payload;\n const networkChunk = transformNetwork(payload, bufferedSteps, true);\n if (networkChunk) controller.enqueue(networkChunk);\n } else {\n controller.enqueue(transformedChunk);\n }\n }\n },\n });\n}\n\nexport function transformAgent<TOutput extends ZodType<any>>(\n payload: ChunkType<TOutput>,\n bufferedSteps: Map<string, any>,\n) {\n let hasChanged = false;\n switch (payload.type) {\n case 'start':\n bufferedSteps.set(payload.runId!, {\n id: payload.payload.id,\n object: null,\n finishReason: null,\n usage: null,\n warnings: [],\n text: '',\n reasoning: [],\n sources: [],\n files: [],\n toolCalls: [],\n toolResults: [],\n request: {},\n response: {\n id: '',\n timestamp: new Date(),\n modelId: '',\n messages: [],\n },\n providerMetadata: undefined,\n steps: [],\n status: 'running',\n });\n hasChanged = true;\n break;\n case 'finish':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n finishReason: payload.payload.stepResult.reason,\n usage: payload.payload?.output?.usage,\n warnings: payload.payload?.stepResult?.warnings,\n steps: bufferedSteps.get(payload.runId!)!.steps,\n status: 'finished',\n });\n hasChanged = true;\n break;\n case 'text-delta':\n const prevData = bufferedSteps.get(payload.runId!)!;\n bufferedSteps.set(payload.runId!, {\n ...prevData,\n text: `${prevData.text}${payload.payload.text}`,\n });\n hasChanged = true;\n break;\n case 'reasoning-delta':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n reasoning: [...bufferedSteps.get(payload.runId)!.reasoning, payload.payload.text],\n });\n hasChanged = true;\n break;\n case 'source':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n sources: [...bufferedSteps.get(payload.runId)!.sources, payload.payload],\n });\n hasChanged = true;\n break;\n case 'file':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n files: [...bufferedSteps.get(payload.runId)!.files, payload.payload],\n });\n hasChanged = true;\n break;\n case 'tool-call':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n toolCalls: [...bufferedSteps.get(payload.runId)!.toolCalls, payload.payload],\n });\n hasChanged = true;\n break;\n case 'tool-result':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n toolResults: [...bufferedSteps.get(payload.runId)!.toolResults, payload.payload],\n });\n hasChanged = true;\n break;\n case 'object-result':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n object: payload.object,\n });\n hasChanged = true;\n break;\n case 'object':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n object: payload.object,\n });\n hasChanged = true;\n break;\n case 'step-finish':\n const currentRun = bufferedSteps.get(payload.runId!)!;\n const stepResult = {\n ...bufferedSteps.get(payload.runId!)!,\n stepType: currentRun.steps.length === 0 ? 'initial' : 'tool-result',\n reasoningText: bufferedSteps.get(payload.runId!)!.reasoning.join(''),\n staticToolCalls: bufferedSteps\n .get(payload.runId!)!\n .toolCalls.filter((part: any) => part.type === 'tool-call' && part.payload?.dynamic === false),\n dynamicToolCalls: bufferedSteps\n .get(payload.runId!)!\n .toolCalls.filter((part: any) => part.type === 'tool-call' && part.payload?.dynamic === true),\n staticToolResults: bufferedSteps\n .get(payload.runId!)!\n .toolResults.filter((part: any) => part.type === 'tool-result' && part.payload?.dynamic === false),\n dynamicToolResults: bufferedSteps\n .get(payload.runId!)!\n .toolResults.filter((part: any) => part.type === 'tool-result' && part.payload?.dynamic === true),\n finishReason: payload.payload.stepResult.reason,\n usage: payload.payload.output.usage,\n warnings: payload.payload.stepResult.warnings || [],\n response: {\n id: payload.payload.id || '',\n timestamp: (payload.payload.metadata?.timestamp as Date) || new Date(),\n modelId: (payload.payload.metadata?.modelId as string) || (payload.payload.metadata?.model as string) || '',\n ...bufferedSteps.get(payload.runId!)!.response,\n messages: bufferedSteps.get(payload.runId!)!.response.messages || [],\n },\n };\n\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!)!,\n usage: payload.payload.output.usage,\n warnings: payload.payload.stepResult.warnings || [],\n steps: [...bufferedSteps.get(payload.runId!)!.steps, stepResult],\n });\n hasChanged = true;\n break;\n default:\n break;\n }\n\n if (hasChanged) {\n return {\n type: 'data-tool-agent',\n id: payload.runId!,\n data: bufferedSteps.get(payload.runId!),\n } satisfies AgentDataPart;\n }\n return null;\n}\n\nexport function transformWorkflow<TOutput extends ZodType<any>>(\n payload: ChunkType<TOutput>,\n bufferedWorkflows: Map<\n string,\n {\n name: string;\n steps: Record<string, StepResult>;\n }\n >,\n isNested?: boolean,\n) {\n switch (payload.type) {\n case 'workflow-start':\n bufferedWorkflows.set(payload.runId!, {\n name: payload.payload.workflowId,\n steps: {},\n });\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: bufferedWorkflows.get(payload.runId!)!.name,\n status: 'running',\n steps: bufferedWorkflows.get(payload.runId!)!.steps,\n output: null,\n },\n } as const;\n case 'workflow-step-start': {\n const current = bufferedWorkflows.get(payload.runId!) || { name: '', steps: {} };\n current.steps[payload.payload.id] = {\n name: payload.payload.id,\n status: payload.payload.status,\n input: payload.payload.payload ?? null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult;\n bufferedWorkflows.set(payload.runId!, current);\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: null,\n },\n } as const;\n }\n case 'workflow-step-result': {\n const current = bufferedWorkflows.get(payload.runId!);\n if (!current) return null;\n current.steps[payload.payload.id] = {\n ...current.steps[payload.payload.id]!,\n status: payload.payload.status,\n output: payload.payload.output ?? null,\n } satisfies StepResult;\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: null,\n },\n } as const;\n }\n case 'workflow-step-suspended': {\n const current = bufferedWorkflows.get(payload.runId!);\n if (!current) return null;\n current.steps[payload.payload.id] = {\n ...current.steps[payload.payload.id]!,\n status: payload.payload.status,\n suspendPayload: payload.payload.suspendPayload ?? null,\n resumePayload: payload.payload.resumePayload ?? null,\n output: null,\n } satisfies StepResult;\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n status: 'suspended',\n steps: current.steps,\n output: null,\n },\n } as const;\n }\n case 'workflow-finish': {\n const current = bufferedWorkflows.get(payload.runId!);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n steps: current.steps,\n output: payload.payload.output ?? null,\n status: payload.payload.workflowStatus,\n },\n } as const;\n }\n default: {\n // return the chunk as is if it's not a known type\n if (isDataChunkType(payload)) {\n if (!('data' in payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload;\n }\n return null;\n }\n }\n}\n\nexport function transformNetwork(\n payload: NetworkChunkType,\n bufferedNetworks: Map<\n string,\n { name: string; steps: StepResult[]; usage: LanguageModelV2Usage | null; output: unknown | null }\n >,\n isNested?: boolean,\n): InferUIMessageChunk<UIMessage> | NetworkDataPart | DataChunkType | null {\n switch (payload.type) {\n case 'routing-agent-start': {\n if (!bufferedNetworks.has(payload.runId)) {\n bufferedNetworks.set(payload.runId, {\n name: payload.payload.agentId,\n steps: [],\n usage: null,\n output: null,\n });\n }\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n name: bufferedNetworks.get(payload.runId)!.name,\n status: 'running',\n usage: null,\n steps: bufferedNetworks.get(payload.runId)!.steps,\n output: null,\n },\n } as const;\n }\n case 'routing-agent-text-start': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n return {\n type: 'text-start',\n id: payload.runId!,\n } as const;\n }\n case 'routing-agent-text-delta': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n return {\n type: 'text-delta',\n id: payload.runId!,\n delta: payload.payload.text,\n } as const;\n }\n case 'agent-execution-start': {\n const current = bufferedNetworks.get(payload.runId) || { name: '', steps: [], usage: null, output: null };\n current.steps.push({\n name: payload.payload.agentId,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'running',\n },\n } as const;\n }\n case 'workflow-execution-start': {\n const current = bufferedNetworks.get(payload.runId) || { name: '', steps: [], usage: null, output: null };\n current.steps.push({\n name: payload.payload.name,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'running',\n },\n } as const;\n }\n case 'tool-execution-start': {\n const current = bufferedNetworks.get(payload.runId) || { name: '', steps: [], usage: null, output: null };\n current.steps.push({\n name: payload.payload.args?.toolName!,\n status: 'running',\n input: payload.payload.args?.args || null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'running',\n },\n } as const;\n }\n case 'agent-execution-end': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n current.steps.push({\n name: payload.payload.agentId,\n status: 'success',\n input: null,\n output: payload.payload.result,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n usage: payload.payload?.usage ?? current.usage,\n status: 'running',\n output: payload.payload.result ?? current.output,\n },\n } as const;\n }\n case 'tool-execution-end': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n current.steps.push({\n name: payload.payload.toolName,\n status: 'success',\n input: null,\n output: payload.payload.result,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n status: 'running',\n output: payload.payload.result ?? current.output,\n },\n } as const;\n }\n case 'workflow-execution-end': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n current.steps.push({\n name: payload.payload.name,\n status: 'success',\n input: null,\n output: payload.payload.result,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n usage: payload.payload?.usage ?? current.usage,\n status: 'running',\n output: payload.payload.result ?? current.output,\n },\n } as const;\n }\n case 'routing-agent-end': {\n const current = bufferedNetworks.get(payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'finished',\n usage: payload.payload?.usage ?? current.usage,\n output: payload.payload?.result ?? current.output,\n },\n } as const;\n }\n case 'network-execution-event-step-finish': {\n const current = bufferedNetworks.get(payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'finished',\n output: payload.payload?.result ?? current.output,\n },\n } as const;\n }\n case 'network-execution-event-finish': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n usage: payload.payload?.usage ?? current.usage,\n status: 'finished',\n output: payload.payload?.result ?? current.output,\n },\n } as const;\n }\n default: {\n // return the chunk as is if it's not a known type\n if (isDataChunkType(payload)) {\n if (!('data' in payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload;\n }\n if (isAgentExecutionDataChunkType(payload)) {\n if (!('data' in payload.payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload.payload;\n }\n if (isWorkflowExecutionDataChunkType(payload)) {\n if (!('data' in payload.payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload.payload;\n }\n return null;\n }\n }\n}\n","import type {\n MastraModelOutput,\n ChunkType,\n OutputSchema,\n MastraAgentNetworkStream,\n WorkflowRunOutput,\n} from '@mastra/core/stream';\nimport type { MastraWorkflowStream, Step, WorkflowResult } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodObject, ZodType } from 'zod';\nimport {\n AgentNetworkToAISDKTransformer,\n AgentStreamToAISDKTransformer,\n WorkflowStreamToAISDKTransformer,\n} from './transformers';\n\ntype ToAISDKFrom = 'agent' | 'network' | 'workflow';\n\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream,\n options: { from: 'network' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<TOutput extends OutputSchema>(\n stream: MastraModelOutput<TOutput>,\n options: { from: 'agent'; lastMessageId?: string },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream:\n | MastraAgentNetworkStream\n | MastraWorkflowStream<any, any, any, any>\n | MastraModelOutput\n | WorkflowRunOutput<WorkflowResult<any, any, any, any>>,\n options: { from: ToAISDKFrom; lastMessageId?: string } = { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>> {\n const from = options?.from;\n\n if (from === 'workflow') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(WorkflowStreamToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n if (from === 'network') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(AgentNetworkToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n const agentReadable: ReadableStream<ChunkType> =\n 'fullStream' in stream ? (stream as MastraModelOutput).fullStream : (stream as ReadableStream<ChunkType>);\n return agentReadable.pipeThrough(AgentStreamToAISDKTransformer<any>(options?.lastMessageId)) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\nexport type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {\n defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'>;\n} & (\n | {\n path: `${string}:agentId${string}`;\n agent?: never;\n }\n | {\n path: string;\n agent: string;\n }\n);\n\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n}: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Chat with an agent',\n description: 'Send messages to an agent and stream the response in the AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the agent to chat with',\n schema: {\n type: 'string',\n },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: {\n type: 'array',\n description: 'Array of messages in the conversation',\n items: {\n type: 'object',\n properties: {\n role: {\n type: 'string',\n enum: ['user', 'assistant', 'system'],\n description: 'The role of the message sender',\n },\n content: {\n type: 'string',\n description: 'The content of the message',\n },\n },\n required: ['role', 'content'],\n },\n },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming response from the agent',\n content: {\n 'text/plain': {\n schema: {\n type: 'string',\n description: 'Server-sent events stream containing the agent response',\n },\n },\n },\n },\n '400': {\n description: 'Bad request - invalid input',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n const runtimeContext = (c as any).get('runtimeContext') as RuntimeContext | undefined;\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (runtimeContext && defaultOptions?.runtimeContext) {\n mastra\n .getLogger()\n ?.warn(`\"runtimeContext\" set in the route options will be overridden by the request's \"runtimeContext\".`);\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.stream<OUTPUT, 'mastra'>(messages, {\n ...defaultOptions,\n ...rest,\n runtimeContext: runtimeContext || defaultOptions?.runtimeContext,\n });\n\n let lastMessageId: string | undefined;\n if (messages.length > 0 && messages[messages.length - 1].role === 'assistant') {\n lastMessageId = messages[messages.length - 1].id;\n }\n\n const uiMessageStream = createUIMessageStream({\n originalMessages: messages,\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(result, { from: 'agent', lastMessageId })!) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({\n stream: uiMessageStream,\n });\n },\n });\n}\n","import type { TracingOptions } from '@mastra/core/ai-tracing';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\ntype WorkflowRouteBody = {\n inputData?: Record<string, any>;\n resumeData?: Record<string, any>;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n step?: string;\n};\n\nexport type WorkflowRouteOptions =\n | { path: `${string}:workflowId${string}`; workflow?: never }\n | { path: string; workflow: string };\n\nexport function workflowRoute({\n path = '/api/workflows/:workflowId/stream',\n workflow,\n}: WorkflowRouteOptions): ReturnType<typeof registerApiRoute> {\n if (!workflow && !path.includes('/:workflowId')) {\n throw new Error('Path must include :workflowId to route to the correct workflow or pass the workflow explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Stream a workflow in AI SDK format',\n description: 'Starts a workflow run and streams events as AI SDK UIMessage chunks',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'workflowId',\n in: 'path',\n required: true,\n description: 'The ID of the workflow to stream',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n inputData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n },\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Workflow UIMessage event stream',\n content: {\n 'text/plain': {\n schema: { type: 'string', description: 'SSE stream' },\n },\n },\n },\n },\n },\n handler: async c => {\n const { inputData, resumeData, ...rest } = (await c.req.json()) as WorkflowRouteBody;\n const mastra = c.get('mastra');\n\n let workflowToUse: string | undefined = workflow;\n if (!workflow) {\n const workflowId = c.req.param('workflowId');\n workflowToUse = workflowId;\n }\n\n if (c.req.param('workflowId') && workflow) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`,\n );\n }\n if (!workflowToUse) {\n throw new Error('Workflow ID is required');\n }\n\n const workflowObj = mastra.getWorkflow(workflowToUse);\n if (!workflowObj) {\n throw new Error(`Workflow ${workflowToUse} not found`);\n }\n\n const run = await workflowObj.createRunAsync();\n\n const stream = resumeData ? run.resumeStream({ resumeData, ...rest }) : run.stream({ inputData, ...rest });\n\n const uiMessageStream = createUIMessageStream({\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(stream, { from: 'workflow' })) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({ stream: uiMessageStream });\n },\n });\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\nexport type NetworkRouteOptions<OUTPUT extends OutputSchema = undefined> =\n | { path: `${string}:agentId${string}`; agent?: never; defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'> }\n | { path: string; agent: string; defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'> };\n\nexport function networkRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/network/:agentId',\n agent,\n defaultOptions,\n}: NetworkRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Execute an agent network and stream AI SDK events',\n description: 'Routes a request to an agent network and streams UIMessage chunks in AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the routing agent to execute as a network',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: { type: 'array', items: { type: 'object' } },\n runtimeContext: { type: 'object', additionalProperties: true },\n runId: { type: 'string' },\n maxSteps: { type: 'number' },\n threadId: { type: 'string' },\n resourceId: { type: 'string' },\n modelSettings: { type: 'object', additionalProperties: true },\n telemetry: { type: 'object', additionalProperties: true },\n tools: { type: 'array', items: { type: 'object' } },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming AI SDK UIMessage event stream for the agent network',\n content: { 'text/plain': { schema: { type: 'string', description: 'SSE stream' } } },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: { type: 'object', properties: { error: { type: 'string' } } },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.network(messages, {\n ...defaultOptions,\n ...rest,\n });\n\n const uiMessageStream = createUIMessageStream({\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(result, { from: 'network' })) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({ stream: uiMessageStream });\n },\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/utils.ts","../src/helpers.ts","../src/transformers.ts","../src/convert-streams.ts","../src/chat-route.ts","../src/workflow-route.ts","../src/network-route.ts","../src/to-ai-sdk-format.ts"],"names":["rest","registerApiRoute","createUIMessageStream","createUIMessageStreamResponse"],"mappings":"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","file":"index.js","sourcesContent":["import type { DataChunkType, NetworkChunkType } from '@mastra/core/stream';\n\nexport const isDataChunkType = (chunk: any): chunk is DataChunkType => {\n return chunk && typeof chunk === 'object' && 'type' in chunk && chunk.type?.startsWith('data-');\n};\n\nexport function safeParseErrorObject(obj: unknown): string {\n if (typeof obj !== 'object' || obj === null) {\n return String(obj);\n }\n\n try {\n const stringified = JSON.stringify(obj);\n // If JSON.stringify returns \"{}\", fall back to String() for better representation\n if (stringified === '{}') {\n return String(obj);\n }\n return stringified;\n } catch {\n // Fallback to String() if JSON.stringify fails (e.g., circular references)\n return String(obj);\n }\n}\n\nexport const isAgentExecutionDataChunkType = (\n chunk: any,\n): chunk is Omit<NetworkChunkType, 'payload'> & { payload: DataChunkType } => {\n return (\n chunk &&\n typeof chunk === 'object' &&\n 'type' in chunk &&\n chunk.type?.startsWith('agent-execution-event-') &&\n 'payload' in chunk &&\n typeof chunk.payload === 'object' &&\n 'type' in chunk.payload &&\n chunk.payload.type?.startsWith('data-')\n );\n};\n\nexport const isWorkflowExecutionDataChunkType = (\n chunk: any,\n): chunk is Omit<NetworkChunkType, 'payload'> & { payload: DataChunkType } => {\n return (\n chunk &&\n typeof chunk === 'object' &&\n 'type' in chunk &&\n chunk.type?.startsWith('workflow-execution-event-') &&\n 'payload' in chunk &&\n typeof chunk.payload === 'object' &&\n 'type' in chunk.payload &&\n chunk.payload.type?.startsWith('data-')\n );\n};\n","import { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '@mastra/core/stream';\nimport type { PartialSchemaOutput, OutputSchema, DataChunkType, ChunkType } from '@mastra/core/stream';\n\nimport type { InferUIMessageChunk, ObjectStreamPart, TextStreamPart, ToolSet, UIMessage } from 'ai';\nimport { isDataChunkType } from './utils';\n\nexport type OutputChunkType<OUTPUT extends OutputSchema = undefined> =\n | TextStreamPart<ToolSet>\n | ObjectStreamPart<PartialSchemaOutput<OUTPUT>>\n | undefined;\n\nexport type ToolAgentChunkType = { type: 'tool-agent'; toolCallId: string; payload: any };\nexport type ToolWorkflowChunkType = { type: 'tool-workflow'; toolCallId: string; payload: any };\nexport type ToolNetworkChunkType = { type: 'tool-network'; toolCallId: string; payload: any };\n\nexport function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType<OUTPUT>;\n mode?: 'generate' | 'stream';\n}): OutputChunkType<OUTPUT> {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings || [],\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n };\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n if (chunk.payload.sourceType === 'url') {\n return {\n type: 'source',\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url!,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n };\n } else {\n return {\n type: 'source',\n sourceType: 'document',\n id: chunk.payload.id,\n mediaType: chunk.payload.mimeType!,\n title: chunk.payload.title,\n filename: chunk.payload.filename,\n providerMetadata: chunk.payload.providerMetadata,\n };\n }\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: {\n id: chunk.payload.id || '',\n timestamp: new Date(),\n modelId: (rest.modelId as string) || '',\n ...rest,\n },\n usage: chunk.payload.output.usage,\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n\n case 'object':\n return {\n type: 'object',\n object: chunk.object,\n };\n\n default:\n if (chunk.type && 'payload' in chunk && chunk.payload) {\n return {\n type: chunk.type as string,\n ...(chunk.payload || {}),\n } as OutputChunkType<OUTPUT>;\n }\n if ('type' in chunk && chunk.type?.startsWith('data-')) {\n return chunk as any;\n }\n return;\n }\n}\n\nexport function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n // tool-output is a custom mastra chunk type used in ToolStream\n part: TextStreamPart<ToolSet> | DataChunkType | { type: 'tool-output'; toolCallId: string; output: any };\n messageMetadataValue?: unknown;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: unknown) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined {\n const partType = part?.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-output': {\n if (part.output.from === 'AGENT') {\n return {\n type: 'tool-agent',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'WORKFLOW') {\n return {\n type: 'tool-workflow',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'NETWORK') {\n return {\n type: 'tool-network',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (isDataChunkType(part.output)) {\n if (!('data' in part.output)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(part)}`,\n );\n }\n return part.output;\n }\n return;\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n // return the chunk as is if it's not a known type\n if (isDataChunkType(part)) {\n if (!('data' in part)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(part)}`,\n );\n }\n return part;\n }\n return;\n }\n }\n}\n","import type { LLMStepResult } from '@mastra/core/agent';\nimport type { ChunkType, DataChunkType, NetworkChunkType } from '@mastra/core/stream';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodType } from 'zod';\nimport { convertMastraChunkToAISDKv5, convertFullStreamChunkToUIMessageStream } from './helpers';\nimport {\n isAgentExecutionDataChunkType,\n isDataChunkType,\n isWorkflowExecutionDataChunkType,\n safeParseErrorObject,\n} from './utils';\n\ntype LanguageModelV2Usage = {\n /**\nThe number of input (prompt) tokens used.\n */\n inputTokens: number | undefined;\n /**\nThe number of output (completion) tokens used.\n */\n outputTokens: number | undefined;\n /**\nThe total number of tokens as reported by the provider.\nThis number might be different from the sum of `inputTokens` and `outputTokens`\nand e.g. include reasoning tokens or other overhead.\n */\n totalTokens: number | undefined;\n /**\nThe number of reasoning tokens used.\n */\n reasoningTokens?: number | undefined;\n /**\nThe number of cached input tokens.\n */\n cachedInputTokens?: number | undefined;\n};\n\ntype StepResult = {\n name: string;\n status: WorkflowStepStatus;\n input: Record<string, unknown> | null;\n output: unknown | null;\n suspendPayload: Record<string, unknown> | null;\n resumePayload: Record<string, unknown> | null;\n};\n\nexport type WorkflowDataPart = {\n type: 'data-workflow' | 'data-tool-workflow';\n id: string;\n data: {\n name: string;\n status: WorkflowRunStatus;\n steps: Record<string, StepResult>;\n output: {\n usage: {\n inputTokens: number;\n outputTokens: number;\n totalTokens: number;\n };\n } | null;\n };\n};\n\nexport type NetworkDataPart = {\n type: 'data-network' | 'data-tool-network';\n id: string;\n data: {\n name: string;\n status: 'running' | 'finished';\n steps: StepResult[];\n usage: LanguageModelV2Usage | null;\n output: unknown | null;\n };\n};\n\nexport type AgentDataPart = {\n type: 'data-tool-agent';\n id: string;\n data: LLMStepResult;\n};\n\nexport function WorkflowStreamToAISDKTransformer() {\n const bufferedWorkflows = new Map<\n string,\n {\n name: string;\n steps: Record<string, StepResult>;\n }\n >();\n return new TransformStream<\n ChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | WorkflowDataPart\n | ChunkType\n >({\n start(controller) {\n controller.enqueue({\n type: 'start',\n });\n },\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n });\n },\n transform(chunk, controller) {\n const transformed = transformWorkflow<any>(chunk, bufferedWorkflows);\n\n if (transformed) controller.enqueue(transformed);\n },\n });\n}\n\nexport function AgentNetworkToAISDKTransformer() {\n const bufferedNetworks = new Map<\n string,\n { name: string; steps: StepResult[]; usage: LanguageModelV2Usage | null; output: unknown | null }\n >();\n\n return new TransformStream<\n NetworkChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | NetworkDataPart\n | InferUIMessageChunk<UIMessage>\n | DataChunkType\n >({\n start(controller) {\n controller.enqueue({\n type: 'start',\n });\n },\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n });\n },\n transform(chunk, controller) {\n const transformed = transformNetwork(chunk, bufferedNetworks);\n if (transformed) controller.enqueue(transformed);\n },\n });\n}\n\nexport function AgentStreamToAISDKTransformer<TOutput extends ZodType<any>>(lastMessageId?: string) {\n let bufferedSteps = new Map<string, any>();\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning: false,\n sendSources: false,\n sendStart: true,\n sendFinish: true,\n responseMessageId: lastMessageId,\n onError(error) {\n return safeParseErrorObject(error);\n },\n });\n\n if (transformedChunk) {\n if (transformedChunk.type === 'tool-agent') {\n const payload = transformedChunk.payload;\n const agentTransformed = transformAgent<TOutput>(payload, bufferedSteps);\n if (agentTransformed) controller.enqueue(agentTransformed);\n } else if (transformedChunk.type === 'tool-workflow') {\n const payload = transformedChunk.payload;\n const workflowChunk = transformWorkflow(payload, bufferedSteps, true);\n if (workflowChunk) controller.enqueue(workflowChunk);\n } else if (transformedChunk.type === 'tool-network') {\n const payload = transformedChunk.payload;\n const networkChunk = transformNetwork(payload, bufferedSteps, true);\n if (networkChunk) controller.enqueue(networkChunk);\n } else {\n controller.enqueue(transformedChunk);\n }\n }\n },\n });\n}\n\nexport function transformAgent<TOutput extends ZodType<any>>(\n payload: ChunkType<TOutput>,\n bufferedSteps: Map<string, any>,\n) {\n let hasChanged = false;\n switch (payload.type) {\n case 'start':\n bufferedSteps.set(payload.runId!, {\n id: payload.payload.id,\n object: null,\n finishReason: null,\n usage: null,\n warnings: [],\n text: '',\n reasoning: [],\n sources: [],\n files: [],\n toolCalls: [],\n toolResults: [],\n request: {},\n response: {\n id: '',\n timestamp: new Date(),\n modelId: '',\n messages: [],\n },\n providerMetadata: undefined,\n steps: [],\n status: 'running',\n });\n hasChanged = true;\n break;\n case 'finish':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n finishReason: payload.payload.stepResult.reason,\n usage: payload.payload?.output?.usage,\n warnings: payload.payload?.stepResult?.warnings,\n steps: bufferedSteps.get(payload.runId!)!.steps,\n status: 'finished',\n });\n hasChanged = true;\n break;\n case 'text-delta':\n const prevData = bufferedSteps.get(payload.runId!)!;\n bufferedSteps.set(payload.runId!, {\n ...prevData,\n text: `${prevData.text}${payload.payload.text}`,\n });\n hasChanged = true;\n break;\n case 'reasoning-delta':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n reasoning: [...bufferedSteps.get(payload.runId)!.reasoning, payload.payload.text],\n });\n hasChanged = true;\n break;\n case 'source':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n sources: [...bufferedSteps.get(payload.runId)!.sources, payload.payload],\n });\n hasChanged = true;\n break;\n case 'file':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n files: [...bufferedSteps.get(payload.runId)!.files, payload.payload],\n });\n hasChanged = true;\n break;\n case 'tool-call':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n toolCalls: [...bufferedSteps.get(payload.runId)!.toolCalls, payload.payload],\n });\n hasChanged = true;\n break;\n case 'tool-result':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n toolResults: [...bufferedSteps.get(payload.runId)!.toolResults, payload.payload],\n });\n hasChanged = true;\n break;\n case 'object-result':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n object: payload.object,\n });\n hasChanged = true;\n break;\n case 'object':\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!),\n object: payload.object,\n });\n hasChanged = true;\n break;\n case 'step-finish':\n const currentRun = bufferedSteps.get(payload.runId!)!;\n const stepResult = {\n ...bufferedSteps.get(payload.runId!)!,\n stepType: currentRun.steps.length === 0 ? 'initial' : 'tool-result',\n reasoningText: bufferedSteps.get(payload.runId!)!.reasoning.join(''),\n staticToolCalls: bufferedSteps\n .get(payload.runId!)!\n .toolCalls.filter((part: any) => part.type === 'tool-call' && part.payload?.dynamic === false),\n dynamicToolCalls: bufferedSteps\n .get(payload.runId!)!\n .toolCalls.filter((part: any) => part.type === 'tool-call' && part.payload?.dynamic === true),\n staticToolResults: bufferedSteps\n .get(payload.runId!)!\n .toolResults.filter((part: any) => part.type === 'tool-result' && part.payload?.dynamic === false),\n dynamicToolResults: bufferedSteps\n .get(payload.runId!)!\n .toolResults.filter((part: any) => part.type === 'tool-result' && part.payload?.dynamic === true),\n finishReason: payload.payload.stepResult.reason,\n usage: payload.payload.output.usage,\n warnings: payload.payload.stepResult.warnings || [],\n response: {\n id: payload.payload.id || '',\n timestamp: (payload.payload.metadata?.timestamp as Date) || new Date(),\n modelId: (payload.payload.metadata?.modelId as string) || (payload.payload.metadata?.model as string) || '',\n ...bufferedSteps.get(payload.runId!)!.response,\n messages: bufferedSteps.get(payload.runId!)!.response.messages || [],\n },\n };\n\n bufferedSteps.set(payload.runId!, {\n ...bufferedSteps.get(payload.runId!)!,\n usage: payload.payload.output.usage,\n warnings: payload.payload.stepResult.warnings || [],\n steps: [...bufferedSteps.get(payload.runId!)!.steps, stepResult],\n });\n hasChanged = true;\n break;\n default:\n break;\n }\n\n if (hasChanged) {\n return {\n type: 'data-tool-agent',\n id: payload.runId!,\n data: bufferedSteps.get(payload.runId!),\n } satisfies AgentDataPart;\n }\n return null;\n}\n\nexport function transformWorkflow<TOutput extends ZodType<any>>(\n payload: ChunkType<TOutput>,\n bufferedWorkflows: Map<\n string,\n {\n name: string;\n steps: Record<string, StepResult>;\n }\n >,\n isNested?: boolean,\n) {\n switch (payload.type) {\n case 'workflow-start':\n bufferedWorkflows.set(payload.runId!, {\n name: payload.payload.workflowId,\n steps: {},\n });\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: bufferedWorkflows.get(payload.runId!)!.name,\n status: 'running',\n steps: bufferedWorkflows.get(payload.runId!)!.steps,\n output: null,\n },\n } as const;\n case 'workflow-step-start': {\n const current = bufferedWorkflows.get(payload.runId!) || { name: '', steps: {} };\n current.steps[payload.payload.id] = {\n name: payload.payload.id,\n status: payload.payload.status,\n input: payload.payload.payload ?? null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult;\n bufferedWorkflows.set(payload.runId!, current);\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: null,\n },\n } as const;\n }\n case 'workflow-step-result': {\n const current = bufferedWorkflows.get(payload.runId!);\n if (!current) return null;\n current.steps[payload.payload.id] = {\n ...current.steps[payload.payload.id]!,\n status: payload.payload.status,\n output: payload.payload.output ?? null,\n } satisfies StepResult;\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: null,\n },\n } as const;\n }\n case 'workflow-step-suspended': {\n const current = bufferedWorkflows.get(payload.runId!);\n if (!current) return null;\n current.steps[payload.payload.id] = {\n ...current.steps[payload.payload.id]!,\n status: payload.payload.status,\n suspendPayload: payload.payload.suspendPayload ?? null,\n resumePayload: payload.payload.resumePayload ?? null,\n output: null,\n } satisfies StepResult;\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n status: 'suspended',\n steps: current.steps,\n output: null,\n },\n } as const;\n }\n case 'workflow-finish': {\n const current = bufferedWorkflows.get(payload.runId!);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-workflow' : 'data-workflow',\n id: payload.runId,\n data: {\n name: current.name,\n steps: current.steps,\n output: payload.payload.output ?? null,\n status: payload.payload.workflowStatus,\n },\n } as const;\n }\n default: {\n // return the chunk as is if it's not a known type\n if (isDataChunkType(payload)) {\n if (!('data' in payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload;\n }\n return null;\n }\n }\n}\n\nexport function transformNetwork(\n payload: NetworkChunkType,\n bufferedNetworks: Map<\n string,\n { name: string; steps: StepResult[]; usage: LanguageModelV2Usage | null; output: unknown | null }\n >,\n isNested?: boolean,\n): InferUIMessageChunk<UIMessage> | NetworkDataPart | DataChunkType | null {\n switch (payload.type) {\n case 'routing-agent-start': {\n if (!bufferedNetworks.has(payload.runId)) {\n bufferedNetworks.set(payload.runId, {\n name: payload.payload.agentId,\n steps: [],\n usage: null,\n output: null,\n });\n }\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n name: bufferedNetworks.get(payload.runId)!.name,\n status: 'running',\n usage: null,\n steps: bufferedNetworks.get(payload.runId)!.steps,\n output: null,\n },\n } as const;\n }\n case 'routing-agent-text-start': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n return {\n type: 'text-start',\n id: payload.runId!,\n } as const;\n }\n case 'routing-agent-text-delta': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n return {\n type: 'text-delta',\n id: payload.runId!,\n delta: payload.payload.text,\n } as const;\n }\n case 'agent-execution-start': {\n const current = bufferedNetworks.get(payload.runId) || { name: '', steps: [], usage: null, output: null };\n current.steps.push({\n name: payload.payload.agentId,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'running',\n },\n } as const;\n }\n case 'workflow-execution-start': {\n const current = bufferedNetworks.get(payload.runId) || { name: '', steps: [], usage: null, output: null };\n current.steps.push({\n name: payload.payload.name,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'running',\n },\n } as const;\n }\n case 'tool-execution-start': {\n const current = bufferedNetworks.get(payload.runId) || { name: '', steps: [], usage: null, output: null };\n current.steps.push({\n name: payload.payload.args?.toolName!,\n status: 'running',\n input: payload.payload.args?.args || null,\n output: null,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'running',\n },\n } as const;\n }\n case 'agent-execution-end': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n current.steps.push({\n name: payload.payload.agentId,\n status: 'success',\n input: null,\n output: payload.payload.result,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n usage: payload.payload?.usage ?? current.usage,\n status: 'running',\n output: payload.payload.result ?? current.output,\n },\n } as const;\n }\n case 'tool-execution-end': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n current.steps.push({\n name: payload.payload.toolName,\n status: 'success',\n input: null,\n output: payload.payload.result,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n status: 'running',\n output: payload.payload.result ?? current.output,\n },\n } as const;\n }\n case 'workflow-execution-end': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n current.steps.push({\n name: payload.payload.name,\n status: 'success',\n input: null,\n output: payload.payload.result,\n suspendPayload: null,\n resumePayload: null,\n } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n usage: payload.payload?.usage ?? current.usage,\n status: 'running',\n output: payload.payload.result ?? current.output,\n },\n } as const;\n }\n case 'routing-agent-end': {\n const current = bufferedNetworks.get(payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'finished',\n usage: payload.payload?.usage ?? current.usage,\n output: payload.payload?.result ?? current.output,\n },\n } as const;\n }\n case 'network-execution-event-step-finish': {\n const current = bufferedNetworks.get(payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId,\n data: {\n ...current,\n status: 'finished',\n output: payload.payload?.result ?? current.output,\n },\n } as const;\n }\n case 'network-execution-event-finish': {\n const current = bufferedNetworks.get(payload.runId!);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n ...current,\n usage: payload.payload?.usage ?? current.usage,\n status: 'finished',\n output: payload.payload?.result ?? current.output,\n },\n } as const;\n }\n default: {\n // return the chunk as is if it's not a known type\n if (isDataChunkType(payload)) {\n if (!('data' in payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload;\n }\n if (isAgentExecutionDataChunkType(payload)) {\n if (!('data' in payload.payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload.payload;\n }\n if (isWorkflowExecutionDataChunkType(payload)) {\n if (!('data' in payload.payload)) {\n throw new Error(\n `UI Messages require a data property when using data- prefixed chunks \\n ${JSON.stringify(payload)}`,\n );\n }\n return payload.payload;\n }\n return null;\n }\n }\n}\n","import type {\n MastraModelOutput,\n ChunkType,\n OutputSchema,\n MastraAgentNetworkStream,\n WorkflowRunOutput,\n} from '@mastra/core/stream';\nimport type { MastraWorkflowStream, Step, WorkflowResult } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodObject, ZodType } from 'zod';\nimport {\n AgentNetworkToAISDKTransformer,\n AgentStreamToAISDKTransformer,\n WorkflowStreamToAISDKTransformer,\n} from './transformers';\n\ntype ToAISDKFrom = 'agent' | 'network' | 'workflow';\n\nexport function toAISdkV5Stream<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkV5Stream<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkV5Stream(\n stream: MastraAgentNetworkStream,\n options: { from: 'network' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkV5Stream<TOutput extends OutputSchema>(\n stream: MastraModelOutput<TOutput>,\n options: { from: 'agent'; lastMessageId?: string },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkV5Stream(\n stream:\n | MastraAgentNetworkStream\n | MastraWorkflowStream<any, any, any, any>\n | MastraModelOutput\n | WorkflowRunOutput<WorkflowResult<any, any, any, any>>,\n options: { from: ToAISDKFrom; lastMessageId?: string } = { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>> {\n const from = options?.from;\n\n if (from === 'workflow') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(WorkflowStreamToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n if (from === 'network') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(AgentNetworkToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n const agentReadable: ReadableStream<ChunkType> =\n 'fullStream' in stream ? (stream as MastraModelOutput).fullStream : (stream as ReadableStream<ChunkType>);\n return agentReadable.pipeThrough(AgentStreamToAISDKTransformer<any>(options?.lastMessageId)) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkV5Stream } from './convert-streams';\n\nexport type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {\n defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'>;\n} & (\n | {\n path: `${string}:agentId${string}`;\n agent?: never;\n }\n | {\n path: string;\n agent: string;\n }\n);\n\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n}: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Chat with an agent',\n description: 'Send messages to an agent and stream the response in the AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the agent to chat with',\n schema: {\n type: 'string',\n },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: {\n type: 'array',\n description: 'Array of messages in the conversation',\n items: {\n type: 'object',\n properties: {\n role: {\n type: 'string',\n enum: ['user', 'assistant', 'system'],\n description: 'The role of the message sender',\n },\n content: {\n type: 'string',\n description: 'The content of the message',\n },\n },\n required: ['role', 'content'],\n },\n },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming response from the agent',\n content: {\n 'text/plain': {\n schema: {\n type: 'string',\n description: 'Server-sent events stream containing the agent response',\n },\n },\n },\n },\n '400': {\n description: 'Bad request - invalid input',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n const requestContext = (c as any).get('requestContext') as RequestContext | undefined;\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (requestContext && defaultOptions?.requestContext) {\n mastra\n .getLogger()\n ?.warn(`\"requestContext\" set in the route options will be overridden by the request's \"requestContext\".`);\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.stream<OUTPUT>(messages, {\n ...defaultOptions,\n ...rest,\n requestContext: requestContext || defaultOptions?.requestContext,\n });\n\n let lastMessageId: string | undefined;\n if (messages.length > 0 && messages[messages.length - 1].role === 'assistant') {\n lastMessageId = messages[messages.length - 1].id;\n }\n\n const uiMessageStream = createUIMessageStream({\n originalMessages: messages,\n execute: async ({ writer }) => {\n for await (const part of toAISdkV5Stream(result, { from: 'agent', lastMessageId })!) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({\n stream: uiMessageStream,\n });\n },\n });\n}\n","import type { TracingOptions } from '@mastra/core/observability';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkV5Stream } from './convert-streams';\n\ntype WorkflowRouteBody = {\n inputData?: Record<string, any>;\n resumeData?: Record<string, any>;\n requestContext?: RequestContext;\n tracingOptions?: TracingOptions;\n step?: string;\n};\n\nexport type WorkflowRouteOptions =\n | { path: `${string}:workflowId${string}`; workflow?: never }\n | { path: string; workflow: string };\n\nexport function workflowRoute({\n path = '/api/workflows/:workflowId/stream',\n workflow,\n}: WorkflowRouteOptions): ReturnType<typeof registerApiRoute> {\n if (!workflow && !path.includes('/:workflowId')) {\n throw new Error('Path must include :workflowId to route to the correct workflow or pass the workflow explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Stream a workflow in AI SDK format',\n description: 'Starts a workflow run and streams events as AI SDK UIMessage chunks',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'workflowId',\n in: 'path',\n required: true,\n description: 'The ID of the workflow to stream',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n inputData: { type: 'object', additionalProperties: true },\n requestContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n },\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Workflow UIMessage event stream',\n content: {\n 'text/plain': {\n schema: { type: 'string', description: 'SSE stream' },\n },\n },\n },\n },\n },\n handler: async c => {\n const { inputData, resumeData, ...rest } = (await c.req.json()) as WorkflowRouteBody;\n const mastra = c.get('mastra');\n\n let workflowToUse: string | undefined = workflow;\n if (!workflow) {\n const workflowId = c.req.param('workflowId');\n workflowToUse = workflowId;\n }\n\n if (c.req.param('workflowId') && workflow) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`,\n );\n }\n if (!workflowToUse) {\n throw new Error('Workflow ID is required');\n }\n\n const workflowObj = mastra.getWorkflow(workflowToUse);\n if (!workflowObj) {\n throw new Error(`Workflow ${workflowToUse} not found`);\n }\n\n const run = await workflowObj.createRun();\n\n const stream = resumeData ? run.resumeStream({ resumeData, ...rest }) : run.stream({ inputData, ...rest });\n\n const uiMessageStream = createUIMessageStream({\n execute: async ({ writer }) => {\n for await (const part of toAISdkV5Stream(stream, { from: 'workflow' })) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({ stream: uiMessageStream });\n },\n });\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkV5Stream } from './convert-streams';\n\nexport type NetworkRouteOptions<OUTPUT extends OutputSchema = undefined> =\n | { path: `${string}:agentId${string}`; agent?: never; defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'> }\n | { path: string; agent: string; defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'> };\n\nexport function networkRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/network/:agentId',\n agent,\n defaultOptions,\n}: NetworkRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Execute an agent network and stream AI SDK events',\n description: 'Routes a request to an agent network and streams UIMessage chunks in AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the routing agent to execute as a network',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: { type: 'array', items: { type: 'object' } },\n requestContext: { type: 'object', additionalProperties: true },\n runId: { type: 'string' },\n maxSteps: { type: 'number' },\n threadId: { type: 'string' },\n resourceId: { type: 'string' },\n modelSettings: { type: 'object', additionalProperties: true },\n tools: { type: 'array', items: { type: 'object' } },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming AI SDK UIMessage event stream for the agent network',\n content: { 'text/plain': { schema: { type: 'string', description: 'SSE stream' } } },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: { type: 'object', properties: { error: { type: 'string' } } },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.network(messages, {\n ...defaultOptions,\n ...rest,\n });\n\n const uiMessageStream = createUIMessageStream({\n execute: async ({ writer }) => {\n for await (const part of toAISdkV5Stream(result, { from: 'network' })) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({ stream: uiMessageStream });\n },\n });\n}\n","/**\n * @deprecated Use `toAISdkStream` instead. This function has been renamed for clarity.\n *\n * @example\n * ```typescript\n * // Old (deprecated):\n * import { toAISdkFormat } from '@mastra/ai-sdk';\n * const stream = toAISdkFormat(agentStream, { from: 'agent' });\n *\n * // New:\n * import { toAISdkStream } from '@mastra/ai-sdk';\n * const stream = toAISdkStream(agentStream, { from: 'agent' });\n * ```\n */\nexport function toAISdkFormat(): never {\n throw new Error(\n 'toAISdkFormat() has been deprecated. Please use toAISdkStream() instead.\\n\\n' +\n 'Migration:\\n' +\n ' import { toAISdkFormat } from \"@mastra/ai-sdk\";\\n' +\n ' // Change to:\\n' +\n ' import { toAISdkStream } from \"@mastra/ai-sdk\";\\n\\n' +\n 'The function signature remains the same.',\n );\n}\n"]}