@ai-sdk/openai-compatible 2.0.68 → 2.0.69

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,25 @@
1
1
  # @ai-sdk/openai-compatible
2
2
 
3
+ ## 2.0.69
4
+
5
+ ### Patch Changes
6
+
7
+ - 7440d89: fix(openai-compatible): preserve unmapped usage fields in `usage.raw`
8
+
9
+ `usage.raw` is specified as usage "in the shape that the provider returns",
10
+ and the chat model already parsed the usage object loosely so that extra
11
+ top-level fields survived. The nested `prompt_tokens_details` and
12
+ `completion_tokens_details` objects were still strict, so anything a provider
13
+ reported inside them was dropped — which is where providers put their most
14
+ distinguishing detail. The existing "should preserve extra usage fields"
15
+ fixture was itself losing `audio_tokens`, `image_tokens` and `text_tokens`
16
+ this way.
17
+
18
+ Both nested objects are now parsed loosely, as is the completion model's usage
19
+ schema, which was strict throughout despite feeding the same `raw` field.
20
+
21
+ Only `usage.raw` changes. The mapped token counts are unaffected.
22
+
3
23
  ## 2.0.68
4
24
 
5
25
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -123,12 +123,12 @@ declare const openaiCompatibleTokenUsageSchema: z.ZodOptional<z.ZodNullable<z.Zo
123
123
  total_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
124
124
  prompt_tokens_details: z.ZodOptional<z.ZodNullable<z.ZodObject<{
125
125
  cached_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
126
- }, z.core.$strip>>>;
126
+ }, z.core.$loose>>>;
127
127
  completion_tokens_details: z.ZodOptional<z.ZodNullable<z.ZodObject<{
128
128
  reasoning_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
129
129
  accepted_prediction_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
130
130
  rejected_prediction_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
131
- }, z.core.$strip>>>;
131
+ }, z.core.$loose>>>;
132
132
  }, z.core.$loose>>>;
133
133
 
134
134
  type OpenAICompatibleCompletionModelId = string;
package/dist/index.d.ts CHANGED
@@ -123,12 +123,12 @@ declare const openaiCompatibleTokenUsageSchema: z.ZodOptional<z.ZodNullable<z.Zo
123
123
  total_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
124
124
  prompt_tokens_details: z.ZodOptional<z.ZodNullable<z.ZodObject<{
125
125
  cached_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
126
- }, z.core.$strip>>>;
126
+ }, z.core.$loose>>>;
127
127
  completion_tokens_details: z.ZodOptional<z.ZodNullable<z.ZodObject<{
128
128
  reasoning_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
129
129
  accepted_prediction_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
130
130
  rejected_prediction_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
131
- }, z.core.$strip>>>;
131
+ }, z.core.$loose>>>;
132
132
  }, z.core.$loose>>>;
133
133
 
134
134
  type OpenAICompatibleCompletionModelId = string;
package/dist/index.js CHANGED
@@ -942,10 +942,10 @@ var openaiCompatibleTokenUsageSchema = import_v43.z.looseObject({
942
942
  prompt_tokens: import_v43.z.number().nullish(),
943
943
  completion_tokens: import_v43.z.number().nullish(),
944
944
  total_tokens: import_v43.z.number().nullish(),
945
- prompt_tokens_details: import_v43.z.object({
945
+ prompt_tokens_details: import_v43.z.looseObject({
946
946
  cached_tokens: import_v43.z.number().nullish()
947
947
  }).nullish(),
948
- completion_tokens_details: import_v43.z.object({
948
+ completion_tokens_details: import_v43.z.looseObject({
949
949
  reasoning_tokens: import_v43.z.number().nullish(),
950
950
  accepted_prediction_tokens: import_v43.z.number().nullish(),
951
951
  rejected_prediction_tokens: import_v43.z.number().nullish()
@@ -1426,7 +1426,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
1426
1426
  };
1427
1427
  }
1428
1428
  };
1429
- var usageSchema = import_v45.z.object({
1429
+ var usageSchema = import_v45.z.looseObject({
1430
1430
  prompt_tokens: import_v45.z.number(),
1431
1431
  completion_tokens: import_v45.z.number(),
1432
1432
  total_tokens: import_v45.z.number()
@@ -1718,7 +1718,7 @@ async function fileToBlob(file) {
1718
1718
  var import_provider_utils6 = require("@ai-sdk/provider-utils");
1719
1719
 
1720
1720
  // src/version.ts
1721
- var VERSION = true ? "2.0.68" : "0.0.0-test";
1721
+ var VERSION = true ? "2.0.69" : "0.0.0-test";
1722
1722
 
1723
1723
  // src/openai-compatible-provider.ts
1724
1724
  function createOpenAICompatible(options) {