@ai-sdk/openai 2.0.22 → 2.0.24

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/dist/index.mjs CHANGED
@@ -2483,6 +2483,7 @@ var OpenAIResponsesLanguageModel = class {
2483
2483
  })
2484
2484
  ])
2485
2485
  ),
2486
+ service_tier: z13.string().nullish(),
2486
2487
  incomplete_details: z13.object({ reason: z13.string() }).nullable(),
2487
2488
  usage: usageSchema2
2488
2489
  })
@@ -2641,6 +2642,9 @@ var OpenAIResponsesLanguageModel = class {
2641
2642
  if (logprobs.length > 0) {
2642
2643
  providerMetadata.openai.logprobs = logprobs;
2643
2644
  }
2645
+ if (typeof response.service_tier === "string") {
2646
+ providerMetadata.openai.serviceTier = response.service_tier;
2647
+ }
2644
2648
  return {
2645
2649
  content,
2646
2650
  finishReason: mapOpenAIResponseFinishReason({
@@ -2697,6 +2701,7 @@ var OpenAIResponsesLanguageModel = class {
2697
2701
  const ongoingToolCalls = {};
2698
2702
  let hasToolCalls = false;
2699
2703
  const activeReasoning = {};
2704
+ let serviceTier;
2700
2705
  return {
2701
2706
  stream: response.pipeThrough(
2702
2707
  new TransformStream({
@@ -2955,6 +2960,9 @@ var OpenAIResponsesLanguageModel = class {
2955
2960
  usage.totalTokens = value.response.usage.input_tokens + value.response.usage.output_tokens;
2956
2961
  usage.reasoningTokens = (_j = (_i = value.response.usage.output_tokens_details) == null ? void 0 : _i.reasoning_tokens) != null ? _j : void 0;
2957
2962
  usage.cachedInputTokens = (_l = (_k = value.response.usage.input_tokens_details) == null ? void 0 : _k.cached_tokens) != null ? _l : void 0;
2963
+ if (typeof value.response.service_tier === "string") {
2964
+ serviceTier = value.response.service_tier;
2965
+ }
2958
2966
  } else if (isResponseAnnotationAddedChunk(value)) {
2959
2967
  if (value.annotation.type === "url_citation") {
2960
2968
  controller.enqueue({
@@ -2987,6 +2995,9 @@ var OpenAIResponsesLanguageModel = class {
2987
2995
  if (logprobs.length > 0) {
2988
2996
  providerMetadata.openai.logprobs = logprobs;
2989
2997
  }
2998
+ if (serviceTier !== void 0) {
2999
+ providerMetadata.openai.serviceTier = serviceTier;
3000
+ }
2990
3001
  controller.enqueue({
2991
3002
  type: "finish",
2992
3003
  finishReason,
@@ -3024,7 +3035,8 @@ var responseFinishedChunkSchema = z13.object({
3024
3035
  type: z13.enum(["response.completed", "response.incomplete"]),
3025
3036
  response: z13.object({
3026
3037
  incomplete_details: z13.object({ reason: z13.string() }).nullish(),
3027
- usage: usageSchema2
3038
+ usage: usageSchema2,
3039
+ service_tier: z13.string().nullish()
3028
3040
  })
3029
3041
  });
3030
3042
  var responseCreatedChunkSchema = z13.object({
@@ -3032,7 +3044,8 @@ var responseCreatedChunkSchema = z13.object({
3032
3044
  response: z13.object({
3033
3045
  id: z13.string(),
3034
3046
  created_at: z13.number(),
3035
- model: z13.string()
3047
+ model: z13.string(),
3048
+ service_tier: z13.string().nullish()
3036
3049
  })
3037
3050
  });
3038
3051
  var responseOutputItemAddedSchema = z13.object({
@@ -3405,6 +3418,7 @@ import {
3405
3418
  combineHeaders as combineHeaders7,
3406
3419
  convertBase64ToUint8Array,
3407
3420
  createJsonResponseHandler as createJsonResponseHandler6,
3421
+ mediaTypeToExtension,
3408
3422
  parseProviderOptions as parseProviderOptions7,
3409
3423
  postFormDataToApi
3410
3424
  } from "@ai-sdk/provider-utils";
@@ -3520,7 +3534,12 @@ var OpenAITranscriptionModel = class {
3520
3534
  const formData = new FormData();
3521
3535
  const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);
3522
3536
  formData.append("model", this.modelId);
3523
- formData.append("file", new File([blob], "audio", { type: mediaType }));
3537
+ const fileExtension = mediaTypeToExtension(mediaType);
3538
+ formData.append(
3539
+ "file",
3540
+ new File([blob], "audio", { type: mediaType }),
3541
+ `audio.${fileExtension}`
3542
+ );
3524
3543
  if (openAIOptions) {
3525
3544
  const transcriptionModelOptions = {
3526
3545
  include: openAIOptions.include,