🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@ai-sdk/openai

Package Overview
Dependencies
Maintainers
3
Versions
624
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ai-sdk/openai - npm Package Compare versions

Comparing version
3.0.87
to
3.0.88
+2
-1
dist/internal/index.d.mts

@@ -127,2 +127,3 @@ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, EmbeddingModelV3, ImageModelV3, TranscriptionModelV3CallOptions, TranscriptionModelV3, SpeechModelV3, JSONValue } from '@ai-sdk/provider';

declare function hasDefaultResponseFormat(modelId: string): boolean;
declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number;
declare const openaiImageModelOptions: _ai_sdk_provider_utils.LazySchema<{

@@ -1438,2 +1439,2 @@ quality?: "auto" | "low" | "medium" | "high" | "standard" | "hd" | undefined;

export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory };
export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, getMaxImagesPerCall, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory };

@@ -127,2 +127,3 @@ import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, EmbeddingModelV3, ImageModelV3, TranscriptionModelV3CallOptions, TranscriptionModelV3, SpeechModelV3, JSONValue } from '@ai-sdk/provider';

declare function hasDefaultResponseFormat(modelId: string): boolean;
declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number;
declare const openaiImageModelOptions: _ai_sdk_provider_utils.LazySchema<{

@@ -1438,2 +1439,2 @@ quality?: "auto" | "low" | "medium" | "high" | "standard" | "hd" | undefined;

export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory };
export { type ApplyPatchOperation, OpenAIChatLanguageModel, type OpenAIChatModelId, OpenAICompletionLanguageModel, type OpenAICompletionModelId, OpenAIEmbeddingModel, type OpenAIEmbeddingModelId, type OpenAIEmbeddingModelOptions, OpenAIImageModel, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelId, type OpenAIImageModelOptions, type OpenAILanguageModelChatOptions, type OpenAILanguageModelCompletionOptions, OpenAIResponsesLanguageModel, OpenAISpeechModel, type OpenAISpeechModelId, type OpenAISpeechModelOptions, type OpenAITranscriptionCallOptions, OpenAITranscriptionModel, type OpenAITranscriptionModelId, type OpenAITranscriptionModelOptions, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type ResponsesProviderMetadata, type ResponsesReasoningProviderMetadata, type ResponsesSourceDocumentProviderMetadata, type ResponsesTextProviderMetadata, applyPatch, applyPatchArgsSchema, applyPatchInputSchema, applyPatchOutputSchema, applyPatchToolFactory, codeInterpreter, codeInterpreterArgsSchema, codeInterpreterInputSchema, codeInterpreterOutputSchema, codeInterpreterToolFactory, fileSearch, fileSearchArgsSchema, fileSearchOutputSchema, getMaxImagesPerCall, hasDefaultResponseFormat, imageGeneration, imageGenerationArgsSchema, imageGenerationOutputSchema, modelMaxImagesPerCall, openAITranscriptionModelOptions, openaiEmbeddingModelOptions, openaiImageModelEditOptions, openaiImageModelGenerationOptions, openaiImageModelOptions, openaiLanguageModelChatOptions, openaiLanguageModelCompletionOptions, openaiSpeechModelOptionsSchema, webSearch, webSearchArgsSchema, webSearchOutputSchema, webSearchPreview, webSearchPreviewArgsSchema, webSearchPreviewInputSchema, webSearchToolFactory };
{
"name": "@ai-sdk/openai",
"version": "3.0.87",
"version": "3.0.88",
"license": "Apache-2.0",

@@ -5,0 +5,0 @@ "sideEffects": false,

@@ -29,9 +29,3 @@ import {

const defaultResponseFormatPrefixes = [
'chatgpt-image-',
'gpt-image-1-mini',
'gpt-image-1.5',
'gpt-image-1',
'gpt-image-2',
];
const defaultResponseFormatPrefixes = ['chatgpt-image-', 'gpt-image-'];

@@ -44,2 +38,9 @@ export function hasDefaultResponseFormat(modelId: string): boolean {

export function getMaxImagesPerCall(modelId: OpenAIImageModelId): number {
return (
modelMaxImagesPerCall[modelId] ??
(modelId.startsWith('gpt-image-') ? 10 : 1)
);
}
const baseImageModelOptionsObject = z.object({

@@ -46,0 +47,0 @@ /**

@@ -20,4 +20,4 @@ import type {

import {
getMaxImagesPerCall,
hasDefaultResponseFormat,
modelMaxImagesPerCall,
openaiImageModelEditOptions,

@@ -39,3 +39,3 @@ openaiImageModelGenerationOptions,

get maxImagesPerCall(): number {
return modelMaxImagesPerCall[this.modelId] ?? 1;
return getMaxImagesPerCall(this.modelId);
}

@@ -42,0 +42,0 @@

@@ -16,23 +16,26 @@ export type OpenAILanguageModelCapabilities = {

): OpenAILanguageModelCapabilities {
const oSeriesVersion = getOSeriesVersion(modelId);
const gptVersion = getGptVersion(modelId);
const isGptChatModel =
gptVersion?.minor == null &&
(gptVersion?.variant?.startsWith('chat') ?? false);
const isGptNanoModel = gptVersion?.variant?.startsWith('nano') ?? false;
const supportsFlexProcessing =
modelId.startsWith('o3') ||
modelId.startsWith('o4-mini') ||
(modelId.startsWith('gpt-5') && !modelId.startsWith('gpt-5-chat'));
(oSeriesVersion != null && oSeriesVersion >= 3) ||
(gptVersion != null && gptVersion.major >= 5 && !isGptChatModel);
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');
(gptVersion != null &&
gptVersion.major >= 5 &&
!isGptNanoModel &&
!isGptChatModel) ||
(oSeriesVersion != null && oSeriesVersion >= 3);
// Use allowlist approach: only known reasoning models should use 'developer' role
// This prevents issues with fine-tuned models, third-party models, and custom models
// Only recognizable OpenAI model families should use the developer role.
// Fine-tuned, third-party, and custom model IDs keep conservative defaults.
const isReasoningModel =
modelId.startsWith('o1') ||
modelId.startsWith('o3') ||
modelId.startsWith('o4-mini') ||
(modelId.startsWith('gpt-5') && !modelId.startsWith('gpt-5-chat'));
oSeriesVersion != null ||
(gptVersion != null && gptVersion.major >= 5 && !isGptChatModel);

@@ -42,8 +45,5 @@ // https://platform.openai.com/docs/guides/latest-model#gpt-5-1-parameter-compatibility

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.5') ||
modelId.startsWith('gpt-5.6');
gptVersion != null &&
(gptVersion.major > 5 ||
(gptVersion.major === 5 && (gptVersion.minor ?? 0) >= 1));

@@ -60,1 +60,26 @@ const systemMessageMode = isReasoningModel ? 'developer' : 'system';

}
function getOSeriesVersion(modelId: string): number | undefined {
const match = /^o(\d+)(?:-|$)/.exec(modelId);
return match == null ? undefined : Number(match[1]);
}
function getGptVersion(modelId: string):
| {
major: number;
minor: number | undefined;
variant: string | undefined;
}
| undefined {
const match = /^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(modelId);
if (match == null) {
return undefined;
}
return {
major: Number(match[1]),
minor: match[2] == null ? undefined : Number(match[2]),
variant: match[3],
};
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display