@ai-sdk/openai 3.0.115 → 3.0.117
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 +22 -0
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +23 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -16
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +5 -5
- package/dist/internal/index.d.ts +5 -5
- package/dist/internal/index.js +22 -15
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +22 -15
- package/dist/internal/index.mjs.map +1 -1
- package/docs/03-openai.mdx +5 -3
- package/package.json +3 -3
- package/src/chat/openai-chat-api.ts +5 -0
- package/src/chat/openai-chat-language-model.ts +4 -1
- package/src/chat/openai-chat-options.ts +2 -0
- package/src/openai-language-model-capabilities.ts +7 -3
- package/src/openai-stream-error.ts +4 -0
- package/src/responses/openai-responses-api.ts +2 -2
- package/src/responses/openai-responses-language-model.ts +1 -1
- package/src/responses/openai-responses-options.ts +4 -0
package/docs/03-openai.mdx
CHANGED
|
@@ -206,9 +206,9 @@ The following provider options are available:
|
|
|
206
206
|
Reasoning effort for reasoning models. Defaults to `medium`. If you use `providerOptions` to set the `reasoningEffort` option, this model setting will be ignored.
|
|
207
207
|
|
|
208
208
|
<Note>
|
|
209
|
-
Supported reasoning efforts vary by model. GPT-5.6
|
|
210
|
-
`'medium'`, `'high'`, `'xhigh'`, and `'max'`. GPT-6
|
|
211
|
-
|
|
209
|
+
Supported reasoning efforts vary by model. GPT-5.6 and GPT-6 support `'none'`,
|
|
210
|
+
`'low'`, `'medium'`, `'high'`, `'xhigh'`, and `'max'`. GPT-6 Astra does not
|
|
211
|
+
support `'none'`.
|
|
212
212
|
</Note>
|
|
213
213
|
|
|
214
214
|
<Note>
|
|
@@ -2510,6 +2510,8 @@ The following optional provider options are available for OpenAI completion mode
|
|
|
2510
2510
|
| Model | Image Input | Audio Input | Object Generation | Tool Usage |
|
|
2511
2511
|
| --------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
|
|
2512
2512
|
| `gpt-6-astra` | <Check size={18} /> | <Cross size={18} /> | <Check size={18} /> | <Check size={18} /> |
|
|
2513
|
+
| `gpt-6-luna` | <Check size={18} /> | <Cross size={18} /> | <Check size={18} /> | <Check size={18} /> |
|
|
2514
|
+
| `gpt-6-sol` | <Check size={18} /> | <Cross size={18} /> | <Check size={18} /> | <Check size={18} /> |
|
|
2513
2515
|
| `gpt-5.6` | <Check size={18} /> | <Cross size={18} /> | <Check size={18} /> | <Check size={18} /> |
|
|
2514
2516
|
| `gpt-5.6-luna` | <Check size={18} /> | <Cross size={18} /> | <Check size={18} /> | <Check size={18} /> |
|
|
2515
2517
|
| `gpt-5.6-sol` | <Check size={18} /> | <Cross size={18} /> | <Check size={18} /> | <Check size={18} /> |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/openai",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.117",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@ai-sdk/provider": "3.0.
|
|
40
|
-
"@ai-sdk/provider-utils": "4.0.
|
|
39
|
+
"@ai-sdk/provider": "3.0.17",
|
|
40
|
+
"@ai-sdk/provider-utils": "4.0.54"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "20.17.24",
|
|
@@ -36,6 +36,11 @@ export const openaiChatResponseSchema = lazySchema(() =>
|
|
|
36
36
|
message: z.object({
|
|
37
37
|
role: z.literal('assistant').nullish(),
|
|
38
38
|
content: z.string().nullish(),
|
|
39
|
+
audio: z
|
|
40
|
+
.object({
|
|
41
|
+
transcript: z.string().nullish(),
|
|
42
|
+
})
|
|
43
|
+
.nullish(),
|
|
39
44
|
tool_calls: z
|
|
40
45
|
.array(
|
|
41
46
|
z.object({
|
|
@@ -380,7 +380,10 @@ export class OpenAIChatLanguageModel implements LanguageModelV3 {
|
|
|
380
380
|
const content: Array<LanguageModelV3Content> = [];
|
|
381
381
|
|
|
382
382
|
// text content:
|
|
383
|
-
const text =
|
|
383
|
+
const text =
|
|
384
|
+
choice.message.content != null && choice.message.content.length > 0
|
|
385
|
+
? choice.message.content
|
|
386
|
+
: choice.message.audio?.transcript;
|
|
384
387
|
if (text != null && text.length > 0) {
|
|
385
388
|
content.push({ type: 'text', text });
|
|
386
389
|
}
|
|
@@ -24,6 +24,8 @@ export function getOpenAILanguageModelCapabilities(
|
|
|
24
24
|
const isGptNanoModel = gptVersion?.variant?.startsWith('nano') ?? false;
|
|
25
25
|
const isGpt6OrLaterModel = gptVersion != null && gptVersion.major >= 6;
|
|
26
26
|
|
|
27
|
+
const isGpt6SolOrLuna = modelId === 'gpt-6-sol' || modelId === 'gpt-6-luna';
|
|
28
|
+
|
|
27
29
|
const supportsFlexProcessing =
|
|
28
30
|
(oSeriesVersion != null && oSeriesVersion >= 3) ||
|
|
29
31
|
(gptVersion != null && gptVersion.major >= 5 && !isGptChatModel);
|
|
@@ -57,9 +59,11 @@ export function getOpenAILanguageModelCapabilities(
|
|
|
57
59
|
supportsPriorityProcessing,
|
|
58
60
|
supportsConfigurationUpdate: isGpt6OrLaterModel,
|
|
59
61
|
supportsAsyncToolCalling: isGpt6OrLaterModel,
|
|
60
|
-
supportedReasoningEfforts:
|
|
61
|
-
? ['low', 'medium', 'high', 'xhigh', 'max']
|
|
62
|
-
:
|
|
62
|
+
supportedReasoningEfforts: isGpt6SolOrLuna
|
|
63
|
+
? ['none', 'low', 'medium', 'high', 'xhigh', 'max']
|
|
64
|
+
: isGpt6OrLaterModel
|
|
65
|
+
? ['low', 'medium', 'high', 'xhigh', 'max']
|
|
66
|
+
: undefined,
|
|
63
67
|
isReasoningModel,
|
|
64
68
|
systemMessageMode,
|
|
65
69
|
supportsNonReasoningParameters,
|
|
@@ -118,6 +118,10 @@ function createOpenAIStreamError({
|
|
|
118
118
|
responseHeaders,
|
|
119
119
|
responseBody: JSON.stringify(frame),
|
|
120
120
|
data: frame,
|
|
121
|
+
isRetryable:
|
|
122
|
+
streamError == null
|
|
123
|
+
? true
|
|
124
|
+
: isRetryableStreamError(streamError, getStatusCode(streamError)),
|
|
121
125
|
});
|
|
122
126
|
}
|
|
123
127
|
|
|
@@ -937,7 +937,7 @@ export const openaiResponsesChunkSchema = lazySchema(() =>
|
|
|
937
937
|
name: z.string(),
|
|
938
938
|
arguments: z.string(),
|
|
939
939
|
async: z.boolean().nullish(),
|
|
940
|
-
status: z.
|
|
940
|
+
status: z.enum(['in_progress', 'completed', 'incomplete']),
|
|
941
941
|
namespace: z.string().nullish(),
|
|
942
942
|
}),
|
|
943
943
|
z.object({
|
|
@@ -947,7 +947,7 @@ export const openaiResponsesChunkSchema = lazySchema(() =>
|
|
|
947
947
|
name: z.string(),
|
|
948
948
|
input: z.string(),
|
|
949
949
|
async: z.boolean().nullish(),
|
|
950
|
-
status: z.
|
|
950
|
+
status: z.enum(['in_progress', 'completed', 'incomplete']),
|
|
951
951
|
}),
|
|
952
952
|
z.object({
|
|
953
953
|
type: z.literal('code_interpreter_call'),
|
|
@@ -1517,7 +1517,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
1517
1517
|
} else if (value.item.type === 'shell_call_output') {
|
|
1518
1518
|
// shell_call_output is handled in output_item.done
|
|
1519
1519
|
} else if (value.item.type === 'message') {
|
|
1520
|
-
ongoingAnnotations.splice(0
|
|
1520
|
+
ongoingAnnotations.splice(0);
|
|
1521
1521
|
activeMessagePhase = value.item.phase ?? undefined;
|
|
1522
1522
|
controller.enqueue({
|
|
1523
1523
|
type: 'text-start',
|
|
@@ -58,6 +58,8 @@ export const openaiResponsesReasoningModelIds = [
|
|
|
58
58
|
'gpt-5.6-sol',
|
|
59
59
|
'gpt-5.6-terra',
|
|
60
60
|
'gpt-6-astra',
|
|
61
|
+
'gpt-6-luna',
|
|
62
|
+
'gpt-6-sol',
|
|
61
63
|
] as const;
|
|
62
64
|
|
|
63
65
|
export const openaiResponsesModelIds = [
|
|
@@ -131,6 +133,8 @@ export type OpenAIResponsesModelId =
|
|
|
131
133
|
| 'gpt-5.6-sol'
|
|
132
134
|
| 'gpt-5.6-terra'
|
|
133
135
|
| 'gpt-6-astra'
|
|
136
|
+
| 'gpt-6-luna'
|
|
137
|
+
| 'gpt-6-sol'
|
|
134
138
|
| 'gpt-5-2025-08-07'
|
|
135
139
|
| 'gpt-5-chat-latest'
|
|
136
140
|
| 'gpt-5-codex'
|