@mastra/ai-sdk 1.0.0 → 1.0.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/CHANGELOG.md +58 -0
- package/dist/helpers.d.ts +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/index.cjs +23 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/transformers.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs.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":["DefaultGeneratedFile","DefaultGeneratedFileWithType","rest","registerApiRoute","createUIMessageStream","createUIMessageStreamResponse"],"mappings":"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","file":"index.cjs","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 } 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 { 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>>({\n lastMessageId,\n sendStart,\n sendFinish,\n sendReasoning,\n sendSources,\n}: {\n lastMessageId?: string;\n sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n}) {\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,\n sendSources,\n sendStart,\n sendFinish,\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\n/**\n * Converts Mastra streams (workflow, agent network, or agent) to AI SDK v5 compatible streams.\n *\n * This function transforms various Mastra stream types into ReadableStream objects that are compatible\n * with the AI SDK v5, enabling seamless integration with AI SDK's streaming capabilities.\n *\n *\n * @param {MastraWorkflowStream | WorkflowRunOutput | MastraAgentNetworkStream | MastraModelOutput} stream\n * The Mastra stream to convert. Can be one of:\n * - MastraWorkflowStream: A workflow execution stream\n * - WorkflowRunOutput: The output of a workflow run\n * - MastraAgentNetworkStream: An agent network execution stream\n * - MastraModelOutput: An agent model output stream\n *\n * @param {Object} options - Conversion options\n * @param {'workflow' | 'network' | 'agent'} options.from - The type of stream being converted. Defaults to 'agent'\n * @param {string} [options.lastMessageId] - (Agent only) The ID of the last message in the conversation\n * @param {boolean} [options.sendStart=true] - (Agent only) Whether to send start events. Defaults to true\n * @param {boolean} [options.sendFinish=true] - (Agent only) Whether to send finish events. Defaults to true\n * @param {boolean} [options.sendReasoning] - (Agent only) Whether to include reasoning in the output\n * @param {boolean} [options.sendSources] - (Agent only) Whether to include sources in the output\n *\n * @returns {ReadableStream<InferUIMessageChunk<UIMessage>>} A ReadableStream compatible with AI SDK v5\n *\n * @example\n * // Convert a workflow stream\n * const workflowStream = await workflowRun.stream(...);\n * const aiSDKStream = toAISdkFormat(workflowStream, { from: 'workflow' });\n *\n * @example\n * // Convert an agent network stream\n * const networkStream = await agentNetwork.network(...);\n * const aiSDKStream = toAISdkFormat(networkStream, { from: 'network' });\n *\n * @example\n * // Convert an agent stream with custom options\n * const agentStream = await agent.stream(...);\n * const aiSDKStream = toAISdkFormat(agentStream, {\n * from: 'agent',\n * lastMessageId: 'msg-123',\n * sendReasoning: true,\n * sendSources: true\n * });\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: {\n from: 'agent';\n lastMessageId?: string;\n sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n },\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: {\n from: ToAISDKFrom;\n lastMessageId?: string;\n sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n } = {\n from: 'agent',\n sendStart: true,\n sendFinish: true,\n },\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(\n AgentStreamToAISDKTransformer<any>({\n lastMessageId: options?.lastMessageId,\n sendStart: options?.sendStart,\n sendFinish: options?.sendFinish,\n sendReasoning: options?.sendReasoning,\n sendSources: options?.sendSources,\n }),\n ) as ReadableStream<InferUIMessageChunk<UIMessage>>;\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 sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n };\n\n/**\n * Creates a chat route handler for streaming agent conversations using the AI SDK format.\n *\n * This function registers an HTTP POST endpoint that accepts messages, executes an agent,\n * and streams the response back to the client in AI SDK v5 compatible format.\n * *\n * @param {chatRouteOptions} options - Configuration options for the chat route\n * @param {string} [options.path='/chat/:agentId'] - The route path. Include `:agentId` for dynamic routing\n * @param {string} [options.agent] - Fixed agent ID when not using dynamic routing\n * @param {AgentExecutionOptions} [options.defaultOptions] - Default options passed to agent execution\n * @param {boolean} [options.sendStart=true] - Whether to send start events in the stream\n * @param {boolean} [options.sendFinish=true] - Whether to send finish events in the stream\n * @param {boolean} [options.sendReasoning=false] - Whether to include reasoning steps in the stream\n * @param {boolean} [options.sendSources=false] - Whether to include source citations in the stream\n *\n * @returns {ReturnType<typeof registerApiRoute>} A registered API route handler\n *\n * @throws {Error} When path doesn't include `:agentId` and no fixed agent is specified\n * @throws {Error} When agent ID is missing at runtime\n * @throws {Error} When specified agent is not found in Mastra instance\n *\n * @example\n * // Dynamic agent routing\n * chatRoute({\n * path: '/chat/:agentId',\n * sendReasoning: true,\n * });\n *\n * @example\n * // Fixed agent with custom path\n * chatRoute({\n * path: '/api/support-chat',\n * agent: 'support-agent',\n * defaultOptions: {\n * maxSteps: 5,\n * },\n * });\n *\n * @remarks\n * - The route handler expects a JSON body with a `messages` array\n * - Messages should follow the format: `{ role: 'user' | 'assistant' | 'system', content: string }`\n * - The response is a Server-Sent Events (SSE) stream compatible with AI SDK v5\n * - If both `agent` and `:agentId` are present, a warning is logged and the fixed `agent` takes precedence\n * - Request context from the incoming request overrides `defaultOptions.requestContext` if both are present\n */\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n sendStart = true,\n sendFinish = true,\n sendReasoning = false,\n sendSources = false,\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, {\n from: 'agent',\n lastMessageId,\n sendStart,\n sendFinish,\n sendReasoning,\n sendSources,\n })!) {\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 runId?: string;\n resourceId?: string;\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 runId: { type: 'string' },\n resourceId: { type: 'string' },\n inputData: { type: 'object', additionalProperties: true },\n resumeData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n step: { type: 'string' },\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 { runId, resourceId, 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({ runId, resourceId, ...rest });\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/to-ai-sdk-format.ts","../src/chat-route.ts","../src/workflow-route.ts","../src/network-route.ts"],"names":["DefaultGeneratedFile","DefaultGeneratedFileWithType","rest","registerApiRoute","createUIMessageStream","createUIMessageStreamResponse"],"mappings":"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","file":"index.cjs","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 | DataChunkType\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 case 'tripwire':\n return {\n type: 'data-tripwire',\n data: {\n tripwireReason: chunk.payload.tripwireReason,\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 { 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>>({\n lastMessageId,\n sendStart,\n sendFinish,\n sendReasoning,\n sendSources,\n}: {\n lastMessageId?: string;\n sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n}) {\n let bufferedSteps = new Map<string, any>();\n let tripwireOccurred = false;\n let finishEventSent = false;\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n // Track if tripwire occurred\n if (chunk.type === 'tripwire') {\n tripwireOccurred = true;\n }\n\n // Track if finish event was sent\n if (chunk.type === 'finish') {\n finishEventSent = true;\n }\n\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning,\n sendSources,\n sendStart,\n sendFinish,\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 flush(controller) {\n // If tripwire occurred but no finish event was sent, send a finish event with 'other' reason\n if (tripwireOccurred && !finishEventSent && sendFinish) {\n // Send a finish event with finishReason 'other' to ensure graceful stream completion\n // AI SDK doesn't support tripwires, so we use 'other' as the finish reason\n controller.enqueue({\n type: 'finish',\n finishReason: 'other',\n } as any);\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\n/**\n * Converts Mastra streams (workflow, agent network, or agent) to AI SDK v5 compatible streams.\n *\n * This function transforms various Mastra stream types into ReadableStream objects that are compatible\n * with the AI SDK v5, enabling seamless integration with AI SDK's streaming capabilities.\n *\n *\n * @param {MastraWorkflowStream | WorkflowRunOutput | MastraAgentNetworkStream | MastraModelOutput} stream\n * The Mastra stream to convert. Can be one of:\n * - MastraWorkflowStream: A workflow execution stream\n * - WorkflowRunOutput: The output of a workflow run\n * - MastraAgentNetworkStream: An agent network execution stream\n * - MastraModelOutput: An agent model output stream\n *\n * @param {Object} options - Conversion options\n * @param {'workflow' | 'network' | 'agent'} options.from - The type of stream being converted. Defaults to 'agent'\n * @param {string} [options.lastMessageId] - (Agent only) The ID of the last message in the conversation\n * @param {boolean} [options.sendStart=true] - (Agent only) Whether to send start events. Defaults to true\n * @param {boolean} [options.sendFinish=true] - (Agent only) Whether to send finish events. Defaults to true\n * @param {boolean} [options.sendReasoning] - (Agent only) Whether to include reasoning in the output\n * @param {boolean} [options.sendSources] - (Agent only) Whether to include sources in the output\n *\n * @returns {ReadableStream<InferUIMessageChunk<UIMessage>>} A ReadableStream compatible with AI SDK v5\n *\n * @example\n * // Convert a workflow stream\n * const workflowStream = await workflowRun.stream(...);\n * const aiSDKStream = toAISdkFormat(workflowStream, { from: 'workflow' });\n *\n * @example\n * // Convert an agent network stream\n * const networkStream = await agentNetwork.network(...);\n * const aiSDKStream = toAISdkFormat(networkStream, { from: 'network' });\n *\n * @example\n * // Convert an agent stream with custom options\n * const agentStream = await agent.stream(...);\n * const aiSDKStream = toAISdkFormat(agentStream, {\n * from: 'agent',\n * lastMessageId: 'msg-123',\n * sendReasoning: true,\n * sendSources: true\n * });\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: {\n from: 'agent';\n lastMessageId?: string;\n sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n },\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: {\n from: ToAISDKFrom;\n lastMessageId?: string;\n sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n } = {\n from: 'agent',\n sendStart: true,\n sendFinish: true,\n },\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(\n AgentStreamToAISDKTransformer<any>({\n lastMessageId: options?.lastMessageId,\n sendStart: options?.sendStart,\n sendFinish: options?.sendFinish,\n sendReasoning: options?.sendReasoning,\n sendSources: options?.sendSources,\n }),\n ) as ReadableStream<InferUIMessageChunk<UIMessage>>;\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 sendStart?: boolean;\n sendFinish?: boolean;\n sendReasoning?: boolean;\n sendSources?: boolean;\n };\n\n/**\n * Creates a chat route handler for streaming agent conversations using the AI SDK format.\n *\n * This function registers an HTTP POST endpoint that accepts messages, executes an agent,\n * and streams the response back to the client in AI SDK v5 compatible format.\n * *\n * @param {chatRouteOptions} options - Configuration options for the chat route\n * @param {string} [options.path='/chat/:agentId'] - The route path. Include `:agentId` for dynamic routing\n * @param {string} [options.agent] - Fixed agent ID when not using dynamic routing\n * @param {AgentExecutionOptions} [options.defaultOptions] - Default options passed to agent execution\n * @param {boolean} [options.sendStart=true] - Whether to send start events in the stream\n * @param {boolean} [options.sendFinish=true] - Whether to send finish events in the stream\n * @param {boolean} [options.sendReasoning=false] - Whether to include reasoning steps in the stream\n * @param {boolean} [options.sendSources=false] - Whether to include source citations in the stream\n *\n * @returns {ReturnType<typeof registerApiRoute>} A registered API route handler\n *\n * @throws {Error} When path doesn't include `:agentId` and no fixed agent is specified\n * @throws {Error} When agent ID is missing at runtime\n * @throws {Error} When specified agent is not found in Mastra instance\n *\n * @example\n * // Dynamic agent routing\n * chatRoute({\n * path: '/chat/:agentId',\n * sendReasoning: true,\n * });\n *\n * @example\n * // Fixed agent with custom path\n * chatRoute({\n * path: '/api/support-chat',\n * agent: 'support-agent',\n * defaultOptions: {\n * maxSteps: 5,\n * },\n * });\n *\n * @remarks\n * - The route handler expects a JSON body with a `messages` array\n * - Messages should follow the format: `{ role: 'user' | 'assistant' | 'system', content: string }`\n * - The response is a Server-Sent Events (SSE) stream compatible with AI SDK v5\n * - If both `agent` and `:agentId` are present, a warning is logged and the fixed `agent` takes precedence\n * - Request context from the incoming request overrides `defaultOptions.requestContext` if both are present\n */\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n sendStart = true,\n sendFinish = true,\n sendReasoning = false,\n sendSources = false,\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, {\n from: 'agent',\n lastMessageId,\n sendStart,\n sendFinish,\n sendReasoning,\n sendSources,\n })!) {\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 runId?: string;\n resourceId?: string;\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 runId: { type: 'string' },\n resourceId: { type: 'string' },\n inputData: { type: 'object', additionalProperties: true },\n resumeData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n step: { type: 'string' },\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 { runId, resourceId, 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({ runId, resourceId, ...rest });\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"]}
|
package/dist/index.js
CHANGED
|
@@ -214,6 +214,13 @@ function convertMastraChunkToAISDKv5({
|
|
|
214
214
|
type: "object",
|
|
215
215
|
object: chunk.object
|
|
216
216
|
};
|
|
217
|
+
case "tripwire":
|
|
218
|
+
return {
|
|
219
|
+
type: "data-tripwire",
|
|
220
|
+
data: {
|
|
221
|
+
tripwireReason: chunk.payload.tripwireReason
|
|
222
|
+
}
|
|
223
|
+
};
|
|
217
224
|
default:
|
|
218
225
|
if (chunk.type && "payload" in chunk && chunk.payload) {
|
|
219
226
|
return {
|
|
@@ -492,8 +499,16 @@ function AgentStreamToAISDKTransformer({
|
|
|
492
499
|
sendSources
|
|
493
500
|
}) {
|
|
494
501
|
let bufferedSteps = /* @__PURE__ */ new Map();
|
|
502
|
+
let tripwireOccurred = false;
|
|
503
|
+
let finishEventSent = false;
|
|
495
504
|
return new TransformStream({
|
|
496
505
|
transform(chunk, controller) {
|
|
506
|
+
if (chunk.type === "tripwire") {
|
|
507
|
+
tripwireOccurred = true;
|
|
508
|
+
}
|
|
509
|
+
if (chunk.type === "finish") {
|
|
510
|
+
finishEventSent = true;
|
|
511
|
+
}
|
|
497
512
|
const part = convertMastraChunkToAISDKv5({ chunk, mode: "stream" });
|
|
498
513
|
const transformedChunk = convertFullStreamChunkToUIMessageStream({
|
|
499
514
|
part,
|
|
@@ -523,6 +538,14 @@ function AgentStreamToAISDKTransformer({
|
|
|
523
538
|
controller.enqueue(transformedChunk);
|
|
524
539
|
}
|
|
525
540
|
}
|
|
541
|
+
},
|
|
542
|
+
flush(controller) {
|
|
543
|
+
if (tripwireOccurred && !finishEventSent && sendFinish) {
|
|
544
|
+
controller.enqueue({
|
|
545
|
+
type: "finish",
|
|
546
|
+
finishReason: "other"
|
|
547
|
+
});
|
|
548
|
+
}
|
|
526
549
|
}
|
|
527
550
|
});
|
|
528
551
|
}
|