{"version":3,"file":"model-PhgPlg24.cjs","names":["MastraBase","#model","#options","#mastra","OpenAIReasoningSchemaCompatLayer","OpenAISchemaCompatLayer","GoogleSchemaCompatLayer","AnthropicSchemaCompatLayer","DeepSeekSchemaCompatLayer","MetaSchemaCompatLayer","resolveObservabilityContext","isZodType","isZodArray","getZodDef","MastraError","ErrorDomain","ErrorCategory","delay","Output","executeWithContext","generateText","generateObject","executeWithContextSync","streamText","streamObject"],"sources":["../src/stream/aisdk/v4/usage.ts","../src/llm/model/model.ts"],"sourcesContent":["import type { UsageStats } from '../../../observability';\n\n/**\n * AI SDK v4 LanguageModelUsage type definition\n * (matches the ai package's LanguageModelUsage)\n */\ninterface LanguageModelUsageV4 {\n  promptTokens: number;\n  completionTokens: number;\n  totalTokens?: number;\n}\n\n/**\n * Converts AI SDK v4 LanguageModelUsage to our UsageStats format.\n *\n * @param usage - The LanguageModelUsage from AI SDK v4\n * @returns Normalized UsageStats\n */\nexport function convertV4Usage(usage: LanguageModelUsageV4 | undefined): UsageStats {\n  if (!usage) {\n    return {};\n  }\n\n  return {\n    inputTokens: usage.promptTokens,\n    outputTokens: usage.completionTokens,\n  };\n}\n","import { generateObject, generateText, Output, streamObject, streamText } from '@internal/ai-sdk-v4';\nimport type {\n  CoreMessage,\n  LanguageModelV1 as LanguageModel,\n  StreamObjectOnFinishCallback,\n  StreamTextOnFinishCallback,\n} from '@internal/ai-sdk-v4';\nimport {\n  AnthropicSchemaCompatLayer,\n  applyCompatLayer,\n  DeepSeekSchemaCompatLayer,\n  GoogleSchemaCompatLayer,\n  MetaSchemaCompatLayer,\n  OpenAIReasoningSchemaCompatLayer,\n  OpenAISchemaCompatLayer,\n  jsonSchema,\n} from '@mastra/schema-compat';\nimport type { JSONSchema7, Schema } from '@mastra/schema-compat';\nimport type { z } from 'zod/v4';\nimport type { MastraPrimitives } from '../../action';\nimport { MastraBase } from '../../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../../error';\nimport type { Mastra } from '../../mastra';\nimport { SpanType, resolveObservabilityContext } from '../../observability';\nimport { executeWithContext, executeWithContextSync } from '../../observability/utils';\nimport { toStandardSchema, standardSchemaToJSONSchema, isStandardSchemaWithJSON } from '../../schema';\nimport type { ZodSchema } from '../../schema';\nimport { convertV4Usage } from '../../stream/aisdk/v4/usage';\nimport { delay, isZodType } from '../../utils';\nimport { isZodArray, getZodDef } from '../../utils/zod-utils';\n\nimport type {\n  GenerateObjectWithMessagesArgs,\n  GenerateTextResult,\n  GenerateObjectResult,\n  GenerateTextWithMessagesArgs,\n  OriginalGenerateTextOptions,\n  ToolSet,\n  GenerateReturn,\n  OriginalGenerateObjectOptions,\n  StreamTextWithMessagesArgs,\n  StreamTextResult,\n  OriginalStreamTextOptions,\n  StreamObjectWithMessagesArgs,\n  OriginalStreamObjectOptions,\n  StreamObjectResult,\n  StreamReturn,\n} from './base.types';\nimport type { inferOutput, MastraModelOptions } from './shared.types';\n\nexport class MastraLLMV1 extends MastraBase {\n  #model: LanguageModel;\n  #mastra?: Mastra;\n  #options?: MastraModelOptions;\n\n  constructor({ model, mastra, options }: { model: LanguageModel; mastra?: Mastra; options?: MastraModelOptions }) {\n    super({ name: 'aisdk' });\n\n    this.#model = model;\n    this.#options = options;\n\n    if (mastra) {\n      this.#mastra = mastra;\n      if (mastra.getLogger()) {\n        this.__setLogger(this.#mastra.getLogger());\n      }\n    }\n  }\n\n  __registerPrimitives(p: MastraPrimitives) {\n    if (p.logger) {\n      this.__setLogger(p.logger);\n    }\n  }\n\n  __registerMastra(p: Mastra) {\n    this.#mastra = p;\n  }\n\n  getProvider() {\n    return this.#model.provider;\n  }\n\n  getModelId() {\n    return this.#model.modelId;\n  }\n\n  getModel() {\n    return this.#model;\n  }\n\n  private _applySchemaCompat(schema: ZodSchema | JSONSchema7): Schema {\n    const model = this.#model;\n\n    const schemaCompatLayers = [];\n\n    if (model) {\n      const modelInfo = {\n        modelId: model.modelId,\n        supportsStructuredOutputs: model.supportsStructuredOutputs ?? false,\n        provider: model.provider,\n      };\n      schemaCompatLayers.push(\n        new OpenAIReasoningSchemaCompatLayer(modelInfo),\n        new OpenAISchemaCompatLayer(modelInfo),\n        new GoogleSchemaCompatLayer(modelInfo),\n        new AnthropicSchemaCompatLayer(modelInfo),\n        new DeepSeekSchemaCompatLayer(modelInfo),\n        new MetaSchemaCompatLayer(modelInfo),\n      );\n    }\n\n    // \"Type instantiation is excessively deep\" error from complex ZodSchema generic inference\n    return applyCompatLayer({\n      schema: schema as any,\n      compatLayers: schemaCompatLayers,\n      mode: 'aiSdkSchema',\n    });\n  }\n\n  async __text<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined>({\n    runId,\n    messages,\n    maxSteps = 5,\n    tools = {},\n    temperature,\n    toolChoice = 'auto',\n    onStepFinish,\n    experimental_output,\n    threadId,\n    resourceId,\n    requestContext,\n    ...rest\n  }: GenerateTextWithMessagesArgs<Tools, Z>): Promise<GenerateTextResult<Tools, Z>> {\n    const model = this.#model;\n    const observabilityContext = resolveObservabilityContext(rest);\n\n    this.logger.debug('Generating text', {\n      runId,\n      messages,\n      maxSteps,\n      threadId,\n      resourceId,\n      tools: Object.keys(tools),\n    });\n\n    let schema: z.ZodType<inferOutput<Z>> | Schema<inferOutput<Z>> | undefined = undefined;\n\n    if (experimental_output) {\n      this.logger.debug('Using experimental output', {\n        runId,\n      });\n\n      if (isZodType(experimental_output)) {\n        schema = experimental_output as z.ZodType<inferOutput<Z>>;\n        if (isZodArray(schema)) {\n          schema = getZodDef(schema).type as z.ZodType<inferOutput<Z>>;\n        }\n\n        // Convert Zod schema to JSON Schema via standard schema interface\n        const standardSchema = toStandardSchema(schema as any);\n        const jsonSchemaToUse = standardSchemaToJSONSchema(standardSchema);\n\n        schema = jsonSchema<inferOutput<Z>>(jsonSchemaToUse);\n      } else {\n        schema = jsonSchema<inferOutput<Z>>(experimental_output);\n      }\n    }\n\n    // make json schema a ai sdk schema\n    if (tools && Object.keys(tools).length > 0) {\n      for (const tool of Object.values(tools)) {\n        if (tool.parameters) {\n          if ('validate' in tool.parameters) {\n            tool.parameters = tool.parameters;\n          } else if (isStandardSchemaWithJSON(tool.parameters)) {\n            tool.parameters = jsonSchema(standardSchemaToJSONSchema(tool.parameters));\n          } else {\n            tool.parameters = jsonSchema(tool.parameters);\n          }\n        }\n      }\n    }\n\n    const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n      name: `llm: '${model.modelId}'`,\n      type: SpanType.MODEL_GENERATION,\n      input: {\n        messages,\n        schema,\n      },\n      attributes: {\n        model: model.modelId,\n        provider: model.provider,\n        parameters: {\n          temperature,\n          maxOutputTokens: rest.maxTokens,\n          topP: rest.topP,\n          frequencyPenalty: rest.frequencyPenalty,\n          presencePenalty: rest.presencePenalty,\n        },\n        streaming: false,\n      },\n      metadata: {\n        runId,\n        threadId,\n        resourceId,\n      },\n      tracingPolicy: this.#options?.tracingPolicy,\n      requestContext,\n    });\n\n    const argsForExecute: OriginalGenerateTextOptions<Tools, Z> = {\n      ...rest,\n      messages,\n      model,\n      temperature,\n      tools: {\n        ...(tools as Tools),\n      },\n      toolChoice,\n      maxSteps,\n      onStepFinish: async props => {\n        try {\n          await onStepFinish?.({ ...props, runId: runId! });\n        } catch (e: unknown) {\n          const mastraError = new MastraError(\n            {\n              id: 'LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n              domain: ErrorDomain.LLM,\n              category: ErrorCategory.USER,\n              details: {\n                modelId: model.modelId,\n                modelProvider: model.provider,\n                runId: runId ?? 'unknown',\n                threadId: threadId ?? 'unknown',\n                resourceId: resourceId ?? 'unknown',\n                finishReason: props?.finishReason,\n                toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n                toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n                usage: props?.usage ? JSON.stringify(props.usage) : '',\n              },\n            },\n            e,\n          );\n          throw mastraError;\n        }\n\n        this.logger.debug('Text step change', {\n          text: props?.text,\n          toolCalls: props?.toolCalls,\n          toolResults: props?.toolResults,\n          finishReason: props?.finishReason,\n          usage: props?.usage,\n          runId,\n        });\n\n        const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n        if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n          this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId, remainingTokens });\n          const rateLimitSpan = llmSpan?.createChildSpan({\n            name: 'rate-limit-sleep',\n            type: SpanType.GENERIC,\n            metadata: { remainingTokens, delayMs: 10_000 },\n          });\n          await delay(10 * 1000);\n          rateLimitSpan?.end();\n        }\n      },\n      experimental_output: schema\n        ? Output.object({\n            schema,\n          })\n        : undefined,\n    };\n\n    try {\n      const result: GenerateTextResult<Tools, Z> = await executeWithContext({\n        span: llmSpan,\n        fn: () => generateText(argsForExecute),\n      });\n\n      if (schema && result.finishReason === 'stop') {\n        result.object = (result as any).experimental_output;\n      }\n      llmSpan?.end({\n        output: {\n          text: result.text,\n          object: result.object,\n          reasoning: result.reasoningDetails,\n          reasoningText: result.reasoning,\n          files: result.files,\n          sources: result.sources,\n          toolCalls: result.toolCalls,\n          warnings: result.warnings,\n        },\n        attributes: {\n          finishReason: result.finishReason,\n          responseId: result.response?.id,\n          responseModel: result.response?.modelId,\n          usage: convertV4Usage(result.usage),\n        },\n      });\n\n      return result;\n    } catch (e: unknown) {\n      const mastraError = new MastraError(\n        {\n          id: 'LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED',\n          domain: ErrorDomain.LLM,\n          category: ErrorCategory.THIRD_PARTY,\n          details: {\n            modelId: model.modelId,\n            modelProvider: model.provider,\n            runId: runId ?? 'unknown',\n            threadId: threadId ?? 'unknown',\n            resourceId: resourceId ?? 'unknown',\n          },\n        },\n        e,\n      );\n      this.logger.error('Generate text failed', {\n        error: mastraError,\n        runId,\n        threadId,\n        resourceId,\n        modelId: model.modelId,\n        modelProvider: model.provider,\n      });\n      llmSpan?.error({ error: mastraError });\n      throw mastraError;\n    }\n  }\n\n  async __textObject<Z extends ZodSchema | JSONSchema7>({\n    messages,\n    structuredOutput,\n    runId,\n    threadId,\n    resourceId,\n    requestContext,\n    ...rest\n  }: GenerateObjectWithMessagesArgs<Z>): Promise<GenerateObjectResult<Z>> {\n    const model = this.#model;\n    const observabilityContext = resolveObservabilityContext(rest);\n\n    this.logger.debug('Generating text object', { runId });\n\n    const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n      name: `llm: '${model.modelId}'`,\n      type: SpanType.MODEL_GENERATION,\n      input: {\n        messages,\n      },\n      attributes: {\n        model: model.modelId,\n        provider: model.provider,\n        parameters: {\n          temperature: rest.temperature,\n          maxOutputTokens: rest.maxTokens,\n          topP: rest.topP,\n          frequencyPenalty: rest.frequencyPenalty,\n          presencePenalty: rest.presencePenalty,\n        },\n        streaming: false,\n      },\n      metadata: {\n        runId,\n        threadId,\n        resourceId,\n      },\n      tracingPolicy: this.#options?.tracingPolicy,\n      requestContext,\n    });\n\n    try {\n      let output: 'object' | 'array' = 'object';\n      if (isZodArray(structuredOutput)) {\n        output = 'array';\n        const zodDef = getZodDef(structuredOutput);\n        if ('element' in zodDef) {\n          structuredOutput = zodDef.element;\n        } else {\n          structuredOutput = zodDef.type;\n        }\n      }\n\n      const processedSchema = this._applySchemaCompat(structuredOutput!);\n      llmSpan?.update({\n        input: {\n          messages,\n          schema: processedSchema,\n        },\n      });\n\n      const argsForExecute: OriginalGenerateObjectOptions<Z> = {\n        ...rest,\n        messages,\n        model,\n        output,\n        schema: processedSchema as Schema<Z>,\n      };\n\n      try {\n        // @ts-expect-error - output in our implementation can only be object or array\n        const result = await generateObject(argsForExecute);\n\n        llmSpan?.end({\n          output: {\n            object: result.object,\n            warnings: result.warnings,\n          },\n          attributes: {\n            finishReason: result.finishReason,\n            responseId: result.response?.id,\n            responseModel: result.response?.modelId,\n            usage: convertV4Usage(result.usage),\n          },\n        });\n\n        // @ts-expect-error - output in our implementation can only be object or array\n        return result;\n      } catch (e: unknown) {\n        const mastraError = new MastraError(\n          {\n            id: 'LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED',\n            domain: ErrorDomain.LLM,\n            category: ErrorCategory.THIRD_PARTY,\n            details: {\n              modelId: model.modelId,\n              modelProvider: model.provider,\n              runId: runId ?? 'unknown',\n              threadId: threadId ?? 'unknown',\n              resourceId: resourceId ?? 'unknown',\n            },\n          },\n          e,\n        );\n        this.logger.error('Generate object failed', {\n          error: mastraError,\n          runId,\n          threadId,\n          resourceId,\n          modelId: model.modelId,\n          modelProvider: model.provider,\n        });\n        llmSpan?.error({ error: mastraError });\n        throw mastraError;\n      }\n    } catch (e: unknown) {\n      if (e instanceof MastraError) {\n        throw e;\n      }\n\n      const mastraError = new MastraError(\n        {\n          id: 'LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n          domain: ErrorDomain.LLM,\n          category: ErrorCategory.USER,\n          details: {\n            modelId: model.modelId,\n            modelProvider: model.provider,\n            runId: runId ?? 'unknown',\n            threadId: threadId ?? 'unknown',\n            resourceId: resourceId ?? 'unknown',\n          },\n        },\n        e,\n      );\n      this.logger.error('Generate object schema conversion failed', {\n        error: mastraError,\n        runId,\n        threadId,\n        resourceId,\n        modelId: model.modelId,\n        modelProvider: model.provider,\n      });\n      llmSpan?.error({ error: mastraError });\n      throw mastraError;\n    }\n  }\n\n  __stream<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined = undefined>({\n    messages,\n    onStepFinish,\n    onFinish,\n    maxSteps = 5,\n    tools = {},\n    runId,\n    temperature,\n    toolChoice = 'auto',\n    experimental_output,\n    threadId,\n    resourceId,\n    requestContext,\n    ...rest\n  }: StreamTextWithMessagesArgs<Tools, Z>): StreamTextResult<Tools, Z> {\n    const model = this.#model;\n    const observabilityContext = resolveObservabilityContext(rest);\n\n    let schema: z.ZodType<Z> | Schema<Z> | undefined;\n    if (experimental_output) {\n      if (typeof (experimental_output as any).parse === 'function') {\n        schema = experimental_output as z.ZodType<Z>;\n        if (isZodArray(schema)) {\n          schema = getZodDef(schema).type as z.ZodType<Z>;\n        }\n      } else {\n        schema = jsonSchema(experimental_output as JSONSchema7) as Schema<Z>;\n      }\n    }\n\n    const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n      name: `llm: '${model.modelId}'`,\n      type: SpanType.MODEL_GENERATION,\n      input: {\n        messages,\n      },\n      attributes: {\n        model: model.modelId,\n        provider: model.provider,\n        parameters: {\n          temperature,\n          maxOutputTokens: rest.maxTokens,\n          topP: rest.topP,\n          frequencyPenalty: rest.frequencyPenalty,\n          presencePenalty: rest.presencePenalty,\n        },\n        streaming: true,\n      },\n      metadata: {\n        runId,\n        threadId,\n        resourceId,\n      },\n      tracingPolicy: this.#options?.tracingPolicy,\n      requestContext,\n    });\n\n    if (llmSpan) {\n      executeWithContextSync({\n        span: llmSpan,\n        fn: () =>\n          this.logger.debug('Streaming text', {\n            runId,\n            threadId,\n            resourceId,\n            messages,\n            maxSteps,\n            tools: Object.keys(tools || {}),\n          }),\n      });\n    }\n\n    // make json schema a ai sdk schema\n    if (tools && Object.keys(tools).length > 0) {\n      for (const tool of Object.values(tools)) {\n        if (tool.parameters) {\n          if ('validate' in tool.parameters) {\n            tool.parameters = tool.parameters;\n          } else if (isStandardSchemaWithJSON(tool.parameters)) {\n            tool.parameters = jsonSchema(standardSchemaToJSONSchema(tool.parameters));\n          } else {\n            tool.parameters = jsonSchema(tool.parameters);\n          }\n        }\n      }\n    }\n\n    const argsForExecute: OriginalStreamTextOptions<Tools, Z> = {\n      model,\n      temperature,\n      tools: {\n        ...(tools as Tools),\n      },\n      maxSteps,\n      toolChoice,\n      onStepFinish: async props => {\n        try {\n          await onStepFinish?.({ ...props, runId: runId! });\n        } catch (e: unknown) {\n          const mastraError = new MastraError(\n            {\n              id: 'LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n              domain: ErrorDomain.LLM,\n              category: ErrorCategory.USER,\n              details: {\n                modelId: model.modelId,\n                modelProvider: model.provider,\n                runId: runId ?? 'unknown',\n                threadId: threadId ?? 'unknown',\n                resourceId: resourceId ?? 'unknown',\n                finishReason: props?.finishReason,\n                toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n                toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n                usage: props?.usage ? JSON.stringify(props.usage) : '',\n              },\n            },\n            e,\n          );\n          this.logger.trackException(mastraError);\n          llmSpan?.error({ error: mastraError });\n          throw mastraError;\n        }\n\n        this.logger.debug('Stream step change', {\n          text: props?.text,\n          toolCalls: props?.toolCalls,\n          toolResults: props?.toolResults,\n          finishReason: props?.finishReason,\n          usage: props?.usage,\n          runId,\n        });\n\n        const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n        if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n          this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId, remainingTokens });\n          const rateLimitSpan = llmSpan?.createChildSpan({\n            name: 'rate-limit-sleep',\n            type: SpanType.GENERIC,\n            metadata: { remainingTokens, delayMs: 10_000 },\n          });\n          await delay(10 * 1000);\n          rateLimitSpan?.end();\n        }\n      },\n      onFinish: async props => {\n        // End the model generation span BEFORE calling the user's onFinish callback\n        // This ensures the model span ends before the agent span\n        llmSpan?.end({\n          output: {\n            text: props?.text,\n            reasoning: props?.reasoningDetails,\n            reasoningText: props?.reasoning,\n            files: props?.files,\n            sources: props?.sources,\n            toolCalls: props?.toolCalls,\n            warnings: props?.warnings,\n          },\n          attributes: {\n            finishReason: props?.finishReason,\n            usage: convertV4Usage(props?.usage),\n          },\n        });\n\n        try {\n          await onFinish?.({ ...props, runId: runId! });\n        } catch (e: unknown) {\n          const mastraError = new MastraError(\n            {\n              id: 'LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n              domain: ErrorDomain.LLM,\n              category: ErrorCategory.USER,\n              details: {\n                modelId: model.modelId,\n                modelProvider: model.provider,\n                runId: runId ?? 'unknown',\n                threadId: threadId ?? 'unknown',\n                resourceId: resourceId ?? 'unknown',\n                finishReason: props?.finishReason,\n                toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n                toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n                usage: props?.usage ? JSON.stringify(props.usage) : '',\n              },\n            },\n            e,\n          );\n          llmSpan?.error({ error: mastraError });\n          this.logger.trackException(mastraError);\n          throw mastraError;\n        }\n\n        this.logger.debug('Stream finished', {\n          text: props?.text,\n          toolCalls: props?.toolCalls,\n          toolResults: props?.toolResults,\n          finishReason: props?.finishReason,\n          usage: props?.usage,\n          runId,\n          threadId,\n          resourceId,\n        });\n      },\n      onError: ({ error }) => {\n        const mastraError = new MastraError(\n          {\n            id: 'LLM_STREAM_TEXT_AI_SDK_STREAMING_ERROR',\n            domain: ErrorDomain.LLM,\n            category: ErrorCategory.THIRD_PARTY,\n            details: {\n              modelId: model.modelId,\n              modelProvider: model.provider,\n              runId: runId ?? 'unknown',\n              threadId: threadId ?? 'unknown',\n              resourceId: resourceId ?? 'unknown',\n            },\n          },\n          error,\n        );\n        this.logger.error('Stream text error', {\n          error: mastraError,\n          runId,\n          threadId,\n          resourceId,\n          modelId: model.modelId,\n          modelProvider: model.provider,\n        });\n        llmSpan?.error({ error: mastraError });\n      },\n      ...rest,\n      messages,\n      experimental_output: schema\n        ? (Output.object({\n            schema,\n          }) as any)\n        : undefined,\n    };\n\n    try {\n      return executeWithContextSync({ span: llmSpan, fn: () => streamText(argsForExecute) });\n    } catch (e: unknown) {\n      const mastraError = new MastraError(\n        {\n          id: 'LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED',\n          domain: ErrorDomain.LLM,\n          category: ErrorCategory.THIRD_PARTY,\n          details: {\n            modelId: model.modelId,\n            modelProvider: model.provider,\n            runId: runId ?? 'unknown',\n            threadId: threadId ?? 'unknown',\n            resourceId: resourceId ?? 'unknown',\n          },\n        },\n        e,\n      );\n      this.logger.error('Stream text failed', {\n        error: mastraError,\n        runId,\n        threadId,\n        resourceId,\n        modelId: model.modelId,\n        modelProvider: model.provider,\n      });\n      llmSpan?.error({ error: mastraError });\n      throw mastraError;\n    }\n  }\n\n  __streamObject<T extends ZodSchema | JSONSchema7>({\n    messages,\n    runId,\n    requestContext,\n    threadId,\n    resourceId,\n    onFinish,\n    structuredOutput,\n    ...rest\n  }: StreamObjectWithMessagesArgs<T>): StreamObjectResult<T> {\n    const model = this.#model;\n    const observabilityContext = resolveObservabilityContext(rest);\n\n    this.logger.debug('Streaming structured output', {\n      runId,\n      messages,\n    });\n\n    const llmSpan = observabilityContext.tracingContext.currentSpan?.createChildSpan({\n      name: `llm: '${model.modelId}'`,\n      type: SpanType.MODEL_GENERATION,\n      input: {\n        messages,\n      },\n      attributes: {\n        model: model.modelId,\n        provider: model.provider,\n        parameters: {\n          temperature: rest.temperature,\n          maxOutputTokens: rest.maxTokens,\n          topP: rest.topP,\n          frequencyPenalty: rest.frequencyPenalty,\n          presencePenalty: rest.presencePenalty,\n        },\n        streaming: true,\n      },\n      metadata: {\n        runId,\n        threadId,\n        resourceId,\n      },\n      tracingPolicy: this.#options?.tracingPolicy,\n      requestContext,\n    });\n\n    try {\n      let output: 'object' | 'array' = 'object';\n      if (isZodArray(structuredOutput)) {\n        output = 'array';\n        structuredOutput = getZodDef(structuredOutput).type;\n      }\n\n      const processedSchema = this._applySchemaCompat(structuredOutput!);\n      llmSpan?.update({\n        input: {\n          messages,\n          schema: processedSchema,\n        },\n      });\n\n      const argsForExecute: OriginalStreamObjectOptions<T> = {\n        ...rest,\n        model,\n        onFinish: async (props: any) => {\n          // End the model generation span BEFORE calling the user's onFinish callback\n          // This ensures the model span ends before the agent span\n          llmSpan?.end({\n            output: {\n              text: props?.text,\n              object: props?.object,\n              reasoning: props?.reasoningDetails,\n              reasoningText: props?.reasoning,\n              files: props?.files,\n              sources: props?.sources,\n              warnings: props?.warnings,\n            },\n            attributes: {\n              finishReason: props?.finishReason,\n              usage: props?.usage,\n            },\n          });\n\n          try {\n            await onFinish?.({ ...props, runId: runId! });\n          } catch (e: unknown) {\n            const mastraError = new MastraError(\n              {\n                id: 'LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n                domain: ErrorDomain.LLM,\n                category: ErrorCategory.USER,\n                details: {\n                  modelId: model.modelId,\n                  modelProvider: model.provider,\n                  runId: runId ?? 'unknown',\n                  threadId: threadId ?? 'unknown',\n                  resourceId: resourceId ?? 'unknown',\n                  toolCalls: '',\n                  toolResults: '',\n                  finishReason: '',\n                  usage: props?.usage ? JSON.stringify(props.usage) : '',\n                },\n              },\n              e,\n            );\n            this.logger.trackException(mastraError);\n            llmSpan?.error({ error: mastraError });\n            throw mastraError;\n          }\n\n          this.logger.debug('Object stream finished', {\n            usage: props?.usage,\n            runId,\n            threadId,\n            resourceId,\n          });\n        },\n        onError: ({ error }) => {\n          const mastraError = new MastraError(\n            {\n              id: 'LLM_STREAM_OBJECT_AI_SDK_STREAMING_ERROR',\n              domain: ErrorDomain.LLM,\n              category: ErrorCategory.THIRD_PARTY,\n              details: {\n                modelId: model.modelId,\n                modelProvider: model.provider,\n                runId: runId ?? 'unknown',\n                threadId: threadId ?? 'unknown',\n                resourceId: resourceId ?? 'unknown',\n              },\n            },\n            error,\n          );\n          this.logger.error('Stream object error', {\n            error: mastraError,\n            runId,\n            threadId,\n            resourceId,\n            modelId: model.modelId,\n            modelProvider: model.provider,\n          });\n          llmSpan?.error({ error: mastraError });\n        },\n        messages,\n        output,\n        schema: processedSchema as Schema<inferOutput<T>>,\n      };\n\n      try {\n        return streamObject(argsForExecute as any);\n      } catch (e: unknown) {\n        const mastraError = new MastraError(\n          {\n            id: 'LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED',\n            domain: ErrorDomain.LLM,\n            category: ErrorCategory.THIRD_PARTY,\n            details: {\n              modelId: model.modelId,\n              modelProvider: model.provider,\n              runId: runId ?? 'unknown',\n              threadId: threadId ?? 'unknown',\n              resourceId: resourceId ?? 'unknown',\n            },\n          },\n          e,\n        );\n        this.logger.error('Stream object failed', {\n          error: mastraError,\n          runId,\n          threadId,\n          resourceId,\n          modelId: model.modelId,\n          modelProvider: model.provider,\n        });\n        llmSpan?.error({ error: mastraError });\n        throw mastraError;\n      }\n    } catch (e: unknown) {\n      if (e instanceof MastraError) {\n        llmSpan?.error({ error: e });\n        throw e;\n      }\n\n      const mastraError = new MastraError(\n        {\n          id: 'LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n          domain: ErrorDomain.LLM,\n          category: ErrorCategory.USER,\n          details: {\n            modelId: model.modelId,\n            modelProvider: model.provider,\n            runId: runId ?? 'unknown',\n            threadId: threadId ?? 'unknown',\n            resourceId: resourceId ?? 'unknown',\n          },\n        },\n        e,\n      );\n      this.logger.error('Stream object schema conversion failed', {\n        error: mastraError,\n        runId,\n        threadId,\n        resourceId,\n        modelId: model.modelId,\n        modelProvider: model.provider,\n      });\n      llmSpan?.error({ error: mastraError });\n      throw mastraError;\n    }\n  }\n\n  convertToMessages(messages: string | string[] | CoreMessage[]): CoreMessage[] {\n    if (Array.isArray(messages)) {\n      return messages.map(m => {\n        if (typeof m === 'string') {\n          return {\n            role: 'user',\n            content: m,\n          };\n        }\n        return m;\n      });\n    }\n\n    return [\n      {\n        role: 'user',\n        content: messages,\n      },\n    ];\n  }\n\n  async generate<\n    Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n    StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n    Tools extends ToolSet = ToolSet,\n  >(\n    messages: string | string[] | CoreMessage[],\n    args?: Omit<\n      Output extends undefined\n        ? GenerateTextWithMessagesArgs<Tools, StructuredOutput>\n        : Omit<GenerateObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'>,\n      'messages'\n    > & { output?: Output },\n  ): Promise<GenerateReturn<Tools, Output, StructuredOutput>> {\n    const msgs = this.convertToMessages(messages);\n    const { output, ...rest } = args ?? ({} as NonNullable<typeof args>);\n\n    if (!output) {\n      return (await this.__text<Tools, StructuredOutput>({\n        messages: msgs,\n        ...(rest as unknown as Omit<GenerateTextWithMessagesArgs<Tools, StructuredOutput>, 'messages'>),\n      })) as GenerateReturn<Tools, Output, StructuredOutput>;\n    }\n\n    return (await this.__textObject({\n      messages: msgs,\n      structuredOutput: output as NonNullable<Output>,\n      ...(rest as unknown as Omit<\n        GenerateObjectWithMessagesArgs<NonNullable<Output>>,\n        'messages' | 'structuredOutput'\n      >),\n    })) as GenerateReturn<Tools, Output, StructuredOutput>;\n  }\n\n  stream<\n    Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n    StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n    Tools extends ToolSet = ToolSet,\n  >(\n    messages: string | string[] | CoreMessage[],\n    args?: Omit<\n      Output extends undefined\n        ? StreamTextWithMessagesArgs<Tools, StructuredOutput>\n        : Omit<StreamObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'> & { maxSteps?: never },\n      'messages'\n    > & { output?: Output },\n  ): StreamReturn<Tools, Output, StructuredOutput> {\n    const msgs = this.convertToMessages(messages);\n    const { output, ...rest } = args ?? ({} as NonNullable<typeof args>);\n\n    if (!output) {\n      const {\n        maxSteps = 5,\n        onFinish,\n        ...streamRest\n      } = rest as unknown as Omit<StreamTextWithMessagesArgs<Tools, StructuredOutput>, 'messages'>;\n      return this.__stream({\n        messages: msgs,\n        maxSteps,\n        onFinish: onFinish as StreamTextOnFinishCallback<Tools> | undefined,\n        ...streamRest,\n      }) as StreamReturn<Tools, Output, StructuredOutput>;\n    }\n\n    const { onFinish, ...objectRest } = rest as unknown as Omit<\n      StreamObjectWithMessagesArgs<NonNullable<Output>>,\n      'messages' | 'structuredOutput'\n    >;\n    return this.__streamObject({\n      messages: msgs,\n      structuredOutput: output as NonNullable<Output>,\n      onFinish: onFinish as StreamObjectOnFinishCallback<inferOutput<Output>> | undefined,\n      ...objectRest,\n    }) as StreamReturn<Tools, Output, StructuredOutput>;\n  }\n}\n"],"mappings":"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"}