@ai-sdk/cohere 4.0.0-beta.2 → 4.0.0-beta.20
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 +143 -4
- package/README.md +2 -0
- package/dist/index.d.mts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +82 -43
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -5
- package/src/cohere-chat-language-model.ts +72 -25
- package/src/cohere-embedding-model.ts +5 -5
- package/src/cohere-prepare-tools.ts +6 -6
- package/src/cohere-provider.ts +14 -14
- package/src/convert-cohere-usage.ts +2 -2
- package/src/convert-to-cohere-chat-prompt.ts +12 -5
- package/src/map-cohere-finish-reason.ts +2 -2
- package/src/reranking/cohere-reranking-model.ts +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,144 @@
|
|
|
1
1
|
# @ai-sdk/cohere
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
|
|
8
|
+
- Updated dependencies [90e2d8a]
|
|
9
|
+
- @ai-sdk/provider-utils@5.0.0-beta.18
|
|
10
|
+
|
|
11
|
+
## 4.0.0-beta.19
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [3ae1786]
|
|
16
|
+
- @ai-sdk/provider-utils@5.0.0-beta.17
|
|
17
|
+
|
|
18
|
+
## 4.0.0-beta.18
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [176466a]
|
|
23
|
+
- @ai-sdk/provider@4.0.0-beta.10
|
|
24
|
+
- @ai-sdk/provider-utils@5.0.0-beta.16
|
|
25
|
+
|
|
26
|
+
## 4.0.0-beta.17
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [e311194]
|
|
31
|
+
- @ai-sdk/provider@4.0.0-beta.9
|
|
32
|
+
- @ai-sdk/provider-utils@5.0.0-beta.15
|
|
33
|
+
|
|
34
|
+
## 4.0.0-beta.16
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- Updated dependencies [34bd95d]
|
|
39
|
+
- Updated dependencies [008271d]
|
|
40
|
+
- @ai-sdk/provider@4.0.0-beta.8
|
|
41
|
+
- @ai-sdk/provider-utils@5.0.0-beta.14
|
|
42
|
+
|
|
43
|
+
## 4.0.0-beta.15
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- Updated dependencies [b0c2869]
|
|
48
|
+
- Updated dependencies [7e26e81]
|
|
49
|
+
- @ai-sdk/provider-utils@5.0.0-beta.13
|
|
50
|
+
|
|
51
|
+
## 4.0.0-beta.14
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- Updated dependencies [46d1149]
|
|
56
|
+
- @ai-sdk/provider-utils@5.0.0-beta.12
|
|
57
|
+
|
|
58
|
+
## 4.0.0-beta.13
|
|
59
|
+
|
|
60
|
+
### Patch Changes
|
|
61
|
+
|
|
62
|
+
- 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
|
|
63
|
+
- Updated dependencies [6fd51c0]
|
|
64
|
+
- @ai-sdk/provider-utils@5.0.0-beta.11
|
|
65
|
+
- @ai-sdk/provider@4.0.0-beta.7
|
|
66
|
+
|
|
67
|
+
## 4.0.0-beta.12
|
|
68
|
+
|
|
69
|
+
### Patch Changes
|
|
70
|
+
|
|
71
|
+
- c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
|
|
72
|
+
- Updated dependencies [c29a26f]
|
|
73
|
+
- @ai-sdk/provider-utils@5.0.0-beta.10
|
|
74
|
+
- @ai-sdk/provider@4.0.0-beta.6
|
|
75
|
+
|
|
76
|
+
## 4.0.0-beta.11
|
|
77
|
+
|
|
78
|
+
### Patch Changes
|
|
79
|
+
|
|
80
|
+
- 38fc777: Add AI Gateway hint to provider READMEs
|
|
81
|
+
|
|
82
|
+
## 4.0.0-beta.10
|
|
83
|
+
|
|
84
|
+
### Patch Changes
|
|
85
|
+
|
|
86
|
+
- Updated dependencies [2e17091]
|
|
87
|
+
- @ai-sdk/provider-utils@5.0.0-beta.9
|
|
88
|
+
|
|
89
|
+
## 4.0.0-beta.9
|
|
90
|
+
|
|
91
|
+
### Patch Changes
|
|
92
|
+
|
|
93
|
+
- Updated dependencies [986c6fd]
|
|
94
|
+
- Updated dependencies [493295c]
|
|
95
|
+
- @ai-sdk/provider-utils@5.0.0-beta.8
|
|
96
|
+
|
|
97
|
+
## 4.0.0-beta.8
|
|
98
|
+
|
|
99
|
+
### Patch Changes
|
|
100
|
+
|
|
101
|
+
- Updated dependencies [1f509d4]
|
|
102
|
+
- @ai-sdk/provider-utils@5.0.0-beta.7
|
|
103
|
+
- @ai-sdk/provider@4.0.0-beta.5
|
|
104
|
+
|
|
105
|
+
## 4.0.0-beta.7
|
|
106
|
+
|
|
107
|
+
### Patch Changes
|
|
108
|
+
|
|
109
|
+
- 74d520f: feat: migrate providers to support new top-level `reasoning` parameter
|
|
110
|
+
|
|
111
|
+
## 4.0.0-beta.6
|
|
112
|
+
|
|
113
|
+
### Patch Changes
|
|
114
|
+
|
|
115
|
+
- Updated dependencies [3887c70]
|
|
116
|
+
- @ai-sdk/provider-utils@5.0.0-beta.6
|
|
117
|
+
- @ai-sdk/provider@4.0.0-beta.4
|
|
118
|
+
|
|
119
|
+
## 4.0.0-beta.5
|
|
120
|
+
|
|
121
|
+
### Patch Changes
|
|
122
|
+
|
|
123
|
+
- Updated dependencies [776b617]
|
|
124
|
+
- @ai-sdk/provider-utils@5.0.0-beta.5
|
|
125
|
+
- @ai-sdk/provider@4.0.0-beta.3
|
|
126
|
+
|
|
127
|
+
## 4.0.0-beta.4
|
|
128
|
+
|
|
129
|
+
### Patch Changes
|
|
130
|
+
|
|
131
|
+
- Updated dependencies [61753c3]
|
|
132
|
+
- @ai-sdk/provider-utils@5.0.0-beta.4
|
|
133
|
+
|
|
134
|
+
## 4.0.0-beta.3
|
|
135
|
+
|
|
136
|
+
### Patch Changes
|
|
137
|
+
|
|
138
|
+
- Updated dependencies [f7d4f01]
|
|
139
|
+
- @ai-sdk/provider-utils@5.0.0-beta.3
|
|
140
|
+
- @ai-sdk/provider@4.0.0-beta.2
|
|
141
|
+
|
|
3
142
|
## 4.0.0-beta.2
|
|
4
143
|
|
|
5
144
|
### Patch Changes
|
|
@@ -224,13 +363,13 @@
|
|
|
224
363
|
Before
|
|
225
364
|
|
|
226
365
|
```ts
|
|
227
|
-
model.textEmbeddingModel(
|
|
366
|
+
model.textEmbeddingModel("my-model-id");
|
|
228
367
|
```
|
|
229
368
|
|
|
230
369
|
After
|
|
231
370
|
|
|
232
371
|
```ts
|
|
233
|
-
model.embeddingModel(
|
|
372
|
+
model.embeddingModel("my-model-id");
|
|
234
373
|
```
|
|
235
374
|
|
|
236
375
|
- 2625a04: feat(openai); update spec for mcp approval
|
|
@@ -442,13 +581,13 @@
|
|
|
442
581
|
Before
|
|
443
582
|
|
|
444
583
|
```ts
|
|
445
|
-
model.textEmbeddingModel(
|
|
584
|
+
model.textEmbeddingModel("my-model-id");
|
|
446
585
|
```
|
|
447
586
|
|
|
448
587
|
After
|
|
449
588
|
|
|
450
589
|
```ts
|
|
451
|
-
model.embeddingModel(
|
|
590
|
+
model.embeddingModel("my-model-id");
|
|
452
591
|
```
|
|
453
592
|
|
|
454
593
|
- Updated dependencies [8d9e8ad]
|
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
The **[Cohere provider](https://ai-sdk.dev/providers/ai-sdk-providers/cohere)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the Cohere API.
|
|
4
4
|
|
|
5
|
+
> **Deploying to Vercel?** With Vercel's AI Gateway you can access Cohere (and hundreds of models from other providers) — no additional packages, API keys, or extra cost. [Get started with AI Gateway](https://vercel.com/ai-gateway).
|
|
6
|
+
|
|
5
7
|
## Setup
|
|
6
8
|
|
|
7
9
|
The Cohere provider is available in the `@ai-sdk/cohere` module. You can install it with
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
|
-
import {
|
|
2
|
+
import { ProviderV4, LanguageModelV4, EmbeddingModelV4, RerankingModelV4 } from '@ai-sdk/provider';
|
|
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 & {});
|
|
@@ -47,36 +47,36 @@ declare const cohereEmbeddingModelOptions: z.ZodObject<{
|
|
|
47
47
|
}, z.core.$strip>;
|
|
48
48
|
type CohereEmbeddingModelOptions = z.infer<typeof cohereEmbeddingModelOptions>;
|
|
49
49
|
|
|
50
|
-
interface CohereProvider extends
|
|
51
|
-
(modelId: CohereChatModelId):
|
|
50
|
+
interface CohereProvider extends ProviderV4 {
|
|
51
|
+
(modelId: CohereChatModelId): LanguageModelV4;
|
|
52
52
|
/**
|
|
53
53
|
* Creates a model for text generation.
|
|
54
54
|
*/
|
|
55
|
-
languageModel(modelId: CohereChatModelId):
|
|
55
|
+
languageModel(modelId: CohereChatModelId): LanguageModelV4;
|
|
56
56
|
/**
|
|
57
57
|
* Creates a model for text embeddings.
|
|
58
58
|
*/
|
|
59
|
-
embedding(modelId: CohereEmbeddingModelId):
|
|
59
|
+
embedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
60
60
|
/**
|
|
61
61
|
* Creates a model for text embeddings.
|
|
62
62
|
*/
|
|
63
|
-
embeddingModel(modelId: CohereEmbeddingModelId):
|
|
63
|
+
embeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
64
64
|
/**
|
|
65
65
|
* @deprecated Use `embedding` instead.
|
|
66
66
|
*/
|
|
67
|
-
textEmbedding(modelId: CohereEmbeddingModelId):
|
|
67
|
+
textEmbedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
68
68
|
/**
|
|
69
69
|
* @deprecated Use `embeddingModel` instead.
|
|
70
70
|
*/
|
|
71
|
-
textEmbeddingModel(modelId: CohereEmbeddingModelId):
|
|
71
|
+
textEmbeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
72
72
|
/**
|
|
73
73
|
* Creates a model for reranking.
|
|
74
74
|
*/
|
|
75
|
-
reranking(modelId: CohereRerankingModelId):
|
|
75
|
+
reranking(modelId: CohereRerankingModelId): RerankingModelV4;
|
|
76
76
|
/**
|
|
77
77
|
* Creates a model for reranking.
|
|
78
78
|
*/
|
|
79
|
-
rerankingModel(modelId: CohereRerankingModelId):
|
|
79
|
+
rerankingModel(modelId: CohereRerankingModelId): RerankingModelV4;
|
|
80
80
|
}
|
|
81
81
|
interface CohereProviderSettings {
|
|
82
82
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
|
-
import {
|
|
2
|
+
import { ProviderV4, LanguageModelV4, EmbeddingModelV4, RerankingModelV4 } from '@ai-sdk/provider';
|
|
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 & {});
|
|
@@ -47,36 +47,36 @@ declare const cohereEmbeddingModelOptions: z.ZodObject<{
|
|
|
47
47
|
}, z.core.$strip>;
|
|
48
48
|
type CohereEmbeddingModelOptions = z.infer<typeof cohereEmbeddingModelOptions>;
|
|
49
49
|
|
|
50
|
-
interface CohereProvider extends
|
|
51
|
-
(modelId: CohereChatModelId):
|
|
50
|
+
interface CohereProvider extends ProviderV4 {
|
|
51
|
+
(modelId: CohereChatModelId): LanguageModelV4;
|
|
52
52
|
/**
|
|
53
53
|
* Creates a model for text generation.
|
|
54
54
|
*/
|
|
55
|
-
languageModel(modelId: CohereChatModelId):
|
|
55
|
+
languageModel(modelId: CohereChatModelId): LanguageModelV4;
|
|
56
56
|
/**
|
|
57
57
|
* Creates a model for text embeddings.
|
|
58
58
|
*/
|
|
59
|
-
embedding(modelId: CohereEmbeddingModelId):
|
|
59
|
+
embedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
60
60
|
/**
|
|
61
61
|
* Creates a model for text embeddings.
|
|
62
62
|
*/
|
|
63
|
-
embeddingModel(modelId: CohereEmbeddingModelId):
|
|
63
|
+
embeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
64
64
|
/**
|
|
65
65
|
* @deprecated Use `embedding` instead.
|
|
66
66
|
*/
|
|
67
|
-
textEmbedding(modelId: CohereEmbeddingModelId):
|
|
67
|
+
textEmbedding(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
68
68
|
/**
|
|
69
69
|
* @deprecated Use `embeddingModel` instead.
|
|
70
70
|
*/
|
|
71
|
-
textEmbeddingModel(modelId: CohereEmbeddingModelId):
|
|
71
|
+
textEmbeddingModel(modelId: CohereEmbeddingModelId): EmbeddingModelV4;
|
|
72
72
|
/**
|
|
73
73
|
* Creates a model for reranking.
|
|
74
74
|
*/
|
|
75
|
-
reranking(modelId: CohereRerankingModelId):
|
|
75
|
+
reranking(modelId: CohereRerankingModelId): RerankingModelV4;
|
|
76
76
|
/**
|
|
77
77
|
* Creates a model for reranking.
|
|
78
78
|
*/
|
|
79
|
-
rerankingModel(modelId: CohereRerankingModelId):
|
|
79
|
+
rerankingModel(modelId: CohereRerankingModelId): RerankingModelV4;
|
|
80
80
|
}
|
|
81
81
|
interface CohereProviderSettings {
|
|
82
82
|
/**
|
package/dist/index.js
CHANGED
|
@@ -28,10 +28,10 @@ module.exports = __toCommonJS(index_exports);
|
|
|
28
28
|
|
|
29
29
|
// src/cohere-provider.ts
|
|
30
30
|
var import_provider4 = require("@ai-sdk/provider");
|
|
31
|
-
var
|
|
31
|
+
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
32
32
|
|
|
33
33
|
// src/cohere-chat-language-model.ts
|
|
34
|
-
var
|
|
34
|
+
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
35
35
|
var import_v43 = require("zod/v4");
|
|
36
36
|
|
|
37
37
|
// src/cohere-chat-options.ts
|
|
@@ -157,6 +157,7 @@ function convertCohereUsage(tokens) {
|
|
|
157
157
|
|
|
158
158
|
// src/convert-to-cohere-chat-prompt.ts
|
|
159
159
|
var import_provider2 = require("@ai-sdk/provider");
|
|
160
|
+
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
160
161
|
function convertToCohereChatPrompt(prompt) {
|
|
161
162
|
const messages = [];
|
|
162
163
|
const documents = [];
|
|
@@ -177,6 +178,11 @@ function convertToCohereChatPrompt(prompt) {
|
|
|
177
178
|
return part.text;
|
|
178
179
|
}
|
|
179
180
|
case "file": {
|
|
181
|
+
if ((0, import_provider_utils2.isProviderReference)(part.data)) {
|
|
182
|
+
throw new import_provider2.UnsupportedFunctionalityError({
|
|
183
|
+
functionality: "file parts with provider references"
|
|
184
|
+
});
|
|
185
|
+
}
|
|
180
186
|
let textContent;
|
|
181
187
|
if (typeof part.data === "string") {
|
|
182
188
|
textContent = part.data;
|
|
@@ -295,7 +301,7 @@ function mapCohereFinishReason(finishReason) {
|
|
|
295
301
|
// src/cohere-chat-language-model.ts
|
|
296
302
|
var CohereChatLanguageModel = class {
|
|
297
303
|
constructor(modelId, config) {
|
|
298
|
-
this.specificationVersion = "
|
|
304
|
+
this.specificationVersion = "v4";
|
|
299
305
|
this.supportedUrls = {
|
|
300
306
|
// No URLs are supported.
|
|
301
307
|
};
|
|
@@ -316,12 +322,14 @@ var CohereChatLanguageModel = class {
|
|
|
316
322
|
stopSequences,
|
|
317
323
|
responseFormat,
|
|
318
324
|
seed,
|
|
325
|
+
reasoning,
|
|
319
326
|
tools,
|
|
320
327
|
toolChoice,
|
|
321
328
|
providerOptions
|
|
322
329
|
}) {
|
|
323
|
-
var _a
|
|
324
|
-
const
|
|
330
|
+
var _a;
|
|
331
|
+
const warnings = [];
|
|
332
|
+
const cohereOptions = (_a = await (0, import_provider_utils3.parseProviderOptions)({
|
|
325
333
|
provider: "cohere",
|
|
326
334
|
providerOptions,
|
|
327
335
|
schema: cohereLanguageModelOptions
|
|
@@ -336,6 +344,7 @@ var CohereChatLanguageModel = class {
|
|
|
336
344
|
toolChoice: cohereToolChoice,
|
|
337
345
|
toolWarnings
|
|
338
346
|
} = prepareTools({ tools, toolChoice });
|
|
347
|
+
warnings.push(...toolWarnings, ...promptWarnings);
|
|
339
348
|
return {
|
|
340
349
|
args: {
|
|
341
350
|
// model id:
|
|
@@ -358,15 +367,14 @@ var CohereChatLanguageModel = class {
|
|
|
358
367
|
tool_choice: cohereToolChoice,
|
|
359
368
|
// documents for RAG:
|
|
360
369
|
...cohereDocuments.length > 0 && { documents: cohereDocuments },
|
|
361
|
-
// reasoning
|
|
362
|
-
...
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
}
|
|
370
|
+
// reasoning:
|
|
371
|
+
...resolveCohereThinking({
|
|
372
|
+
reasoning,
|
|
373
|
+
cohereOptions,
|
|
374
|
+
warnings
|
|
375
|
+
})
|
|
368
376
|
},
|
|
369
|
-
warnings
|
|
377
|
+
warnings
|
|
370
378
|
};
|
|
371
379
|
}
|
|
372
380
|
async doGenerate(options) {
|
|
@@ -376,12 +384,12 @@ var CohereChatLanguageModel = class {
|
|
|
376
384
|
responseHeaders,
|
|
377
385
|
value: response,
|
|
378
386
|
rawValue: rawResponse
|
|
379
|
-
} = await (0,
|
|
387
|
+
} = await (0, import_provider_utils3.postJsonToApi)({
|
|
380
388
|
url: `${this.config.baseURL}/chat`,
|
|
381
|
-
headers: (0,
|
|
389
|
+
headers: (0, import_provider_utils3.combineHeaders)(this.config.headers(), options.headers),
|
|
382
390
|
body: args,
|
|
383
391
|
failedResponseHandler: cohereFailedResponseHandler,
|
|
384
|
-
successfulResponseHandler: (0,
|
|
392
|
+
successfulResponseHandler: (0, import_provider_utils3.createJsonResponseHandler)(
|
|
385
393
|
cohereChatResponseSchema
|
|
386
394
|
),
|
|
387
395
|
abortSignal: options.abortSignal,
|
|
@@ -445,12 +453,12 @@ var CohereChatLanguageModel = class {
|
|
|
445
453
|
}
|
|
446
454
|
async doStream(options) {
|
|
447
455
|
const { args, warnings } = await this.getArgs(options);
|
|
448
|
-
const { responseHeaders, value: response } = await (0,
|
|
456
|
+
const { responseHeaders, value: response } = await (0, import_provider_utils3.postJsonToApi)({
|
|
449
457
|
url: `${this.config.baseURL}/chat`,
|
|
450
|
-
headers: (0,
|
|
458
|
+
headers: (0, import_provider_utils3.combineHeaders)(this.config.headers(), options.headers),
|
|
451
459
|
body: { ...args, stream: true },
|
|
452
460
|
failedResponseHandler: cohereFailedResponseHandler,
|
|
453
|
-
successfulResponseHandler: (0,
|
|
461
|
+
successfulResponseHandler: (0, import_provider_utils3.createEventSourceResponseHandler)(
|
|
454
462
|
cohereChatChunkSchema
|
|
455
463
|
),
|
|
456
464
|
abortSignal: options.abortSignal,
|
|
@@ -617,6 +625,37 @@ var CohereChatLanguageModel = class {
|
|
|
617
625
|
};
|
|
618
626
|
}
|
|
619
627
|
};
|
|
628
|
+
function resolveCohereThinking({
|
|
629
|
+
reasoning,
|
|
630
|
+
cohereOptions,
|
|
631
|
+
warnings
|
|
632
|
+
}) {
|
|
633
|
+
var _a;
|
|
634
|
+
if (cohereOptions.thinking) {
|
|
635
|
+
return {
|
|
636
|
+
thinking: {
|
|
637
|
+
type: (_a = cohereOptions.thinking.type) != null ? _a : "enabled",
|
|
638
|
+
token_budget: cohereOptions.thinking.tokenBudget
|
|
639
|
+
}
|
|
640
|
+
};
|
|
641
|
+
}
|
|
642
|
+
if (!(0, import_provider_utils3.isCustomReasoning)(reasoning)) {
|
|
643
|
+
return {};
|
|
644
|
+
}
|
|
645
|
+
if (reasoning === "none") {
|
|
646
|
+
return { thinking: { type: "disabled" } };
|
|
647
|
+
}
|
|
648
|
+
const tokenBudget = (0, import_provider_utils3.mapReasoningToProviderBudget)({
|
|
649
|
+
reasoning,
|
|
650
|
+
maxOutputTokens: 32768,
|
|
651
|
+
maxReasoningBudget: 32768,
|
|
652
|
+
warnings
|
|
653
|
+
});
|
|
654
|
+
if (tokenBudget == null) {
|
|
655
|
+
return {};
|
|
656
|
+
}
|
|
657
|
+
return { thinking: { type: "enabled", token_budget: tokenBudget } };
|
|
658
|
+
}
|
|
620
659
|
var cohereChatResponseSchema = import_v43.z.object({
|
|
621
660
|
generation_id: import_v43.z.string().nullish(),
|
|
622
661
|
message: import_v43.z.object({
|
|
@@ -783,7 +822,7 @@ var cohereChatChunkSchema = import_v43.z.discriminatedUnion("type", [
|
|
|
783
822
|
|
|
784
823
|
// src/cohere-embedding-model.ts
|
|
785
824
|
var import_provider3 = require("@ai-sdk/provider");
|
|
786
|
-
var
|
|
825
|
+
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
787
826
|
var import_v45 = require("zod/v4");
|
|
788
827
|
|
|
789
828
|
// src/cohere-embedding-options.ts
|
|
@@ -820,7 +859,7 @@ var cohereEmbeddingModelOptions = import_v44.z.object({
|
|
|
820
859
|
// src/cohere-embedding-model.ts
|
|
821
860
|
var CohereEmbeddingModel = class {
|
|
822
861
|
constructor(modelId, config) {
|
|
823
|
-
this.specificationVersion = "
|
|
862
|
+
this.specificationVersion = "v4";
|
|
824
863
|
this.maxEmbeddingsPerCall = 96;
|
|
825
864
|
this.supportsParallelCalls = true;
|
|
826
865
|
this.modelId = modelId;
|
|
@@ -836,7 +875,7 @@ var CohereEmbeddingModel = class {
|
|
|
836
875
|
providerOptions
|
|
837
876
|
}) {
|
|
838
877
|
var _a;
|
|
839
|
-
const embeddingOptions = await (0,
|
|
878
|
+
const embeddingOptions = await (0, import_provider_utils4.parseProviderOptions)({
|
|
840
879
|
provider: "cohere",
|
|
841
880
|
providerOptions,
|
|
842
881
|
schema: cohereEmbeddingModelOptions
|
|
@@ -853,9 +892,9 @@ var CohereEmbeddingModel = class {
|
|
|
853
892
|
responseHeaders,
|
|
854
893
|
value: response,
|
|
855
894
|
rawValue
|
|
856
|
-
} = await (0,
|
|
895
|
+
} = await (0, import_provider_utils4.postJsonToApi)({
|
|
857
896
|
url: `${this.config.baseURL}/embed`,
|
|
858
|
-
headers: (0,
|
|
897
|
+
headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), headers),
|
|
859
898
|
body: {
|
|
860
899
|
model: this.modelId,
|
|
861
900
|
// The AI SDK only supports 'float' embeddings. Note that the Cohere API
|
|
@@ -868,7 +907,7 @@ var CohereEmbeddingModel = class {
|
|
|
868
907
|
output_dimension: embeddingOptions == null ? void 0 : embeddingOptions.outputDimension
|
|
869
908
|
},
|
|
870
909
|
failedResponseHandler: cohereFailedResponseHandler,
|
|
871
|
-
successfulResponseHandler: (0,
|
|
910
|
+
successfulResponseHandler: (0, import_provider_utils4.createJsonResponseHandler)(
|
|
872
911
|
cohereTextEmbeddingResponseSchema
|
|
873
912
|
),
|
|
874
913
|
abortSignal,
|
|
@@ -894,13 +933,13 @@ var cohereTextEmbeddingResponseSchema = import_v45.z.object({
|
|
|
894
933
|
});
|
|
895
934
|
|
|
896
935
|
// src/reranking/cohere-reranking-model.ts
|
|
897
|
-
var
|
|
936
|
+
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
898
937
|
|
|
899
938
|
// src/reranking/cohere-reranking-api.ts
|
|
900
|
-
var
|
|
939
|
+
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
901
940
|
var import_v46 = require("zod/v4");
|
|
902
|
-
var cohereRerankingResponseSchema = (0,
|
|
903
|
-
() => (0,
|
|
941
|
+
var cohereRerankingResponseSchema = (0, import_provider_utils5.lazySchema)(
|
|
942
|
+
() => (0, import_provider_utils5.zodSchema)(
|
|
904
943
|
import_v46.z.object({
|
|
905
944
|
id: import_v46.z.string().nullish(),
|
|
906
945
|
results: import_v46.z.array(
|
|
@@ -915,10 +954,10 @@ var cohereRerankingResponseSchema = (0, import_provider_utils4.lazySchema)(
|
|
|
915
954
|
);
|
|
916
955
|
|
|
917
956
|
// src/reranking/cohere-reranking-options.ts
|
|
918
|
-
var
|
|
957
|
+
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
919
958
|
var import_v47 = require("zod/v4");
|
|
920
|
-
var cohereRerankingModelOptionsSchema = (0,
|
|
921
|
-
() => (0,
|
|
959
|
+
var cohereRerankingModelOptionsSchema = (0, import_provider_utils6.lazySchema)(
|
|
960
|
+
() => (0, import_provider_utils6.zodSchema)(
|
|
922
961
|
import_v47.z.object({
|
|
923
962
|
maxTokensPerDoc: import_v47.z.number().optional(),
|
|
924
963
|
priority: import_v47.z.number().optional()
|
|
@@ -929,7 +968,7 @@ var cohereRerankingModelOptionsSchema = (0, import_provider_utils5.lazySchema)(
|
|
|
929
968
|
// src/reranking/cohere-reranking-model.ts
|
|
930
969
|
var CohereRerankingModel = class {
|
|
931
970
|
constructor(modelId, config) {
|
|
932
|
-
this.specificationVersion = "
|
|
971
|
+
this.specificationVersion = "v4";
|
|
933
972
|
this.modelId = modelId;
|
|
934
973
|
this.config = config;
|
|
935
974
|
}
|
|
@@ -946,7 +985,7 @@ var CohereRerankingModel = class {
|
|
|
946
985
|
providerOptions
|
|
947
986
|
}) {
|
|
948
987
|
var _a;
|
|
949
|
-
const rerankingOptions = await (0,
|
|
988
|
+
const rerankingOptions = await (0, import_provider_utils7.parseProviderOptions)({
|
|
950
989
|
provider: "cohere",
|
|
951
990
|
providerOptions,
|
|
952
991
|
schema: cohereRerankingModelOptionsSchema
|
|
@@ -963,9 +1002,9 @@ var CohereRerankingModel = class {
|
|
|
963
1002
|
responseHeaders,
|
|
964
1003
|
value: response,
|
|
965
1004
|
rawValue
|
|
966
|
-
} = await (0,
|
|
1005
|
+
} = await (0, import_provider_utils7.postJsonToApi)({
|
|
967
1006
|
url: `${this.config.baseURL}/rerank`,
|
|
968
|
-
headers: (0,
|
|
1007
|
+
headers: (0, import_provider_utils7.combineHeaders)(this.config.headers(), headers),
|
|
969
1008
|
body: {
|
|
970
1009
|
model: this.modelId,
|
|
971
1010
|
query,
|
|
@@ -975,7 +1014,7 @@ var CohereRerankingModel = class {
|
|
|
975
1014
|
priority: rerankingOptions == null ? void 0 : rerankingOptions.priority
|
|
976
1015
|
},
|
|
977
1016
|
failedResponseHandler: cohereFailedResponseHandler,
|
|
978
|
-
successfulResponseHandler: (0,
|
|
1017
|
+
successfulResponseHandler: (0, import_provider_utils7.createJsonResponseHandler)(
|
|
979
1018
|
cohereRerankingResponseSchema
|
|
980
1019
|
),
|
|
981
1020
|
abortSignal,
|
|
@@ -997,15 +1036,15 @@ var CohereRerankingModel = class {
|
|
|
997
1036
|
};
|
|
998
1037
|
|
|
999
1038
|
// src/version.ts
|
|
1000
|
-
var VERSION = true ? "4.0.0-beta.
|
|
1039
|
+
var VERSION = true ? "4.0.0-beta.20" : "0.0.0-test";
|
|
1001
1040
|
|
|
1002
1041
|
// src/cohere-provider.ts
|
|
1003
1042
|
function createCohere(options = {}) {
|
|
1004
1043
|
var _a;
|
|
1005
|
-
const baseURL = (_a = (0,
|
|
1006
|
-
const getHeaders = () => (0,
|
|
1044
|
+
const baseURL = (_a = (0, import_provider_utils8.withoutTrailingSlash)(options.baseURL)) != null ? _a : "https://api.cohere.com/v2";
|
|
1045
|
+
const getHeaders = () => (0, import_provider_utils8.withUserAgentSuffix)(
|
|
1007
1046
|
{
|
|
1008
|
-
Authorization: `Bearer ${(0,
|
|
1047
|
+
Authorization: `Bearer ${(0, import_provider_utils8.loadApiKey)({
|
|
1009
1048
|
apiKey: options.apiKey,
|
|
1010
1049
|
environmentVariableName: "COHERE_API_KEY",
|
|
1011
1050
|
description: "Cohere"
|
|
@@ -1021,7 +1060,7 @@ function createCohere(options = {}) {
|
|
|
1021
1060
|
baseURL,
|
|
1022
1061
|
headers: getHeaders,
|
|
1023
1062
|
fetch: options.fetch,
|
|
1024
|
-
generateId: (_a2 = options.generateId) != null ? _a2 :
|
|
1063
|
+
generateId: (_a2 = options.generateId) != null ? _a2 : import_provider_utils8.generateId
|
|
1025
1064
|
});
|
|
1026
1065
|
};
|
|
1027
1066
|
const createEmbeddingModel = (modelId) => new CohereEmbeddingModel(modelId, {
|
|
@@ -1044,7 +1083,7 @@ function createCohere(options = {}) {
|
|
|
1044
1083
|
}
|
|
1045
1084
|
return createChatModel(modelId);
|
|
1046
1085
|
};
|
|
1047
|
-
provider.specificationVersion = "
|
|
1086
|
+
provider.specificationVersion = "v4";
|
|
1048
1087
|
provider.languageModel = createChatModel;
|
|
1049
1088
|
provider.embedding = createEmbeddingModel;
|
|
1050
1089
|
provider.embeddingModel = createEmbeddingModel;
|