@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
|
@@ -510,7 +510,7 @@ declare const webSearchPreview: _ai_sdk_provider_utils.ProviderDefinedToolFactor
|
|
|
510
510
|
/**
|
|
511
511
|
* The URL opened by the model.
|
|
512
512
|
*/
|
|
513
|
-
url
|
|
513
|
+
url?: string | null;
|
|
514
514
|
} | {
|
|
515
515
|
/**
|
|
516
516
|
* Action type "find": Searches for a pattern within a loaded page.
|
|
@@ -519,11 +519,11 @@ declare const webSearchPreview: _ai_sdk_provider_utils.ProviderDefinedToolFactor
|
|
|
519
519
|
/**
|
|
520
520
|
* The URL of the page searched for the pattern.
|
|
521
521
|
*/
|
|
522
|
-
url
|
|
522
|
+
url?: string | null;
|
|
523
523
|
/**
|
|
524
524
|
* The pattern or text to search for within the page.
|
|
525
525
|
*/
|
|
526
|
-
pattern
|
|
526
|
+
pattern?: string | null;
|
|
527
527
|
};
|
|
528
528
|
}, {
|
|
529
529
|
/**
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -510,7 +510,7 @@ declare const webSearchPreview: _ai_sdk_provider_utils.ProviderDefinedToolFactor
|
|
|
510
510
|
/**
|
|
511
511
|
* The URL opened by the model.
|
|
512
512
|
*/
|
|
513
|
-
url
|
|
513
|
+
url?: string | null;
|
|
514
514
|
} | {
|
|
515
515
|
/**
|
|
516
516
|
* Action type "find": Searches for a pattern within a loaded page.
|
|
@@ -519,11 +519,11 @@ declare const webSearchPreview: _ai_sdk_provider_utils.ProviderDefinedToolFactor
|
|
|
519
519
|
/**
|
|
520
520
|
* The URL of the page searched for the pattern.
|
|
521
521
|
*/
|
|
522
|
-
url
|
|
522
|
+
url?: string | null;
|
|
523
523
|
/**
|
|
524
524
|
* The pattern or text to search for within the page.
|
|
525
525
|
*/
|
|
526
|
-
pattern
|
|
526
|
+
pattern?: string | null;
|
|
527
527
|
};
|
|
528
528
|
}, {
|
|
529
529
|
/**
|
package/dist/internal/index.js
CHANGED
|
@@ -74,6 +74,22 @@ var openaiFailedResponseHandler = (0, import_provider_utils.createJsonErrorRespo
|
|
|
74
74
|
errorToMessage: (data) => data.error.message
|
|
75
75
|
});
|
|
76
76
|
|
|
77
|
+
// src/openai-language-model-capabilities.ts
|
|
78
|
+
function getOpenAILanguageModelCapabilities(modelId) {
|
|
79
|
+
const supportsFlexProcessing = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
80
|
+
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");
|
|
81
|
+
const isReasoningModel = !(modelId.startsWith("gpt-3") || modelId.startsWith("gpt-4") || modelId.startsWith("chatgpt-4o") || modelId.startsWith("gpt-5-chat"));
|
|
82
|
+
const supportsNonReasoningParameters = modelId.startsWith("gpt-5.1");
|
|
83
|
+
const systemMessageMode = isReasoningModel ? "developer" : "system";
|
|
84
|
+
return {
|
|
85
|
+
supportsFlexProcessing,
|
|
86
|
+
supportsPriorityProcessing,
|
|
87
|
+
isReasoningModel,
|
|
88
|
+
systemMessageMode,
|
|
89
|
+
supportsNonReasoningParameters
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
77
93
|
// src/chat/convert-to-openai-chat-messages.ts
|
|
78
94
|
var import_provider = require("@ai-sdk/provider");
|
|
79
95
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
@@ -623,6 +639,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
623
639
|
schema: openaiChatLanguageModelOptions
|
|
624
640
|
})) != null ? _a : {};
|
|
625
641
|
const structuredOutputs = (_b = openaiOptions.structuredOutputs) != null ? _b : true;
|
|
642
|
+
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
626
643
|
if (topK != null) {
|
|
627
644
|
warnings.push({
|
|
628
645
|
type: "unsupported-setting",
|
|
@@ -639,7 +656,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
639
656
|
const { messages, warnings: messageWarnings } = convertToOpenAIChatMessages(
|
|
640
657
|
{
|
|
641
658
|
prompt,
|
|
642
|
-
systemMessageMode:
|
|
659
|
+
systemMessageMode: modelCapabilities.systemMessageMode
|
|
643
660
|
}
|
|
644
661
|
);
|
|
645
662
|
warnings.push(...messageWarnings);
|
|
@@ -685,22 +702,31 @@ var OpenAIChatLanguageModel = class {
|
|
|
685
702
|
// messages:
|
|
686
703
|
messages
|
|
687
704
|
};
|
|
688
|
-
if (isReasoningModel
|
|
689
|
-
if (
|
|
690
|
-
baseArgs.temperature
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
baseArgs.top_p
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
705
|
+
if (modelCapabilities.isReasoningModel) {
|
|
706
|
+
if (openaiOptions.reasoningEffort !== "none" || !modelCapabilities.supportsNonReasoningParameters) {
|
|
707
|
+
if (baseArgs.temperature != null) {
|
|
708
|
+
baseArgs.temperature = void 0;
|
|
709
|
+
warnings.push({
|
|
710
|
+
type: "unsupported-setting",
|
|
711
|
+
setting: "temperature",
|
|
712
|
+
details: "temperature is not supported for reasoning models"
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
if (baseArgs.top_p != null) {
|
|
716
|
+
baseArgs.top_p = void 0;
|
|
717
|
+
warnings.push({
|
|
718
|
+
type: "unsupported-setting",
|
|
719
|
+
setting: "topP",
|
|
720
|
+
details: "topP is not supported for reasoning models"
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
if (baseArgs.logprobs != null) {
|
|
724
|
+
baseArgs.logprobs = void 0;
|
|
725
|
+
warnings.push({
|
|
726
|
+
type: "other",
|
|
727
|
+
message: "logprobs is not supported for reasoning models"
|
|
728
|
+
});
|
|
729
|
+
}
|
|
704
730
|
}
|
|
705
731
|
if (baseArgs.frequency_penalty != null) {
|
|
706
732
|
baseArgs.frequency_penalty = void 0;
|
|
@@ -725,13 +751,6 @@ var OpenAIChatLanguageModel = class {
|
|
|
725
751
|
message: "logitBias is not supported for reasoning models"
|
|
726
752
|
});
|
|
727
753
|
}
|
|
728
|
-
if (baseArgs.logprobs != null) {
|
|
729
|
-
baseArgs.logprobs = void 0;
|
|
730
|
-
warnings.push({
|
|
731
|
-
type: "other",
|
|
732
|
-
message: "logprobs is not supported for reasoning models"
|
|
733
|
-
});
|
|
734
|
-
}
|
|
735
754
|
if (baseArgs.top_logprobs != null) {
|
|
736
755
|
baseArgs.top_logprobs = void 0;
|
|
737
756
|
warnings.push({
|
|
@@ -755,7 +774,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
755
774
|
});
|
|
756
775
|
}
|
|
757
776
|
}
|
|
758
|
-
if (openaiOptions.serviceTier === "flex" && !supportsFlexProcessing
|
|
777
|
+
if (openaiOptions.serviceTier === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
759
778
|
warnings.push({
|
|
760
779
|
type: "unsupported-setting",
|
|
761
780
|
setting: "serviceTier",
|
|
@@ -763,7 +782,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
763
782
|
});
|
|
764
783
|
baseArgs.service_tier = void 0;
|
|
765
784
|
}
|
|
766
|
-
if (openaiOptions.serviceTier === "priority" && !supportsPriorityProcessing
|
|
785
|
+
if (openaiOptions.serviceTier === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
767
786
|
warnings.push({
|
|
768
787
|
type: "unsupported-setting",
|
|
769
788
|
setting: "serviceTier",
|
|
@@ -1084,42 +1103,6 @@ var OpenAIChatLanguageModel = class {
|
|
|
1084
1103
|
};
|
|
1085
1104
|
}
|
|
1086
1105
|
};
|
|
1087
|
-
function isReasoningModel(modelId) {
|
|
1088
|
-
return (modelId.startsWith("o") || modelId.startsWith("gpt-5")) && !modelId.startsWith("gpt-5-chat");
|
|
1089
|
-
}
|
|
1090
|
-
function supportsFlexProcessing(modelId) {
|
|
1091
|
-
return modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
1092
|
-
}
|
|
1093
|
-
function supportsPriorityProcessing(modelId) {
|
|
1094
|
-
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");
|
|
1095
|
-
}
|
|
1096
|
-
function getSystemMessageMode(modelId) {
|
|
1097
|
-
var _a, _b;
|
|
1098
|
-
if (!isReasoningModel(modelId)) {
|
|
1099
|
-
return "system";
|
|
1100
|
-
}
|
|
1101
|
-
return (_b = (_a = reasoningModels[modelId]) == null ? void 0 : _a.systemMessageMode) != null ? _b : "developer";
|
|
1102
|
-
}
|
|
1103
|
-
var reasoningModels = {
|
|
1104
|
-
o3: {
|
|
1105
|
-
systemMessageMode: "developer"
|
|
1106
|
-
},
|
|
1107
|
-
"o3-2025-04-16": {
|
|
1108
|
-
systemMessageMode: "developer"
|
|
1109
|
-
},
|
|
1110
|
-
"o3-mini": {
|
|
1111
|
-
systemMessageMode: "developer"
|
|
1112
|
-
},
|
|
1113
|
-
"o3-mini-2025-01-31": {
|
|
1114
|
-
systemMessageMode: "developer"
|
|
1115
|
-
},
|
|
1116
|
-
"o4-mini": {
|
|
1117
|
-
systemMessageMode: "developer"
|
|
1118
|
-
},
|
|
1119
|
-
"o4-mini-2025-04-16": {
|
|
1120
|
-
systemMessageMode: "developer"
|
|
1121
|
-
}
|
|
1122
|
-
};
|
|
1123
1106
|
|
|
1124
1107
|
// src/completion/openai-completion-language-model.ts
|
|
1125
1108
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
@@ -2631,12 +2614,12 @@ var openaiResponsesChunkSchema = (0, import_provider_utils21.lazyValidator)(
|
|
|
2631
2614
|
}),
|
|
2632
2615
|
import_v414.z.object({
|
|
2633
2616
|
type: import_v414.z.literal("open_page"),
|
|
2634
|
-
url: import_v414.z.string()
|
|
2617
|
+
url: import_v414.z.string().nullish()
|
|
2635
2618
|
}),
|
|
2636
2619
|
import_v414.z.object({
|
|
2637
2620
|
type: import_v414.z.literal("find"),
|
|
2638
|
-
url: import_v414.z.string(),
|
|
2639
|
-
pattern: import_v414.z.string()
|
|
2621
|
+
url: import_v414.z.string().nullish(),
|
|
2622
|
+
pattern: import_v414.z.string().nullish()
|
|
2640
2623
|
})
|
|
2641
2624
|
])
|
|
2642
2625
|
}),
|
|
@@ -2841,12 +2824,12 @@ var openaiResponsesResponseSchema = (0, import_provider_utils21.lazyValidator)(
|
|
|
2841
2824
|
}),
|
|
2842
2825
|
import_v414.z.object({
|
|
2843
2826
|
type: import_v414.z.literal("open_page"),
|
|
2844
|
-
url: import_v414.z.string()
|
|
2827
|
+
url: import_v414.z.string().nullish()
|
|
2845
2828
|
}),
|
|
2846
2829
|
import_v414.z.object({
|
|
2847
2830
|
type: import_v414.z.literal("find"),
|
|
2848
|
-
url: import_v414.z.string(),
|
|
2849
|
-
pattern: import_v414.z.string()
|
|
2831
|
+
url: import_v414.z.string().nullish(),
|
|
2832
|
+
pattern: import_v414.z.string().nullish()
|
|
2850
2833
|
})
|
|
2851
2834
|
])
|
|
2852
2835
|
}),
|
|
@@ -3189,12 +3172,12 @@ var webSearchOutputSchema = (0, import_provider_utils25.lazySchema)(
|
|
|
3189
3172
|
}),
|
|
3190
3173
|
import_v418.z.object({
|
|
3191
3174
|
type: import_v418.z.literal("openPage"),
|
|
3192
|
-
url: import_v418.z.string()
|
|
3175
|
+
url: import_v418.z.string().nullish()
|
|
3193
3176
|
}),
|
|
3194
3177
|
import_v418.z.object({
|
|
3195
3178
|
type: import_v418.z.literal("find"),
|
|
3196
|
-
url: import_v418.z.string(),
|
|
3197
|
-
pattern: import_v418.z.string()
|
|
3179
|
+
url: import_v418.z.string().nullish(),
|
|
3180
|
+
pattern: import_v418.z.string().nullish()
|
|
3198
3181
|
})
|
|
3199
3182
|
]),
|
|
3200
3183
|
sources: import_v418.z.array(
|
|
@@ -3243,12 +3226,12 @@ var webSearchPreviewOutputSchema = (0, import_provider_utils26.lazySchema)(
|
|
|
3243
3226
|
}),
|
|
3244
3227
|
import_v419.z.object({
|
|
3245
3228
|
type: import_v419.z.literal("openPage"),
|
|
3246
|
-
url: import_v419.z.string()
|
|
3229
|
+
url: import_v419.z.string().nullish()
|
|
3247
3230
|
}),
|
|
3248
3231
|
import_v419.z.object({
|
|
3249
3232
|
type: import_v419.z.literal("find"),
|
|
3250
|
-
url: import_v419.z.string(),
|
|
3251
|
-
pattern: import_v419.z.string()
|
|
3233
|
+
url: import_v419.z.string().nullish(),
|
|
3234
|
+
pattern: import_v419.z.string().nullish()
|
|
3252
3235
|
})
|
|
3253
3236
|
])
|
|
3254
3237
|
})
|
|
@@ -3468,7 +3451,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3468
3451
|
}) {
|
|
3469
3452
|
var _a, _b, _c, _d;
|
|
3470
3453
|
const warnings = [];
|
|
3471
|
-
const
|
|
3454
|
+
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
3472
3455
|
if (topK != null) {
|
|
3473
3456
|
warnings.push({ type: "unsupported-setting", setting: "topK" });
|
|
3474
3457
|
}
|
|
@@ -3504,7 +3487,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3504
3487
|
}
|
|
3505
3488
|
const { input, warnings: inputWarnings } = await convertToOpenAIResponsesInput({
|
|
3506
3489
|
prompt,
|
|
3507
|
-
systemMessageMode:
|
|
3490
|
+
systemMessageMode: modelCapabilities.systemMessageMode,
|
|
3508
3491
|
fileIdPrefixes: this.config.fileIdPrefixes,
|
|
3509
3492
|
store: (_a = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _a : true,
|
|
3510
3493
|
hasLocalShellTool: hasOpenAITool("openai.local_shell")
|
|
@@ -3538,7 +3521,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3538
3521
|
addInclude("code_interpreter_call.outputs");
|
|
3539
3522
|
}
|
|
3540
3523
|
const store = openaiOptions == null ? void 0 : openaiOptions.store;
|
|
3541
|
-
if (store === false &&
|
|
3524
|
+
if (store === false && modelCapabilities.isReasoningModel) {
|
|
3542
3525
|
addInclude("reasoning.encrypted_content");
|
|
3543
3526
|
}
|
|
3544
3527
|
const baseArgs = {
|
|
@@ -3580,7 +3563,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3580
3563
|
top_logprobs: topLogprobs,
|
|
3581
3564
|
truncation: openaiOptions == null ? void 0 : openaiOptions.truncation,
|
|
3582
3565
|
// model-specific settings:
|
|
3583
|
-
...
|
|
3566
|
+
...modelCapabilities.isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) && {
|
|
3584
3567
|
reasoning: {
|
|
3585
3568
|
...(openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {
|
|
3586
3569
|
effort: openaiOptions.reasoningEffort
|
|
@@ -3591,7 +3574,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3591
3574
|
}
|
|
3592
3575
|
}
|
|
3593
3576
|
};
|
|
3594
|
-
if (
|
|
3577
|
+
if (modelCapabilities.isReasoningModel || (openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) === "none" && modelCapabilities.supportsNonReasoningParameters) {
|
|
3595
3578
|
if (baseArgs.temperature != null) {
|
|
3596
3579
|
baseArgs.temperature = void 0;
|
|
3597
3580
|
warnings.push({
|
|
@@ -3624,7 +3607,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3624
3607
|
});
|
|
3625
3608
|
}
|
|
3626
3609
|
}
|
|
3627
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !
|
|
3610
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
3628
3611
|
warnings.push({
|
|
3629
3612
|
type: "unsupported-setting",
|
|
3630
3613
|
setting: "serviceTier",
|
|
@@ -3632,7 +3615,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3632
3615
|
});
|
|
3633
3616
|
delete baseArgs.service_tier;
|
|
3634
3617
|
}
|
|
3635
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !
|
|
3618
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
3636
3619
|
warnings.push({
|
|
3637
3620
|
type: "unsupported-setting",
|
|
3638
3621
|
setting: "serviceTier",
|
|
@@ -4489,32 +4472,6 @@ function isResponseAnnotationAddedChunk(chunk) {
|
|
|
4489
4472
|
function isErrorChunk(chunk) {
|
|
4490
4473
|
return chunk.type === "error";
|
|
4491
4474
|
}
|
|
4492
|
-
function getResponsesModelConfig(modelId) {
|
|
4493
|
-
const supportsFlexProcessing2 = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
4494
|
-
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");
|
|
4495
|
-
const defaults = {
|
|
4496
|
-
systemMessageMode: "system",
|
|
4497
|
-
supportsFlexProcessing: supportsFlexProcessing2,
|
|
4498
|
-
supportsPriorityProcessing: supportsPriorityProcessing2
|
|
4499
|
-
};
|
|
4500
|
-
if (modelId.startsWith("gpt-5-chat")) {
|
|
4501
|
-
return {
|
|
4502
|
-
...defaults,
|
|
4503
|
-
isReasoningModel: false
|
|
4504
|
-
};
|
|
4505
|
-
}
|
|
4506
|
-
if (modelId.startsWith("o") || modelId.startsWith("gpt-5") || modelId.startsWith("codex-") || modelId.startsWith("computer-use")) {
|
|
4507
|
-
return {
|
|
4508
|
-
...defaults,
|
|
4509
|
-
isReasoningModel: true,
|
|
4510
|
-
systemMessageMode: "developer"
|
|
4511
|
-
};
|
|
4512
|
-
}
|
|
4513
|
-
return {
|
|
4514
|
-
...defaults,
|
|
4515
|
-
isReasoningModel: false
|
|
4516
|
-
};
|
|
4517
|
-
}
|
|
4518
4475
|
function mapWebSearchOutput(action) {
|
|
4519
4476
|
var _a;
|
|
4520
4477
|
switch (action.type) {
|