@ai-sdk/openai 2.0.113 → 2.0.115

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.
@@ -122,7 +122,8 @@ declare class OpenAIEmbeddingModel implements EmbeddingModelV2<string> {
122
122
 
123
123
  type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | (string & {});
124
124
  declare const modelMaxImagesPerCall: Record<OpenAIImageModelId, number>;
125
- declare const hasDefaultResponseFormat: Set<string>;
125
+ declare function hasDefaultResponseFormat(modelId: string): boolean;
126
+ declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number;
126
127
  declare const openaiImageModelOptions: _ai_sdk_provider_utils.LazyValidator<{
127
128
  quality?: "auto" | "low" | "medium" | "high" | "standard" | "hd" | undefined;
128
129
  background?: "auto" | "transparent" | "opaque" | undefined;
@@ -582,4 +583,4 @@ declare const webSearchPreview: _ai_sdk_provider_utils.ProviderDefinedToolFactor
582
583
  };
583
584
  }>;
584
585
 
585
- export { OpenAIChatLanguageModel, type OpenAIChatLanguageModelOptions, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, type OpenAICompletionProviderOptions, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingProviderOptions, OpenAIImageModel, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, OpenAIResponsesLanguageModel, type OpenAISpeechCallOptions, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionProviderOptions, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionProviderOptions, openaiChatLanguageModelOptions, openaiCompletionProviderOptions, openaiEmbeddingProviderOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiSpeechProviderOptionsSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema };
586
+ export { OpenAIChatLanguageModel, type OpenAIChatLanguageModelOptions, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, type OpenAICompletionProviderOptions, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingProviderOptions, OpenAIImageModel, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, OpenAIResponsesLanguageModel, type OpenAISpeechCallOptions, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionProviderOptions, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, getMaxImagesPerCall, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionProviderOptions, openaiChatLanguageModelOptions, openaiCompletionProviderOptions, openaiEmbeddingProviderOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiSpeechProviderOptionsSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema };
@@ -122,7 +122,8 @@ declare class OpenAIEmbeddingModel implements EmbeddingModelV2<string> {
122
122
 
123
123
  type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | (string & {});
124
124
  declare const modelMaxImagesPerCall: Record<OpenAIImageModelId, number>;
125
- declare const hasDefaultResponseFormat: Set<string>;
125
+ declare function hasDefaultResponseFormat(modelId: string): boolean;
126
+ declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number;
126
127
  declare const openaiImageModelOptions: _ai_sdk_provider_utils.LazyValidator<{
127
128
  quality?: "auto" | "low" | "medium" | "high" | "standard" | "hd" | undefined;
128
129
  background?: "auto" | "transparent" | "opaque" | undefined;
@@ -582,4 +583,4 @@ declare const webSearchPreview: _ai_sdk_provider_utils.ProviderDefinedToolFactor
582
583
  };
583
584
  }>;
584
585
 
