{"version":3,"sources":["../../node_modules/@ai-sdk/cohere/src/cohere-chat-options.ts","../../node_modules/@ai-sdk/cohere/src/cohere-error.ts","../../node_modules/@ai-sdk/cohere/src/cohere-prepare-tools.ts","../../node_modules/@ai-sdk/cohere/src/convert-cohere-usage.ts","../../node_modules/@ai-sdk/cohere/src/convert-to-cohere-chat-prompt.ts","../../node_modules/@ai-sdk/cohere/src/map-cohere-finish-reason.ts","../../node_modules/@ai-sdk/cohere/src/cohere-chat-language-model.ts","../../node_modules/@ai-sdk/cohere/src/cohere-embedding-options.ts","../../node_modules/@ai-sdk/cohere/src/cohere-embedding-model.ts","../../node_modules/@ai-sdk/cohere/src/reranking/cohere-reranking-api.ts","../../node_modules/@ai-sdk/cohere/src/reranking/cohere-reranking-options.ts","../../node_modules/@ai-sdk/cohere/src/reranking/cohere-reranking-model.ts","../../node_modules/@ai-sdk/cohere/src/version.ts","../../node_modules/@ai-sdk/cohere/src/cohere-provider.ts"],"names":["z","createJsonErrorResponseHandler","UnsupportedFunctionalityError","parseProviderOptions","_a","convertToBase64","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","TooManyEmbeddingValuesForCallError","lazySchema","zodSchema","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","generateId","NoSuchModelError"],"mappings":"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","file":"dist-OXLIPPH5.cjs","sourcesContent":["import { z } from 'zod/v4';\n\n// https://docs.cohere.com/docs/models\nexport type CohereChatModelId =\n  | 'command-a-03-2025'\n  | 'command-a-reasoning-08-2025'\n  | 'command-a-vision-07-2025'\n  | 'command-r7b-12-2024'\n  | 'command-r-plus-04-2024'\n  | 'command-r-plus'\n  | 'command-r-08-2024'\n  | 'command-r-03-2024'\n  | 'command-r'\n  | 'command'\n  | 'command-nightly'\n  | 'command-light'\n  | 'command-light-nightly'\n  | (string & {});\n\nexport const cohereLanguageModelOptions = z.object({\n  /**\n   * Configuration for reasoning features (optional)\n   *\n   * Can be set to an object with the two properties `type` and `tokenBudget`. `type` can be set to `'enabled'` or `'disabled'` (defaults to `'enabled'`).\n   * `tokenBudget` is the maximum number of tokens the model can use for thinking, which must be set to a positive integer. The model will stop thinking if it reaches the thinking token budget and will proceed with the response\n   *\n   * @see https://docs.cohere.com/reference/chat#request.body.thinking\n   */\n  thinking: z\n    .object({\n      type: z.enum(['enabled', 'disabled']).optional(),\n      tokenBudget: z.number().optional(),\n    })\n    .optional(),\n});\n\nexport type CohereLanguageModelOptions = z.infer<\n  typeof cohereLanguageModelOptions\n>;\n\nexport const cohereImagePartProviderOptions = z.object({\n  /**\n   * Image fidelity level passed through as `image_url.detail` on the Cohere chat API.\n   *\n   * @see https://docs.cohere.com/docs/image-inputs\n   */\n  detail: z.enum(['auto', 'low', 'high']).optional(),\n});\n\nexport type CohereImagePartProviderOptions = z.infer<\n  typeof cohereImagePartProviderOptions\n>;\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst cohereErrorDataSchema = z.object({\n  message: z.string(),\n});\n\nexport type CohereErrorData = z.infer<typeof cohereErrorDataSchema>;\n\nexport const cohereFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: cohereErrorDataSchema,\n  errorToMessage: data => data.message,\n});\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3CallOptions,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport type { CohereToolChoice } from './cohere-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 | undefined;\n          description: string | undefined;\n          parameters: unknown;\n        };\n      }>\n    | undefined;\n  toolChoice: CohereToolChoice;\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 cohereTools: Array<{\n    type: 'function';\n    function: {\n      name: string;\n      description: string | undefined;\n      parameters: unknown;\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      cohereTools.push({\n        type: 'function',\n        function: {\n          name: tool.name,\n          description: tool.description,\n          parameters: tool.inputSchema,\n        },\n      });\n    }\n  }\n\n  if (toolChoice == null) {\n    return { tools: cohereTools, toolChoice: undefined, toolWarnings };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n      return { tools: cohereTools, toolChoice: undefined, toolWarnings };\n\n    case 'none':\n      return { tools: cohereTools, toolChoice: 'NONE', toolWarnings };\n\n    case 'required':\n      return { tools: cohereTools, toolChoice: 'REQUIRED', toolWarnings };\n\n    case 'tool':\n      return {\n        tools: cohereTools.filter(\n          tool => tool.function.name === toolChoice.toolName,\n        ),\n        toolChoice: 'REQUIRED',\n        toolWarnings,\n      };\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 { LanguageModelV3Usage } from '@ai-sdk/provider';\n\nexport type CohereUsageTokens = {\n  input_tokens: number;\n  output_tokens: number;\n};\n\nexport function convertCohereUsage(\n  tokens: CohereUsageTokens | undefined | null,\n): LanguageModelV3Usage {\n  if (tokens == 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 inputTokens = tokens.input_tokens;\n  const outputTokens = tokens.output_tokens;\n\n  return {\n    inputTokens: {\n      total: inputTokens,\n      noCache: inputTokens,\n      cacheRead: undefined,\n      cacheWrite: undefined,\n    },\n    outputTokens: {\n      total: outputTokens,\n      text: outputTokens,\n      reasoning: undefined,\n    },\n    raw: tokens,\n  };\n}\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3FilePart,\n  type LanguageModelV3Prompt,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport { convertToBase64, parseProviderOptions } from '@ai-sdk/provider-utils';\nimport { cohereImagePartProviderOptions } from './cohere-chat-options';\nimport type {\n  CohereAssistantMessage,\n  CohereChatPrompt,\n  CohereUserMessageContent,\n} from './cohere-chat-prompt';\n\nexport async function convertToCohereChatPrompt(\n  prompt: LanguageModelV3Prompt,\n): Promise<{\n  messages: CohereChatPrompt;\n  documents: Array<{\n    data: { text: string; title?: string };\n  }>;\n  warnings: SharedV3Warning[];\n}> {\n  const messages: CohereChatPrompt = [];\n  const documents: Array<{ data: { text: string; title?: string } }> = [];\n  const warnings: SharedV3Warning[] = [];\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        messages.push({ role: 'system', content });\n        break;\n      }\n\n      case 'user': {\n        const userContentParts: Array<CohereUserMessageContent> = [];\n        let hasImage = false;\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              if (part.text.length > 0) {\n                userContentParts.push({ type: 'text', text: part.text });\n              }\n              break;\n            }\n            case 'file': {\n              if (isImageMediaType(part.mediaType)) {\n                hasImage = true;\n                const url = buildImageUrl({ part });\n                const cohereOptions =\n                  (await parseProviderOptions({\n                    provider: 'cohere',\n                    providerOptions: part.providerOptions,\n                    schema: cohereImagePartProviderOptions,\n                  })) ?? {};\n\n                userContentParts.push({\n                  type: 'image_url',\n                  image_url: {\n                    url,\n                    ...(cohereOptions.detail\n                      ? { detail: cohereOptions.detail }\n                      : {}),\n                  },\n                });\n                break;\n              }\n\n              let textContent: string;\n\n              if (typeof part.data === 'string') {\n                textContent = part.data;\n              } else if (part.data instanceof Uint8Array) {\n                if (\n                  !(\n                    part.mediaType?.startsWith('text/') ||\n                    part.mediaType === 'application/json'\n                  )\n                ) {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: `document media type: ${part.mediaType}`,\n                    message: `Media type '${part.mediaType}' is not supported. Supported media types are: text/* and application/json.`,\n                  });\n                }\n                textContent = new TextDecoder().decode(part.data);\n              } else {\n                throw new UnsupportedFunctionalityError({\n                  functionality: 'File URL data',\n                  message:\n                    'URLs should be downloaded by the AI SDK and not reach this point. This indicates a configuration issue.',\n                });\n              }\n\n              documents.push({\n                data: {\n                  text: textContent,\n                  title: part.filename,\n                },\n              });\n              break;\n            }\n          }\n        }\n\n        if (hasImage) {\n          messages.push({ role: 'user', content: userContentParts });\n        } else {\n          messages.push({\n            role: 'user',\n            content: userContentParts\n              .map(p => (p.type === 'text' ? p.text : ''))\n              .join(''),\n          });\n        }\n        break;\n      }\n\n      case 'assistant': {\n        let text = '';\n        const toolCalls: CohereAssistantMessage['tool_calls'] = [];\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' as const,\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input),\n                },\n              });\n              break;\n            }\n          }\n        }\n\n        messages.push({\n          role: 'assistant',\n          content: toolCalls.length > 0 ? undefined : text,\n          tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n          tool_plan: undefined,\n        });\n\n        break;\n      }\n      case 'tool': {\n        messages.push(\n          ...content\n            .filter(toolResult => toolResult.type !== 'tool-approval-response')\n            .map(toolResult => {\n              const output = toolResult.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              return {\n                role: 'tool' as const,\n                content: contentValue,\n                tool_call_id: toolResult.toolCallId,\n              };\n            }),\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, documents, warnings };\n}\n\nfunction isImageMediaType(mediaType: string | undefined): boolean {\n  return mediaType === 'image' || mediaType?.startsWith('image/') === true;\n}\n\nfunction buildImageUrl({ part }: { part: LanguageModelV3FilePart }): string {\n  if (part.data instanceof URL) {\n    return part.data.toString();\n  }\n\n  const mediaType =\n    part.mediaType === 'image' || part.mediaType === 'image/*'\n      ? 'image/jpeg'\n      : part.mediaType;\n\n  return `data:${mediaType};base64,${convertToBase64(part.data)}`;\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\n\nexport function mapCohereFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'COMPLETE':\n    case 'STOP_SEQUENCE':\n      return 'stop';\n\n    case 'MAX_TOKENS':\n      return 'length';\n\n    case 'ERROR':\n      return 'error';\n\n    case 'TOOL_CALL':\n      return 'tool-calls';\n\n    default:\n      return 'other';\n  }\n}\n","import type {\n  LanguageModelV3,\n  LanguageModelV3CallOptions,\n  LanguageModelV3Content,\n  LanguageModelV3FinishReason,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3StreamPart,\n  LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n  type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n  cohereLanguageModelOptions,\n  type CohereChatModelId,\n} from './cohere-chat-options';\nimport { cohereFailedResponseHandler } from './cohere-error';\nimport { prepareTools } from './cohere-prepare-tools';\nimport {\n  convertCohereUsage,\n  type CohereUsageTokens,\n} from './convert-cohere-usage';\nimport { convertToCohereChatPrompt } from './convert-to-cohere-chat-prompt';\nimport { mapCohereFinishReason } from './map-cohere-finish-reason';\n\ntype CohereChatConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n  generateId: () => string;\n};\n\nexport class CohereChatLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n\n  readonly modelId: CohereChatModelId;\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'image/*': [/^https?:\\/\\/.*$/],\n  };\n\n  private readonly config: CohereChatConfig;\n\n  constructor(modelId: CohereChatModelId, config: CohereChatConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\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    tools,\n    toolChoice,\n    providerOptions,\n  }: LanguageModelV3CallOptions) {\n    // Parse provider options\n    const cohereOptions =\n      (await parseProviderOptions({\n        provider: 'cohere',\n        providerOptions,\n        schema: cohereLanguageModelOptions,\n      })) ?? {};\n\n    const {\n      messages: chatPrompt,\n      documents: cohereDocuments,\n      warnings: promptWarnings,\n    } = await convertToCohereChatPrompt(prompt);\n\n    const {\n      tools: cohereTools,\n      toolChoice: cohereToolChoice,\n      toolWarnings,\n    } = prepareTools({ tools, toolChoice });\n\n    return {\n      args: {\n        // model id:\n        model: this.modelId,\n\n        // standardized settings:\n        frequency_penalty: frequencyPenalty,\n        presence_penalty: presencePenalty,\n        max_tokens: maxOutputTokens,\n        temperature,\n        p: topP,\n        k: topK,\n        seed,\n        stop_sequences: stopSequences,\n\n        // response format:\n        response_format:\n          responseFormat?.type === 'json'\n            ? { type: 'json_object', json_schema: responseFormat.schema }\n            : undefined,\n\n        // messages:\n        messages: chatPrompt,\n\n        // tools:\n        tools: cohereTools,\n        tool_choice: cohereToolChoice,\n\n        // documents for RAG:\n        ...(cohereDocuments.length > 0 && { documents: cohereDocuments }),\n\n        // reasoning\n        ...(cohereOptions.thinking && {\n          thinking: {\n            type: cohereOptions.thinking.type ?? 'enabled',\n            token_budget: cohereOptions.thinking.tokenBudget,\n          },\n        }),\n      },\n      warnings: [...toolWarnings, ...promptWarnings],\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const { args, 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`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: cohereFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        cohereChatResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const content: Array<LanguageModelV3Content> = [];\n\n    for (const item of response.message.content ?? []) {\n      if (item.type === 'text' && item.text.length > 0) {\n        content.push({ type: 'text', text: item.text });\n        continue;\n      }\n\n      if (item.type === 'thinking' && item.thinking.length > 0) {\n        content.push({ type: 'reasoning', text: item.thinking });\n        continue;\n      }\n    }\n\n    // citations:\n    for (const citation of response.message.citations ?? []) {\n      content.push({\n        type: 'source',\n        sourceType: 'document',\n        id: this.config.generateId(),\n        mediaType: 'text/plain',\n        title: citation.sources[0]?.document?.title || 'Document',\n        providerMetadata: {\n          cohere: {\n            start: citation.start,\n            end: citation.end,\n            text: citation.text,\n            sources: citation.sources,\n            ...(citation.type && { citationType: citation.type }),\n          },\n        },\n      });\n    }\n\n    // tool calls:\n    for (const toolCall of response.message.tool_calls ?? []) {\n      content.push({\n        type: 'tool-call' as const,\n        toolCallId: toolCall.id,\n        toolName: toolCall.function.name,\n        // Cohere sometimes returns `null` for tool call arguments for tools\n        // defined as having no arguments.\n        input: toolCall.function.arguments.replace(/^null$/, '{}'),\n      });\n    }\n\n    return {\n      content,\n      finishReason: {\n        unified: mapCohereFinishReason(response.finish_reason),\n        raw: response.finish_reason ?? undefined,\n      },\n      usage: convertCohereUsage(response.usage.tokens),\n      request: { body: args },\n      response: {\n        // TODO timestamp, model id\n        id: response.generation_id ?? undefined,\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\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: `${this.config.baseURL}/chat`,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: { ...args, stream: true },\n      failedResponseHandler: cohereFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        cohereChatChunkSchema,\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: CohereUsageTokens | undefined = undefined;\n\n    let pendingToolCall: {\n      id: string;\n      name: string;\n      arguments: string;\n      hasFinished: boolean;\n    } | null = null;\n\n    let isActiveReasoning = false;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof cohereChatChunkSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n          },\n\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = { unified: 'error', raw: undefined };\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n            const type = value.type;\n\n            switch (type) {\n              case 'content-start': {\n                if (value.delta.message.content.type === 'thinking') {\n                  controller.enqueue({\n                    type: 'reasoning-start',\n                    id: String(value.index),\n                  });\n                  isActiveReasoning = true;\n                  return;\n                }\n\n                controller.enqueue({\n                  type: 'text-start',\n                  id: String(value.index),\n                });\n                return;\n              }\n\n              case 'content-delta': {\n                if ('thinking' in value.delta.message.content) {\n                  controller.enqueue({\n                    type: 'reasoning-delta',\n                    id: String(value.index),\n                    delta: value.delta.message.content.thinking,\n                  });\n                  return;\n                }\n\n                controller.enqueue({\n                  type: 'text-delta',\n                  id: String(value.index),\n                  delta: value.delta.message.content.text,\n                });\n                return;\n              }\n\n              case 'content-end': {\n                if (isActiveReasoning) {\n                  controller.enqueue({\n                    type: 'reasoning-end',\n                    id: String(value.index),\n                  });\n                  isActiveReasoning = false;\n                  return;\n                }\n\n                controller.enqueue({\n                  type: 'text-end',\n                  id: String(value.index),\n                });\n\n                return;\n              }\n\n              case 'tool-call-start': {\n                const toolId = value.delta.message.tool_calls.id;\n                const toolName = value.delta.message.tool_calls.function.name;\n                const initialArgs =\n                  value.delta.message.tool_calls.function.arguments;\n\n                pendingToolCall = {\n                  id: toolId,\n                  name: toolName,\n                  arguments: initialArgs,\n                  hasFinished: false,\n                };\n\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: toolId,\n                  toolName,\n                });\n\n                if (initialArgs.length > 0) {\n                  controller.enqueue({\n                    type: 'tool-input-delta',\n                    id: toolId,\n                    delta: initialArgs,\n                  });\n                }\n                return;\n              }\n\n              case 'tool-call-delta': {\n                if (pendingToolCall && !pendingToolCall.hasFinished) {\n                  const argsDelta =\n                    value.delta.message.tool_calls.function.arguments;\n                  pendingToolCall.arguments += argsDelta;\n\n                  controller.enqueue({\n                    type: 'tool-input-delta',\n                    id: pendingToolCall.id,\n                    delta: argsDelta,\n                  });\n                }\n                return;\n              }\n\n              case 'tool-call-end': {\n                if (pendingToolCall && !pendingToolCall.hasFinished) {\n                  controller.enqueue({\n                    type: 'tool-input-end',\n                    id: pendingToolCall.id,\n                  });\n\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: pendingToolCall.id,\n                    toolName: pendingToolCall.name,\n                    input: JSON.stringify(\n                      JSON.parse(pendingToolCall.arguments?.trim() || '{}'),\n                    ),\n                  });\n\n                  pendingToolCall.hasFinished = true;\n                  pendingToolCall = null;\n                }\n                return;\n              }\n\n              case 'message-start': {\n                controller.enqueue({\n                  type: 'response-metadata',\n                  id: value.id ?? undefined,\n                });\n                return;\n              }\n\n              case 'message-end': {\n                finishReason = {\n                  unified: mapCohereFinishReason(value.delta.finish_reason),\n                  raw: value.delta.finish_reason,\n                };\n                usage = value.delta.usage.tokens;\n                return;\n              }\n\n              default: {\n                return;\n              }\n            }\n          },\n\n          flush(controller) {\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: convertCohereUsage(usage),\n            });\n          },\n        }),\n      ),\n      request: { body: { ...args, stream: true } },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n\nconst cohereChatResponseSchema = z.object({\n  generation_id: z.string().nullish(),\n  message: z.object({\n    role: z.string(),\n    content: z\n      .array(\n        z.union([\n          z.object({\n            type: z.literal('text'),\n            text: z.string(),\n          }),\n          z.object({\n            type: z.literal('thinking'),\n            thinking: z.string(),\n          }),\n        ]),\n      )\n      .nullish(),\n    tool_plan: z.string().nullish(),\n    tool_calls: z\n      .array(\n        z.object({\n          id: z.string(),\n          type: z.literal('function'),\n          function: z.object({\n            name: z.string(),\n            arguments: z.string(),\n          }),\n        }),\n      )\n      .nullish(),\n    citations: z\n      .array(\n        z.object({\n          start: z.number(),\n          end: z.number(),\n          text: z.string(),\n          sources: z.array(\n            z.object({\n              type: z.string().optional(),\n              id: z.string().optional(),\n              document: z.object({\n                id: z.string().optional(),\n                text: z.string(),\n                title: z.string(),\n              }),\n            }),\n          ),\n          type: z.string().optional(),\n        }),\n      )\n      .nullish(),\n  }),\n  finish_reason: z.string(),\n  usage: z.object({\n    billed_units: z.object({\n      input_tokens: z.number(),\n      output_tokens: z.number(),\n    }),\n    tokens: z.object({\n      input_tokens: z.number(),\n      output_tokens: z.number(),\n    }),\n  }),\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 cohereChatChunkSchema = z.discriminatedUnion('type', [\n  z.object({\n    type: z.literal('citation-start'),\n  }),\n  z.object({\n    type: z.literal('citation-end'),\n  }),\n  z.object({\n    type: z.literal('content-start'),\n    index: z.number(),\n    delta: z.object({\n      message: z.object({\n        content: z.union([\n          z.object({\n            type: z.literal('text'),\n            text: z.string(),\n          }),\n          z.object({\n            type: z.literal('thinking'),\n            thinking: z.string(),\n          }),\n        ]),\n      }),\n    }),\n  }),\n  z.object({\n    type: z.literal('content-delta'),\n    index: z.number(),\n    delta: z.object({\n      message: z.object({\n        content: z.union([\n          z.object({\n            text: z.string(),\n          }),\n          z.object({\n            thinking: z.string(),\n          }),\n        ]),\n      }),\n    }),\n  }),\n  z.object({\n    type: z.literal('content-end'),\n    index: z.number(),\n  }),\n  z.object({\n    type: z.literal('message-start'),\n    id: z.string().nullish(),\n  }),\n  z.object({\n    type: z.literal('message-end'),\n    delta: z.object({\n      finish_reason: z.string(),\n      usage: z.object({\n        tokens: z.object({\n          input_tokens: z.number(),\n          output_tokens: z.number(),\n        }),\n      }),\n    }),\n  }),\n  // https://docs.cohere.com/v2/docs/streaming#tool-use-stream-events-for-tool-calling\n  z.object({\n    type: z.literal('tool-plan-delta'),\n    delta: z.object({\n      message: z.object({\n        tool_plan: z.string(),\n      }),\n    }),\n  }),\n  z.object({\n    type: z.literal('tool-call-start'),\n    delta: z.object({\n      message: z.object({\n        tool_calls: z.object({\n          id: z.string(),\n          type: z.literal('function'),\n          function: z.object({\n            name: z.string(),\n            arguments: z.string(),\n          }),\n        }),\n      }),\n    }),\n  }),\n  // A single tool call's `arguments` stream in chunks and must be accumulated\n  // in a string and so the full tool object info can only be parsed once we see\n  // `tool-call-end`.\n  z.object({\n    type: z.literal('tool-call-delta'),\n    delta: z.object({\n      message: z.object({\n        tool_calls: z.object({\n          function: z.object({\n            arguments: z.string(),\n          }),\n        }),\n      }),\n    }),\n  }),\n  z.object({\n    type: z.literal('tool-call-end'),\n  }),\n]);\n","import { z } from 'zod/v4';\n\nexport type CohereEmbeddingModelId =\n  | 'embed-english-v3.0'\n  | 'embed-multilingual-v3.0'\n  | 'embed-english-light-v3.0'\n  | 'embed-multilingual-light-v3.0'\n  | 'embed-english-v2.0'\n  | 'embed-english-light-v2.0'\n  | 'embed-multilingual-v2.0'\n  | (string & {});\n\nexport const cohereEmbeddingModelOptions = z.object({\n  /**\n   * Specifies the type of input passed to the model. Default is `search_query`.\n   *\n   * - \"search_document\": Used for embeddings stored in a vector database for search use-cases.\n   * - \"search_query\": Used for embeddings of search queries run against a vector DB to find relevant documents.\n   * - \"classification\": Used for embeddings passed through a text classifier.\n   * - \"clustering\": Used for embeddings run through a clustering algorithm.\n   */\n  inputType: z\n    .enum(['search_document', 'search_query', 'classification', 'clustering'])\n    .optional(),\n\n  /**\n   * Specifies how the API will handle inputs longer than the maximum token length.\n   * Default is `END`.\n   *\n   * - \"NONE\": If selected, when the input exceeds the maximum input token length will return an error.\n   * - \"START\": Will discard the start of the input until the remaining input is exactly the maximum input token length for the model.\n   * - \"END\": Will discard the end of the input until the remaining input is exactly the maximum input token length for the model.\n   */\n  truncate: z.enum(['NONE', 'START', 'END']).optional(),\n\n  /**\n   * The number of dimensions of the output embedding.\n   * Only available for `embed-v4.0` and newer models.\n   *\n   * Possible values are `256`, `512`, `1024`, and `1536`.\n   * The default is `1536`.\n   */\n  outputDimension: z\n    .union([z.literal(256), z.literal(512), z.literal(1024), z.literal(1536)])\n    .optional(),\n});\n\nexport type CohereEmbeddingModelOptions = z.infer<\n  typeof cohereEmbeddingModelOptions\n>;\n","import {\n  TooManyEmbeddingValuesForCallError,\n  type EmbeddingModelV3,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n  cohereEmbeddingModelOptions,\n  type CohereEmbeddingModelId,\n} from './cohere-embedding-options';\nimport { cohereFailedResponseHandler } from './cohere-error';\n\ntype CohereEmbeddingConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n};\n\nexport class CohereEmbeddingModel implements EmbeddingModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly modelId: CohereEmbeddingModelId;\n\n  readonly maxEmbeddingsPerCall = 96;\n  readonly supportsParallelCalls = true;\n\n  private readonly config: CohereEmbeddingConfig;\n\n  constructor(modelId: CohereEmbeddingModelId, config: CohereEmbeddingConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions,\n  }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>\n  > {\n    const embeddingOptions = await parseProviderOptions({\n      provider: 'cohere',\n      providerOptions,\n      schema: cohereEmbeddingModelOptions,\n    });\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}/embed`,\n      headers: combineHeaders(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        // The AI SDK only supports 'float' embeddings. Note that the Cohere API\n        // supports other embedding types, but they are not currently supported by the AI SDK.\n        // https://docs.cohere.com/v2/reference/embed#request.body.embedding_types\n        embedding_types: ['float'],\n        texts: values,\n        input_type: embeddingOptions?.inputType ?? 'search_query',\n        truncate: embeddingOptions?.truncate,\n        output_dimension: embeddingOptions?.outputDimension,\n      },\n      failedResponseHandler: cohereFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        cohereTextEmbeddingResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      warnings: [],\n      embeddings: response.embeddings.float,\n      usage: { tokens: response.meta.billed_units.input_tokens },\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 cohereTextEmbeddingResponseSchema = z.object({\n  embeddings: z.object({\n    float: z.array(z.array(z.number())),\n  }),\n  meta: z.object({\n    billed_units: z.object({\n      input_tokens: z.number(),\n    }),\n  }),\n});\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.cohere.com/v2/reference/rerank\nexport type CohereRerankingInput = {\n  model: string;\n  query: string;\n  documents: string[];\n  top_n: number | undefined;\n  max_tokens_per_doc: number | undefined;\n  priority: number | undefined;\n};\n\nexport const cohereRerankingResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      id: z.string().nullish(),\n      results: z.array(\n        z.object({\n          index: z.number(),\n          relevance_score: z.number(),\n        }),\n      ),\n      meta: z.any(),\n    }),\n  ),\n);\n","import {\n  lazySchema,\n  zodSchema,\n  type FlexibleSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.cohere.com/docs/rerank\nexport type CohereRerankingModelId =\n  | 'rerank-v3.5'\n  | 'rerank-english-v3.0'\n  | 'rerank-multilingual-v3.0'\n  | (string & {});\n\nexport type CohereRerankingModelOptions = {\n  /**\n   * Long documents will be automatically truncated to the specified number of tokens.\n   *\n   * @default 4096\n   */\n  maxTokensPerDoc?: number;\n\n  /**\n   * The priority of the request.\n   *\n   * @default 0\n   */\n  priority?: number;\n};\n\nexport const cohereRerankingModelOptionsSchema: FlexibleSchema<CohereRerankingModelOptions> =\n  lazySchema(() =>\n    zodSchema(\n      z.object({\n        maxTokensPerDoc: z.number().optional(),\n        priority: z.number().optional(),\n      }),\n    ),\n  );\n","import type { RerankingModelV3, SharedV3Warning } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { cohereFailedResponseHandler } from '../cohere-error';\nimport {\n  cohereRerankingResponseSchema,\n  type CohereRerankingInput,\n} from './cohere-reranking-api';\nimport {\n  cohereRerankingModelOptionsSchema,\n  type CohereRerankingModelId,\n} from './cohere-reranking-options';\n\ntype CohereRerankingConfig = {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n};\n\nexport class CohereRerankingModel implements RerankingModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly modelId: CohereRerankingModelId;\n\n  private readonly config: CohereRerankingConfig;\n\n  constructor(modelId: CohereRerankingModelId, config: CohereRerankingConfig) {\n    this.modelId = modelId;\n    this.config = config;\n  }\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  // current implementation is based on v2 of the API: https://docs.cohere.com/v2/reference/rerank\n  async doRerank({\n    documents,\n    headers,\n    query,\n    topN,\n    abortSignal,\n    providerOptions,\n  }: Parameters<RerankingModelV3['doRerank']>[0]): Promise<\n    Awaited<ReturnType<RerankingModelV3['doRerank']>>\n  > {\n    const rerankingOptions = await parseProviderOptions({\n      provider: 'cohere',\n      providerOptions,\n      schema: cohereRerankingModelOptionsSchema,\n    });\n\n    const warnings: SharedV3Warning[] = [];\n\n    if (documents.type === 'object') {\n      warnings.push({\n        type: 'compatibility',\n        feature: 'object documents',\n        details: 'Object documents are converted to strings.',\n      });\n    }\n\n    const {\n      responseHeaders,\n      value: response,\n      rawValue,\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/rerank`,\n      headers: combineHeaders(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        query,\n        documents:\n          documents.type === 'text'\n            ? documents.values\n            : documents.values.map(value => JSON.stringify(value)),\n        top_n: topN,\n        max_tokens_per_doc: rerankingOptions?.maxTokensPerDoc,\n        priority: rerankingOptions?.priority,\n      } satisfies CohereRerankingInput,\n      failedResponseHandler: cohereFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        cohereRerankingResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      ranking: response.results.map(result => ({\n        index: result.index,\n        relevanceScore: result.relevance_score,\n      })),\n      warnings,\n      response: {\n        id: response.id ?? undefined,\n        headers: responseHeaders,\n        body: rawValue,\n      },\n    };\n  }\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 RerankingModelV3,\n  type ProviderV3,\n} from '@ai-sdk/provider';\n\nimport {\n  generateId,\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { CohereChatLanguageModel } from './cohere-chat-language-model';\nimport type { CohereChatModelId } from './cohere-chat-options';\nimport { CohereEmbeddingModel } from './cohere-embedding-model';\nimport type { CohereRerankingModelId } from './reranking/cohere-reranking-options';\nimport { CohereRerankingModel } from './reranking/cohere-reranking-model';\nimport type { CohereEmbeddingModelId } from './cohere-embedding-options';\nimport { VERSION } from './version';\n\nexport interface CohereProvider extends ProviderV3 {\n  (modelId: CohereChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text generation.\n   */\n  languageModel(modelId: CohereChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text embeddings.\n   */\n  embedding(modelId: CohereEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for text embeddings.\n   */\n  embeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embedding` instead.\n   */\n  textEmbedding(modelId: CohereEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for reranking.\n   */\n  reranking(modelId: CohereRerankingModelId): RerankingModelV3;\n\n  /**\n   * Creates a model for reranking.\n   */\n  rerankingModel(modelId: CohereRerankingModelId): RerankingModelV3;\n}\n\nexport interface CohereProviderSettings {\n  /**\n   * Use a different URL prefix for API calls, e.g. to use proxy servers.\n   * The default prefix is `https://api.cohere.com/v2`.\n   */\n  baseURL?: string;\n\n  /**\n   * API key that is being send using the `Authorization` header.\n   * It defaults to the `COHERE_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  /**\n   * Optional function to generate a unique ID for each request.\n   */\n  generateId?: () => string;\n}\n\n/**\n * Create a Cohere AI provider instance.\n */\nexport function createCohere(\n  options: CohereProviderSettings = {},\n): CohereProvider {\n  const baseURL =\n    withoutTrailingSlash(options.baseURL) ?? 'https://api.cohere.com/v2';\n\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        Authorization: `Bearer ${loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'COHERE_API_KEY',\n          description: 'Cohere',\n        })}`,\n        ...options.headers,\n      },\n      `ai-sdk/cohere/${VERSION}`,\n    );\n\n  const createChatModel = (modelId: CohereChatModelId) =>\n    new CohereChatLanguageModel(modelId, {\n      provider: 'cohere.chat',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      generateId: options.generateId ?? generateId,\n    });\n\n  const createEmbeddingModel = (modelId: CohereEmbeddingModelId) =>\n    new CohereEmbeddingModel(modelId, {\n      provider: 'cohere.textEmbedding',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const createRerankingModel = (modelId: CohereRerankingModelId) =>\n    new CohereRerankingModel(modelId, {\n      provider: 'cohere.reranking',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    });\n\n  const provider = function (modelId: CohereChatModelId) {\n    if (new.target) {\n      throw new Error(\n        'The Cohere 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.embedding = createEmbeddingModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.reranking = createRerankingModel;\n  provider.rerankingModel = createRerankingModel;\n\n  provider.imageModel = (modelId: string) => {\n    throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n  };\n\n  return provider;\n}\n\n/**\n * Default Cohere provider instance.\n */\nexport const cohere = createCohere();\n"]}