{"version":3,"sources":["../../node_modules/@ai-sdk/mistral/src/convert-mistral-usage.ts","../../node_modules/@ai-sdk/mistral/src/convert-to-mistral-chat-messages.ts","../../node_modules/@ai-sdk/mistral/src/get-response-metadata.ts","../../node_modules/@ai-sdk/mistral/src/map-mistral-finish-reason.ts","../../node_modules/@ai-sdk/mistral/src/mistral-chat-options.ts","../../node_modules/@ai-sdk/mistral/src/mistral-error.ts","../../node_modules/@ai-sdk/mistral/src/mistral-prepare-tools.ts","../../node_modules/@ai-sdk/mistral/src/mistral-chat-language-model.ts","../../node_modules/@ai-sdk/mistral/src/mistral-embedding-model.ts","../../node_modules/@ai-sdk/mistral/src/version.ts","../../node_modules/@ai-sdk/mistral/src/mistral-provider.ts"],"names":["convertToBase64","UnsupportedFunctionalityError","z","createJsonErrorResponseHandler","generateId","parseProviderOptions","injectJsonInstructionIntoMessages","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","TooManyEmbeddingValuesForCallError","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError"],"mappings":"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","file":"dist-TVF3QDNA.cjs","sourcesContent":["import type { LanguageModelV3Usage } from '@ai-sdk/provider';\n\nexport type MistralUsage = {\n  prompt_tokens: number;\n  completion_tokens: number;\n  total_tokens: number;\n  num_cached_tokens?: number | null;\n  prompt_tokens_details?: { cached_tokens?: number | null } | null;\n  prompt_token_details?: { cached_tokens?: number | null } | null;\n};\n\nexport function convertMistralUsage(\n  usage: MistralUsage | undefined | null,\n): LanguageModelV3Usage {\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: undefined,\n        noCache: undefined,\n        cacheRead: undefined,\n        cacheWrite: undefined,\n      },\n      outputTokens: {\n        total: undefined,\n        text: undefined,\n        reasoning: undefined,\n      },\n      raw: undefined,\n    };\n  }\n\n  const promptTokens = usage.prompt_tokens;\n  const completionTokens = usage.completion_tokens;\n\n  const cacheReadTokens =\n    usage.num_cached_tokens ??\n    usage.prompt_tokens_details?.cached_tokens ??\n    usage.prompt_token_details?.cached_tokens ??\n    0;\n\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens - cacheReadTokens,\n      cacheRead: cacheReadTokens || undefined,\n      cacheWrite: undefined,\n    },\n    outputTokens: {\n      total: completionTokens,\n      text: completionTokens,\n      reasoning: undefined,\n    },\n    raw: usage,\n  };\n}\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3DataContent,\n  type LanguageModelV3Prompt,\n} from '@ai-sdk/provider';\nimport type { MistralPrompt } from './mistral-chat-prompt';\nimport { convertToBase64 } from '@ai-sdk/provider-utils';\n\nfunction formatFileUrl({\n  data,\n  mediaType,\n}: {\n  data: LanguageModelV3DataContent;\n  mediaType: string;\n}): string {\n  return data instanceof URL\n    ? data.toString()\n    : `data:${mediaType};base64,${convertToBase64(data as Uint8Array)}`;\n}\n\nexport function convertToMistralChatMessages(\n  prompt: LanguageModelV3Prompt,\n): MistralPrompt {\n  const messages: MistralPrompt = [];\n\n  for (let i = 0; i < prompt.length; i++) {\n    const { role, content } = prompt[i];\n    const isLastMessage = i === prompt.length - 1;\n\n    switch (role) {\n      case 'system': {\n        messages.push({ role: 'system', content });\n        break;\n      }\n\n      case 'user': {\n        messages.push({\n          role: 'user',\n          content: content.map(part => {\n            switch (part.type) {\n              case 'text': {\n                return { type: 'text', text: part.text };\n              }\n\n              case 'file': {\n                if (part.mediaType.startsWith('image/')) {\n                  const mediaType =\n                    part.mediaType === 'image/*'\n                      ? 'image/jpeg'\n                      : part.mediaType;\n\n                  return {\n                    type: 'image_url',\n                    image_url: formatFileUrl({ data: part.data, mediaType }),\n                  };\n                } else if (part.mediaType === 'application/pdf') {\n                  return {\n                    type: 'document_url',\n                    document_url: formatFileUrl({\n                      data: part.data,\n                      mediaType: 'application/pdf',\n                    }),\n                  };\n                } else {\n                  throw new UnsupportedFunctionalityError({\n                    functionality:\n                      'Only images and PDF file parts are supported',\n                  });\n                }\n              }\n            }\n          }),\n        });\n        break;\n      }\n\n      case 'assistant': {\n        let text = '';\n        const toolCalls: Array<{\n          id: string;\n          type: 'function';\n          function: { name: string; arguments: string };\n        }> = [];\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              text += part.text;\n              break;\n            }\n            case 'tool-call': {\n              toolCalls.push({\n                id: part.toolCallId,\n                type: 'function',\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input),\n                },\n              });\n              break;\n            }\n            case 'reasoning': {\n              text += part.text;\n              break;\n            }\n            default: {\n              throw new Error(\n                `Unsupported content type in assistant message: ${part.type}`,\n              );\n            }\n          }\n        }\n\n        messages.push({\n          role: 'assistant',\n          content: text,\n          prefix: isLastMessage ? true : undefined,\n          tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n        });\n\n        break;\n      }\n      case 'tool': {\n        for (const toolResponse of content) {\n          if (toolResponse.type === 'tool-approval-response') {\n            continue;\n          }\n          const output = toolResponse.output;\n\n          let contentValue: string;\n          switch (output.type) {\n            case 'text':\n            case 'error-text':\n              contentValue = output.value;\n              break;\n            case 'execution-denied':\n              contentValue = output.reason ?? 'Tool execution denied.';\n              break;\n            case 'content':\n            case 'json':\n            case 'error-json':\n              contentValue = JSON.stringify(output.value);\n              break;\n          }\n\n          messages.push({\n            role: 'tool',\n            name: toolResponse.toolName,\n            tool_call_id: toolResponse.toolCallId,\n            content: contentValue,\n          });\n        }\n        break;\n      }\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return messages;\n}\n","export function getResponseMetadata({\n  id,\n  model,\n  created,\n}: {\n  id?: string | undefined | null;\n  created?: number | undefined | null;\n  model?: string | undefined | null;\n}) {\n  return {\n    id: id ?? undefined,\n    modelId: model ?? undefined,\n    timestamp: created != null ? new Date(created * 1000) : undefined,\n  };\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapMistralFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'stop':\n      return 'stop';\n    case 'length':\n    case 'model_length':\n      return 'length';\n    case 'tool_calls':\n      return 'tool-calls';\n    default:\n      return 'other';\n  }\n}\n","import { z } from 'zod/v4';\n\n// https://docs.mistral.ai/getting-started/models/models_overview/\nexport type MistralChatModelId =\n  | 'ministral-3b-latest'\n  | 'ministral-8b-latest'\n  | 'ministral-14b-latest'\n  | 'mistral-large-latest'\n  | 'mistral-medium-latest'\n  | 'mistral-medium-3'\n  | 'mistral-large-2512'\n  | 'mistral-medium-2508'\n  | 'mistral-medium-2505'\n  | 'mistral-small-2506'\n  | 'pixtral-large-latest'\n  // reasoning config support models\n  | 'mistral-medium-3.5'\n  | 'mistral-small-latest'\n  | 'mistral-small-2603'\n  // reasoning models\n  | 'magistral-medium-latest'\n  | 'magistral-small-latest'\n  | 'magistral-medium-2509'\n  | 'magistral-small-2509'\n  | (string & {});\n\nexport const mistralLanguageModelOptions = z.object({\n  /**\n   * Whether to inject a safety prompt before all conversations.\n   *\n   * Defaults to `false`.\n   */\n  safePrompt: z.boolean().optional(),\n\n  documentImageLimit: z.number().optional(),\n  documentPageLimit: z.number().optional(),\n\n  /**\n   * Whether to use structured outputs.\n   *\n   * @default true\n   */\n  structuredOutputs: z.boolean().optional(),\n\n  /**\n   * Whether to use strict JSON schema validation.\n   *\n   * @default false\n   */\n  strictJsonSchema: z.boolean().optional(),\n\n  /**\n   * Whether to enable parallel function calling during tool use.\n   * When set to false, the model will use at most one tool per response.\n   *\n   * @default true\n   */\n  parallelToolCalls: z.boolean().optional(),\n\n  /**\n   * Controls the reasoning effort for models that support adjustable reasoning.\n   *\n   * - `'high'`: Enable reasoning\n   * - `'none'`: Disable reasoning\n   */\n  reasoningEffort: z.enum(['high', 'none']).optional(),\n});\n\nexport type MistralLanguageModelOptions = z.infer<\n  typeof mistralLanguageModelOptions\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst mistralErrorDataSchema = z.object({\n  object: z.literal('error'),\n  message: z.string(),\n  type: z.string(),\n  param: z.string().nullable(),\n  code: z.string().nullable(),\n});\n\nexport type MistralErrorData = z.infer<typeof mistralErrorDataSchema>;\n\nexport const mistralFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: mistralErrorDataSchema,\n  errorToMessage: data => data.message,\n});\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3CallOptions,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport type { MistralToolChoice } from './mistral-chat-prompt';\n\nexport function prepareTools({\n  tools,\n  toolChoice,\n}: {\n  tools: LanguageModelV3CallOptions['tools'];\n  toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n}): {\n  tools:\n    | Array<{\n        type: 'function';\n        function: {\n          name: string;\n          description: string | undefined;\n          parameters: unknown;\n          strict?: boolean;\n        };\n      }>\n    | undefined;\n  toolChoice: MistralToolChoice | undefined;\n  toolWarnings: SharedV3Warning[];\n} {\n  // when the tools array is empty, change it to undefined to prevent errors:\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: SharedV3Warning[] = [];\n\n  if (tools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings };\n  }\n\n  const mistralTools: Array<{\n    type: 'function';\n    function: {\n      name: string;\n      description: string | undefined;\n      parameters: unknown;\n      strict?: boolean;\n    };\n  }> = [];\n\n  for (const tool of tools) {\n    if (tool.type === 'provider') {\n      toolWarnings.push({\n        type: 'unsupported',\n        feature: `provider-defined tool ${tool.id}`,\n      });\n    } else {\n      mistralTools.push({\n        type: 'function',\n        function: {\n          name: tool.name,\n          description: tool.description,\n          parameters: tool.inputSchema,\n          ...(tool.strict != null ? { strict: tool.strict } : {}),\n        },\n      });\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: mistralTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n    case 'none':\n      return { tools: mistralTools, toolChoice: type, toolWarnings };\n    case 'required':\n      return { tools: mistralTools, toolChoice: 'any', toolWarnings };\n\n    // mistral does not support tool mode directly,\n    // so we filter the tools and force the tool choice through 'any'\n    case 'tool':\n      return {\n        tools: mistralTools.filter(\n          tool => tool.function.name === toolChoice.toolName,\n        ),\n        toolChoice: 'any',\n        toolWarnings,\n      };\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import type {\n  LanguageModelV3,\n  LanguageModelV3CallOptions,\n  LanguageModelV3Content,\n  LanguageModelV3FinishReason,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3StreamPart,\n  LanguageModelV3StreamResult,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  injectJsonInstructionIntoMessages,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n  type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n  convertMistralUsage,\n  type MistralUsage,\n} from './convert-mistral-usage';\nimport { convertToMistralChatMessages } from './convert-to-mistral-chat-messages';\nimport { getResponseMetadata } from './get-response-metadata';\nimport { mapMistralFinishReason } from './map-mistral-finish-reason';\nimport {\n  mistralLanguageModelOptions,\n  type MistralChatModelId,\n} from './mistral-chat-options';\nimport { mistralFailedResponseHandler } from './mistral-error';\nimport { prepareTools } from './mistral-prepare-tools';\n\ntype MistralChatConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n  generateId?: () => string;\n};\n\nexport class MistralChatLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n\n  readonly modelId: MistralChatModelId;\n\n  private readonly config: MistralChatConfig;\n  private readonly generateId: () => string;\n\n  constructor(modelId: MistralChatModelId, config: MistralChatConfig) {\n    this.modelId = modelId;\n    this.config = config;\n    this.generateId = config.generateId ?? generateId;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'application/pdf': [/^https:\\/\\/.*$/],\n  };\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    providerOptions,\n    tools,\n    toolChoice,\n  }: LanguageModelV3CallOptions) {\n    const warnings: SharedV3Warning[] = [];\n\n    const options =\n      (await parseProviderOptions({\n        provider: 'mistral',\n        providerOptions,\n        schema: mistralLanguageModelOptions,\n      })) ?? {};\n\n    if (topK != null) {\n      warnings.push({ type: 'unsupported', feature: 'topK' });\n    }\n\n    if (frequencyPenalty != null) {\n      warnings.push({ type: 'unsupported', feature: 'frequencyPenalty' });\n    }\n\n    if (presencePenalty != null) {\n      warnings.push({ type: 'unsupported', feature: 'presencePenalty' });\n    }\n\n    if (stopSequences != null) {\n      warnings.push({ type: 'unsupported', feature: 'stopSequences' });\n    }\n\n    const structuredOutputs = options.structuredOutputs ?? true;\n    const strictJsonSchema = options.strictJsonSchema ?? false;\n\n    // For Mistral we need to need to instruct the model to return a JSON object.\n    // https://docs.mistral.ai/capabilities/structured-output/structured_output_overview/\n    if (responseFormat?.type === 'json' && !responseFormat?.schema) {\n      prompt = injectJsonInstructionIntoMessages({\n        messages: prompt,\n        schema: responseFormat.schema,\n      });\n    }\n\n    const baseArgs = {\n      // model id:\n      model: this.modelId,\n\n      // model specific settings:\n      safe_prompt: options.safePrompt,\n\n      // standardized settings:\n      max_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      random_seed: seed,\n      reasoning_effort: options.reasoningEffort,\n\n      // response format:\n      response_format:\n        responseFormat?.type === 'json'\n          ? structuredOutputs && responseFormat?.schema != null\n            ? {\n                type: 'json_schema',\n                json_schema: {\n                  schema: responseFormat.schema,\n                  strict: strictJsonSchema,\n                  name: responseFormat.name ?? 'response',\n                  description: responseFormat.description,\n                },\n              }\n            : { type: 'json_object' }\n          : undefined,\n\n      // mistral-specific provider options:\n      document_image_limit: options.documentImageLimit,\n      document_page_limit: options.documentPageLimit,\n\n      // messages:\n      messages: convertToMistralChatMessages(prompt),\n    };\n\n    const {\n      tools: mistralTools,\n      toolChoice: mistralToolChoice,\n      toolWarnings,\n    } = prepareTools({\n      tools,\n      toolChoice,\n    });\n\n    return {\n      args: {\n        ...baseArgs,\n        tools: mistralTools,\n        tool_choice: mistralToolChoice,\n        ...(mistralTools != null && options.parallelToolCalls !== undefined\n          ? { parallel_tool_calls: options.parallelToolCalls }\n          : {}),\n      },\n      warnings: [...warnings, ...toolWarnings],\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const { args: body, warnings } = await this.getArgs(options);\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/chat/completions`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: mistralFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        mistralChatResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const choice = response.choices[0];\n    const content: Array<LanguageModelV3Content> = [];\n\n    // process content parts in order to preserve sequence\n    if (\n      choice.message.content != null &&\n      Array.isArray(choice.message.content)\n    ) {\n      for (const part of choice.message.content) {\n        if (part.type === 'thinking') {\n          const reasoningText = extractReasoningContent(part.thinking);\n          if (reasoningText.length > 0) {\n            content.push({ type: 'reasoning', text: reasoningText });\n          }\n        } else if (part.type === 'text') {\n          if (part.text.length > 0) {\n            content.push({ type: 'text', text: part.text });\n          }\n        }\n      }\n    } else {\n      // handle legacy string content\n      const text = extractTextContent(choice.message.content);\n      if (text != null && text.length > 0) {\n        content.push({ type: 'text', text });\n      }\n    }\n\n    // when there is a trailing assistant message, mistral will send the\n    // content of that message again. we skip this repeated content to\n    // avoid duplication, e.g. in continuation mode.\n\n    // tool calls:\n    if (choice.message.tool_calls != null) {\n      for (const toolCall of choice.message.tool_calls) {\n        content.push({\n          type: 'tool-call',\n          toolCallId: toolCall.id,\n          toolName: toolCall.function.name,\n          input: toolCall.function.arguments!,\n        });\n      }\n    }\n\n    return {\n      content,\n      finishReason: {\n        unified: mapMistralFinishReason(choice.finish_reason),\n        raw: choice.finish_reason ?? undefined,\n      },\n      usage: convertMistralUsage(response.usage),\n      request: { body },\n      response: {\n        ...getResponseMetadata(response),\n        headers: responseHeaders,\n        body: rawResponse,\n      },\n      warnings,\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const { args, warnings } = await this.getArgs(options);\n    const body = { ...args, stream: true };\n\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: `${this.config.baseURL}/chat/completions`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: mistralFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        mistralChatChunkSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV3FinishReason = {\n      unified: 'other',\n      raw: undefined,\n    };\n    let usage: MistralUsage | undefined = undefined;\n\n    let isFirstChunk = true;\n    let activeText = false;\n    let activeReasoningId: string | null = null;\n\n    const generateId = this.generateId;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof mistralChatChunkSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            // Emit raw chunk if requested (before anything else)\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            if (!chunk.success) {\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            if (isFirstChunk) {\n              isFirstChunk = false;\n\n              controller.enqueue({\n                type: 'response-metadata',\n                ...getResponseMetadata(value),\n              });\n            }\n\n            if (value.usage != null) {\n              usage = value.usage;\n            }\n\n            const choice = value.choices[0];\n            const delta = choice.delta;\n\n            const textContent = extractTextContent(delta.content);\n\n            if (delta.content != null && Array.isArray(delta.content)) {\n              for (const part of delta.content) {\n                if (part.type === 'thinking') {\n                  const reasoningDelta = extractReasoningContent(part.thinking);\n                  if (reasoningDelta.length > 0) {\n                    if (activeReasoningId == null) {\n                      // end any active text before starting reasoning\n                      if (activeText) {\n                        controller.enqueue({ type: 'text-end', id: '0' });\n                        activeText = false;\n                      }\n\n                      activeReasoningId = generateId();\n                      controller.enqueue({\n                        type: 'reasoning-start',\n                        id: activeReasoningId,\n                      });\n                    }\n                    controller.enqueue({\n                      type: 'reasoning-delta',\n                      id: activeReasoningId,\n                      delta: reasoningDelta,\n                    });\n                  }\n                }\n              }\n            }\n\n            if (textContent != null && textContent.length > 0) {\n              if (!activeText) {\n                // if we were in reasoning mode, end it before starting text\n                if (activeReasoningId != null) {\n                  controller.enqueue({\n                    type: 'reasoning-end',\n                    id: activeReasoningId,\n                  });\n                  activeReasoningId = null;\n                }\n                controller.enqueue({ type: 'text-start', id: '0' });\n                activeText = true;\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: '0',\n                delta: textContent,\n              });\n            }\n\n            if (delta?.tool_calls != null) {\n              for (const toolCall of delta.tool_calls) {\n                const toolCallId = toolCall.id;\n                const toolName = toolCall.function.name;\n                const input = toolCall.function.arguments;\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: toolCallId,\n                  toolName,\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCallId,\n                  delta: input,\n                });\n\n                controller.enqueue({\n                  type: 'tool-input-end',\n                  id: toolCallId,\n                });\n\n                controller.enqueue({\n                  type: 'tool-call',\n                  toolCallId,\n                  toolName,\n                  input,\n                });\n              }\n            }\n\n            if (choice.finish_reason != null) {\n              finishReason = {\n                unified: mapMistralFinishReason(choice.finish_reason),\n                raw: choice.finish_reason,\n              };\n            }\n          },\n\n          flush(controller) {\n            if (activeReasoningId != null) {\n              controller.enqueue({\n                type: 'reasoning-end',\n                id: activeReasoningId,\n              });\n            }\n            if (activeText) {\n              controller.enqueue({ type: 'text-end', id: '0' });\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: convertMistralUsage(usage),\n            });\n          },\n        }),\n      ),\n      request: { body },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n\nfunction extractReasoningContent(\n  thinking: Array<{ type: string; text: string }>,\n) {\n  return thinking\n    .filter(chunk => chunk.type === 'text')\n    .map(chunk => chunk.text)\n    .join('');\n}\n\nfunction extractTextContent(content: z.infer<typeof mistralContentSchema>) {\n  if (typeof content === 'string') {\n    return content;\n  }\n\n  if (content == null) {\n    return undefined;\n  }\n\n  const textContent: string[] = [];\n\n  for (const chunk of content) {\n    const { type } = chunk;\n\n    switch (type) {\n      case 'text':\n        textContent.push(chunk.text);\n        break;\n      case 'thinking':\n      case 'image_url':\n      case 'reference':\n        // thinking, image content, and reference content are currently ignored\n        break;\n      default: {\n        const _exhaustiveCheck: never = type;\n        throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return textContent.length ? textContent.join('') : undefined;\n}\n\nconst mistralContentSchema = z\n  .union([\n    z.string(),\n    z.array(\n      z.discriminatedUnion('type', [\n        z.object({\n          type: z.literal('text'),\n          text: z.string(),\n        }),\n        z.object({\n          type: z.literal('image_url'),\n          image_url: z.union([\n            z.string(),\n            z.object({\n              url: z.string(),\n              detail: z.string().nullable(),\n            }),\n          ]),\n        }),\n        z.object({\n          type: z.literal('reference'),\n          reference_ids: z.array(z.union([z.string(), z.number()])),\n        }),\n        z.object({\n          type: z.literal('thinking'),\n          thinking: z.array(\n            z.object({\n              type: z.literal('text'),\n              text: z.string(),\n            }),\n          ),\n        }),\n      ]),\n    ),\n  ])\n  .nullish();\n\nconst mistralUsageSchema = z.object({\n  prompt_tokens: z.number(),\n  completion_tokens: z.number(),\n  total_tokens: z.number(),\n  num_cached_tokens: z.number().nullish(),\n  prompt_tokens_details: z\n    .object({ cached_tokens: z.number().nullish() })\n    .nullish(),\n  prompt_token_details: z\n    .object({ cached_tokens: z.number().nullish() })\n    .nullish(),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst mistralChatResponseSchema = z.object({\n  id: z.string().nullish(),\n  created: z.number().nullish(),\n  model: z.string().nullish(),\n  choices: z.array(\n    z.object({\n      message: z.object({\n        role: z.literal('assistant'),\n        content: mistralContentSchema,\n        tool_calls: z\n          .array(\n            z.object({\n              id: z.string(),\n              function: z.object({ name: z.string(), arguments: z.string() }),\n            }),\n          )\n          .nullish(),\n      }),\n      index: z.number(),\n      finish_reason: z.string().nullish(),\n    }),\n  ),\n  object: z.literal('chat.completion'),\n  usage: mistralUsageSchema,\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst mistralChatChunkSchema = z.object({\n  id: z.string().nullish(),\n  created: z.number().nullish(),\n  model: z.string().nullish(),\n  choices: z.array(\n    z.object({\n      delta: z.object({\n        role: z.enum(['assistant']).optional(),\n        content: mistralContentSchema,\n        tool_calls: z\n          .array(\n            z.object({\n              id: z.string(),\n              function: z.object({ name: z.string(), arguments: z.string() }),\n            }),\n          )\n          .nullish(),\n      }),\n      finish_reason: z.string().nullish(),\n      index: z.number(),\n    }),\n  ),\n  usage: mistralUsageSchema.nullish(),\n});\n","import {\n  TooManyEmbeddingValuesForCallError,\n  type EmbeddingModelV3,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  postJsonToApi,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { MistralEmbeddingModelId } from './mistral-embedding-options';\nimport { mistralFailedResponseHandler } from './mistral-error';\n\ntype MistralEmbeddingConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n};\n\nexport class MistralEmbeddingModel implements EmbeddingModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly modelId: MistralEmbeddingModelId;\n  readonly maxEmbeddingsPerCall = 32;\n  readonly supportsParallelCalls = false;\n\n  private readonly config: MistralEmbeddingConfig;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    modelId: MistralEmbeddingModelId,\n    config: MistralEmbeddingConfig,\n  ) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  async doEmbed({\n    values,\n    abortSignal,\n    headers,\n  }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>\n  > {\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values,\n      });\n    }\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/embeddings`,\n      headers: combineHeaders(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        input: values,\n        encoding_format: 'float',\n      },\n      failedResponseHandler: mistralFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        MistralTextEmbeddingResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      warnings: [],\n      embeddings: response.data.map(item => item.embedding),\n      usage: response.usage\n        ? { tokens: response.usage.prompt_tokens }\n        : undefined,\n      response: { headers: responseHeaders, body: rawValue },\n    };\n  }\n}\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst MistralTextEmbeddingResponseSchema = z.object({\n  data: z.array(z.object({ embedding: z.array(z.number()) })),\n  usage: z.object({ prompt_tokens: z.number() }).nullish(),\n});\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n","import {\n  NoSuchModelError,\n  type EmbeddingModelV3,\n  type LanguageModelV3,\n  type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { MistralChatLanguageModel } from './mistral-chat-language-model';\nimport type { MistralChatModelId } from './mistral-chat-options';\nimport { MistralEmbeddingModel } from './mistral-embedding-model';\nimport type { MistralEmbeddingModelId } from './mistral-embedding-options';\nimport { VERSION } from './version';\n\nexport interface MistralProvider extends ProviderV3 {\n  (modelId: MistralChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text generation.\n   */\n  languageModel(modelId: MistralChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text generation.\n   */\n  chat(modelId: MistralChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text embeddings.\n   */\n  embedding(modelId: MistralEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for text embeddings.\n   */\n  embeddingModel: (modelId: MistralEmbeddingModelId) => EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embedding` instead.\n   */\n  textEmbedding(modelId: MistralEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: MistralEmbeddingModelId): EmbeddingModelV3;\n}\n\nexport interface MistralProviderSettings {\n  /**\n   * Use a different URL prefix for API calls, e.g. to use proxy servers.\n   * The default prefix is `https://api.mistral.ai/v1`.\n   */\n  baseURL?: string;\n\n  /**\n   * API key that is being send using the `Authorization` header.\n   * It defaults to the `MISTRAL_API_KEY` environment variable.\n   */\n  apiKey?: string;\n\n  /**\n   * Custom headers to include in the requests.\n   */\n  headers?: Record<string, string>;\n\n  /**\n   * Custom fetch implementation. You can use it as a middleware to intercept requests,\n   * or to provide a custom fetch implementation for e.g. testing.\n   */\n  fetch?: FetchFunction;\n\n  generateId?: () => string;\n}\n\n/**\n * Create a Mistral AI provider instance.\n */\nexport function createMistral(\n  options: MistralProviderSettings = {},\n): MistralProvider {\n  const baseURL =\n    withoutTrailingSlash(options.baseURL) ?? 'https://api.mistral.ai/v1';\n\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        Authorization: `Bearer ${loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'MISTRAL_API_KEY',\n          description: 'Mistral',\n        })}`,\n        ...options.headers,\n      },\n      `ai-sdk/mistral/${VERSION}`,\n    );\n\n  const createChatModel = (modelId: MistralChatModelId) =>\n    new MistralChatLanguageModel(modelId, {\n      provider: 'mistral.chat',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      generateId: options.generateId,\n    });\n\n  const createEmbeddingModel = (modelId: MistralEmbeddingModelId) =>\n    new MistralEmbeddingModel(modelId, {\n      provider: 'mistral.embedding',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const provider = function (modelId: MistralChatModelId) {\n    if (new.target) {\n      throw new Error(\n        'The Mistral model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createChatModel(modelId);\n  };\n\n  provider.specificationVersion = 'v3' as const;\n  provider.languageModel = createChatModel;\n  provider.chat = createChatModel;\n  provider.embedding = createEmbeddingModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n\n  provider.imageModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n  };\n\n  return provider;\n}\n\n/**\n * Default Mistral provider instance.\n */\nexport const mistral = createMistral();\n"]}