@ai-sdk/mistral 3.0.61 → 3.0.63
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 +15 -0
- package/dist/index.js +104 -91
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +104 -91
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/convert-mistral-usage.ts +31 -8
- package/src/mistral-chat-language-model.ts +1 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @ai-sdk/mistral
|
|
2
2
|
|
|
3
|
+
## 3.0.63
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ddad58b: Preserve complete Mistral chat usage objects in raw usage metadata.
|
|
8
|
+
- Updated dependencies [cc23556]
|
|
9
|
+
- @ai-sdk/provider-utils@4.0.50
|
|
10
|
+
|
|
11
|
+
## 3.0.62
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [9a521b9]
|
|
16
|
+
- @ai-sdk/provider-utils@4.0.49
|
|
17
|
+
|
|
3
18
|
## 3.0.61
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -33,9 +33,30 @@ var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
|
33
33
|
// src/mistral-chat-language-model.ts
|
|
34
34
|
var import_provider3 = require("@ai-sdk/provider");
|
|
35
35
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
36
|
-
var
|
|
36
|
+
var import_v44 = require("zod/v4");
|
|
37
37
|
|
|
38
38
|
// src/convert-mistral-usage.ts
|
|
39
|
+
var import_v4 = require("zod/v4");
|
|
40
|
+
var mistralPromptTokensDetailsSchema = import_v4.z.object({
|
|
41
|
+
messages: import_v4.z.array(import_v4.z.json()).nullish(),
|
|
42
|
+
cached_tokens: import_v4.z.number().nullish(),
|
|
43
|
+
audio_tokens: import_v4.z.number().nullish()
|
|
44
|
+
}).catchall(import_v4.z.json());
|
|
45
|
+
var mistralCompletionTokensDetailsSchema = import_v4.z.object({
|
|
46
|
+
reasoning_tokens: import_v4.z.number().nullish()
|
|
47
|
+
}).catchall(import_v4.z.json());
|
|
48
|
+
var mistralUsageSchema = import_v4.z.object({
|
|
49
|
+
prompt_tokens: import_v4.z.number(),
|
|
50
|
+
completion_tokens: import_v4.z.number(),
|
|
51
|
+
total_tokens: import_v4.z.number(),
|
|
52
|
+
prompt_audio_seconds: import_v4.z.number().nullish(),
|
|
53
|
+
request_count: import_v4.z.number().nullish(),
|
|
54
|
+
service_tier: import_v4.z.string().nullish(),
|
|
55
|
+
num_cached_tokens: import_v4.z.number().nullish(),
|
|
56
|
+
prompt_tokens_details: mistralPromptTokensDetailsSchema.nullish(),
|
|
57
|
+
prompt_token_details: mistralPromptTokensDetailsSchema.nullish(),
|
|
58
|
+
completion_tokens_details: mistralCompletionTokensDetailsSchema.nullish()
|
|
59
|
+
}).catchall(import_v4.z.json());
|
|
39
60
|
function convertMistralUsage(usage) {
|
|
40
61
|
var _a, _b, _c, _d, _e;
|
|
41
62
|
if (usage == null) {
|
|
@@ -242,53 +263,53 @@ function mapMistralFinishReason(finishReason) {
|
|
|
242
263
|
}
|
|
243
264
|
|
|
244
265
|
// src/mistral-chat-options.ts
|
|
245
|
-
var
|
|
246
|
-
var mistralLanguageModelOptions =
|
|
266
|
+
var import_v42 = require("zod/v4");
|
|
267
|
+
var mistralLanguageModelOptions = import_v42.z.object({
|
|
247
268
|
/**
|
|
248
269
|
* Whether to inject a safety prompt before all conversations.
|
|
249
270
|
*
|
|
250
271
|
* Defaults to `false`.
|
|
251
272
|
*/
|
|
252
|
-
safePrompt:
|
|
253
|
-
documentImageLimit:
|
|
254
|
-
documentPageLimit:
|
|
273
|
+
safePrompt: import_v42.z.boolean().optional(),
|
|
274
|
+
documentImageLimit: import_v42.z.number().optional(),
|
|
275
|
+
documentPageLimit: import_v42.z.number().optional(),
|
|
255
276
|
/**
|
|
256
277
|
* Whether to use structured outputs.
|
|
257
278
|
*
|
|
258
279
|
* @default true
|
|
259
280
|
*/
|
|
260
|
-
structuredOutputs:
|
|
281
|
+
structuredOutputs: import_v42.z.boolean().optional(),
|
|
261
282
|
/**
|
|
262
283
|
* Whether to use strict JSON schema validation.
|
|
263
284
|
*
|
|
264
285
|
* @default false
|
|
265
286
|
*/
|
|
266
|
-
strictJsonSchema:
|
|
287
|
+
strictJsonSchema: import_v42.z.boolean().optional(),
|
|
267
288
|
/**
|
|
268
289
|
* Whether to enable parallel function calling during tool use.
|
|
269
290
|
* When set to false, the model will use at most one tool per response.
|
|
270
291
|
*
|
|
271
292
|
* @default true
|
|
272
293
|
*/
|
|
273
|
-
parallelToolCalls:
|
|
294
|
+
parallelToolCalls: import_v42.z.boolean().optional(),
|
|
274
295
|
/**
|
|
275
296
|
* Controls the reasoning effort for models that support adjustable reasoning.
|
|
276
297
|
*
|
|
277
298
|
* - `'high'`: Enable reasoning
|
|
278
299
|
* - `'none'`: Disable reasoning
|
|
279
300
|
*/
|
|
280
|
-
reasoningEffort:
|
|
301
|
+
reasoningEffort: import_v42.z.enum(["high", "none"]).optional()
|
|
281
302
|
});
|
|
282
303
|
|
|
283
304
|
// src/mistral-error.ts
|
|
284
305
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
285
|
-
var
|
|
286
|
-
var mistralErrorDataSchema =
|
|
287
|
-
object:
|
|
288
|
-
message:
|
|
289
|
-
type:
|
|
290
|
-
param:
|
|
291
|
-
code:
|
|
306
|
+
var import_v43 = require("zod/v4");
|
|
307
|
+
var mistralErrorDataSchema = import_v43.z.object({
|
|
308
|
+
object: import_v43.z.literal("error"),
|
|
309
|
+
message: import_v43.z.string(),
|
|
310
|
+
type: import_v43.z.string(),
|
|
311
|
+
param: import_v43.z.string().nullable(),
|
|
312
|
+
code: import_v43.z.string().nullable()
|
|
292
313
|
});
|
|
293
314
|
var mistralFailedResponseHandler = (0, import_provider_utils2.createJsonErrorResponseHandler)({
|
|
294
315
|
errorSchema: mistralErrorDataSchema,
|
|
@@ -737,93 +758,85 @@ function extractTextContent(content) {
|
|
|
737
758
|
}
|
|
738
759
|
return textContent.length ? textContent.join("") : void 0;
|
|
739
760
|
}
|
|
740
|
-
var mistralContentSchema =
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
type:
|
|
746
|
-
text:
|
|
761
|
+
var mistralContentSchema = import_v44.z.union([
|
|
762
|
+
import_v44.z.string(),
|
|
763
|
+
import_v44.z.array(
|
|
764
|
+
import_v44.z.discriminatedUnion("type", [
|
|
765
|
+
import_v44.z.object({
|
|
766
|
+
type: import_v44.z.literal("text"),
|
|
767
|
+
text: import_v44.z.string()
|
|
747
768
|
}),
|
|
748
|
-
|
|
749
|
-
type:
|
|
750
|
-
image_url:
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
url:
|
|
754
|
-
detail:
|
|
769
|
+
import_v44.z.object({
|
|
770
|
+
type: import_v44.z.literal("image_url"),
|
|
771
|
+
image_url: import_v44.z.union([
|
|
772
|
+
import_v44.z.string(),
|
|
773
|
+
import_v44.z.object({
|
|
774
|
+
url: import_v44.z.string(),
|
|
775
|
+
detail: import_v44.z.string().nullable()
|
|
755
776
|
})
|
|
756
777
|
])
|
|
757
778
|
}),
|
|
758
|
-
|
|
759
|
-
type:
|
|
760
|
-
reference_ids:
|
|
779
|
+
import_v44.z.object({
|
|
780
|
+
type: import_v44.z.literal("reference"),
|
|
781
|
+
reference_ids: import_v44.z.array(import_v44.z.union([import_v44.z.string(), import_v44.z.number()]))
|
|
761
782
|
}),
|
|
762
|
-
|
|
763
|
-
type:
|
|
764
|
-
thinking:
|
|
765
|
-
|
|
766
|
-
type:
|
|
767
|
-
text:
|
|
783
|
+
import_v44.z.object({
|
|
784
|
+
type: import_v44.z.literal("thinking"),
|
|
785
|
+
thinking: import_v44.z.array(
|
|
786
|
+
import_v44.z.object({
|
|
787
|
+
type: import_v44.z.literal("text"),
|
|
788
|
+
text: import_v44.z.string()
|
|
768
789
|
})
|
|
769
790
|
)
|
|
770
791
|
})
|
|
771
792
|
])
|
|
772
793
|
)
|
|
773
794
|
]).nullish();
|
|
774
|
-
var
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
var mistralChatResponseSchema = import_v43.z.object({
|
|
783
|
-
id: import_v43.z.string().nullish(),
|
|
784
|
-
created: import_v43.z.number().nullish(),
|
|
785
|
-
model: import_v43.z.string().nullish(),
|
|
786
|
-
choices: import_v43.z.array(
|
|
787
|
-
import_v43.z.object({
|
|
788
|
-
message: import_v43.z.object({
|
|
789
|
-
role: import_v43.z.literal("assistant"),
|
|
795
|
+
var mistralChatResponseSchema = import_v44.z.object({
|
|
796
|
+
id: import_v44.z.string().nullish(),
|
|
797
|
+
created: import_v44.z.number().nullish(),
|
|
798
|
+
model: import_v44.z.string().nullish(),
|
|
799
|
+
choices: import_v44.z.array(
|
|
800
|
+
import_v44.z.object({
|
|
801
|
+
message: import_v44.z.object({
|
|
802
|
+
role: import_v44.z.literal("assistant"),
|
|
790
803
|
content: mistralContentSchema,
|
|
791
|
-
tool_calls:
|
|
792
|
-
|
|
793
|
-
id:
|
|
794
|
-
function:
|
|
804
|
+
tool_calls: import_v44.z.array(
|
|
805
|
+
import_v44.z.object({
|
|
806
|
+
id: import_v44.z.string(),
|
|
807
|
+
function: import_v44.z.object({ name: import_v44.z.string(), arguments: import_v44.z.string() })
|
|
795
808
|
})
|
|
796
809
|
).nullish()
|
|
797
810
|
}),
|
|
798
|
-
index:
|
|
799
|
-
finish_reason:
|
|
811
|
+
index: import_v44.z.number(),
|
|
812
|
+
finish_reason: import_v44.z.string().nullish()
|
|
800
813
|
})
|
|
801
814
|
),
|
|
802
|
-
object:
|
|
815
|
+
object: import_v44.z.literal("chat.completion"),
|
|
803
816
|
usage: mistralUsageSchema
|
|
804
817
|
});
|
|
805
|
-
var mistralChatChunkSchema =
|
|
806
|
-
id:
|
|
807
|
-
created:
|
|
808
|
-
model:
|
|
809
|
-
choices:
|
|
810
|
-
|
|
811
|
-
delta:
|
|
812
|
-
role:
|
|
818
|
+
var mistralChatChunkSchema = import_v44.z.object({
|
|
819
|
+
id: import_v44.z.string().nullish(),
|
|
820
|
+
created: import_v44.z.number().nullish(),
|
|
821
|
+
model: import_v44.z.string().nullish(),
|
|
822
|
+
choices: import_v44.z.array(
|
|
823
|
+
import_v44.z.object({
|
|
824
|
+
delta: import_v44.z.object({
|
|
825
|
+
role: import_v44.z.enum(["assistant"]).optional(),
|
|
813
826
|
content: mistralContentSchema,
|
|
814
|
-
tool_calls:
|
|
815
|
-
|
|
816
|
-
index:
|
|
817
|
-
id:
|
|
818
|
-
function:
|
|
819
|
-
name:
|
|
820
|
-
arguments:
|
|
827
|
+
tool_calls: import_v44.z.array(
|
|
828
|
+
import_v44.z.object({
|
|
829
|
+
index: import_v44.z.number().nullish(),
|
|
830
|
+
id: import_v44.z.string().nullish(),
|
|
831
|
+
function: import_v44.z.object({
|
|
832
|
+
name: import_v44.z.string().nullish(),
|
|
833
|
+
arguments: import_v44.z.string().nullish()
|
|
821
834
|
})
|
|
822
835
|
})
|
|
823
836
|
).nullish()
|
|
824
837
|
}),
|
|
825
|
-
finish_reason:
|
|
826
|
-
index:
|
|
838
|
+
finish_reason: import_v44.z.string().nullish(),
|
|
839
|
+
index: import_v44.z.number()
|
|
827
840
|
})
|
|
828
841
|
),
|
|
829
842
|
usage: mistralUsageSchema.nullish()
|
|
@@ -832,7 +845,7 @@ var mistralChatChunkSchema = import_v43.z.object({
|
|
|
832
845
|
// src/mistral-embedding-model.ts
|
|
833
846
|
var import_provider4 = require("@ai-sdk/provider");
|
|
834
847
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
835
|
-
var
|
|
848
|
+
var import_v45 = require("zod/v4");
|
|
836
849
|
var MistralEmbeddingModel = class {
|
|
837
850
|
constructor(modelId, config) {
|
|
838
851
|
this.specificationVersion = "v3";
|
|
@@ -884,24 +897,24 @@ var MistralEmbeddingModel = class {
|
|
|
884
897
|
};
|
|
885
898
|
}
|
|
886
899
|
};
|
|
887
|
-
var MistralTextEmbeddingResponseSchema =
|
|
888
|
-
data:
|
|
889
|
-
usage:
|
|
900
|
+
var MistralTextEmbeddingResponseSchema = import_v45.z.object({
|
|
901
|
+
data: import_v45.z.array(import_v45.z.object({ embedding: import_v45.z.array(import_v45.z.number()) })),
|
|
902
|
+
usage: import_v45.z.object({ prompt_tokens: import_v45.z.number() }).nullish()
|
|
890
903
|
});
|
|
891
904
|
|
|
892
905
|
// src/mistral-speech-model.ts
|
|
893
906
|
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
894
|
-
var
|
|
907
|
+
var import_v47 = require("zod/v4");
|
|
895
908
|
|
|
896
909
|
// src/mistral-speech-model-options.ts
|
|
897
|
-
var
|
|
898
|
-
var mistralSpeechModelOptions =
|
|
910
|
+
var import_v46 = require("zod/v4");
|
|
911
|
+
var mistralSpeechModelOptions = import_v46.z.object({
|
|
899
912
|
/**
|
|
900
913
|
* Base64-encoded reference audio for one-off voice cloning.
|
|
901
914
|
*
|
|
902
915
|
* When provided, this takes precedence over the standard `voice` option.
|
|
903
916
|
*/
|
|
904
|
-
refAudio:
|
|
917
|
+
refAudio: import_v46.z.string().min(1).optional()
|
|
905
918
|
});
|
|
906
919
|
|
|
907
920
|
// src/mistral-speech-model.ts
|
|
@@ -1016,12 +1029,12 @@ var MistralSpeechModel = class {
|
|
|
1016
1029
|
};
|
|
1017
1030
|
}
|
|
1018
1031
|
};
|
|
1019
|
-
var mistralSpeechResponseSchema =
|
|
1020
|
-
audio_data:
|
|
1032
|
+
var mistralSpeechResponseSchema = import_v47.z.object({
|
|
1033
|
+
audio_data: import_v47.z.string()
|
|
1021
1034
|
});
|
|
1022
1035
|
|
|
1023
1036
|
// src/version.ts
|
|
1024
|
-
var VERSION = true ? "3.0.
|
|
1037
|
+
var VERSION = true ? "3.0.63" : "0.0.0-test";
|
|
1025
1038
|
|
|
1026
1039
|
// src/mistral-provider.ts
|
|
1027
1040
|
function createMistral(options = {}) {
|