585
- export { OpenAIChatLanguageModel, type OpenAIChatLanguageModelOptions, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, type OpenAICompletionProviderOptions, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingProviderOptions, OpenAIImageModel, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, OpenAIResponsesLanguageModel, type OpenAISpeechCallOptions, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionProviderOptions, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionProviderOptions, openaiChatLanguageModelOptions, openaiCompletionProviderOptions, openaiEmbeddingProviderOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiSpeechProviderOptionsSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema };
586
+ export { OpenAIChatLanguageModel, type OpenAIChatLanguageModelOptions, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, type OpenAICompletionProviderOptions, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingProviderOptions, OpenAIImageModel, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, OpenAIResponsesLanguageModel, type OpenAISpeechCallOptions, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionProviderOptions, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, getMaxImagesPerCall, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionProviderOptions, openaiChatLanguageModelOptions, openaiCompletionProviderOptions, openaiEmbeddingProviderOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiSpeechProviderOptionsSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema };
@@ -35,6 +35,7 @@ __export(index_exports, {
35
35
  fileSearch: () => fileSearch,
36
36
  fileSearchArgsSchema: () => fileSearchArgsSchema,
37
37
  fileSearchOutputSchema: () => fileSearchOutputSchema,
38
+ getMaxImagesPerCall: () => getMaxImagesPerCall,
38
39
  hasDefaultResponseFormat: () => hasDefaultResponseFormat,
39
40
  imageGeneration: () => imageGeneration,
40
41
  imageGenerationArgsSchema: () => imageGenerationArgsSchema,
@@ -78,10 +79,15 @@ var openaiFailedResponseHandler = (0, import_provider_utils.createJsonErrorRespo
78
79
 
79
80
  // src/openai-language-model-capabilities.ts
80
81
  function getOpenAILanguageModelCapabilities(modelId) {
81
- const supportsFlexProcessing = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
82
- const supportsPriorityProcessing = modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") && !modelId.startsWith("gpt-5.4-nano") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
83
- const isReasoningModel = !(modelId.startsWith("gpt-3") || modelId.startsWith("gpt-4") || modelId.startsWith("chatgpt-4o") || modelId.startsWith("gpt-5-chat"));
84
- const supportsNonReasoningParameters = modelId.startsWith("gpt-5.1") || modelId.startsWith("gpt-5.2") || modelId.startsWith("gpt-5.3") || modelId.startsWith("gpt-5.4") || modelId.startsWith("gpt-5.6");
82
+ var _a, _b, _c, _d, _e;
83
+ const oSeriesVersion = getOSeriesVersion(modelId);
84
+ const gptVersion = getGptVersion(modelId);
85
+ const isGptChatModel = (gptVersion == null ? void 0 : gptVersion.minor) == null && ((_b = (_a = gptVersion == null ? void 0 : gptVersion.variant) == null ? void 0 : _a.startsWith("chat")) != null ? _b : false);
86
+ const isGptNanoModel = (_d = (_c = gptVersion == null ? void 0 : gptVersion.variant) == null ? void 0 : _c.startsWith("nano")) != null ? _d : false;
87
+ const supportsFlexProcessing = oSeriesVersion != null && oSeriesVersion >= 3 || gptVersion != null && gptVersion.major >= 5 && !isGptChatModel;
88
+ const supportsPriorityProcessing = modelId.startsWith("gpt-4") || gptVersion != null && gptVersion.major >= 5 && !isGptNanoModel && !isGptChatModel || oSeriesVersion != null && oSeriesVersion >= 3;
89
+ const isReasoningModel = oSeriesVersion != null || gptVersion != null && gptVersion.major >= 5 && !isGptChatModel || modelId === "codex-mini-latest" || modelId === "computer-use-preview";
90
+ const supportsNonReasoningParameters = gptVersion != null && (gptVersion.major > 5 || gptVersion.major === 5 && ((_e = gptVersion.minor) != null ? _e : 0) >= 1);
85
91
  const systemMessageMode = isReasoningModel ? "developer" : "system";
86
92
  return {
87
93
  supportsFlexProcessing,
@@ -91,6 +97,21 @@ function getOpenAILanguageModelCapabilities(modelId) {
91
97
  supportsNonReasoningParameters
92
98
  };
93
99
  }
100
+ function getOSeriesVersion(modelId) {
101
+ const match = /^o(\d+)(?:-|$)/.exec(modelId);
102
+ return match == null ? void 0 : Number(match[1]);
103
+ }
104
+ function getGptVersion(modelId) {
105
+ const match = /^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(modelId);
106
+ if (match == null) {
107
+ return void 0;
108
+ }
109
+ return {
110
+ major: Number(match[1]),
111
+ minor: match[2] == null ? void 0 : Number(match[2]),
112
+ variant: match[3]
113
+ };
114
+ }
94
115
 
95
116
  // src/chat/convert-to-openai-chat-messages.ts
96
117
  var import_provider = require("@ai-sdk/provider");
@@ -1792,12 +1813,16 @@ var modelMaxImagesPerCall = {
1792
1813
  "gpt-image-1.5": 10,
1793
1814
  "gpt-image-2": 10
1794
1815
  };
1795
- var hasDefaultResponseFormat = /* @__PURE__ */ new Set([
1796
- "gpt-image-1",
1797
- "gpt-image-1-mini",
1798
- "gpt-image-1.5",
1799
- "gpt-image-2"
1800
- ]);
1816
+ var defaultResponseFormatPrefixes = ["gpt-image-"];
1817
+ function hasDefaultResponseFormat(modelId) {
1818
+ return defaultResponseFormatPrefixes.some(
1819
+ (prefix) => modelId.startsWith(prefix)
1820
+ );
1821
+ }
1822
+ function getMaxImagesPerCall(modelId) {
1823
+ var _a;
1824
+ return (_a = modelMaxImagesPerCall[modelId]) != null ? _a : modelId.startsWith("gpt-image-") ? 10 : 1;
1825
+ }
1801
1826
  var baseImageModelOptionsObject = import_v49.z.object({
1802
1827
  /**
1803
1828
  * Quality of the generated image(s).
@@ -1856,8 +1881,7 @@ var OpenAIImageModel = class {
1856
1881
  this.specificationVersion = "v2";
1857
1882
  }
1858
1883
  get maxImagesPerCall() {
1859
- var _a;
1860
- return (_a = modelMaxImagesPerCall[this.modelId]) != null ? _a : 1;
1884
+ return getMaxImagesPerCall(this.modelId);
1861
1885
  }
1862
1886
  get provider() {
1863
1887
  return this.config.provider;
@@ -1908,7 +1932,7 @@ var OpenAIImageModel = class {
1908
1932
  output_format: openaiOptions.outputFormat,
1909
1933
  output_compression: openaiOptions.outputCompression,
1910
1934
  user: openaiOptions.user,
1911
- ...!hasDefaultResponseFormat.has(this.modelId) ? { response_format: "b64_json" } : {}
1935
+ ...!hasDefaultResponseFormat(this.modelId) ? { response_format: "b64_json" } : {}
1912
1936
  },
1913
1937
  failedResponseHandler: openaiFailedResponseHandler,
1914
1938
  successfulResponseHandler: (0, import_provider_utils14.createJsonResponseHandler)(
@@ -4942,6 +4966,7 @@ function getResponsesUsageMetadata(usage) {
4942
4966
  fileSearch,
4943
4967
  fileSearchArgsSchema,
4944
4968
  fileSearchOutputSchema,
4969
+ getMaxImagesPerCall,
4945
4970
  hasDefaultResponseFormat,
4946
4971
  imageGeneration,
4947
4972
  imageGenerationArgsSchema,