{"version":3,"sources":["../src/stream/MastraAgentNetworkStream.ts","../src/stream/aisdk/v5/compat/ui-message.ts","../src/stream/base/consume-stream.ts","../src/stream/RunOutput.ts","../src/stream/aisdk/v5/transform.ts","../src/stream/caching-transform-stream.ts"],"names":["ReadableStream","EventEmitter","DelayedPromise","WritableStream","DefaultGeneratedFile","DefaultGeneratedFileWithType","rest"],"mappings":"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","file":"chunk-P3DKPTDW.cjs","sourcesContent":["import { ReadableStream } from 'node:stream/web';\nimport type { DefaultEngineType, Run, Step } from '../workflows';\nimport type { ChunkType } from './types';\n\nexport class MastraAgentNetworkStream extends ReadableStream> {\n #usageCount = {\n inputTokens: 0,\n outputTokens: 0,\n totalTokens: 0,\n cachedInputTokens: 0,\n cacheCreationInputTokens: 0,\n reasoningTokens: 0,\n };\n #streamPromise: {\n promise: Promise;\n resolve: (value: void) => void;\n reject: (reason?: any) => void;\n };\n #objectPromise: {\n promise: Promise;\n resolve: (value: OUTPUT | undefined) => void;\n reject: (reason?: any) => void;\n };\n #objectStreamController: ReadableStreamDefaultController> | null = null;\n #objectStream: ReadableStream> | null = null;\n #run: Run;\n runId: string;\n\n constructor({\n createStream,\n run,\n }: {\n createStream: (writer: WritableStream>) => Promise> | ReadableStream;\n run: Run[], any, any, any>;\n }) {\n const deferredPromise = {\n promise: null,\n resolve: null,\n reject: null,\n } as unknown as {\n promise: Promise;\n resolve: (value: void) => void;\n reject: (reason?: any) => void;\n };\n deferredPromise.promise = new Promise((resolve, reject) => {\n deferredPromise.resolve = resolve;\n deferredPromise.reject = reject;\n });\n\n // Object promise for structured output\n const objectDeferredPromise = {\n promise: null,\n resolve: null,\n reject: null,\n } as unknown as {\n promise: Promise;\n resolve: (value: OUTPUT | undefined) => void;\n reject: (reason?: any) => void;\n };\n objectDeferredPromise.promise = new Promise((resolve, reject) => {\n objectDeferredPromise.resolve = resolve;\n objectDeferredPromise.reject = reject;\n });\n\n // Object stream controller reference\n let objectStreamController: ReadableStreamDefaultController> | null = null;\n\n const updateUsageCount = (usage: {\n inputTokens?: `${number}` | number;\n outputTokens?: `${number}` | number;\n totalTokens?: `${number}` | number;\n reasoningTokens?: `${number}` | number;\n cachedInputTokens?: `${number}` | number;\n cacheCreationInputTokens?: `${number}` | number;\n }) => {\n this.#usageCount.inputTokens += parseInt(usage?.inputTokens?.toString() ?? '0', 10);\n this.#usageCount.outputTokens += parseInt(usage?.outputTokens?.toString() ?? '0', 10);\n this.#usageCount.totalTokens += parseInt(usage?.totalTokens?.toString() ?? '0', 10);\n this.#usageCount.reasoningTokens += parseInt(usage?.reasoningTokens?.toString() ?? '0', 10);\n this.#usageCount.cachedInputTokens += parseInt(usage?.cachedInputTokens?.toString() ?? '0', 10);\n this.#usageCount.cacheCreationInputTokens += parseInt(usage?.cacheCreationInputTokens?.toString() ?? '0', 10);\n };\n\n super({\n start: async controller => {\n try {\n const writer = new WritableStream>({\n write: chunk => {\n if (\n (chunk.type === 'step-output' &&\n chunk.payload?.output?.from === 'AGENT' &&\n chunk.payload?.output?.type === 'finish') ||\n (chunk.type === 'step-output' &&\n chunk.payload?.output?.from === 'WORKFLOW' &&\n chunk.payload?.output?.type === 'finish')\n ) {\n const output = chunk.payload?.output;\n if (output && 'payload' in output && output.payload) {\n const finishPayload = output.payload;\n if ('usage' in finishPayload && finishPayload.usage) {\n updateUsageCount(finishPayload.usage);\n } else if ('output' in finishPayload && finishPayload.output) {\n const outputPayload = finishPayload.output;\n if ('usage' in outputPayload && outputPayload.usage) {\n updateUsageCount(outputPayload.usage);\n }\n }\n }\n }\n\n controller.enqueue(chunk);\n },\n });\n\n const stream: ReadableStream> = await createStream(writer);\n\n const getInnerChunk = (chunk: ChunkType) => {\n if (chunk.type === 'workflow-step-output') {\n return getInnerChunk(chunk.payload.output as any);\n }\n return chunk;\n };\n\n let objectResolved = false;\n\n for await (const chunk of stream) {\n if (chunk.type === 'workflow-step-output') {\n const innerChunk = getInnerChunk(chunk);\n if (\n innerChunk.type === 'routing-agent-end' ||\n innerChunk.type === 'agent-execution-end' ||\n innerChunk.type === 'workflow-execution-end'\n ) {\n if (innerChunk.payload?.usage) {\n updateUsageCount(innerChunk.payload.usage);\n }\n }\n\n // Handle network-object chunks (partial objects during streaming)\n if (innerChunk.type === 'network-object') {\n if (objectStreamController) {\n objectStreamController.enqueue((innerChunk as any).payload?.object);\n }\n controller.enqueue(innerChunk);\n }\n // Handle network-object-result chunks (final structured object)\n else if (innerChunk.type === 'network-object-result') {\n if (!objectResolved) {\n objectResolved = true;\n objectDeferredPromise.resolve((innerChunk as any).payload?.object);\n if (objectStreamController) {\n objectStreamController.close();\n }\n }\n controller.enqueue(innerChunk);\n } else if (innerChunk.type === 'network-execution-event-finish') {\n const finishPayload = {\n ...innerChunk.payload,\n usage: this.#usageCount,\n };\n controller.enqueue({ ...innerChunk, payload: finishPayload });\n } else {\n controller.enqueue(innerChunk);\n }\n }\n }\n\n // If no object was resolved, resolve with undefined\n if (!objectResolved) {\n objectDeferredPromise.resolve(undefined);\n if (objectStreamController) {\n objectStreamController.close();\n }\n }\n\n controller.close();\n deferredPromise.resolve();\n } catch (error) {\n controller.error(error);\n deferredPromise.reject(error);\n objectDeferredPromise.reject(error);\n if (objectStreamController) {\n objectStreamController.error(error);\n }\n }\n },\n });\n\n this.#run = run;\n this.#streamPromise = deferredPromise;\n\n this.runId = run.runId;\n this.#objectPromise = objectDeferredPromise;\n\n // Create object stream\n this.#objectStream = new ReadableStream>({\n start: ctrl => {\n objectStreamController = ctrl;\n this.#objectStreamController = ctrl;\n },\n });\n }\n\n get status() {\n return this.#streamPromise.promise.then(() => this.#run._getExecutionResults()).then(res => res!.status);\n }\n\n get result() {\n return this.#streamPromise.promise.then(() => this.#run._getExecutionResults());\n }\n\n get usage() {\n return this.#streamPromise.promise.then(() => this.#usageCount);\n }\n\n /**\n * Returns a promise that resolves to the structured output object.\n * Only available when structuredOutput option is provided to network().\n * Resolves to undefined if no structuredOutput was requested.\n */\n get object(): Promise {\n return this.#objectPromise.promise;\n }\n\n /**\n * Returns a ReadableStream of partial objects during structured output generation.\n * Useful for streaming partial results as they're being generated.\n */\n get objectStream(): ReadableStream> {\n return this.#objectStream!;\n }\n}\n","import type { InferUIMessageChunk, TextStreamPart, ToolSet, UIMessage, IdGenerator } from '@internal/ai-sdk-v5';\n\nexport function getResponseUIMessageId({\n originalMessages,\n responseMessageId,\n}: {\n originalMessages: UIMessage[] | undefined;\n responseMessageId: string | IdGenerator | undefined;\n}) {\n // when there are no original messages (i.e. no persistence),\n // the assistant message id generation is handled on the client side.\n if (originalMessages == null) {\n return undefined;\n }\n\n const lastMessage = originalMessages[originalMessages.length - 1];\n\n return lastMessage?.role === 'assistant'\n ? lastMessage.id\n : typeof responseMessageId === 'function'\n ? responseMessageId()\n : responseMessageId;\n}\n\nexport function convertFullStreamChunkToUIMessageStream({\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 | { 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 | 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 return {\n ...part.output,\n };\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;\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;\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 const exhaustiveCheck: never = partType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n}\n","export async function consumeStream({\n stream,\n onError,\n}: {\n stream: ReadableStream;\n onError?: (error: unknown) => void;\n}) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done } = await reader.read();\n if (done) break;\n }\n } catch (error) {\n onError == null ? void 0 : onError(error);\n } finally {\n reader.releaseLock();\n }\n}\n","import EventEmitter from 'node:events';\nimport { ReadableStream, WritableStream } from 'node:stream/web';\nimport type { ReadableStreamGetReaderOptions, ReadableWritablePair, StreamPipeOptions } from 'node:stream/web';\nimport type { LanguageModelUsage } from '@internal/ai-sdk-v5';\nimport type { WorkflowResult, WorkflowRunStatus } from '../workflows';\nimport { DelayedPromise } from './aisdk/v5/compat';\nimport type { MastraBaseStream } from './base/base';\nimport { consumeStream } from './base/consume-stream';\nimport { ChunkFrom } from './types';\nimport type { StepTripwireData, WorkflowStreamEvent } from './types';\n\ntype AggregatedLanguageModelUsage = Required & {\n cacheCreationInputTokens: number;\n};\n\nexport class WorkflowRunOutput<\n TResult extends WorkflowResult = WorkflowResult,\n> implements MastraBaseStream {\n #status: WorkflowRunStatus = 'running';\n #tripwireData: StepTripwireData | undefined;\n #usageCount: AggregatedLanguageModelUsage = {\n inputTokens: 0,\n outputTokens: 0,\n totalTokens: 0,\n cachedInputTokens: 0,\n cacheCreationInputTokens: 0,\n reasoningTokens: 0,\n };\n #consumptionStarted = false;\n #baseStream: ReadableStream;\n #emitter = new EventEmitter();\n #bufferedChunks: WorkflowStreamEvent[] = [];\n\n #streamFinished = false;\n\n #streamError: Error | undefined;\n\n #delayedPromises = {\n usage: new DelayedPromise(),\n result: new DelayedPromise(),\n };\n\n /**\n * Unique identifier for this workflow run\n */\n public runId: string;\n /**\n * Unique identifier for this workflow\n */\n public workflowId: string;\n\n constructor({\n runId,\n workflowId,\n stream,\n }: {\n runId: string;\n workflowId: string;\n stream: ReadableStream;\n }) {\n const self = this;\n this.runId = runId;\n this.workflowId = workflowId;\n\n this.#baseStream = stream;\n stream\n .pipeTo(\n new WritableStream({\n start() {\n const chunk: WorkflowStreamEvent = {\n type: 'workflow-start',\n runId: self.runId,\n from: ChunkFrom.WORKFLOW,\n payload: {\n workflowId: self.workflowId,\n },\n } as WorkflowStreamEvent;\n\n self.#bufferedChunks.push(chunk);\n self.#emitter.emit('chunk', chunk);\n },\n write(chunk) {\n if (chunk.type !== 'workflow-step-finish') {\n self.#bufferedChunks.push(chunk);\n self.#emitter.emit('chunk', chunk);\n }\n\n if (chunk.type === 'workflow-step-output') {\n if ('output' in chunk.payload && chunk.payload.output) {\n const output = chunk.payload.output;\n if (output.type === 'finish') {\n if (output.payload && 'usage' in output.payload && output.payload.usage) {\n self.#updateUsageCount(output.payload.usage);\n } else if (output.payload && 'output' in output.payload && output.payload.output) {\n const outputPayload = output.payload.output;\n if ('usage' in outputPayload && outputPayload.usage) {\n self.#updateUsageCount(outputPayload.usage);\n }\n }\n }\n }\n } else if (chunk.type === 'workflow-canceled') {\n self.#status = 'canceled';\n } else if (chunk.type === 'workflow-step-suspended') {\n self.#status = 'suspended';\n } else if (chunk.type === 'workflow-step-result' && chunk.payload.status === 'failed') {\n // Check if the failure was due to a tripwire\n if (chunk.payload.tripwire) {\n self.#status = 'tripwire';\n self.#tripwireData = chunk.payload.tripwire;\n } else {\n self.#status = 'failed';\n }\n } else if (chunk.type === 'workflow-paused') {\n self.#status = 'paused';\n }\n },\n close() {\n if (self.#status === 'running') {\n self.#status = 'success';\n }\n\n self.#emitter.emit('chunk', {\n type: 'workflow-finish',\n runId: self.runId,\n from: ChunkFrom.WORKFLOW,\n payload: {\n workflowStatus: self.#status,\n metadata: self.#streamError\n ? {\n error: self.#streamError,\n errorMessage: self.#streamError?.message,\n }\n : {},\n output: {\n usage: self.#usageCount,\n },\n // Include tripwire data when status is 'tripwire'\n ...(self.#status === 'tripwire' && self.#tripwireData ? { tripwire: self.#tripwireData } : {}),\n },\n });\n\n self.#delayedPromises.usage.resolve(self.#usageCount);\n\n Object.entries(self.#delayedPromises).forEach(([key, promise]) => {\n if (promise.status.type === 'pending') {\n promise.reject(new Error(`promise '${key}' was not resolved or rejected when stream finished`));\n }\n });\n\n self.#streamFinished = true;\n self.#emitter.emit('finish');\n },\n }),\n )\n .catch(reason => {\n // eslint-disable-next-line no-console\n console.log(' something went wrong', reason);\n });\n }\n\n #getDelayedPromise(promise: DelayedPromise): Promise {\n if (!this.#consumptionStarted) {\n void this.consumeStream();\n }\n return promise.promise;\n }\n\n #updateUsageCount(\n usage:\n | {\n inputTokens?: `${number}` | number;\n outputTokens?: `${number}` | number;\n totalTokens?: `${number}` | number;\n reasoningTokens?: `${number}` | number;\n cachedInputTokens?: `${number}` | number;\n cacheCreationInputTokens?: `${number}` | number;\n }\n | {\n promptTokens?: `${number}` | number;\n completionTokens?: `${number}` | number;\n totalTokens?: `${number}` | number;\n reasoningTokens?: `${number}` | number;\n cachedInputTokens?: `${number}` | number;\n cacheCreationInputTokens?: `${number}` | number;\n },\n ) {\n let totalUsage = {\n inputTokens: this.#usageCount.inputTokens ?? 0,\n outputTokens: this.#usageCount.outputTokens ?? 0,\n totalTokens: this.#usageCount.totalTokens ?? 0,\n reasoningTokens: this.#usageCount.reasoningTokens ?? 0,\n cachedInputTokens: this.#usageCount.cachedInputTokens ?? 0,\n cacheCreationInputTokens: this.#usageCount.cacheCreationInputTokens ?? 0,\n };\n if ('inputTokens' in usage) {\n totalUsage.inputTokens += parseInt(usage?.inputTokens?.toString() ?? '0', 10);\n totalUsage.outputTokens += parseInt(usage?.outputTokens?.toString() ?? '0', 10);\n // we need to handle both formats because you can use a V1 model inside a stream workflow\n } else if ('promptTokens' in usage) {\n totalUsage.inputTokens += parseInt(usage?.promptTokens?.toString() ?? '0', 10);\n totalUsage.outputTokens += parseInt(usage?.completionTokens?.toString() ?? '0', 10);\n }\n totalUsage.totalTokens += parseInt(usage?.totalTokens?.toString() ?? '0', 10);\n\n totalUsage.reasoningTokens += parseInt(usage?.reasoningTokens?.toString() ?? '0', 10);\n totalUsage.cachedInputTokens += parseInt(usage?.cachedInputTokens?.toString() ?? '0', 10);\n totalUsage.cacheCreationInputTokens += parseInt(usage?.cacheCreationInputTokens?.toString() ?? '0', 10);\n this.#usageCount = totalUsage;\n }\n\n /**\n * @internal\n */\n updateResults(results: TResult) {\n this.#delayedPromises.result.resolve(results);\n }\n\n /**\n * @internal\n */\n rejectResults(error: Error) {\n this.#delayedPromises.result.reject(error);\n this.#status = 'failed';\n this.#streamError = error;\n }\n\n /**\n * @internal\n */\n resume(stream: ReadableStream) {\n this.#baseStream = stream;\n this.#streamFinished = false;\n this.#consumptionStarted = false;\n this.#status = 'running';\n this.#delayedPromises = {\n usage: new DelayedPromise(),\n result: new DelayedPromise(),\n };\n\n const self = this;\n stream\n .pipeTo(\n new WritableStream({\n start() {\n const chunk: WorkflowStreamEvent = {\n type: 'workflow-start',\n runId: self.runId,\n from: ChunkFrom.WORKFLOW,\n payload: {\n workflowId: self.workflowId,\n },\n } as WorkflowStreamEvent;\n\n self.#bufferedChunks.push(chunk);\n self.#emitter.emit('chunk', chunk);\n },\n write(chunk) {\n if (chunk.type !== 'workflow-step-finish') {\n self.#bufferedChunks.push(chunk);\n self.#emitter.emit('chunk', chunk);\n }\n\n if (chunk.type === 'workflow-step-output') {\n if ('output' in chunk.payload && chunk.payload.output) {\n const output = chunk.payload.output;\n if (output.type === 'finish') {\n if (output.payload && 'usage' in output.payload && output.payload.usage) {\n self.#updateUsageCount(output.payload.usage);\n } else if (output.payload && 'output' in output.payload && output.payload.output) {\n const outputPayload = output.payload.output;\n if ('usage' in outputPayload && outputPayload.usage) {\n self.#updateUsageCount(outputPayload.usage);\n }\n }\n }\n }\n } else if (chunk.type === 'workflow-canceled') {\n self.#status = 'canceled';\n } else if (chunk.type === 'workflow-step-suspended') {\n self.#status = 'suspended';\n } else if (chunk.type === 'workflow-step-result' && chunk.payload.status === 'failed') {\n // Check if the failure was due to a tripwire\n if (chunk.payload.tripwire) {\n self.#status = 'tripwire';\n self.#tripwireData = chunk.payload.tripwire;\n } else {\n self.#status = 'failed';\n }\n } else if (chunk.type === 'workflow-paused') {\n self.#status = 'paused';\n }\n },\n close() {\n if (self.#status === 'running') {\n self.#status = 'success';\n }\n\n self.#emitter.emit('chunk', {\n type: 'workflow-finish',\n runId: self.runId,\n from: ChunkFrom.WORKFLOW,\n payload: {\n workflowStatus: self.#status,\n metadata: self.#streamError\n ? {\n error: self.#streamError,\n errorMessage: self.#streamError?.message,\n }\n : {},\n output: {\n usage: self.#usageCount,\n },\n // Include tripwire data when status is 'tripwire'\n ...(self.#status === 'tripwire' && self.#tripwireData ? { tripwire: self.#tripwireData } : {}),\n },\n });\n\n self.#streamFinished = true;\n self.#emitter.emit('finish');\n },\n }),\n )\n .catch(reason => {\n // eslint-disable-next-line no-console\n console.log(' something went wrong', reason);\n });\n }\n\n async consumeStream(options?: Parameters[0]): Promise {\n if (this.#consumptionStarted) {\n return;\n }\n\n this.#consumptionStarted = true;\n\n try {\n await consumeStream({\n stream: this.#baseStream as globalThis.ReadableStream,\n onError: options?.onError,\n });\n } catch (error) {\n options?.onError?.(error);\n }\n }\n\n get fullStream(): ReadableStream {\n const self = this;\n return new ReadableStream({\n start(controller) {\n // Replay existing buffered chunks\n self.#bufferedChunks.forEach(chunk => {\n controller.enqueue(chunk);\n });\n\n // If stream already finished, close immediately\n if (self.#streamFinished) {\n controller.close();\n return;\n }\n\n // Listen for new chunks and stream finish\n const chunkHandler = (chunk: WorkflowStreamEvent) => {\n controller.enqueue(chunk);\n };\n\n const finishHandler = () => {\n self.#emitter.off('chunk', chunkHandler);\n self.#emitter.off('finish', finishHandler);\n controller.close();\n };\n\n self.#emitter.on('chunk', chunkHandler);\n self.#emitter.on('finish', finishHandler);\n },\n\n pull(_controller) {\n // Only start consumption when someone is actively reading the stream\n if (!self.#consumptionStarted) {\n void self.consumeStream();\n }\n },\n\n cancel() {\n // Stream was cancelled, clean up\n self.#emitter.removeAllListeners();\n },\n });\n }\n\n get status() {\n return this.#status;\n }\n\n get result() {\n return this.#getDelayedPromise(this.#delayedPromises.result);\n }\n\n get usage() {\n return this.#getDelayedPromise(this.#delayedPromises.usage);\n }\n\n /**\n * @deprecated Use `fullStream.locked` instead\n */\n get locked(): boolean {\n console.warn('WorkflowRunOutput.locked is deprecated. Use fullStream.locked instead.');\n return this.fullStream.locked;\n }\n\n /**\n * @deprecated Use `fullStream.cancel()` instead\n */\n cancel(reason?: any): Promise {\n console.warn('WorkflowRunOutput.cancel() is deprecated. Use fullStream.cancel() instead.');\n return this.fullStream.cancel(reason);\n }\n\n /**\n * @deprecated Use `fullStream.getReader()` instead\n */\n getReader(\n options?: ReadableStreamGetReaderOptions,\n ): ReadableStreamDefaultReader | ReadableStreamBYOBReader {\n console.warn('WorkflowRunOutput.getReader() is deprecated. Use fullStream.getReader() instead.');\n return this.fullStream.getReader(options as any) as any;\n }\n\n /**\n * @deprecated Use `fullStream.pipeThrough()` instead\n */\n pipeThrough(\n transform: ReadableWritablePair,\n options?: StreamPipeOptions,\n ): ReadableStream {\n console.warn('WorkflowRunOutput.pipeThrough() is deprecated. Use fullStream.pipeThrough() instead.');\n return this.fullStream.pipeThrough(transform as any, options) as ReadableStream;\n }\n\n /**\n * @deprecated Use `fullStream.pipeTo()` instead\n */\n pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise {\n console.warn('WorkflowRunOutput.pipeTo() is deprecated. Use fullStream.pipeTo() instead.');\n return this.fullStream.pipeTo(destination, options);\n }\n\n /**\n * @deprecated Use `fullStream.tee()` instead\n */\n tee(): [ReadableStream, ReadableStream] {\n console.warn('WorkflowRunOutput.tee() is deprecated. Use fullStream.tee() instead.');\n return this.fullStream.tee();\n }\n\n /**\n * @deprecated Use `fullStream[Symbol.asyncIterator]()` instead\n */\n [Symbol.asyncIterator](): AsyncIterableIterator {\n console.warn(\n 'WorkflowRunOutput[Symbol.asyncIterator]() is deprecated. Use fullStream[Symbol.asyncIterator]() instead.',\n );\n return this.fullStream[Symbol.asyncIterator]();\n }\n\n /**\n * Helper method to treat this object as a ReadableStream\n * @deprecated Use `fullStream` directly instead\n */\n toReadableStream(): ReadableStream {\n console.warn('WorkflowRunOutput.toReadableStream() is deprecated. Use fullStream directly instead.');\n return this.fullStream;\n }\n}\n","import type {\n LanguageModelV2FinishReason,\n LanguageModelV2StreamPart,\n LanguageModelV2Usage,\n SharedV2ProviderMetadata,\n} from '@ai-sdk/provider-v5';\nimport type { LanguageModelV3FinishReason, LanguageModelV3Usage } from '@ai-sdk/provider-v6';\nimport type { ModelMessage, ObjectStreamPart, TextStreamPart, ToolSet } from '@internal/ai-sdk-v5';\nimport type { AIV5ResponseMessage } from '../../../agent/message-list';\nimport type { ChunkType, LanguageModelUsage } from '../../types';\nimport { ChunkFrom } from '../../types';\nimport { DefaultGeneratedFile, DefaultGeneratedFileWithType } from './file';\n\n/**\n * Sanitizes tool-call input strings for safe JSON parsing.\n *\n * LLMs sometimes append internal tokens like `<|call|>`, `<|endoftext|>`, or `<|end|>`\n * to otherwise valid JSON in streamed tool-call arguments, causing JSON.parse to fail.\n *\n * This function first attempts JSON.parse on the original input. If parsing succeeds,\n * the original string is returned unchanged — this avoids corrupting valid JSON payloads\n * that legitimately contain `<|...|>` patterns inside string values.\n *\n * Only when the original input is not valid JSON does the function fall back to stripping\n * `<|...|>` token patterns and surrounding whitespace via regex.\n *\n * @see https://github.com/mastra-ai/mastra/issues/13261\n * @see https://github.com/mastra-ai/mastra/issues/13185\n */\nexport function sanitizeToolCallInput(input: string): string {\n // Fast path: if input is already valid JSON, return unchanged to avoid\n // corrupting <|...|> patterns that appear inside JSON string values.\n try {\n JSON.parse(input);\n return input;\n } catch {\n // Input is not valid JSON — strip LLM-specific tokens and retry\n return input.replace(/[\\s]*<\\|[^|]*\\|>[\\s]*/g, '').trim();\n }\n}\n\n/**\n * Attempts to repair common JSON malformations produced by LLM providers.\n *\n * Some LLM providers (e.g., Kimi/K2) occasionally generate malformed JSON for\n * tool call arguments. This function applies a sequence of targeted fixes for\n * the most common errors before giving up.\n *\n * Repairs applied (in order):\n * 1. Missing quote before property name: `{\"a\":\"b\",c\":\"d\"}` → `{\"a\":\"b\",\"c\":\"d\"}`\n * 2. Unquoted property names: `{command:\"value\"}` → `{\"command\":\"value\"}`\n * 3. Single quotes → double quotes (only outside already-double-quoted strings)\n * 4. Trailing commas: `{\"a\":1,}` → `{\"a\":1}`\n *\n * @returns The parsed object if repair succeeds, or null if the JSON is unrecoverable.\n * @see https://github.com/mastra-ai/mastra/issues/11078\n */\nexport function tryRepairJson(input: string): Record | null {\n let repaired = input.trim();\n\n // Fix 1: Missing quote before property name after comma or opening brace\n // e.g. {\"a\":\"b\",c\":\"d\"} → {\"a\":\"b\",\"c\":\"d\"}\n // Matches: ,c\" or {c\" where c is a word character sequence followed by \"\n // but NOT already preceded by a quote\n repaired = repaired.replace(/([{,]\\s*)([a-zA-Z_$][a-zA-Z0-9_$]*)\"/g, (match, prefix, name) => {\n // Check if the name is already quoted — if so, leave it alone\n if (prefix.trimEnd().endsWith('\"')) {\n return match;\n }\n return `${prefix}\"${name}\"`;\n });\n\n // Fix 2: Unquoted property names (must come after Fix 1 since Fix 1 handles the partial-quote case)\n // e.g. {command:\"value\"} → {\"command\":\"value\"}\n repaired = repaired.replace(/([{,]\\s*)([a-zA-Z_$][a-zA-Z0-9_$]*)\\s*:/g, '$1\"$2\":');\n\n // Fix 3: Single quotes → double quotes\n // Simple approach: replace single quotes that act as JSON delimiters\n repaired = repaired.replace(/'/g, '\"');\n\n // Fix 4: Trailing commas before closing braces/brackets\n // e.g. {\"a\":1,} → {\"a\":1}\n repaired = repaired.replace(/,(\\s*[}\\]])/g, '$1');\n\n // Fix 5: Unquoted date/datetime values (issue #14230)\n // e.g. {\"dueStart\": 2026-04-15} → {\"dueStart\": \"2026-04-15\"}\n // e.g. {\"start\": 2026-04-15T09:00:00} → {\"start\": \"2026-04-15T09:00:00\"}\n repaired = repaired.replace(/:\\s*(\\d{4}-\\d{2}-\\d{2}(?:T[\\d:]+)?)\\s*([,}])/g, ': \"$1\"$2');\n\n try {\n return JSON.parse(repaired);\n } catch {\n return null;\n }\n}\n\nexport type StreamPart =\n | Exclude\n | {\n type: 'finish';\n /** Includes 'tripwire' and 'retry' for processor scenarios */\n finishReason: LanguageModelV2FinishReason | 'tripwire' | 'retry';\n usage: LanguageModelV2Usage;\n providerMetadata: SharedV2ProviderMetadata;\n messages: {\n all: ModelMessage[];\n user: ModelMessage[];\n nonUser: AIV5ResponseMessage[];\n };\n };\n\nexport function convertFullStreamChunkToMastra(value: StreamPart, ctx: { runId: string }): ChunkType | undefined {\n switch (value.type) {\n case 'response-metadata':\n return {\n type: 'response-metadata',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: { ...value },\n };\n case 'text-start':\n return {\n type: 'text-start',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n case 'text-delta':\n if (value.delta) {\n return {\n type: 'text-delta',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n text: value.delta,\n },\n };\n }\n return;\n\n case 'text-end':\n return {\n type: 'text-end',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: value,\n };\n\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n text: value.delta,\n },\n };\n\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'source':\n return {\n type: 'source',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n id: value.id,\n sourceType: value.sourceType,\n title: value.title || '',\n mimeType: value.sourceType === 'document' ? value.mediaType : undefined,\n filename: value.sourceType === 'document' ? value.filename : undefined,\n url: value.sourceType === 'url' ? value.url : undefined,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'file': {\n const pm = (value as any).providerMetadata;\n return {\n type: 'file',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n data: value.data,\n base64: typeof value.data === 'string' ? value.data : undefined,\n mimeType: value.mediaType,\n ...(pm != null ? { providerMetadata: pm } : {}),\n },\n };\n }\n\n case 'tool-call': {\n let toolCallInput: Record | undefined = undefined;\n\n if (value.input) {\n const sanitized = sanitizeToolCallInput(value.input);\n if (sanitized) {\n try {\n toolCallInput = JSON.parse(sanitized);\n } catch {\n // JSON.parse failed — attempt to repair common LLM JSON errors\n const repaired = tryRepairJson(sanitized);\n if (repaired) {\n toolCallInput = repaired;\n } else {\n console.error('Error converting tool call input to JSON', {\n input: value.input,\n });\n toolCallInput = undefined;\n }\n }\n }\n }\n\n return {\n type: 'tool-call',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: toolCallInput,\n providerExecuted: value.providerExecuted,\n providerMetadata: value.providerMetadata,\n ...((value as { observability?: unknown }).observability\n ? { observability: (value as { observability?: unknown }).observability as any }\n : {}),\n },\n };\n }\n\n case 'tool-result':\n return {\n type: 'tool-result',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n result: value.result,\n isError: value.isError,\n providerExecuted: value.providerExecuted,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'tool-input-start':\n return {\n type: 'tool-call-input-streaming-start',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n toolCallId: value.id,\n toolName: value.toolName,\n providerExecuted: value.providerExecuted,\n providerMetadata: value.providerMetadata,\n dynamic: (value as { dynamic?: boolean }).dynamic,\n ...((value as { observability?: unknown }).observability\n ? { observability: (value as { observability?: unknown }).observability as any }\n : {}),\n },\n };\n\n case 'tool-input-delta':\n if (value.delta) {\n return {\n type: 'tool-call-delta',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n argsTextDelta: value.delta,\n toolCallId: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n }\n return;\n\n case 'tool-input-end':\n return {\n type: 'tool-call-input-streaming-end',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n toolCallId: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'finish':\n const { finishReason, usage, providerMetadata, messages, ...rest } = value;\n return {\n type: 'finish',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: {\n providerMetadata: value.providerMetadata,\n stepResult: {\n reason: normalizeFinishReason(value.finishReason),\n },\n output: {\n // Normalize usage to handle both V2 (flat) and V3 (nested) formats\n usage: normalizeUsage(value.usage),\n },\n metadata: {\n providerMetadata: value.providerMetadata,\n },\n messages: messages ?? {\n all: [],\n user: [],\n nonUser: [],\n },\n ...rest,\n },\n };\n case 'error':\n return {\n type: 'error',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: value,\n };\n\n case 'raw':\n return {\n type: 'raw',\n runId: ctx.runId,\n from: ChunkFrom.AGENT,\n payload: value.rawValue as Record,\n };\n }\n return;\n}\n\nexport type OutputChunkType =\n | TextStreamPart\n | ObjectStreamPart>\n | undefined;\n\nexport function convertMastraChunkToAISDKv5({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType;\n mode?: 'generate' | 'stream';\n}): OutputChunkType {\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 // Cast needed: Mastra extends reason with 'tripwire' | 'retry' for processor scenarios\n finishReason: chunk.payload.stepResult.reason as LanguageModelV2FinishReason,\n // Cast needed: Mastra's LanguageModelUsage has optional properties, V2 has required-but-nullable\n totalUsage: chunk.payload.output.usage as LanguageModelV2Usage,\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 case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\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 const filePart =\n mode === 'generate'\n ? {\n type: 'file' as const,\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n }\n : {\n type: 'file' as const,\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n\n if (chunk.payload.providerMetadata) {\n (filePart as any).providerMetadata = chunk.payload.providerMetadata;\n }\n\n return filePart;\n }\n case 'tool-call': {\n const toolCallPart = {\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 if (chunk.payload.observability) {\n (toolCallPart as { observability?: unknown }).observability = chunk.payload.observability;\n }\n return toolCallPart as OutputChunkType;\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 ...(chunk.payload.observability ? { observability: chunk.payload.observability as any } : {}),\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: metadataProviderMetadata, ...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: metadataProviderMetadata ?? chunk.payload.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;\n }\n return;\n }\n}\n\n/**\n * Type guard to check if usage is in V3 format (nested objects)\n */\nfunction isV3Usage(usage: unknown): usage is LanguageModelV3Usage {\n if (!usage || typeof usage !== 'object') return false;\n const u = usage as Record;\n return (\n typeof u.inputTokens === 'object' &&\n u.inputTokens !== null &&\n 'total' in (u.inputTokens as object) &&\n typeof u.outputTokens === 'object' &&\n u.outputTokens !== null &&\n 'total' in (u.outputTokens as object)\n );\n}\n\n/**\n * Normalizes usage from either V2 (flat) or V3 (nested) format to Mastra's flat format.\n * V2 format: { inputTokens: number, outputTokens: number, totalTokens?: number }\n * V3 format: { inputTokens: { total, noCache, cacheRead, cacheWrite }, outputTokens: { total, text, reasoning } }\n *\n * The original usage data is preserved in the `raw` field for advanced use cases.\n */\nfunction normalizeUsage(usage: LanguageModelV2Usage | LanguageModelV3Usage | undefined): LanguageModelUsage {\n if (!usage) {\n return {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n reasoningTokens: undefined,\n cachedInputTokens: undefined,\n cacheCreationInputTokens: undefined,\n raw: undefined,\n };\n }\n\n if (isV3Usage(usage)) {\n // V3 format - extract from nested structure\n const inputTokens = usage.inputTokens.total;\n const outputTokens = usage.outputTokens.total;\n return {\n inputTokens,\n outputTokens,\n totalTokens: (inputTokens ?? 0) + (outputTokens ?? 0),\n reasoningTokens: usage.outputTokens.reasoning,\n cachedInputTokens: usage.inputTokens.cacheRead,\n cacheCreationInputTokens: usage.inputTokens.cacheWrite,\n raw: usage,\n };\n }\n\n // V2 format - already flat\n const v2Usage = usage as LanguageModelV2Usage;\n return {\n inputTokens: v2Usage.inputTokens,\n outputTokens: v2Usage.outputTokens,\n totalTokens: v2Usage.totalTokens ?? (v2Usage.inputTokens ?? 0) + (v2Usage.outputTokens ?? 0),\n reasoningTokens: (v2Usage as { reasoningTokens?: number }).reasoningTokens,\n cachedInputTokens: (v2Usage as { cachedInputTokens?: number }).cachedInputTokens,\n cacheCreationInputTokens: (v2Usage as { cacheCreationInputTokens?: number }).cacheCreationInputTokens,\n raw: usage,\n };\n}\n\n/**\n * Type guard to check if a finish reason is V3 format (object with unified/raw properties)\n */\nfunction isV3FinishReason(\n finishReason: LanguageModelV2FinishReason | LanguageModelV3FinishReason | 'tripwire' | 'retry' | undefined,\n): finishReason is LanguageModelV3FinishReason {\n return typeof finishReason === 'object' && finishReason !== null && 'unified' in finishReason;\n}\n\n/**\n * Normalize finish reason from either V2/V5 (string) or V3/V6 (object) format to a string.\n *\n * V2/V5 format: 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other' | 'unknown'\n * V3/V6 format: { unified: 'stop' | 'length' | 'content-filter' | 'tool-calls' | 'error' | 'other', raw: string | undefined }\n *\n * We normalize to the unified string value for internal Mastra use.\n * Note: V6 removed 'unknown' and merged it into 'other'.\n */\nfunction normalizeFinishReason(\n finishReason: LanguageModelV2FinishReason | LanguageModelV3FinishReason | 'tripwire' | 'retry' | undefined,\n): LanguageModelV2FinishReason | 'tripwire' | 'retry' {\n if (!finishReason) {\n return 'other';\n }\n\n // Handle Mastra-specific finish reasons\n if (finishReason === 'tripwire' || finishReason === 'retry') {\n return finishReason;\n }\n\n // V3/V6 format - extract unified value\n if (isV3FinishReason(finishReason)) {\n return finishReason.unified;\n }\n\n // V2/V5 format - already a string, but normalize 'unknown' to 'other' for consistency with V6\n return finishReason === 'unknown' ? 'other' : finishReason;\n}\n","import type { MastraServerCache } from '../cache/base';\n\n/**\n * Options for creating a CachingTransformStream\n */\nexport interface CachingTransformStreamOptions {\n /**\n * Cache instance for storing stream chunks\n */\n cache: MastraServerCache;\n\n /**\n * Unique key for this stream's cache entries\n */\n cacheKey: string;\n\n /**\n * Optional serializer for chunks before caching.\n * Defaults to identity (chunks stored as-is).\n */\n serialize?: (chunk: T) => unknown;\n\n /**\n * Optional deserializer for chunks from cache.\n * Defaults to identity (chunks returned as-is).\n */\n deserialize?: (cached: unknown) => T;\n}\n\n/**\n * Creates a TransformStream that caches all chunks passing through it.\n *\n * Use this for workflow streaming where you need resumable streams\n * without changing to a PubSub-based architecture.\n *\n * @example\n * ```typescript\n * const cache = mastra.getServerCache();\n * const { transform, getHistory } = createCachingTransformStream({\n * cache,\n * cacheKey: runId,\n * });\n *\n * // Use the transform stream\n * const cachedStream = sourceStream.pipeThrough(transform);\n *\n * // Later, get cached history for replay\n * const history = await getHistory();\n * ```\n */\nexport function createCachingTransformStream(options: CachingTransformStreamOptions): {\n /**\n * TransformStream that caches chunks as they pass through\n */\n transform: TransformStream;\n\n /**\n * Get all cached chunks for this stream\n */\n getHistory: (offset?: number) => Promise;\n\n /**\n * Clear cached chunks for this stream\n */\n clearCache: () => Promise;\n} {\n const { cache, cacheKey, serialize = (x: T) => x, deserialize = (x: unknown) => x as T } = options;\n\n const transform = new TransformStream({\n transform(chunk, controller) {\n // Cache the chunk (non-blocking)\n const serialized = serialize(chunk);\n cache.listPush(cacheKey, serialized).catch(() => {\n // Silently ignore cache errors - streaming should continue\n });\n\n // Pass through the chunk\n controller.enqueue(chunk);\n },\n });\n\n const getHistory = async (offset = 0): Promise => {\n const cached = await cache.listFromTo(cacheKey, offset);\n return cached.map(item => deserialize(item));\n };\n\n const clearCache = async (): Promise => {\n await cache.delete(cacheKey);\n };\n\n return { transform, getHistory, clearCache };\n}\n\n/**\n * Creates a ReadableStream that first emits cached history, then pipes from a live source.\n *\n * Use this when a client reconnects and needs to receive missed chunks\n * before continuing with the live stream.\n *\n * @example\n * ```typescript\n * const cache = mastra.getServerCache();\n *\n * // Get cached history\n * const history = await cache.listFromTo(runId, 0);\n *\n * // Create combined stream\n * const stream = createReplayStream({\n * history: history as ChunkType[],\n * liveSource: workflow.stream(),\n * cache,\n * cacheKey: runId,\n * });\n * ```\n */\nexport function createReplayStream(options: {\n /**\n * Cached chunks to emit first\n */\n history: T[];\n\n /**\n * Live stream to continue from after history\n */\n liveSource: ReadableStream;\n\n /**\n * Optional cache for continued caching of live chunks\n */\n cache?: MastraServerCache;\n\n /**\n * Cache key for continued caching\n */\n cacheKey?: string;\n\n /**\n * Optional serializer for caching\n */\n serialize?: (chunk: T) => unknown;\n}): ReadableStream {\n const { history, liveSource, cache, cacheKey, serialize = (x: T) => x } = options;\n\n let historyIndex = 0;\n let liveReader: ReadableStreamDefaultReader | null = null;\n let historyComplete = false;\n\n return new ReadableStream({\n async pull(controller) {\n // First, emit all history chunks\n if (!historyComplete) {\n if (historyIndex < history.length) {\n controller.enqueue(history[historyIndex]!);\n historyIndex++;\n return;\n }\n historyComplete = true;\n liveReader = liveSource.getReader();\n }\n\n // Then, read from live source\n if (liveReader) {\n try {\n const { done, value } = await liveReader.read();\n\n if (done) {\n controller.close();\n return;\n }\n\n // Cache the live chunk if caching is enabled\n if (cache && cacheKey) {\n const serialized = serialize(value);\n cache.listPush(cacheKey, serialized).catch(() => {});\n }\n\n controller.enqueue(value);\n } catch (error) {\n controller.error(error);\n }\n }\n },\n\n cancel() {\n if (liveReader) {\n void liveReader.cancel();\n }\n },\n });\n}\n\n/**\n * Helper to create a caching transform and get history in one call.\n *\n * This is the recommended way to add caching to workflow streams.\n *\n * @example\n * ```typescript\n * const { pipeThrough, getHistory, clearCache } = withStreamCaching({\n * cache: mastra.getServerCache(),\n * cacheKey: runId,\n * });\n *\n * // Apply caching to a stream\n * const cachedStream = workflow.fullStream.pipeThrough(pipeThrough());\n *\n * // On reconnect, get history and create replay stream\n * const history = await getHistory();\n * const replayStream = createReplayStream({\n * history,\n * liveSource: workflow.resumeStream(),\n * });\n * ```\n */\nexport function withStreamCaching(options: CachingTransformStreamOptions): {\n /**\n * Creates a new TransformStream that caches chunks.\n * Call this each time you need a new caching transform.\n */\n pipeThrough: () => TransformStream;\n\n /**\n * Get cached history for this stream\n */\n getHistory: (offset?: number) => Promise;\n\n /**\n * Clear the cache for this stream\n */\n clearCache: () => Promise;\n} {\n const { cache, cacheKey, serialize, deserialize } = options;\n\n return {\n pipeThrough: () => {\n const { transform } = createCachingTransformStream({ cache, cacheKey, serialize, deserialize });\n return transform;\n },\n\n getHistory: async (offset = 0) => {\n const deserializeFn = deserialize ?? ((x: unknown) => x as T);\n const cached = await cache.listFromTo(cacheKey, offset);\n return cached.map(item => deserializeFn(item));\n },\n\n clearCache: async () => {\n await cache.delete(cacheKey);\n },\n };\n}\n"]}