@ai-sdk/cohere 4.0.0-beta.31 → 4.0.0-beta.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @ai-sdk/cohere
2
2
 
3
+ ## 4.0.0-beta.32
4
+
5
+ ### Major Changes
6
+
7
+ - 04e9009: chore: make provider implementations code patterns more consistent, including renaming certain exported symbols
8
+
9
+ For all externally exported symbols that were renamed, the old names continue to work via deprecated aliases.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [08d2129]
14
+ - @ai-sdk/provider-utils@5.0.0-beta.30
15
+
3
16
  ## 4.0.0-beta.31
4
17
 
5
18
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { ProviderV4, LanguageModelV4, EmbeddingModelV4, RerankingModelV4 } from
3
3
  import { FetchFunction } from '@ai-sdk/provider-utils';
4
4
 
5
5
  type CohereChatModelId = 'command-a-03-2025' | 'command-a-reasoning-08-2025' | 'command-r7b-12-2024' | 'command-r-plus-04-2024' | 'command-r-plus' | 'command-r-08-2024' | 'command-r-03-2024' | 'command-r' | 'command' | 'command-nightly' | 'command-light' | 'command-light-nightly' | (string & {});
6
- declare const cohereLanguageModelOptions: z.ZodObject<{
6
+ declare const cohereLanguageModelChatOptions: z.ZodObject<{
7
7
  thinking: z.ZodOptional<z.ZodObject<{
8
8
  type: z.ZodOptional<z.ZodEnum<{
9
9
  enabled: "enabled";
@@ -12,7 +12,7 @@ declare const cohereLanguageModelOptions: z.ZodObject<{
12
12
  tokenBudget: z.ZodOptional<z.ZodNumber>;
13
13
  }, z.core.$strip>>;
14
14
  }, z.core.$strip>;
15
- type CohereLanguageModelOptions = z.infer<typeof cohereLanguageModelOptions>;
15
+ type CohereLanguageModelChatOptions = z.infer<typeof cohereLanguageModelChatOptions>;
16
16
 
17
17
  type CohereRerankingModelId = 'rerank-v3.5' | 'rerank-english-v3.0' | 'rerank-multilingual-v3.0' | (string & {});
18
18
  type CohereRerankingModelOptions = {
@@ -114,4 +114,4 @@ declare const cohere: CohereProvider;
114
114
 
115
115
  declare const VERSION: string;
116
116
 
117
- export { type CohereLanguageModelOptions as CohereChatModelOptions, type CohereEmbeddingModelOptions, type CohereLanguageModelOptions, type CohereProvider, type CohereProviderSettings, type CohereRerankingModelOptions, type CohereRerankingModelOptions as CohereRerankingOptions, VERSION, cohere, createCohere };
117
+ export { type CohereLanguageModelChatOptions as CohereChatModelOptions, type CohereEmbeddingModelOptions, type CohereLanguageModelChatOptions, type CohereLanguageModelChatOptions as CohereLanguageModelOptions, type CohereProvider, type CohereProviderSettings, type CohereRerankingModelOptions, type CohereRerankingModelOptions as CohereRerankingOptions, VERSION, cohere, createCohere };
package/dist/index.js CHANGED
@@ -24,9 +24,9 @@ import {
24
24
  } from "@ai-sdk/provider-utils";
25
25
  import { z as z3 } from "zod/v4";
26
26
 
27
- // src/cohere-chat-options.ts
27
+ // src/cohere-chat-language-model-options.ts
28
28
  import { z } from "zod/v4";
29
- var cohereLanguageModelOptions = z.object({
29
+ var cohereLanguageModelChatOptions = z.object({
30
30
  /**
31
31
  * Configuration for reasoning features (optional)
32
32
  *
@@ -333,7 +333,7 @@ var CohereChatLanguageModel = class _CohereChatLanguageModel {
333
333
  const cohereOptions = (_a = await parseProviderOptions({
334
334
  provider: "cohere",
335
335
  providerOptions,
336
- schema: cohereLanguageModelOptions
336
+ schema: cohereLanguageModelChatOptions
337
337
  })) != null ? _a : {};
338
338
  const {
339
339
  messages: chatPrompt,
@@ -837,7 +837,7 @@ import {
837
837
  } from "@ai-sdk/provider-utils";
838
838
  import { z as z5 } from "zod/v4";
839
839
 
840
- // src/cohere-embedding-options.ts
840
+ // src/cohere-embedding-model-options.ts
841
841
  import { z as z4 } from "zod/v4";
842
842
  var cohereEmbeddingModelOptions = z4.object({
843
843
  /**
@@ -979,7 +979,7 @@ var cohereRerankingResponseSchema = lazySchema(
979
979
  )
980
980
  );
981
981
 
982
- // src/reranking/cohere-reranking-options.ts
982
+ // src/reranking/cohere-reranking-model-options.ts
983
983
  import {
984
984
  lazySchema as lazySchema2,
985
985
  zodSchema as zodSchema2
@@ -1065,7 +1065,7 @@ var CohereRerankingModel = class {
1065
1065
  };
1066
1066
 
1067
1067
  // src/version.ts
1068
- var VERSION = true ? "4.0.0-beta.31" : "0.0.0-test";
1068
+ var VERSION = true ? "4.0.0-beta.32" : "0.0.0-test";
1069
1069
 
1070
1070
  // src/cohere-provider.ts
1071
1071
  function createCohere(options = {}) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cohere-provider.ts","../src/cohere-chat-language-model.ts","../src/cohere-chat-options.ts","../src/cohere-error.ts","../src/cohere-prepare-tools.ts","../src/convert-cohere-usage.ts","../src/convert-to-cohere-chat-prompt.ts","../src/map-cohere-finish-reason.ts","../src/cohere-embedding-model.ts","../src/cohere-embedding-options.ts","../src/reranking/cohere-reranking-model.ts","../src/reranking/cohere-reranking-api.ts","../src/reranking/cohere-reranking-options.ts","../src/version.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type EmbeddingModelV4,\n type LanguageModelV4,\n type RerankingModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\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 ProviderV4 {\n (modelId: CohereChatModelId): LanguageModelV4;\n\n /**\n * Creates a model for text generation.\n */\n languageModel(modelId: CohereChatModelId): LanguageModelV4;\n\n /**\n * Creates a model for text embeddings.\n */\n embedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for text embeddings.\n */\n embeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embedding` instead.\n */\n textEmbedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n reranking(modelId: CohereRerankingModelId): RerankingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n rerankingModel(modelId: CohereRerankingModelId): RerankingModelV4;\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 = 'v4' 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","import type {\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4Content,\n LanguageModelV4FinishReason,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamPart,\n LanguageModelV4StreamResult,\n SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n isCustomReasoning,\n mapReasoningToProviderBudget,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type InferSchema,\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 LanguageModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly modelId: CohereChatModelId;\n\n readonly supportedUrls = {\n // No URLs are supported.\n };\n\n private readonly config: CohereChatConfig;\n\n static [WORKFLOW_SERIALIZE](model: CohereChatLanguageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: CohereChatModelId;\n config: CohereChatConfig;\n }) {\n return new CohereChatLanguageModel(options.modelId, options.config);\n }\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 reasoning,\n tools,\n toolChoice,\n providerOptions,\n }: LanguageModelV4CallOptions) {\n const warnings: SharedV4Warning[] = [];\n\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 } = convertToCohereChatPrompt(prompt);\n\n const {\n tools: cohereTools,\n toolChoice: cohereToolChoice,\n toolWarnings,\n } = prepareTools({ tools, toolChoice });\n\n warnings.push(...toolWarnings, ...promptWarnings);\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 ...resolveCohereThinking({\n reasoning,\n cohereOptions,\n warnings,\n }),\n },\n warnings,\n };\n }\n\n async doGenerate(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4GenerateResult> {\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<LanguageModelV4Content> = [];\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: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4StreamResult> {\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: LanguageModelV4FinishReason = {\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 LanguageModelV4StreamPart\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\nfunction resolveCohereThinking({\n reasoning,\n cohereOptions,\n warnings,\n}: {\n reasoning: LanguageModelV4CallOptions['reasoning'];\n cohereOptions: InferSchema<typeof cohereLanguageModelOptions>;\n warnings: SharedV4Warning[];\n}): { thinking?: { type: string; token_budget?: number } } {\n if (cohereOptions.thinking) {\n return {\n thinking: {\n type: cohereOptions.thinking.type ?? 'enabled',\n token_budget: cohereOptions.thinking.tokenBudget,\n },\n };\n }\n\n if (!isCustomReasoning(reasoning)) {\n return {};\n }\n\n if (reasoning === 'none') {\n return { thinking: { type: 'disabled' } };\n }\n\n const tokenBudget = mapReasoningToProviderBudget({\n reasoning,\n maxOutputTokens: 32768,\n maxReasoningBudget: 32768,\n warnings,\n });\n\n if (tokenBudget == null) {\n return {};\n }\n\n return { thinking: { type: 'enabled', token_budget: tokenBudget } };\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\n// https://docs.cohere.com/docs/models\nexport type CohereChatModelId =\n | 'command-a-03-2025'\n | 'command-a-reasoning-08-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","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 LanguageModelV4CallOptions,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport type { CohereToolChoice } from './cohere-chat-prompt';\n\nexport function prepareTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV4CallOptions['tools'];\n toolChoice?: LanguageModelV4CallOptions['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: SharedV4Warning[];\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: SharedV4Warning[] = [];\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 { LanguageModelV4Usage } 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): LanguageModelV4Usage {\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 SharedV4Warning,\n type LanguageModelV4Prompt,\n} from '@ai-sdk/provider';\nimport type {\n CohereAssistantMessage,\n CohereChatPrompt,\n} from './cohere-chat-prompt';\n\nexport function convertToCohereChatPrompt(prompt: LanguageModelV4Prompt): {\n messages: CohereChatPrompt;\n documents: Array<{\n data: { text: string; title?: string };\n }>;\n warnings: SharedV4Warning[];\n} {\n const messages: CohereChatPrompt = [];\n const documents: Array<{ data: { text: string; title?: string } }> = [];\n const warnings: SharedV4Warning[] = [];\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 messages.push({\n role: 'user',\n content: content\n .map(part => {\n switch (part.type) {\n case 'text': {\n return part.text;\n }\n case 'file': {\n let textContent: string;\n\n switch (part.data.type) {\n case 'reference': {\n throw new UnsupportedFunctionalityError({\n functionality: 'file parts with provider references',\n });\n }\n case 'url': {\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 case 'text': {\n textContent = part.data.text;\n break;\n }\n case 'data': {\n textContent =\n typeof part.data.data === 'string'\n ? part.data.data\n : new TextDecoder().decode(part.data.data);\n break;\n }\n }\n\n documents.push({\n data: {\n text: textContent,\n title: part.filename,\n },\n });\n\n return '';\n }\n }\n })\n .join(''),\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 call 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","import type { LanguageModelV4FinishReason } from '@ai-sdk/provider';\n\nexport function mapCohereFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV4FinishReason['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 {\n TooManyEmbeddingValuesForCallError,\n type EmbeddingModelV4,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\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 EmbeddingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: CohereEmbeddingModelId;\n\n readonly maxEmbeddingsPerCall = 96;\n readonly supportsParallelCalls = true;\n\n private readonly config: CohereEmbeddingConfig;\n\n static [WORKFLOW_SERIALIZE](model: CohereEmbeddingModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: CohereEmbeddingModelId;\n config: CohereEmbeddingConfig;\n }) {\n return new CohereEmbeddingModel(options.modelId, options.config);\n }\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<EmbeddingModelV4['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV4['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 { 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 type { RerankingModelV4, SharedV4Warning } 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';\ntype CohereRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class CohereRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\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<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'cohere',\n providerOptions,\n schema: cohereRerankingModelOptionsSchema,\n });\n\n const warnings: SharedV4Warning[] = [];\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","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","// 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"],"mappings":"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","names":["z","z","UnsupportedFunctionalityError","_a","_b","z","combineHeaders","createJsonResponseHandler","parseProviderOptions","postJsonToApi","serializeModelOptions","WORKFLOW_SERIALIZE","WORKFLOW_DESERIALIZE","z","z","WORKFLOW_SERIALIZE","serializeModelOptions","WORKFLOW_DESERIALIZE","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","z","combineHeaders","createJsonResponseHandler","parseProviderOptions","postJsonToApi","z","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","_a"]}
1
+ {"version":3,"sources":["../src/cohere-provider.ts","../src/cohere-chat-language-model.ts","../src/cohere-chat-language-model-options.ts","../src/cohere-error.ts","../src/cohere-prepare-tools.ts","../src/convert-cohere-usage.ts","../src/convert-to-cohere-chat-prompt.ts","../src/map-cohere-finish-reason.ts","../src/cohere-embedding-model.ts","../src/cohere-embedding-model-options.ts","../src/reranking/cohere-reranking-model.ts","../src/reranking/cohere-reranking-api.ts","../src/reranking/cohere-reranking-model-options.ts","../src/version.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type EmbeddingModelV4,\n type LanguageModelV4,\n type RerankingModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\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-language-model-options';\nimport { CohereEmbeddingModel } from './cohere-embedding-model';\nimport type { CohereRerankingModelId } from './reranking/cohere-reranking-model-options';\nimport { CohereRerankingModel } from './reranking/cohere-reranking-model';\nimport type { CohereEmbeddingModelId } from './cohere-embedding-model-options';\nimport { VERSION } from './version';\n\nexport interface CohereProvider extends ProviderV4 {\n (modelId: CohereChatModelId): LanguageModelV4;\n\n /**\n * Creates a model for text generation.\n */\n languageModel(modelId: CohereChatModelId): LanguageModelV4;\n\n /**\n * Creates a model for text embeddings.\n */\n embedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for text embeddings.\n */\n embeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embedding` instead.\n */\n textEmbedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n reranking(modelId: CohereRerankingModelId): RerankingModelV4;\n\n /**\n * Creates a model for reranking.\n */\n rerankingModel(modelId: CohereRerankingModelId): RerankingModelV4;\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 = 'v4' 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","import type {\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4Content,\n LanguageModelV4FinishReason,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamPart,\n LanguageModelV4StreamResult,\n SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n isCustomReasoning,\n mapReasoningToProviderBudget,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type InferSchema,\n type FetchFunction,\n type ParseResult,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n cohereLanguageModelChatOptions,\n type CohereChatModelId,\n} from './cohere-chat-language-model-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 LanguageModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly modelId: CohereChatModelId;\n\n readonly supportedUrls = {\n // No URLs are supported.\n };\n\n private readonly config: CohereChatConfig;\n\n static [WORKFLOW_SERIALIZE](model: CohereChatLanguageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: CohereChatModelId;\n config: CohereChatConfig;\n }) {\n return new CohereChatLanguageModel(options.modelId, options.config);\n }\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 reasoning,\n tools,\n toolChoice,\n providerOptions,\n }: LanguageModelV4CallOptions) {\n const warnings: SharedV4Warning[] = [];\n\n const cohereOptions =\n (await parseProviderOptions({\n provider: 'cohere',\n providerOptions,\n schema: cohereLanguageModelChatOptions,\n })) ?? {};\n\n const {\n messages: chatPrompt,\n documents: cohereDocuments,\n warnings: promptWarnings,\n } = convertToCohereChatPrompt(prompt);\n\n const {\n tools: cohereTools,\n toolChoice: cohereToolChoice,\n toolWarnings,\n } = prepareTools({ tools, toolChoice });\n\n warnings.push(...toolWarnings, ...promptWarnings);\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 ...resolveCohereThinking({\n reasoning,\n cohereOptions,\n warnings,\n }),\n },\n warnings,\n };\n }\n\n async doGenerate(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4GenerateResult> {\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<LanguageModelV4Content> = [];\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: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4StreamResult> {\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: LanguageModelV4FinishReason = {\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 LanguageModelV4StreamPart\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\nfunction resolveCohereThinking({\n reasoning,\n cohereOptions,\n warnings,\n}: {\n reasoning: LanguageModelV4CallOptions['reasoning'];\n cohereOptions: InferSchema<typeof cohereLanguageModelChatOptions>;\n warnings: SharedV4Warning[];\n}): { thinking?: { type: string; token_budget?: number } } {\n if (cohereOptions.thinking) {\n return {\n thinking: {\n type: cohereOptions.thinking.type ?? 'enabled',\n token_budget: cohereOptions.thinking.tokenBudget,\n },\n };\n }\n\n if (!isCustomReasoning(reasoning)) {\n return {};\n }\n\n if (reasoning === 'none') {\n return { thinking: { type: 'disabled' } };\n }\n\n const tokenBudget = mapReasoningToProviderBudget({\n reasoning,\n maxOutputTokens: 32768,\n maxReasoningBudget: 32768,\n warnings,\n });\n\n if (tokenBudget == null) {\n return {};\n }\n\n return { thinking: { type: 'enabled', token_budget: tokenBudget } };\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\n// https://docs.cohere.com/docs/models\nexport type CohereChatModelId =\n | 'command-a-03-2025'\n | 'command-a-reasoning-08-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 cohereLanguageModelChatOptions = 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 CohereLanguageModelChatOptions = z.infer<\n typeof cohereLanguageModelChatOptions\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 LanguageModelV4CallOptions,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport type { CohereToolChoice } from './cohere-chat-prompt';\n\nexport function prepareTools({\n tools,\n toolChoice,\n}: {\n tools: LanguageModelV4CallOptions['tools'];\n toolChoice?: LanguageModelV4CallOptions['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: SharedV4Warning[];\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: SharedV4Warning[] = [];\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 { LanguageModelV4Usage } 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): LanguageModelV4Usage {\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 SharedV4Warning,\n type LanguageModelV4Prompt,\n} from '@ai-sdk/provider';\nimport type {\n CohereAssistantMessage,\n CohereChatPrompt,\n} from './cohere-chat-prompt';\n\nexport function convertToCohereChatPrompt(prompt: LanguageModelV4Prompt): {\n messages: CohereChatPrompt;\n documents: Array<{\n data: { text: string; title?: string };\n }>;\n warnings: SharedV4Warning[];\n} {\n const messages: CohereChatPrompt = [];\n const documents: Array<{ data: { text: string; title?: string } }> = [];\n const warnings: SharedV4Warning[] = [];\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 messages.push({\n role: 'user',\n content: content\n .map(part => {\n switch (part.type) {\n case 'text': {\n return part.text;\n }\n case 'file': {\n let textContent: string;\n\n switch (part.data.type) {\n case 'reference': {\n throw new UnsupportedFunctionalityError({\n functionality: 'file parts with provider references',\n });\n }\n case 'url': {\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 case 'text': {\n textContent = part.data.text;\n break;\n }\n case 'data': {\n textContent =\n typeof part.data.data === 'string'\n ? part.data.data\n : new TextDecoder().decode(part.data.data);\n break;\n }\n }\n\n documents.push({\n data: {\n text: textContent,\n title: part.filename,\n },\n });\n\n return '';\n }\n }\n })\n .join(''),\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 call 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","import type { LanguageModelV4FinishReason } from '@ai-sdk/provider';\n\nexport function mapCohereFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV4FinishReason['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 {\n TooManyEmbeddingValuesForCallError,\n type EmbeddingModelV4,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n cohereEmbeddingModelOptions,\n type CohereEmbeddingModelId,\n} from './cohere-embedding-model-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 EmbeddingModelV4 {\n readonly specificationVersion = 'v4';\n readonly modelId: CohereEmbeddingModelId;\n\n readonly maxEmbeddingsPerCall = 96;\n readonly supportsParallelCalls = true;\n\n private readonly config: CohereEmbeddingConfig;\n\n static [WORKFLOW_SERIALIZE](model: CohereEmbeddingModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: CohereEmbeddingModelId;\n config: CohereEmbeddingConfig;\n }) {\n return new CohereEmbeddingModel(options.modelId, options.config);\n }\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<EmbeddingModelV4['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV4['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 { 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 type { RerankingModelV4, SharedV4Warning } 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-model-options';\ntype CohereRerankingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class CohereRerankingModel implements RerankingModelV4 {\n readonly specificationVersion = 'v4';\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<RerankingModelV4['doRerank']>[0]): Promise<\n Awaited<ReturnType<RerankingModelV4['doRerank']>>\n > {\n const rerankingOptions = await parseProviderOptions({\n provider: 'cohere',\n providerOptions,\n schema: cohereRerankingModelOptionsSchema,\n });\n\n const warnings: SharedV4Warning[] = [];\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","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","// 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"],"mappings":"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","names":["z","z","UnsupportedFunctionalityError","_a","_b","z","combineHeaders","createJsonResponseHandler","parseProviderOptions","postJsonToApi","serializeModelOptions","WORKFLOW_SERIALIZE","WORKFLOW_DESERIALIZE","z","z","WORKFLOW_SERIALIZE","serializeModelOptions","WORKFLOW_DESERIALIZE","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","z","combineHeaders","createJsonResponseHandler","parseProviderOptions","postJsonToApi","z","lazySchema","zodSchema","z","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","_a"]}
@@ -131,7 +131,7 @@ and support structured data generation with [`Output`](/docs/reference/ai-sdk-co
131
131
  Cohere has introduced reasoning with the `command-a-reasoning-08-2025` model. You can learn more at https://docs.cohere.com/docs/reasoning.
132
132
 
133
133
  ```ts
134
- import { cohere, type CohereLanguageModelOptions } from '@ai-sdk/cohere';
134
+ import { cohere, type CohereLanguageModelChatOptions } from '@ai-sdk/cohere';
135
135
  import { generateText } from 'ai';
136
136
 
137
137
  async function main() {
@@ -146,7 +146,7 @@ async function main() {
146
146
  type: 'enabled',
147
147
  tokenBudget: 100,
148
148
  },
149
- } satisfies CohereLanguageModelOptions,
149
+ } satisfies CohereLanguageModelChatOptions,
150
150
  },
151
151
  });
152
152
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/cohere",
3
- "version": "4.0.0-beta.31",
3
+ "version": "4.0.0-beta.32",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@ai-sdk/provider": "4.0.0-beta.14",
33
- "@ai-sdk/provider-utils": "5.0.0-beta.29"
33
+ "@ai-sdk/provider-utils": "5.0.0-beta.30"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "20.17.24",
@@ -16,7 +16,7 @@ export type CohereChatModelId =
16
16
  | 'command-light-nightly'
17
17
  | (string & {});
18
18
 
19
- export const cohereLanguageModelOptions = z.object({
19
+ export const cohereLanguageModelChatOptions = z.object({
20
20
  /**
21
21
  * Configuration for reasoning features (optional)
22
22
  *
@@ -33,6 +33,6 @@ export const cohereLanguageModelOptions = z.object({
33
33
  .optional(),
34
34
  });
35
35
 
36
- export type CohereLanguageModelOptions = z.infer<
37
- typeof cohereLanguageModelOptions
36
+ export type CohereLanguageModelChatOptions = z.infer<
37
+ typeof cohereLanguageModelChatOptions
38
38
  >;
@@ -25,9 +25,9 @@ import {
25
25
  } from '@ai-sdk/provider-utils';
26
26
  import { z } from 'zod/v4';
27
27
  import {
28
- cohereLanguageModelOptions,
28
+ cohereLanguageModelChatOptions,
29
29
  type CohereChatModelId,
30
- } from './cohere-chat-options';
30
+ } from './cohere-chat-language-model-options';
31
31
  import { cohereFailedResponseHandler } from './cohere-error';
32
32
  import { prepareTools } from './cohere-prepare-tools';
33
33
  import {
@@ -101,7 +101,7 @@ export class CohereChatLanguageModel implements LanguageModelV4 {
101
101
  (await parseProviderOptions({
102
102
  provider: 'cohere',
103
103
  providerOptions,
104
- schema: cohereLanguageModelOptions,
104
+ schema: cohereLanguageModelChatOptions,
105
105
  })) ?? {};
106
106
 
107
107
  const {
@@ -466,7 +466,7 @@ function resolveCohereThinking({
466
466
  warnings,
467
467
  }: {
468
468
  reasoning: LanguageModelV4CallOptions['reasoning'];
469
- cohereOptions: InferSchema<typeof cohereLanguageModelOptions>;
469
+ cohereOptions: InferSchema<typeof cohereLanguageModelChatOptions>;
470
470
  warnings: SharedV4Warning[];
471
471
  }): { thinking?: { type: string; token_budget?: number } } {
472
472
  if (cohereOptions.thinking) {
@@ -16,7 +16,7 @@ import { z } from 'zod/v4';
16
16
  import {
17
17
  cohereEmbeddingModelOptions,
18
18
  type CohereEmbeddingModelId,
19
- } from './cohere-embedding-options';
19
+ } from './cohere-embedding-model-options';
20
20
  import { cohereFailedResponseHandler } from './cohere-error';
21
21
 
22
22
  type CohereEmbeddingConfig = {
@@ -13,11 +13,11 @@ import {
13
13
  type FetchFunction,
14
14
  } from '@ai-sdk/provider-utils';
15
15
  import { CohereChatLanguageModel } from './cohere-chat-language-model';
16
- import type { CohereChatModelId } from './cohere-chat-options';
16
+ import type { CohereChatModelId } from './cohere-chat-language-model-options';
17
17
  import { CohereEmbeddingModel } from './cohere-embedding-model';
18
- import type { CohereRerankingModelId } from './reranking/cohere-reranking-options';
18
+ import type { CohereRerankingModelId } from './reranking/cohere-reranking-model-options';
19
19
  import { CohereRerankingModel } from './reranking/cohere-reranking-model';
20
- import type { CohereEmbeddingModelId } from './cohere-embedding-options';
20
+ import type { CohereEmbeddingModelId } from './cohere-embedding-model-options';
21
21
  import { VERSION } from './version';
22
22
 
23
23
  export interface CohereProvider extends ProviderV4 {
package/src/index.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  export type {
2
- CohereLanguageModelOptions,
3
- /** @deprecated Use `CohereLanguageModelOptions` instead. */
4
- CohereLanguageModelOptions as CohereChatModelOptions,
5
- } from './cohere-chat-options';
2
+ CohereLanguageModelChatOptions,
3
+ /** @deprecated Use `CohereLanguageModelChatOptions` instead. */
4
+ CohereLanguageModelChatOptions as CohereLanguageModelOptions,
5
+ /** @deprecated Use `CohereLanguageModelChatOptions` instead. */
6
+ CohereLanguageModelChatOptions as CohereChatModelOptions,
7
+ } from './cohere-chat-language-model-options';
6
8
  export { cohere, createCohere } from './cohere-provider';
7
9
  export type { CohereProvider, CohereProviderSettings } from './cohere-provider';
8
- export type { CohereEmbeddingModelOptions } from './cohere-embedding-options';
10
+ export type { CohereEmbeddingModelOptions } from './cohere-embedding-model-options';
9
11
  export type {
10
12
  CohereRerankingModelOptions,
11
13
  /** @deprecated Use `CohereRerankingModelOptions` instead. */
12
14
  CohereRerankingModelOptions as CohereRerankingOptions,
13
- } from './reranking/cohere-reranking-options';
15
+ } from './reranking/cohere-reranking-model-options';
14
16
  export { VERSION } from './version';
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  cohereRerankingModelOptionsSchema,
16
16
  type CohereRerankingModelId,
17
- } from './cohere-reranking-options';
17
+ } from './cohere-reranking-model-options';
18
18
  type CohereRerankingConfig = {
19
19
  provider: string;
20
20
  baseURL: string;