@mastra/ai-sdk 0.2.2-alpha.0 → 0.2.2

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 CHANGED
@@ -1,5 +1,33 @@
1
1
  # @mastra/ai-sdk
2
2
 
3
+ ## 0.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Pass original messages in chatRoute to fix uiMessages duplication #8830 ([#8904](https://github.com/mastra-ai/mastra/pull/8904))
8
+
9
+ - network routing agent text delta ai-sdk streaming ([#8979](https://github.com/mastra-ai/mastra/pull/8979))
10
+
11
+ - Support writing custom top level stream chunks ([#8922](https://github.com/mastra-ai/mastra/pull/8922))
12
+
13
+ - Refactor workflowstream into workflow output with fullStream property ([#9048](https://github.com/mastra-ai/mastra/pull/9048))
14
+
15
+ - Update peerdeps to 0.23.0-0 ([#9043](https://github.com/mastra-ai/mastra/pull/9043))
16
+
17
+ - Updated dependencies [[`c67ca32`](https://github.com/mastra-ai/mastra/commit/c67ca32e3c2cf69bfc146580770c720220ca44ac), [`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`dbc9e12`](https://github.com/mastra-ai/mastra/commit/dbc9e1216ba575ba59ead4afb727a01215f7de4f), [`99e41b9`](https://github.com/mastra-ai/mastra/commit/99e41b94957cdd25137d3ac12e94e8b21aa01b68), [`c28833c`](https://github.com/mastra-ai/mastra/commit/c28833c5b6d8e10eeffd7f7d39129d53b8bca240), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`f053e89`](https://github.com/mastra-ai/mastra/commit/f053e89160dbd0bd3333fc3492f68231b5c7c349), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`9a1a485`](https://github.com/mastra-ai/mastra/commit/9a1a4859b855e37239f652bf14b1ecd1029b8c4e), [`9257233`](https://github.com/mastra-ai/mastra/commit/9257233c4ffce09b2bedc2a9adbd70d7a83fa8e2), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`0f1a4c9`](https://github.com/mastra-ai/mastra/commit/0f1a4c984fb4b104b2f0b63ba18c9fa77f567700), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`2db6160`](https://github.com/mastra-ai/mastra/commit/2db6160e2022ff8827c15d30157e684683b934b5), [`8aeea37`](https://github.com/mastra-ai/mastra/commit/8aeea37efdde347c635a67fed56794943b7f74ec), [`02fe153`](https://github.com/mastra-ai/mastra/commit/02fe15351d6021d214da48ec982a0e9e4150bcee), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`74567b3`](https://github.com/mastra-ai/mastra/commit/74567b3d237ae3915cd0bca3cf55fa0a64e4e4a4), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb), [`15a1733`](https://github.com/mastra-ai/mastra/commit/15a1733074cee8bd37370e1af34cd818e89fa7ac), [`fc2a774`](https://github.com/mastra-ai/mastra/commit/fc2a77468981aaddc3e77f83f0c4ad4a4af140da), [`4e08933`](https://github.com/mastra-ai/mastra/commit/4e08933625464dfde178347af5b6278fcf34188e)]:
18
+ - @mastra/core@0.22.0
19
+
20
+ ## 0.2.2-alpha.1
21
+
22
+ ### Patch Changes
23
+
24
+ - Refactor workflowstream into workflow output with fullStream property ([#9048](https://github.com/mastra-ai/mastra/pull/9048))
25
+
26
+ - Update peerdeps to 0.23.0-0 ([#9043](https://github.com/mastra-ai/mastra/pull/9043))
27
+
28
+ - Updated dependencies [[`efb5ed9`](https://github.com/mastra-ai/mastra/commit/efb5ed946ae7f410bc68c9430beb4b010afd25ec), [`8ea07b4`](https://github.com/mastra-ai/mastra/commit/8ea07b4bdc73e4218437dbb6dcb0f4b23e745a44), [`ba201b8`](https://github.com/mastra-ai/mastra/commit/ba201b8f8feac4c72350f2dbd52c13c7297ba7b0), [`4fc4136`](https://github.com/mastra-ai/mastra/commit/4fc413652866a8d2240694fddb2562e9edbb70df), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`d10baf5`](https://github.com/mastra-ai/mastra/commit/d10baf5a3c924f2a6654e23a3e318ed03f189b76), [`038c55a`](https://github.com/mastra-ai/mastra/commit/038c55a7090fc1b1513a966386d3072617f836ac), [`182f045`](https://github.com/mastra-ai/mastra/commit/182f0458f25bd70aa774e64fd923c8a483eddbf1), [`7620d2b`](https://github.com/mastra-ai/mastra/commit/7620d2bddeb4fae4c3c0a0b4e672969795fca11a), [`b2365f0`](https://github.com/mastra-ai/mastra/commit/b2365f038dd4c5f06400428b224af963f399ad50), [`9029ba3`](https://github.com/mastra-ai/mastra/commit/9029ba34459c8859fed4c6b73efd8e2d0021e7ba), [`426cc56`](https://github.com/mastra-ai/mastra/commit/426cc561c85ae76a112ded2385532a91f9f9f074), [`00931fb`](https://github.com/mastra-ai/mastra/commit/00931fb1a21aa42c4fbc20c2c40dd62466b8fc8f), [`e473bfe`](https://github.com/mastra-ai/mastra/commit/e473bfe416c0b8e876973c2b6a6f13c394b7a93f), [`b78e04d`](https://github.com/mastra-ai/mastra/commit/b78e04d935a16ecb1e59c5c96e564903527edddd), [`648e2ca`](https://github.com/mastra-ai/mastra/commit/648e2ca42da54838c6ccbdaadc6fadd808fa6b86), [`b65c5e0`](https://github.com/mastra-ai/mastra/commit/b65c5e0fe6f3c390a9a8bbcf69304d972c3a4afb)]:
29
+ - @mastra/core@0.22.0-alpha.1
30
+
3
31
  ## 0.2.2-alpha.0
4
32
 
5
33
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"sources":["../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 { 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';\n\nexport type OutputChunkType<OUTPUT extends OutputSchema = undefined> =\n | TextStreamPart<ToolSet>\n | ObjectStreamPart<PartialSchemaOutput<OUTPUT>>\n | undefined;\n\nexport type ToolAgentChunkType = { type: 'tool-agent'; toolCallId: string; payload: any };\nexport type ToolWorkflowChunkType = { type: 'tool-workflow'; toolCallId: string; payload: any };\nexport type ToolNetworkChunkType = { type: 'tool-network'; toolCallId: string; payload: any };\n\nexport function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType<OUTPUT>;\n mode?: 'generate' | 'stream';\n}): OutputChunkType<OUTPUT> {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings || [],\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n };\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n if (chunk.payload.sourceType === 'url') {\n return {\n type: 'source',\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url!,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n };\n } else {\n return {\n type: 'source',\n sourceType: 'document',\n id: chunk.payload.id,\n mediaType: chunk.payload.mimeType!,\n title: chunk.payload.title,\n filename: chunk.payload.filename,\n providerMetadata: chunk.payload.providerMetadata,\n };\n }\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: {\n id: chunk.payload.id || '',\n timestamp: new Date(),\n modelId: (rest.modelId as string) || '',\n ...rest,\n },\n usage: chunk.payload.output.usage,\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n\n case 'object':\n return {\n type: 'object',\n object: chunk.object,\n };\n\n default:\n if (chunk.type && 'payload' in chunk && chunk.payload) {\n return {\n type: chunk.type as string,\n ...(chunk.payload || {}),\n } as OutputChunkType<OUTPUT>;\n }\n if ('type' in chunk && chunk.type?.startsWith('data-')) {\n return chunk as any;\n }\n return;\n }\n}\n\nexport function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n // tool-output is a custom mastra chunk type used in ToolStream\n part: TextStreamPart<ToolSet> | DataChunkType | { type: 'tool-output'; toolCallId: string; output: any };\n messageMetadataValue?: unknown;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: unknown) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined {\n const partType = part?.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-output': {\n if (part.output.from === 'AGENT') {\n return {\n type: 'tool-agent',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'WORKFLOW') {\n return {\n type: 'tool-workflow',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'NETWORK') {\n return {\n type: 'tool-network',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n }\n return;\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n // return the chunk as is if it's not a known type\n if ('type' in part && part.type?.startsWith('data-')) {\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, NetworkChunkType } from '@mastra/core/stream';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';\nimport type { ZodType } from 'zod';\nimport { convertMastraChunkToAISDKv5, convertFullStreamChunkToUIMessageStream } from './helpers';\n\ntype StepResult = {\n name: string;\n status: WorkflowStepStatus;\n input: Record<string, unknown> | null;\n output: 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 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<string, { name: string; steps: StepResult[] }>();\n\n return new TransformStream<\n NetworkChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | NetworkDataPart\n | {\n type: 'text-delta';\n id: string;\n delta: string;\n }\n | {\n type: 'text-start';\n id: string;\n }\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 let bufferedSteps = new Map<string, any>();\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning: false,\n sendSources: false,\n sendStart: true,\n sendFinish: true,\n responseMessageId: chunk.runId,\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 } 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-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 null;\n }\n}\n\nexport function transformNetwork(\n payload: NetworkChunkType,\n bufferedNetworks: Map<string, { name: string; steps: StepResult[] }>,\n isNested?: boolean,\n) {\n switch (payload.type) {\n case 'routing-agent-start': {\n if (!bufferedNetworks.has(payload.payload.runId)) {\n bufferedNetworks.set(payload.payload.runId, {\n name: payload.payload.agentId,\n steps: [],\n });\n }\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: bufferedNetworks.get(payload.payload.runId)!.name,\n status: 'running',\n steps: bufferedNetworks.get(payload.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.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.agentId,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.name,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 'tool-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.args?.toolName!,\n status: 'running',\n input: payload.payload.args?.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 '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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\n },\n } as const;\n }\n case 'routing-agent-end': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n case 'network-execution-event-step-finish': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\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 name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n default:\n return null;\n }\n}\n","import type { MastraModelOutput, ChunkType, OutputSchema, MastraAgentNetworkStream } from '@mastra/core/stream';\nimport type { MastraWorkflowStream, Step } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodObject, ZodType } from 'zod';\nimport {\n AgentNetworkToAISDKTransformer,\n AgentStreamToAISDKTransformer,\n WorkflowStreamToAISDKTransformer,\n} from './transformers';\n\ntype ToAISDKFrom = 'agent' | 'network' | 'workflow';\n\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream,\n options: { from: 'network' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<TOutput extends OutputSchema>(\n stream: MastraModelOutput<TOutput>,\n options: { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream | MastraWorkflowStream<any, any, any, any> | MastraModelOutput,\n options: { from: ToAISDKFrom } = { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>> {\n const from = options?.from;\n\n if (from === 'workflow') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(WorkflowStreamToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n if (from === 'network') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(AgentNetworkToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n const agentReadable: ReadableStream<ChunkType> =\n 'fullStream' in stream ? (stream as MastraModelOutput).fullStream : (stream as ReadableStream<ChunkType>);\n return agentReadable.pipeThrough(AgentStreamToAISDKTransformer<any>()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\nexport type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {\n defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'>;\n} & (\n | {\n path: `${string}:agentId${string}`;\n agent?: never;\n }\n | {\n path: string;\n agent: string;\n }\n);\n\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n}: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Chat with an agent',\n description: 'Send messages to an agent and stream the response in the AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the agent to chat with',\n schema: {\n type: 'string',\n },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: {\n type: 'array',\n description: 'Array of messages in the conversation',\n items: {\n type: 'object',\n properties: {\n role: {\n type: 'string',\n enum: ['user', 'assistant', 'system'],\n description: 'The role of the message sender',\n },\n content: {\n type: 'string',\n description: 'The content of the message',\n },\n },\n required: ['role', 'content'],\n },\n },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming response from the agent',\n content: {\n 'text/plain': {\n schema: {\n type: 'string',\n description: 'Server-sent events stream containing the agent response',\n },\n },\n },\n },\n '400': {\n description: 'Bad request - invalid input',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n const runtimeContext = (c as any).get('runtimeContext') as RuntimeContext | undefined;\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (runtimeContext && defaultOptions?.runtimeContext) {\n mastra\n .getLogger()\n ?.warn(`\"runtimeContext\" set in the route options will be overridden by the request's \"runtimeContext\".`);\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.stream<OUTPUT, 'mastra'>(messages, {\n ...defaultOptions,\n ...rest,\n runtimeContext: runtimeContext || defaultOptions?.runtimeContext,\n });\n\n const uiMessageStream = createUIMessageStream({\n originalMessages: messages,\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(result, { from: 'agent' })!) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({\n stream: uiMessageStream,\n });\n },\n });\n}\n","import type { TracingOptions } from '@mastra/core/ai-tracing';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\ntype WorkflowRouteBody = {\n inputData?: Record<string, any>;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n};\n\nexport type WorkflowRouteOptions =\n | { path: `${string}:workflowId${string}`; workflow?: never }\n | { path: string; workflow: string };\n\nexport function workflowRoute({\n path = '/api/workflows/:workflowId/stream',\n workflow,\n}: WorkflowRouteOptions): ReturnType<typeof registerApiRoute> {\n if (!workflow && !path.includes('/:workflowId')) {\n throw new Error('Path must include :workflowId to route to the correct workflow or pass the workflow explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Stream a workflow in AI SDK format',\n description: 'Starts a workflow run and streams events as AI SDK UIMessage chunks',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'workflowId',\n in: 'path',\n required: true,\n description: 'The ID of the workflow to stream',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n inputData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n },\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Workflow UIMessage event stream',\n content: {\n 'text/plain': {\n schema: { type: 'string', description: 'SSE stream' },\n },\n },\n },\n },\n },\n handler: async c => {\n const { inputData, ...rest } = (await c.req.json()) as WorkflowRouteBody;\n const mastra = c.get('mastra');\n\n let workflowToUse: string | undefined = workflow;\n if (!workflow) {\n const workflowId = c.req.param('workflowId');\n workflowToUse = workflowId;\n }\n\n if (c.req.param('workflowId') && workflow) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`,\n );\n }\n if (!workflowToUse) {\n throw new Error('Workflow ID is required');\n }\n\n const workflowObj = mastra.getWorkflow(workflowToUse);\n if (!workflowObj) {\n throw new Error(`Workflow ${workflowToUse} not found`);\n }\n\n const run = await workflowObj.createRunAsync();\n const stream = run.streamVNext({ 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/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 { 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';\n\nexport type OutputChunkType<OUTPUT extends OutputSchema = undefined> =\n | TextStreamPart<ToolSet>\n | ObjectStreamPart<PartialSchemaOutput<OUTPUT>>\n | undefined;\n\nexport type ToolAgentChunkType = { type: 'tool-agent'; toolCallId: string; payload: any };\nexport type ToolWorkflowChunkType = { type: 'tool-workflow'; toolCallId: string; payload: any };\nexport type ToolNetworkChunkType = { type: 'tool-network'; toolCallId: string; payload: any };\n\nexport function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType<OUTPUT>;\n mode?: 'generate' | 'stream';\n}): OutputChunkType<OUTPUT> {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings || [],\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n };\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n if (chunk.payload.sourceType === 'url') {\n return {\n type: 'source',\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url!,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n };\n } else {\n return {\n type: 'source',\n sourceType: 'document',\n id: chunk.payload.id,\n mediaType: chunk.payload.mimeType!,\n title: chunk.payload.title,\n filename: chunk.payload.filename,\n providerMetadata: chunk.payload.providerMetadata,\n };\n }\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: {\n id: chunk.payload.id || '',\n timestamp: new Date(),\n modelId: (rest.modelId as string) || '',\n ...rest,\n },\n usage: chunk.payload.output.usage,\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n\n case 'object':\n return {\n type: 'object',\n object: chunk.object,\n };\n\n default:\n if (chunk.type && 'payload' in chunk && chunk.payload) {\n return {\n type: chunk.type as string,\n ...(chunk.payload || {}),\n } as OutputChunkType<OUTPUT>;\n }\n if ('type' in chunk && chunk.type?.startsWith('data-')) {\n return chunk as any;\n }\n return;\n }\n}\n\nexport function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n // tool-output is a custom mastra chunk type used in ToolStream\n part: TextStreamPart<ToolSet> | DataChunkType | { type: 'tool-output'; toolCallId: string; output: any };\n messageMetadataValue?: unknown;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: unknown) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined {\n const partType = part?.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-output': {\n if (part.output.from === 'AGENT') {\n return {\n type: 'tool-agent',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'WORKFLOW') {\n return {\n type: 'tool-workflow',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'NETWORK') {\n return {\n type: 'tool-network',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n }\n return;\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n // return the chunk as is if it's not a known type\n if ('type' in part && part.type?.startsWith('data-')) {\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, NetworkChunkType } from '@mastra/core/stream';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';\nimport type { ZodType } from 'zod';\nimport { convertMastraChunkToAISDKv5, convertFullStreamChunkToUIMessageStream } from './helpers';\n\ntype StepResult = {\n name: string;\n status: WorkflowStepStatus;\n input: Record<string, unknown> | null;\n output: 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 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<string, { name: string; steps: StepResult[] }>();\n\n return new TransformStream<\n NetworkChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | NetworkDataPart\n | {\n type: 'text-delta';\n id: string;\n delta: string;\n }\n | {\n type: 'text-start';\n id: string;\n }\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 let bufferedSteps = new Map<string, any>();\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning: false,\n sendSources: false,\n sendStart: true,\n sendFinish: true,\n responseMessageId: chunk.runId,\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 } 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-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 null;\n }\n}\n\nexport function transformNetwork(\n payload: NetworkChunkType,\n bufferedNetworks: Map<string, { name: string; steps: StepResult[] }>,\n isNested?: boolean,\n) {\n switch (payload.type) {\n case 'routing-agent-start': {\n if (!bufferedNetworks.has(payload.payload.runId)) {\n bufferedNetworks.set(payload.payload.runId, {\n name: payload.payload.agentId,\n steps: [],\n });\n }\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: bufferedNetworks.get(payload.payload.runId)!.name,\n status: 'running',\n steps: bufferedNetworks.get(payload.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.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.agentId,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.name,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 'tool-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.args?.toolName!,\n status: 'running',\n input: payload.payload.args?.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 '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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\n },\n } as const;\n }\n case 'routing-agent-end': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n case 'network-execution-event-step-finish': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\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 name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n default:\n return null;\n }\n}\n","import type {\n MastraModelOutput,\n ChunkType,\n OutputSchema,\n MastraAgentNetworkStream,\n WorkflowRunOutput,\n} from '@mastra/core/stream';\nimport type { MastraWorkflowStream, Step, WorkflowResult } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodObject, ZodType } from 'zod';\nimport {\n AgentNetworkToAISDKTransformer,\n AgentStreamToAISDKTransformer,\n WorkflowStreamToAISDKTransformer,\n} from './transformers';\n\ntype ToAISDKFrom = 'agent' | 'network' | 'workflow';\n\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream,\n options: { from: 'network' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<TOutput extends OutputSchema>(\n stream: MastraModelOutput<TOutput>,\n options: { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream:\n | MastraAgentNetworkStream\n | MastraWorkflowStream<any, any, any, any>\n | MastraModelOutput\n | WorkflowRunOutput<WorkflowResult<any, any, any, any>>,\n options: { from: ToAISDKFrom } = { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>> {\n const from = options?.from;\n\n if (from === 'workflow') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(WorkflowStreamToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n if (from === 'network') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(AgentNetworkToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n const agentReadable: ReadableStream<ChunkType> =\n 'fullStream' in stream ? (stream as MastraModelOutput).fullStream : (stream as ReadableStream<ChunkType>);\n return agentReadable.pipeThrough(AgentStreamToAISDKTransformer<any>()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\nexport type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {\n defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'>;\n} & (\n | {\n path: `${string}:agentId${string}`;\n agent?: never;\n }\n | {\n path: string;\n agent: string;\n }\n);\n\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n}: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Chat with an agent',\n description: 'Send messages to an agent and stream the response in the AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the agent to chat with',\n schema: {\n type: 'string',\n },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: {\n type: 'array',\n description: 'Array of messages in the conversation',\n items: {\n type: 'object',\n properties: {\n role: {\n type: 'string',\n enum: ['user', 'assistant', 'system'],\n description: 'The role of the message sender',\n },\n content: {\n type: 'string',\n description: 'The content of the message',\n },\n },\n required: ['role', 'content'],\n },\n },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming response from the agent',\n content: {\n 'text/plain': {\n schema: {\n type: 'string',\n description: 'Server-sent events stream containing the agent response',\n },\n },\n },\n },\n '400': {\n description: 'Bad request - invalid input',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n const runtimeContext = (c as any).get('runtimeContext') as RuntimeContext | undefined;\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (runtimeContext && defaultOptions?.runtimeContext) {\n mastra\n .getLogger()\n ?.warn(`\"runtimeContext\" set in the route options will be overridden by the request's \"runtimeContext\".`);\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.stream<OUTPUT, 'mastra'>(messages, {\n ...defaultOptions,\n ...rest,\n runtimeContext: runtimeContext || defaultOptions?.runtimeContext,\n });\n\n const uiMessageStream = createUIMessageStream({\n originalMessages: messages,\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(result, { from: 'agent' })!) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({\n stream: uiMessageStream,\n });\n },\n });\n}\n","import type { TracingOptions } from '@mastra/core/ai-tracing';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\ntype WorkflowRouteBody = {\n inputData?: Record<string, any>;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n};\n\nexport type WorkflowRouteOptions =\n | { path: `${string}:workflowId${string}`; workflow?: never }\n | { path: string; workflow: string };\n\nexport function workflowRoute({\n path = '/api/workflows/:workflowId/stream',\n workflow,\n}: WorkflowRouteOptions): ReturnType<typeof registerApiRoute> {\n if (!workflow && !path.includes('/:workflowId')) {\n throw new Error('Path must include :workflowId to route to the correct workflow or pass the workflow explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Stream a workflow in AI SDK format',\n description: 'Starts a workflow run and streams events as AI SDK UIMessage chunks',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'workflowId',\n in: 'path',\n required: true,\n description: 'The ID of the workflow to stream',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n inputData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n },\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Workflow UIMessage event stream',\n content: {\n 'text/plain': {\n schema: { type: 'string', description: 'SSE stream' },\n },\n },\n },\n },\n },\n handler: async c => {\n const { inputData, ...rest } = (await c.req.json()) as WorkflowRouteBody;\n const mastra = c.get('mastra');\n\n let workflowToUse: string | undefined = workflow;\n if (!workflow) {\n const workflowId = c.req.param('workflowId');\n workflowToUse = workflowId;\n }\n\n if (c.req.param('workflowId') && workflow) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`,\n );\n }\n if (!workflowToUse) {\n throw new Error('Workflow ID is required');\n }\n\n const workflowObj = mastra.getWorkflow(workflowToUse);\n if (!workflowObj) {\n throw new Error(`Workflow ${workflowToUse} not found`);\n }\n\n const run = await workflowObj.createRunAsync();\n const stream = run.streamVNext({ 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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helpers.ts","../src/transformers.ts","../src/to-ai-sdk-format.ts","../src/chat-route.ts","../src/workflow-route.ts","../src/network-route.ts"],"names":["rest","registerApiRoute","createUIMessageStream","createUIMessageStreamResponse"],"mappings":"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","file":"index.js","sourcesContent":["import type { 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';\n\nexport type OutputChunkType<OUTPUT extends OutputSchema = undefined> =\n | TextStreamPart<ToolSet>\n | ObjectStreamPart<PartialSchemaOutput<OUTPUT>>\n | undefined;\n\nexport type ToolAgentChunkType = { type: 'tool-agent'; toolCallId: string; payload: any };\nexport type ToolWorkflowChunkType = { type: 'tool-workflow'; toolCallId: string; payload: any };\nexport type ToolNetworkChunkType = { type: 'tool-network'; toolCallId: string; payload: any };\n\nexport function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType<OUTPUT>;\n mode?: 'generate' | 'stream';\n}): OutputChunkType<OUTPUT> {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings || [],\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n };\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n if (chunk.payload.sourceType === 'url') {\n return {\n type: 'source',\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url!,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n };\n } else {\n return {\n type: 'source',\n sourceType: 'document',\n id: chunk.payload.id,\n mediaType: chunk.payload.mimeType!,\n title: chunk.payload.title,\n filename: chunk.payload.filename,\n providerMetadata: chunk.payload.providerMetadata,\n };\n }\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: {\n id: chunk.payload.id || '',\n timestamp: new Date(),\n modelId: (rest.modelId as string) || '',\n ...rest,\n },\n usage: chunk.payload.output.usage,\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n\n case 'object':\n return {\n type: 'object',\n object: chunk.object,\n };\n\n default:\n if (chunk.type && 'payload' in chunk && chunk.payload) {\n return {\n type: chunk.type as string,\n ...(chunk.payload || {}),\n } as OutputChunkType<OUTPUT>;\n }\n if ('type' in chunk && chunk.type?.startsWith('data-')) {\n return chunk as any;\n }\n return;\n }\n}\n\nexport function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n // tool-output is a custom mastra chunk type used in ToolStream\n part: TextStreamPart<ToolSet> | DataChunkType | { type: 'tool-output'; toolCallId: string; output: any };\n messageMetadataValue?: unknown;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: unknown) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined {\n const partType = part?.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-output': {\n if (part.output.from === 'AGENT') {\n return {\n type: 'tool-agent',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'WORKFLOW') {\n return {\n type: 'tool-workflow',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'NETWORK') {\n return {\n type: 'tool-network',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n }\n return;\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n // return the chunk as is if it's not a known type\n if ('type' in part && part.type?.startsWith('data-')) {\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, NetworkChunkType } from '@mastra/core/stream';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';\nimport type { ZodType } from 'zod';\nimport { convertMastraChunkToAISDKv5, convertFullStreamChunkToUIMessageStream } from './helpers';\n\ntype StepResult = {\n name: string;\n status: WorkflowStepStatus;\n input: Record<string, unknown> | null;\n output: 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 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<string, { name: string; steps: StepResult[] }>();\n\n return new TransformStream<\n NetworkChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | NetworkDataPart\n | {\n type: 'text-delta';\n id: string;\n delta: string;\n }\n | {\n type: 'text-start';\n id: string;\n }\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 let bufferedSteps = new Map<string, any>();\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning: false,\n sendSources: false,\n sendStart: true,\n sendFinish: true,\n responseMessageId: chunk.runId,\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 } 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-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 null;\n }\n}\n\nexport function transformNetwork(\n payload: NetworkChunkType,\n bufferedNetworks: Map<string, { name: string; steps: StepResult[] }>,\n isNested?: boolean,\n) {\n switch (payload.type) {\n case 'routing-agent-start': {\n if (!bufferedNetworks.has(payload.payload.runId)) {\n bufferedNetworks.set(payload.payload.runId, {\n name: payload.payload.agentId,\n steps: [],\n });\n }\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: bufferedNetworks.get(payload.payload.runId)!.name,\n status: 'running',\n steps: bufferedNetworks.get(payload.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.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.agentId,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.name,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 'tool-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.args?.toolName!,\n status: 'running',\n input: payload.payload.args?.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 '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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\n },\n } as const;\n }\n case 'routing-agent-end': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n case 'network-execution-event-step-finish': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\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 name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n default:\n return null;\n }\n}\n","import type { MastraModelOutput, ChunkType, OutputSchema, MastraAgentNetworkStream } from '@mastra/core/stream';\nimport type { MastraWorkflowStream, Step } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodObject, ZodType } from 'zod';\nimport {\n AgentNetworkToAISDKTransformer,\n AgentStreamToAISDKTransformer,\n WorkflowStreamToAISDKTransformer,\n} from './transformers';\n\ntype ToAISDKFrom = 'agent' | 'network' | 'workflow';\n\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream,\n options: { from: 'network' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<TOutput extends OutputSchema>(\n stream: MastraModelOutput<TOutput>,\n options: { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream | MastraWorkflowStream<any, any, any, any> | MastraModelOutput,\n options: { from: ToAISDKFrom } = { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>> {\n const from = options?.from;\n\n if (from === 'workflow') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(WorkflowStreamToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n if (from === 'network') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(AgentNetworkToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n const agentReadable: ReadableStream<ChunkType> =\n 'fullStream' in stream ? (stream as MastraModelOutput).fullStream : (stream as ReadableStream<ChunkType>);\n return agentReadable.pipeThrough(AgentStreamToAISDKTransformer<any>()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\nexport type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {\n defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'>;\n} & (\n | {\n path: `${string}:agentId${string}`;\n agent?: never;\n }\n | {\n path: string;\n agent: string;\n }\n);\n\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n}: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Chat with an agent',\n description: 'Send messages to an agent and stream the response in the AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the agent to chat with',\n schema: {\n type: 'string',\n },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: {\n type: 'array',\n description: 'Array of messages in the conversation',\n items: {\n type: 'object',\n properties: {\n role: {\n type: 'string',\n enum: ['user', 'assistant', 'system'],\n description: 'The role of the message sender',\n },\n content: {\n type: 'string',\n description: 'The content of the message',\n },\n },\n required: ['role', 'content'],\n },\n },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming response from the agent',\n content: {\n 'text/plain': {\n schema: {\n type: 'string',\n description: 'Server-sent events stream containing the agent response',\n },\n },\n },\n },\n '400': {\n description: 'Bad request - invalid input',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n const runtimeContext = (c as any).get('runtimeContext') as RuntimeContext | undefined;\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (runtimeContext && defaultOptions?.runtimeContext) {\n mastra\n .getLogger()\n ?.warn(`\"runtimeContext\" set in the route options will be overridden by the request's \"runtimeContext\".`);\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.stream<OUTPUT, 'mastra'>(messages, {\n ...defaultOptions,\n ...rest,\n runtimeContext: runtimeContext || defaultOptions?.runtimeContext,\n });\n\n const uiMessageStream = createUIMessageStream({\n originalMessages: messages,\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(result, { from: 'agent' })!) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({\n stream: uiMessageStream,\n });\n },\n });\n}\n","import type { TracingOptions } from '@mastra/core/ai-tracing';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\ntype WorkflowRouteBody = {\n inputData?: Record<string, any>;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n};\n\nexport type WorkflowRouteOptions =\n | { path: `${string}:workflowId${string}`; workflow?: never }\n | { path: string; workflow: string };\n\nexport function workflowRoute({\n path = '/api/workflows/:workflowId/stream',\n workflow,\n}: WorkflowRouteOptions): ReturnType<typeof registerApiRoute> {\n if (!workflow && !path.includes('/:workflowId')) {\n throw new Error('Path must include :workflowId to route to the correct workflow or pass the workflow explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Stream a workflow in AI SDK format',\n description: 'Starts a workflow run and streams events as AI SDK UIMessage chunks',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'workflowId',\n in: 'path',\n required: true,\n description: 'The ID of the workflow to stream',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n inputData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n },\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Workflow UIMessage event stream',\n content: {\n 'text/plain': {\n schema: { type: 'string', description: 'SSE stream' },\n },\n },\n },\n },\n },\n handler: async c => {\n const { inputData, ...rest } = (await c.req.json()) as WorkflowRouteBody;\n const mastra = c.get('mastra');\n\n let workflowToUse: string | undefined = workflow;\n if (!workflow) {\n const workflowId = c.req.param('workflowId');\n workflowToUse = workflowId;\n }\n\n if (c.req.param('workflowId') && workflow) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`,\n );\n }\n if (!workflowToUse) {\n throw new Error('Workflow ID is required');\n }\n\n const workflowObj = mastra.getWorkflow(workflowToUse);\n if (!workflowObj) {\n throw new Error(`Workflow ${workflowToUse} not found`);\n }\n\n const run = await workflowObj.createRunAsync();\n const stream = run.streamVNext({ 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/helpers.ts","../src/transformers.ts","../src/to-ai-sdk-format.ts","../src/chat-route.ts","../src/workflow-route.ts","../src/network-route.ts"],"names":["rest","registerApiRoute","createUIMessageStream","createUIMessageStreamResponse"],"mappings":"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","file":"index.js","sourcesContent":["import type { 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';\n\nexport type OutputChunkType<OUTPUT extends OutputSchema = undefined> =\n | TextStreamPart<ToolSet>\n | ObjectStreamPart<PartialSchemaOutput<OUTPUT>>\n | undefined;\n\nexport type ToolAgentChunkType = { type: 'tool-agent'; toolCallId: string; payload: any };\nexport type ToolWorkflowChunkType = { type: 'tool-workflow'; toolCallId: string; payload: any };\nexport type ToolNetworkChunkType = { type: 'tool-network'; toolCallId: string; payload: any };\n\nexport function convertMastraChunkToAISDKv5<OUTPUT extends OutputSchema = undefined>({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType<OUTPUT>;\n mode?: 'generate' | 'stream';\n}): OutputChunkType<OUTPUT> {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings || [],\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n };\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n if (chunk.payload.sourceType === 'url') {\n return {\n type: 'source',\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url!,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n };\n } else {\n return {\n type: 'source',\n sourceType: 'document',\n id: chunk.payload.id,\n mediaType: chunk.payload.mimeType!,\n title: chunk.payload.title,\n filename: chunk.payload.filename,\n providerMetadata: chunk.payload.providerMetadata,\n };\n }\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: {\n id: chunk.payload.id || '',\n timestamp: new Date(),\n modelId: (rest.modelId as string) || '',\n ...rest,\n },\n usage: chunk.payload.output.usage,\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n\n case 'object':\n return {\n type: 'object',\n object: chunk.object,\n };\n\n default:\n if (chunk.type && 'payload' in chunk && chunk.payload) {\n return {\n type: chunk.type as string,\n ...(chunk.payload || {}),\n } as OutputChunkType<OUTPUT>;\n }\n if ('type' in chunk && chunk.type?.startsWith('data-')) {\n return chunk as any;\n }\n return;\n }\n}\n\nexport function convertFullStreamChunkToUIMessageStream<UI_MESSAGE extends UIMessage>({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n // tool-output is a custom mastra chunk type used in ToolStream\n part: TextStreamPart<ToolSet> | DataChunkType | { type: 'tool-output'; toolCallId: string; output: any };\n messageMetadataValue?: unknown;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: unknown) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}): InferUIMessageChunk<UI_MESSAGE> | ToolAgentChunkType | ToolWorkflowChunkType | ToolNetworkChunkType | undefined {\n const partType = part?.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-output': {\n if (part.output.from === 'AGENT') {\n return {\n type: 'tool-agent',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'WORKFLOW') {\n return {\n type: 'tool-workflow',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n } else if (part.output.from === 'NETWORK') {\n return {\n type: 'tool-network',\n toolCallId: part.toolCallId,\n payload: part.output,\n };\n }\n return;\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish' as const,\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n } as InferUIMessageChunk<UI_MESSAGE>;\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n // return the chunk as is if it's not a known type\n if ('type' in part && part.type?.startsWith('data-')) {\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, NetworkChunkType } from '@mastra/core/stream';\nimport type { WorkflowRunStatus, WorkflowStepStatus } from '@mastra/core/workflows';\nimport type { ZodType } from 'zod';\nimport { convertMastraChunkToAISDKv5, convertFullStreamChunkToUIMessageStream } from './helpers';\n\ntype StepResult = {\n name: string;\n status: WorkflowStepStatus;\n input: Record<string, unknown> | null;\n output: 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 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<string, { name: string; steps: StepResult[] }>();\n\n return new TransformStream<\n NetworkChunkType,\n | {\n data?: string;\n type?: 'start' | 'finish';\n }\n | NetworkDataPart\n | {\n type: 'text-delta';\n id: string;\n delta: string;\n }\n | {\n type: 'text-start';\n id: string;\n }\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 let bufferedSteps = new Map<string, any>();\n\n return new TransformStream<ChunkType<TOutput>, object>({\n transform(chunk, controller) {\n const part = convertMastraChunkToAISDKv5({ chunk, mode: 'stream' });\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream<any>({\n part: part as any,\n sendReasoning: false,\n sendSources: false,\n sendStart: true,\n sendFinish: true,\n responseMessageId: chunk.runId,\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 } 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-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 null;\n }\n}\n\nexport function transformNetwork(\n payload: NetworkChunkType,\n bufferedNetworks: Map<string, { name: string; steps: StepResult[] }>,\n isNested?: boolean,\n) {\n switch (payload.type) {\n case 'routing-agent-start': {\n if (!bufferedNetworks.has(payload.payload.runId)) {\n bufferedNetworks.set(payload.payload.runId, {\n name: payload.payload.agentId,\n steps: [],\n });\n }\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: bufferedNetworks.get(payload.payload.runId)!.name,\n status: 'running',\n steps: bufferedNetworks.get(payload.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.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.agentId,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.name,\n status: 'running',\n input: payload.payload.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 'tool-execution-start': {\n const current = bufferedNetworks.get(payload.payload.runId) || { name: '', steps: [] };\n current.steps.push({\n name: payload.payload.args?.toolName!,\n status: 'running',\n input: payload.payload.args?.args || null,\n output: null,\n } satisfies StepResult);\n bufferedNetworks.set(payload.payload.runId, current);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.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 '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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\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 } satisfies StepResult);\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.runId!,\n data: {\n name: current.name,\n status: 'running',\n steps: current.steps,\n output: payload.payload.result ?? null,\n },\n } as const;\n }\n case 'routing-agent-end': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n case 'network-execution-event-step-finish': {\n const current = bufferedNetworks.get(payload.payload.runId);\n if (!current) return null;\n return {\n type: isNested ? 'data-tool-network' : 'data-network',\n id: payload.payload.runId,\n data: {\n name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\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 name: current.name,\n status: 'finished',\n steps: current.steps,\n output: payload.payload?.result ?? null,\n },\n } as const;\n }\n default:\n return null;\n }\n}\n","import type {\n MastraModelOutput,\n ChunkType,\n OutputSchema,\n MastraAgentNetworkStream,\n WorkflowRunOutput,\n} from '@mastra/core/stream';\nimport type { MastraWorkflowStream, Step, WorkflowResult } from '@mastra/core/workflows';\nimport type { InferUIMessageChunk, UIMessage } from 'ai';\nimport type { ZodObject, ZodType } from 'zod';\nimport {\n AgentNetworkToAISDKTransformer,\n AgentStreamToAISDKTransformer,\n WorkflowStreamToAISDKTransformer,\n} from './transformers';\n\ntype ToAISDKFrom = 'agent' | 'network' | 'workflow';\n\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<\n TOutput extends ZodType<any>,\n TInput extends ZodType<any>,\n TSteps extends Step<string, any, any, any, any, any>[],\n TState extends ZodObject<any>,\n>(\n stream: WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>,\n options: { from: 'workflow' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream: MastraAgentNetworkStream,\n options: { from: 'network' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat<TOutput extends OutputSchema>(\n stream: MastraModelOutput<TOutput>,\n options: { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>>;\nexport function toAISdkFormat(\n stream:\n | MastraAgentNetworkStream\n | MastraWorkflowStream<any, any, any, any>\n | MastraModelOutput\n | WorkflowRunOutput<WorkflowResult<any, any, any, any>>,\n options: { from: ToAISDKFrom } = { from: 'agent' },\n): ReadableStream<InferUIMessageChunk<UIMessage>> {\n const from = options?.from;\n\n if (from === 'workflow') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(WorkflowStreamToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n if (from === 'network') {\n return (stream as ReadableStream<ChunkType>).pipeThrough(AgentNetworkToAISDKTransformer()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n }\n\n const agentReadable: ReadableStream<ChunkType> =\n 'fullStream' in stream ? (stream as MastraModelOutput).fullStream : (stream as ReadableStream<ChunkType>);\n return agentReadable.pipeThrough(AgentStreamToAISDKTransformer<any>()) as ReadableStream<\n InferUIMessageChunk<UIMessage>\n >;\n}\n","import type { AgentExecutionOptions } from '@mastra/core/agent';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { OutputSchema } from '@mastra/core/stream';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\nexport type chatRouteOptions<OUTPUT extends OutputSchema = undefined> = {\n defaultOptions?: AgentExecutionOptions<OUTPUT, 'aisdk'>;\n} & (\n | {\n path: `${string}:agentId${string}`;\n agent?: never;\n }\n | {\n path: string;\n agent: string;\n }\n);\n\nexport function chatRoute<OUTPUT extends OutputSchema = undefined>({\n path = '/chat/:agentId',\n agent,\n defaultOptions,\n}: chatRouteOptions<OUTPUT>): ReturnType<typeof registerApiRoute> {\n if (!agent && !path.includes('/:agentId')) {\n throw new Error('Path must include :agentId to route to the correct agent or pass the agent explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Chat with an agent',\n description: 'Send messages to an agent and stream the response in the AI SDK format',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'agentId',\n in: 'path',\n required: true,\n description: 'The ID of the agent to chat with',\n schema: {\n type: 'string',\n },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n messages: {\n type: 'array',\n description: 'Array of messages in the conversation',\n items: {\n type: 'object',\n properties: {\n role: {\n type: 'string',\n enum: ['user', 'assistant', 'system'],\n description: 'The role of the message sender',\n },\n content: {\n type: 'string',\n description: 'The content of the message',\n },\n },\n required: ['role', 'content'],\n },\n },\n },\n required: ['messages'],\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Streaming response from the agent',\n content: {\n 'text/plain': {\n schema: {\n type: 'string',\n description: 'Server-sent events stream containing the agent response',\n },\n },\n },\n },\n '400': {\n description: 'Bad request - invalid input',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n '404': {\n description: 'Agent not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: {\n type: 'string',\n },\n },\n },\n },\n },\n },\n },\n },\n handler: async c => {\n const { messages, ...rest } = await c.req.json();\n const mastra = c.get('mastra');\n const runtimeContext = (c as any).get('runtimeContext') as RuntimeContext | undefined;\n\n let agentToUse: string | undefined = agent;\n if (!agent) {\n const agentId = c.req.param('agentId');\n agentToUse = agentId;\n }\n\n if (c.req.param('agentId') && agent) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`,\n );\n }\n\n if (runtimeContext && defaultOptions?.runtimeContext) {\n mastra\n .getLogger()\n ?.warn(`\"runtimeContext\" set in the route options will be overridden by the request's \"runtimeContext\".`);\n }\n\n if (!agentToUse) {\n throw new Error('Agent ID is required');\n }\n\n const agentObj = mastra.getAgent(agentToUse);\n if (!agentObj) {\n throw new Error(`Agent ${agentToUse} not found`);\n }\n\n const result = await agentObj.stream<OUTPUT, 'mastra'>(messages, {\n ...defaultOptions,\n ...rest,\n runtimeContext: runtimeContext || defaultOptions?.runtimeContext,\n });\n\n const uiMessageStream = createUIMessageStream({\n originalMessages: messages,\n execute: async ({ writer }) => {\n for await (const part of toAISdkFormat(result, { from: 'agent' })!) {\n writer.write(part);\n }\n },\n });\n\n return createUIMessageStreamResponse({\n stream: uiMessageStream,\n });\n },\n });\n}\n","import type { TracingOptions } from '@mastra/core/ai-tracing';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { registerApiRoute } from '@mastra/core/server';\nimport { createUIMessageStream, createUIMessageStreamResponse } from 'ai';\nimport { toAISdkFormat } from './to-ai-sdk-format';\n\ntype WorkflowRouteBody = {\n inputData?: Record<string, any>;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n};\n\nexport type WorkflowRouteOptions =\n | { path: `${string}:workflowId${string}`; workflow?: never }\n | { path: string; workflow: string };\n\nexport function workflowRoute({\n path = '/api/workflows/:workflowId/stream',\n workflow,\n}: WorkflowRouteOptions): ReturnType<typeof registerApiRoute> {\n if (!workflow && !path.includes('/:workflowId')) {\n throw new Error('Path must include :workflowId to route to the correct workflow or pass the workflow explicitly');\n }\n\n return registerApiRoute(path, {\n method: 'POST',\n openapi: {\n summary: 'Stream a workflow in AI SDK format',\n description: 'Starts a workflow run and streams events as AI SDK UIMessage chunks',\n tags: ['ai-sdk'],\n parameters: [\n {\n name: 'workflowId',\n in: 'path',\n required: true,\n description: 'The ID of the workflow to stream',\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n inputData: { type: 'object', additionalProperties: true },\n runtimeContext: { type: 'object', additionalProperties: true },\n tracingOptions: { type: 'object', additionalProperties: true },\n },\n },\n },\n },\n },\n responses: {\n '200': {\n description: 'Workflow UIMessage event stream',\n content: {\n 'text/plain': {\n schema: { type: 'string', description: 'SSE stream' },\n },\n },\n },\n },\n },\n handler: async c => {\n const { inputData, ...rest } = (await c.req.json()) as WorkflowRouteBody;\n const mastra = c.get('mastra');\n\n let workflowToUse: string | undefined = workflow;\n if (!workflow) {\n const workflowId = c.req.param('workflowId');\n workflowToUse = workflowId;\n }\n\n if (c.req.param('workflowId') && workflow) {\n mastra\n .getLogger()\n ?.warn(\n `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`,\n );\n }\n if (!workflowToUse) {\n throw new Error('Workflow ID is required');\n }\n\n const workflowObj = mastra.getWorkflow(workflowToUse);\n if (!workflowObj) {\n throw new Error(`Workflow ${workflowToUse} not found`);\n }\n\n const run = await workflowObj.createRunAsync();\n const stream = run.streamVNext({ 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,10 +1,13 @@
1
- import type { MastraModelOutput, OutputSchema, MastraAgentNetworkStream } from '@mastra/core/stream';
2
- import type { MastraWorkflowStream, Step } from '@mastra/core/workflows';
1
+ import type { MastraModelOutput, OutputSchema, MastraAgentNetworkStream, WorkflowRunOutput } from '@mastra/core/stream';
2
+ import type { MastraWorkflowStream, Step, WorkflowResult } from '@mastra/core/workflows';
3
3
  import type { InferUIMessageChunk, UIMessage } from 'ai';
4
4
  import type { ZodObject, ZodType } from 'zod';
5
5
  export declare function toAISdkFormat<TOutput extends ZodType<any>, TInput extends ZodType<any>, TSteps extends Step<string, any, any, any, any, any>[], TState extends ZodObject<any>>(stream: MastraWorkflowStream<TState, TInput, TOutput, TSteps>, options: {
6
6
  from: 'workflow';
7
7
  }): ReadableStream<InferUIMessageChunk<UIMessage>>;
8
+ export declare function toAISdkFormat<TOutput extends ZodType<any>, TInput extends ZodType<any>, TSteps extends Step<string, any, any, any, any, any>[], TState extends ZodObject<any>>(stream: WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>, options: {
9
+ from: 'workflow';
10
+ }): ReadableStream<InferUIMessageChunk<UIMessage>>;
8
11
  export declare function toAISdkFormat(stream: MastraAgentNetworkStream, options: {
9
12
  from: 'network';
10
13
  }): ReadableStream<InferUIMessageChunk<UIMessage>>;
@@ -1 +1 @@
1
- {"version":3,"file":"to-ai-sdk-format.d.ts","sourceRoot":"","sources":["../src/to-ai-sdk-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAa,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAS9C,wBAAgB,aAAa,CAC3B,OAAO,SAAS,OAAO,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,OAAO,CAAC,GAAG,CAAC,EAC3B,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EACtD,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,EAE7B,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC7D,OAAO,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAC5B,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAC3B,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,aAAa,CAAC,OAAO,SAAS,YAAY,EACxD,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAClC,OAAO,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACzB,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"to-ai-sdk-format.d.ts","sourceRoot":"","sources":["../src/to-ai-sdk-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAEjB,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAS9C,wBAAgB,aAAa,CAC3B,OAAO,SAAS,OAAO,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,OAAO,CAAC,GAAG,CAAC,EAC3B,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EACtD,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,EAE7B,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC7D,OAAO,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAC5B,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,aAAa,CAC3B,OAAO,SAAS,OAAO,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,OAAO,CAAC,GAAG,CAAC,EAC3B,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EACtD,MAAM,SAAS,SAAS,CAAC,GAAG,CAAC,EAE7B,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAC1E,OAAO,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAC5B,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAC3B,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,wBAAgB,aAAa,CAAC,OAAO,SAAS,YAAY,EACxD,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAClC,OAAO,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACzB,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/ai-sdk",
3
- "version": "0.2.2-alpha.0",
3
+ "version": "0.2.2",
4
4
  "description": "Adds custom API routes to be compatible with the AI SDK UI parts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "CHANGELOG.md"
23
23
  ],
24
24
  "peerDependencies": {
25
- "@mastra/core": ">=0.21.0-0 <0.22.0-0",
25
+ "@mastra/core": ">=0.21.0-0 <0.23.0-0",
26
26
  "zod": "^3.25.0 || ^4.0.0"
27
27
  },
28
28
  "devDependencies": {
@@ -32,9 +32,9 @@
32
32
  "typescript": "^5.8.3",
33
33
  "vitest": "^3.2.4",
34
34
  "zod": "^3.25.76",
35
- "@internal/lint": "0.0.50",
36
- "@internal/types-builder": "0.0.25",
37
- "@mastra/core": "0.21.2-alpha.0"
35
+ "@internal/lint": "0.0.51",
36
+ "@internal/types-builder": "0.0.26",
37
+ "@mastra/core": "0.22.0"
38
38
  },
39
39
  "keywords": [
40
40
  "mastra",