@ai-sdk/openai 3.0.110 → 3.0.111
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 +7 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -1
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +10 -3
- package/dist/internal/index.d.ts +10 -3
- package/dist/internal/index.js +10 -0
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +10 -0
- package/dist/internal/index.mjs.map +1 -1
- package/docs/03-openai.mdx +21 -12
- package/package.json +1 -1
- package/src/image/openai-image-model-options.ts +8 -0
- package/src/openai-config.ts +5 -0
- package/src/responses/convert-to-openai-responses-input.ts +6 -0
- package/src/responses/openai-responses-api.ts +3 -0
- package/src/responses/openai-responses-language-model.ts +1 -0
- package/src/tool/image-generation.ts +4 -2
|
@@ -92,6 +92,11 @@ type OpenAIConfig = {
|
|
|
92
92
|
headers: () => Record<string, string | undefined>;
|
|
93
93
|
fetch?: FetchFunction;
|
|
94
94
|
generateId?: () => string;
|
|
95
|
+
/**
|
|
96
|
+
* Whether Responses API message input items must include an explicit
|
|
97
|
+
* `type: 'message'` discriminator.
|
|
98
|
+
*/
|
|
99
|
+
explicitMessageItemType?: boolean;
|
|
95
100
|
/**
|
|
96
101
|
* File ID prefixes used to identify file IDs in Responses API.
|
|
97
102
|
* When undefined, all file data is treated as base64 content.
|
|
@@ -122,7 +127,7 @@ declare class OpenAIEmbeddingModel implements EmbeddingModelV3 {
|
|
|
122
127
|
doEmbed({ values, headers, abortSignal, providerOptions, }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>>;
|
|
123
128
|
}
|
|
124
129
|
|
|
125
|
-
type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | 'chatgpt-image-latest' | (string & {});
|
|
130
|
+
type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | 'gpt-image-2.5-flare' | 'gpt-image-2.5-flare-2026-09-08' | 'gpt-image-2.5-sunburst' | 'gpt-image-2.5-sunburst-2026-09-08' | 'chatgpt-image-latest' | (string & {});
|
|
126
131
|
declare const modelMaxImagesPerCall: Record<OpenAIImageModelId, number>;
|
|
127
132
|
declare function hasDefaultResponseFormat(modelId: string): boolean;
|
|
128
133
|
declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number;
|
|
@@ -1179,10 +1184,12 @@ type ImageGenerationArgs = {
|
|
|
1179
1184
|
quality?: 'auto' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
1180
1185
|
/**
|
|
1181
1186
|
* The size of the generated image.
|
|
1182
|
-
* One of 1024x1024, 1024x1536, 1536x1024, or auto.
|
|
1187
|
+
* One of 1024x1024, 1024x1536, 1536x1024, or auto. GPT Image 2 and 2.5
|
|
1188
|
+
* models also accept arbitrary WIDTHxHEIGHT sizes where both are divisible
|
|
1189
|
+
* by 16, e.g. 1536x864.
|
|
1183
1190
|
* Default: auto.
|
|
1184
1191
|
*/
|
|
1185
|
-
size?: 'auto' | '1024x1024' | '1024x1536' | '1536x1024';
|
|
1192
|
+
size?: 'auto' | '1024x1024' | '1024x1536' | '1536x1024' | (string & {});
|
|
1186
1193
|
};
|
|
1187
1194
|
declare const imageGeneration: (args?: ImageGenerationArgs) => _ai_sdk_provider_utils.Tool<{}, {
|
|
1188
1195
|
/**
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -92,6 +92,11 @@ type OpenAIConfig = {
|
|
|
92
92
|
headers: () => Record<string, string | undefined>;
|
|
93
93
|
fetch?: FetchFunction;
|
|
94
94
|
generateId?: () => string;
|
|
95
|
+
/**
|
|
96
|
+
* Whether Responses API message input items must include an explicit
|
|
97
|
+
* `type: 'message'` discriminator.
|
|
98
|
+
*/
|
|
99
|
+
explicitMessageItemType?: boolean;
|
|
95
100
|
/**
|
|
96
101
|
* File ID prefixes used to identify file IDs in Responses API.
|
|
97
102
|
* When undefined, all file data is treated as base64 content.
|
|
@@ -122,7 +127,7 @@ declare class OpenAIEmbeddingModel implements EmbeddingModelV3 {
|
|
|
122
127
|
doEmbed({ values, headers, abortSignal, providerOptions, }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>>;
|
|
123
128
|
}
|
|
124
129
|
|
|
125
|
-
type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | 'chatgpt-image-latest' | (string & {});
|
|
130
|
+
type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | 'gpt-image-2.5-flare' | 'gpt-image-2.5-flare-2026-09-08' | 'gpt-image-2.5-sunburst' | 'gpt-image-2.5-sunburst-2026-09-08' | 'chatgpt-image-latest' | (string & {});
|
|
126
131
|
declare const modelMaxImagesPerCall: Record<OpenAIImageModelId, number>;
|
|
127
132
|
declare function hasDefaultResponseFormat(modelId: string): boolean;
|
|
128
133
|
declare function getMaxImagesPerCall(modelId: OpenAIImageModelId): number;
|
|
@@ -1179,10 +1184,12 @@ type ImageGenerationArgs = {
|
|
|
1179
1184
|
quality?: 'auto' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
1180
1185
|
/**
|
|
1181
1186
|
* The size of the generated image.
|
|
1182
|
-
* One of 1024x1024, 1024x1536, 1536x1024, or auto.
|
|
1187
|
+
* One of 1024x1024, 1024x1536, 1536x1024, or auto. GPT Image 2 and 2.5
|
|
1188
|
+
* models also accept arbitrary WIDTHxHEIGHT sizes where both are divisible
|
|
1189
|
+
* by 16, e.g. 1536x864.
|
|
1183
1190
|
* Default: auto.
|
|
1184
1191
|
*/
|
|
1185
|
-
size?: 'auto' | '1024x1024' | '1024x1536' | '1536x1024';
|
|
1192
|
+
size?: 'auto' | '1024x1024' | '1024x1536' | '1536x1024' | (string & {});
|
|
1186
1193
|
};
|
|
1187
1194
|
declare const imageGeneration: (args?: ImageGenerationArgs) => _ai_sdk_provider_utils.Tool<{}, {
|
|
1188
1195
|
/**
|
package/dist/internal/index.js
CHANGED
|
@@ -2092,6 +2092,10 @@ var modelMaxImagesPerCall = {
|
|
|
2092
2092
|
"gpt-image-1-mini": 10,
|
|
2093
2093
|
"gpt-image-1.5": 10,
|
|
2094
2094
|
"gpt-image-2": 10,
|
|
2095
|
+
"gpt-image-2.5-flare": 10,
|
|
2096
|
+
"gpt-image-2.5-flare-2026-09-08": 10,
|
|
2097
|
+
"gpt-image-2.5-sunburst": 10,
|
|
2098
|
+
"gpt-image-2.5-sunburst-2026-09-08": 10,
|
|
2095
2099
|
"chatgpt-image-latest": 10
|
|
2096
2100
|
};
|
|
2097
2101
|
var defaultResponseFormatPrefixes = ["chatgpt-image-", "gpt-image-"];
|
|
@@ -3231,6 +3235,7 @@ async function convertToOpenAIResponsesInput({
|
|
|
3231
3235
|
toolNameMapping,
|
|
3232
3236
|
systemMessageMode,
|
|
3233
3237
|
providerOptionsName,
|
|
3238
|
+
explicitMessageItemType = false,
|
|
3234
3239
|
fileIdPrefixes,
|
|
3235
3240
|
passThroughUnsupportedFiles = false,
|
|
3236
3241
|
store,
|
|
@@ -3262,6 +3267,7 @@ async function convertToOpenAIResponsesInput({
|
|
|
3262
3267
|
providerOptionsName
|
|
3263
3268
|
);
|
|
3264
3269
|
input.push({
|
|
3270
|
+
...explicitMessageItemType && { type: "message" },
|
|
3265
3271
|
role: "system",
|
|
3266
3272
|
content: promptCacheBreakpoint == null ? content : [
|
|
3267
3273
|
{
|
|
@@ -3279,6 +3285,7 @@ async function convertToOpenAIResponsesInput({
|
|
|
3279
3285
|
providerOptionsName
|
|
3280
3286
|
);
|
|
3281
3287
|
input.push({
|
|
3288
|
+
...explicitMessageItemType && { type: "message" },
|
|
3282
3289
|
role: "developer",
|
|
3283
3290
|
content: promptCacheBreakpoint == null ? content : [
|
|
3284
3291
|
{
|
|
@@ -3308,6 +3315,7 @@ async function convertToOpenAIResponsesInput({
|
|
|
3308
3315
|
}
|
|
3309
3316
|
case "user": {
|
|
3310
3317
|
input.push({
|
|
3318
|
+
...explicitMessageItemType && { type: "message" },
|
|
3311
3319
|
role: "user",
|
|
3312
3320
|
content: content.map((part, index) => {
|
|
3313
3321
|
var _a3, _b2, _c2;
|
|
@@ -3389,6 +3397,7 @@ async function convertToOpenAIResponsesInput({
|
|
|
3389
3397
|
break;
|
|
3390
3398
|
}
|
|
3391
3399
|
input.push({
|
|
3400
|
+
...explicitMessageItemType && { type: "message" },
|
|
3392
3401
|
role: "assistant",
|
|
3393
3402
|
content: [{ type: "output_text", text: part.text }],
|
|
3394
3403
|
id,
|
|
@@ -6148,6 +6157,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
6148
6157
|
toolNameMapping,
|
|
6149
6158
|
systemMessageMode: (_c = openaiOptions == null ? void 0 : openaiOptions.systemMessageMode) != null ? _c : isReasoningModel ? "developer" : modelCapabilities.systemMessageMode,
|
|
6150
6159
|
providerOptionsName,
|
|
6160
|
+
explicitMessageItemType: this.config.explicitMessageItemType,
|
|
6151
6161
|
fileIdPrefixes: this.config.fileIdPrefixes,
|
|
6152
6162
|
passThroughUnsupportedFiles: (_d = openaiOptions == null ? void 0 : openaiOptions.passThroughUnsupportedFiles) != null ? _d : false,
|
|
6153
6163
|
store: (_e = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _e : true,
|