@ai-sdk/openai 2.0.76 → 2.0.78
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 +12 -0
- package/dist/index.d.mts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +65 -108
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +65 -108
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +3 -3
- package/dist/internal/index.d.ts +3 -3
- package/dist/internal/index.js +64 -107
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +64 -107
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/internal/index.mjs
CHANGED
|
@@ -31,6 +31,22 @@ var openaiFailedResponseHandler = createJsonErrorResponseHandler({
|
|
|
31
31
|
errorToMessage: (data) => data.error.message
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
+
// src/openai-language-model-capabilities.ts
|
|
35
|
+
function getOpenAILanguageModelCapabilities(modelId) {
|
|
36
|
+
const supportsFlexProcessing = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
37
|
+
const supportsPriorityProcessing = modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
38
|
+
const isReasoningModel = !(modelId.startsWith("gpt-3") || modelId.startsWith("gpt-4") || modelId.startsWith("chatgpt-4o") || modelId.startsWith("gpt-5-chat"));
|
|
39
|
+
const supportsNonReasoningParameters = modelId.startsWith("gpt-5.1");
|
|
40
|
+
const systemMessageMode = isReasoningModel ? "developer" : "system";
|
|
41
|
+
return {
|
|
42
|
+
supportsFlexProcessing,
|
|
43
|
+
supportsPriorityProcessing,
|
|
44
|
+
isReasoningModel,
|
|
45
|
+
systemMessageMode,
|
|
46
|
+
supportsNonReasoningParameters
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
34
50
|
// src/chat/convert-to-openai-chat-messages.ts
|
|
35
51
|
import {
|
|
36
52
|
UnsupportedFunctionalityError
|
|
@@ -590,6 +606,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
590
606
|
schema: openaiChatLanguageModelOptions
|
|
591
607
|
})) != null ? _a : {};
|
|
592
608
|
const structuredOutputs = (_b = openaiOptions.structuredOutputs) != null ? _b : true;
|
|
609
|
+
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
593
610
|
if (topK != null) {
|
|
594
611
|
warnings.push({
|
|
595
612
|
type: "unsupported-setting",
|
|
@@ -606,7 +623,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
606
623
|
const { messages, warnings: messageWarnings } = convertToOpenAIChatMessages(
|
|
607
624
|
{
|
|
608
625
|
prompt,
|
|
609
|
-
systemMessageMode:
|
|
626
|
+
systemMessageMode: modelCapabilities.systemMessageMode
|
|
610
627
|
}
|
|
611
628
|
);
|
|
612
629
|
warnings.push(...messageWarnings);
|
|
@@ -652,22 +669,31 @@ var OpenAIChatLanguageModel = class {
|
|
|
652
669
|
// messages:
|
|
653
670
|
messages
|
|
654
671
|
};
|
|
655
|
-
if (isReasoningModel
|
|
656
|
-
if (
|
|
657
|
-
baseArgs.temperature
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
baseArgs.top_p
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
672
|
+
if (modelCapabilities.isReasoningModel) {
|
|
673
|
+
if (openaiOptions.reasoningEffort !== "none" || !modelCapabilities.supportsNonReasoningParameters) {
|
|
674
|
+
if (baseArgs.temperature != null) {
|
|
675
|
+
baseArgs.temperature = void 0;
|
|
676
|
+
warnings.push({
|
|
677
|
+
type: "unsupported-setting",
|
|
678
|
+
setting: "temperature",
|
|
679
|
+
details: "temperature is not supported for reasoning models"
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
if (baseArgs.top_p != null) {
|
|
683
|
+
baseArgs.top_p = void 0;
|
|
684
|
+
warnings.push({
|
|
685
|
+
type: "unsupported-setting",
|
|
686
|
+
setting: "topP",
|
|
687
|
+
details: "topP is not supported for reasoning models"
|
|
688
|
+
});
|
|
689
|
+
}
|
|
690
|
+
if (baseArgs.logprobs != null) {
|
|
691
|
+
baseArgs.logprobs = void 0;
|
|
692
|
+
warnings.push({
|
|
693
|
+
type: "other",
|
|
694
|
+
message: "logprobs is not supported for reasoning models"
|
|
695
|
+
});
|
|
696
|
+
}
|
|
671
697
|
}
|
|
672
698
|
if (baseArgs.frequency_penalty != null) {
|
|
673
699
|
baseArgs.frequency_penalty = void 0;
|
|
@@ -692,13 +718,6 @@ var OpenAIChatLanguageModel = class {
|
|
|
692
718
|
message: "logitBias is not supported for reasoning models"
|
|
693
719
|
});
|
|
694
720
|
}
|
|
695
|
-
if (baseArgs.logprobs != null) {
|
|
696
|
-
baseArgs.logprobs = void 0;
|
|
697
|
-
warnings.push({
|
|
698
|
-
type: "other",
|
|
699
|
-
message: "logprobs is not supported for reasoning models"
|
|
700
|
-
});
|
|
701
|
-
}
|
|
702
721
|
if (baseArgs.top_logprobs != null) {
|
|
703
722
|
baseArgs.top_logprobs = void 0;
|
|
704
723
|
warnings.push({
|
|
@@ -722,7 +741,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
722
741
|
});
|
|
723
742
|
}
|
|
724
743
|
}
|
|
725
|
-
if (openaiOptions.serviceTier === "flex" && !supportsFlexProcessing
|
|
744
|
+
if (openaiOptions.serviceTier === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
726
745
|
warnings.push({
|
|
727
746
|
type: "unsupported-setting",
|
|
728
747
|
setting: "serviceTier",
|
|
@@ -730,7 +749,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
730
749
|
});
|
|
731
750
|
baseArgs.service_tier = void 0;
|
|
732
751
|
}
|
|
733
|
-
if (openaiOptions.serviceTier === "priority" && !supportsPriorityProcessing
|
|
752
|
+
if (openaiOptions.serviceTier === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
734
753
|
warnings.push({
|
|
735
754
|
type: "unsupported-setting",
|
|
736
755
|
setting: "serviceTier",
|
|
@@ -1051,42 +1070,6 @@ var OpenAIChatLanguageModel = class {
|
|
|
1051
1070
|
};
|
|
1052
1071
|
}
|
|
1053
1072
|
};
|
|
1054
|
-
function isReasoningModel(modelId) {
|
|
1055
|
-
return (modelId.startsWith("o") || modelId.startsWith("gpt-5")) && !modelId.startsWith("gpt-5-chat");
|
|
1056
|
-
}
|
|
1057
|
-
function supportsFlexProcessing(modelId) {
|
|
1058
|
-
return modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
1059
|
-
}
|
|
1060
|
-
function supportsPriorityProcessing(modelId) {
|
|
1061
|
-
return modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
1062
|
-
}
|
|
1063
|
-
function getSystemMessageMode(modelId) {
|
|
1064
|
-
var _a, _b;
|
|
1065
|
-
if (!isReasoningModel(modelId)) {
|
|
1066
|
-
return "system";
|
|
1067
|
-
}
|
|
1068
|
-
return (_b = (_a = reasoningModels[modelId]) == null ? void 0 : _a.systemMessageMode) != null ? _b : "developer";
|
|
1069
|
-
}
|
|
1070
|
-
var reasoningModels = {
|
|
1071
|
-
o3: {
|
|
1072
|
-
systemMessageMode: "developer"
|
|
1073
|
-
},
|
|
1074
|
-
"o3-2025-04-16": {
|
|
1075
|
-
systemMessageMode: "developer"
|
|
1076
|
-
},
|
|
1077
|
-
"o3-mini": {
|
|
1078
|
-
systemMessageMode: "developer"
|
|
1079
|
-
},
|
|
1080
|
-
"o3-mini-2025-01-31": {
|
|
1081
|
-
systemMessageMode: "developer"
|
|
1082
|
-
},
|
|
1083
|
-
"o4-mini": {
|
|
1084
|
-
systemMessageMode: "developer"
|
|
1085
|
-
},
|
|
1086
|
-
"o4-mini-2025-04-16": {
|
|
1087
|
-
systemMessageMode: "developer"
|
|
1088
|
-
}
|
|
1089
|
-
};
|
|
1090
1073
|
|
|
1091
1074
|
// src/completion/openai-completion-language-model.ts
|
|
1092
1075
|
import {
|
|
@@ -2667,12 +2650,12 @@ var openaiResponsesChunkSchema = lazyValidator11(
|
|
|
2667
2650
|
}),
|
|
2668
2651
|
z14.object({
|
|
2669
2652
|
type: z14.literal("open_page"),
|
|
2670
|
-
url: z14.string()
|
|
2653
|
+
url: z14.string().nullish()
|
|
2671
2654
|
}),
|
|
2672
2655
|
z14.object({
|
|
2673
2656
|
type: z14.literal("find"),
|
|
2674
|
-
url: z14.string(),
|
|
2675
|
-
pattern: z14.string()
|
|
2657
|
+
url: z14.string().nullish(),
|
|
2658
|
+
pattern: z14.string().nullish()
|
|
2676
2659
|
})
|
|
2677
2660
|
])
|
|
2678
2661
|
}),
|
|
@@ -2877,12 +2860,12 @@ var openaiResponsesResponseSchema = lazyValidator11(
|
|
|
2877
2860
|
}),
|
|
2878
2861
|
z14.object({
|
|
2879
2862
|
type: z14.literal("open_page"),
|
|
2880
|
-
url: z14.string()
|
|
2863
|
+
url: z14.string().nullish()
|
|
2881
2864
|
}),
|
|
2882
2865
|
z14.object({
|
|
2883
2866
|
type: z14.literal("find"),
|
|
2884
|
-
url: z14.string(),
|
|
2885
|
-
pattern: z14.string()
|
|
2867
|
+
url: z14.string().nullish(),
|
|
2868
|
+
pattern: z14.string().nullish()
|
|
2886
2869
|
})
|
|
2887
2870
|
])
|
|
2888
2871
|
}),
|
|
@@ -3242,12 +3225,12 @@ var webSearchOutputSchema = lazySchema4(
|
|
|
3242
3225
|
}),
|
|
3243
3226
|
z18.object({
|
|
3244
3227
|
type: z18.literal("openPage"),
|
|
3245
|
-
url: z18.string()
|
|
3228
|
+
url: z18.string().nullish()
|
|
3246
3229
|
}),
|
|
3247
3230
|
z18.object({
|
|
3248
3231
|
type: z18.literal("find"),
|
|
3249
|
-
url: z18.string(),
|
|
3250
|
-
pattern: z18.string()
|
|
3232
|
+
url: z18.string().nullish(),
|
|
3233
|
+
pattern: z18.string().nullish()
|
|
3251
3234
|
})
|
|
3252
3235
|
]),
|
|
3253
3236
|
sources: z18.array(
|
|
@@ -3300,12 +3283,12 @@ var webSearchPreviewOutputSchema = lazySchema5(
|
|
|
3300
3283
|
}),
|
|
3301
3284
|
z19.object({
|
|
3302
3285
|
type: z19.literal("openPage"),
|
|
3303
|
-
url: z19.string()
|
|
3286
|
+
url: z19.string().nullish()
|
|
3304
3287
|
}),
|
|
3305
3288
|
z19.object({
|
|
3306
3289
|
type: z19.literal("find"),
|
|
3307
|
-
url: z19.string(),
|
|
3308
|
-
pattern: z19.string()
|
|
3290
|
+
url: z19.string().nullish(),
|
|
3291
|
+
pattern: z19.string().nullish()
|
|
3309
3292
|
})
|
|
3310
3293
|
])
|
|
3311
3294
|
})
|
|
@@ -3529,7 +3512,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3529
3512
|
}) {
|
|
3530
3513
|
var _a, _b, _c, _d;
|
|
3531
3514
|
const warnings = [];
|
|
3532
|
-
const
|
|
3515
|
+
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
3533
3516
|
if (topK != null) {
|
|
3534
3517
|
warnings.push({ type: "unsupported-setting", setting: "topK" });
|
|
3535
3518
|
}
|
|
@@ -3565,7 +3548,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3565
3548
|
}
|
|
3566
3549
|
const { input, warnings: inputWarnings } = await convertToOpenAIResponsesInput({
|
|
3567
3550
|
prompt,
|
|
3568
|
-
systemMessageMode:
|
|
3551
|
+
systemMessageMode: modelCapabilities.systemMessageMode,
|
|
3569
3552
|
fileIdPrefixes: this.config.fileIdPrefixes,
|
|
3570
3553
|
store: (_a = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _a : true,
|
|
3571
3554
|
hasLocalShellTool: hasOpenAITool("openai.local_shell")
|
|
@@ -3599,7 +3582,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3599
3582
|
addInclude("code_interpreter_call.outputs");
|
|
3600
3583
|
}
|
|
3601
3584
|
const store = openaiOptions == null ? void 0 : openaiOptions.store;
|
|
3602
|
-
if (store === false &&
|
|
3585
|
+
if (store === false && modelCapabilities.isReasoningModel) {
|
|
3603
3586
|
addInclude("reasoning.encrypted_content");
|
|
3604
3587
|
}
|
|
3605
3588
|
const baseArgs = {
|
|
@@ -3641,7 +3624,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3641
3624
|
top_logprobs: topLogprobs,
|
|
3642
3625
|
truncation: openaiOptions == null ? void 0 : openaiOptions.truncation,
|
|
3643
3626
|
// model-specific settings:
|
|
3644
|
-
...
|
|
3627
|
+
...modelCapabilities.isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) && {
|
|
3645
3628
|
reasoning: {
|
|
3646
3629
|
...(openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {
|
|
3647
3630
|
effort: openaiOptions.reasoningEffort
|
|
@@ -3652,7 +3635,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3652
3635
|
}
|
|
3653
3636
|
}
|
|
3654
3637
|
};
|
|
3655
|
-
if (
|
|
3638
|
+
if (modelCapabilities.isReasoningModel || (openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) === "none" && modelCapabilities.supportsNonReasoningParameters) {
|
|
3656
3639
|
if (baseArgs.temperature != null) {
|
|
3657
3640
|
baseArgs.temperature = void 0;
|
|
3658
3641
|
warnings.push({
|
|
@@ -3685,7 +3668,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3685
3668
|
});
|
|
3686
3669
|
}
|
|
3687
3670
|
}
|
|
3688
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !
|
|
3671
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
3689
3672
|
warnings.push({
|
|
3690
3673
|
type: "unsupported-setting",
|
|
3691
3674
|
setting: "serviceTier",
|
|
@@ -3693,7 +3676,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3693
3676
|
});
|
|
3694
3677
|
delete baseArgs.service_tier;
|
|
3695
3678
|
}
|
|
3696
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !
|
|
3679
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
3697
3680
|
warnings.push({
|
|
3698
3681
|
type: "unsupported-setting",
|
|
3699
3682
|
setting: "serviceTier",
|
|
@@ -4550,32 +4533,6 @@ function isResponseAnnotationAddedChunk(chunk) {
|
|
|
4550
4533
|
function isErrorChunk(chunk) {
|
|
4551
4534
|
return chunk.type === "error";
|
|
4552
4535
|
}
|
|
4553
|
-
function getResponsesModelConfig(modelId) {
|
|
4554
|
-
const supportsFlexProcessing2 = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
4555
|
-
const supportsPriorityProcessing2 = modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
4556
|
-
const defaults = {
|
|
4557
|
-
systemMessageMode: "system",
|
|
4558
|
-
supportsFlexProcessing: supportsFlexProcessing2,
|
|
4559
|
-
supportsPriorityProcessing: supportsPriorityProcessing2
|
|
4560
|
-
};
|
|
4561
|
-
if (modelId.startsWith("gpt-5-chat")) {
|
|
4562
|
-
return {
|
|
4563
|
-
...defaults,
|
|
4564
|
-
isReasoningModel: false
|
|
4565
|
-
};
|
|
4566
|
-
}
|
|
4567
|
-
if (modelId.startsWith("o") || modelId.startsWith("gpt-5") || modelId.startsWith("codex-") || modelId.startsWith("computer-use")) {
|
|
4568
|
-
return {
|
|
4569
|
-
...defaults,
|
|
4570
|
-
isReasoningModel: true,
|
|
4571
|
-
systemMessageMode: "developer"
|
|
4572
|
-
};
|
|
4573
|
-
}
|
|
4574
|
-
return {
|
|
4575
|
-
...defaults,
|
|
4576
|
-
isReasoningModel: false
|
|
4577
|
-
};
|
|
4578
|
-
}
|
|
4579
4536
|
function mapWebSearchOutput(action) {
|
|
4580
4537
|
var _a;
|
|
4581
4538
|
switch (action.type) {
|