@ai-sdk/openai 3.0.0-beta.51 → 3.0.0-beta.53

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/dist/index.mjs CHANGED
@@ -39,6 +39,15 @@ var openaiFailedResponseHandler = createJsonErrorResponseHandler({
39
39
  errorToMessage: (data) => data.error.message
40
40
  });
41
41
 
42
+ // src/openai-is-reasoning-model.ts
43
+ function isReasoningModel(modelId) {
44
+ if (modelId.startsWith("gpt-3")) return false;
45
+ if (modelId.startsWith("gpt-4")) return false;
46
+ if (modelId.startsWith("chatgpt-4o")) return false;
47
+ if (modelId.startsWith("gpt-5-chat")) return false;
48
+ return true;
49
+ }
50
+
42
51
  // src/chat/convert-to-openai-chat-messages.ts
43
52
  import {
44
53
  UnsupportedFunctionalityError
@@ -232,7 +241,7 @@ function getResponseMetadata({
232
241
  return {
233
242
  id: id != null ? id : void 0,
234
243
  modelId: model != null ? model : void 0,
235
- timestamp: created != null ? new Date(created * 1e3) : void 0
244
+ timestamp: created ? new Date(created * 1e3) : void 0
236
245
  };
237
246
  }
238
247
 
@@ -859,7 +868,7 @@ var OpenAIChatLanguageModel = class {
859
868
  outputTokens: void 0,
860
869
  totalTokens: void 0
861
870
  };
862
- let isFirstChunk = true;
871
+ let metadataExtracted = false;
863
872
  let isActiveText = false;
864
873
  const providerMetadata = { openai: {} };
865
874
  return {
@@ -884,12 +893,15 @@ var OpenAIChatLanguageModel = class {
884
893
  controller.enqueue({ type: "error", error: value.error });
885
894
  return;
886
895
  }
887
- if (isFirstChunk) {
888
- isFirstChunk = false;
889
- controller.enqueue({
890
- type: "response-metadata",
891
- ...getResponseMetadata(value)
892
- });
896
+ if (!metadataExtracted) {
897
+ const metadata = getResponseMetadata(value);
898
+ if (Object.values(metadata).some(Boolean)) {
899
+ metadataExtracted = true;
900
+ controller.enqueue({
901
+ type: "response-metadata",
902
+ ...getResponseMetadata(value)
903
+ });
904
+ }
893
905
  }
894
906
  if (value.usage != null) {
895
907
  usage.inputTokens = (_a = value.usage.prompt_tokens) != null ? _a : void 0;
@@ -1044,9 +1056,6 @@ var OpenAIChatLanguageModel = class {
1044
1056
  };
1045
1057
  }
1046
1058
  };
1047
- function isReasoningModel(modelId) {
1048
- return (modelId.startsWith("o") || modelId.startsWith("gpt-5")) && !modelId.startsWith("gpt-5-chat");
1049
- }
1050
1059
  function supportsFlexProcessing(modelId) {
1051
1060
  return modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
1052
1061
  }
@@ -1054,32 +1063,8 @@ function supportsPriorityProcessing(modelId) {
1054
1063
  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");
1055
1064
  }
1056
1065
  function getSystemMessageMode(modelId) {
1057
- var _a, _b;
1058
- if (!isReasoningModel(modelId)) {
1059
- return "system";
1060
- }
1061
- return (_b = (_a = reasoningModels[modelId]) == null ? void 0 : _a.systemMessageMode) != null ? _b : "developer";
1066
+ return isReasoningModel(modelId) ? "developer" : "system";
1062
1067
  }
1063
- var reasoningModels = {
1064
- o3: {
1065
- systemMessageMode: "developer"
1066
- },
1067
- "o3-2025-04-16": {
1068
- systemMessageMode: "developer"
1069
- },
1070
- "o3-mini": {
1071
- systemMessageMode: "developer"
1072
- },
1073
- "o3-mini-2025-01-31": {
1074
- systemMessageMode: "developer"
1075
- },
1076
- "o4-mini": {
1077
- systemMessageMode: "developer"
1078
- },
1079
- "o4-mini-2025-04-16": {
1080
- systemMessageMode: "developer"
1081
- }
1082
- };
1083
1068
 
1084
1069
  // src/completion/openai-completion-language-model.ts
1085
1070
  import {
@@ -4236,27 +4221,13 @@ function isErrorChunk(chunk) {
4236
4221
  function getResponsesModelConfig(modelId) {
4237
4222
  const supportsFlexProcessing2 = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
4238
4223
  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");
4239
- const defaults = {
4240
- systemMessageMode: "system",
4241
- supportsFlexProcessing: supportsFlexProcessing2,
4242
- supportsPriorityProcessing: supportsPriorityProcessing2
4243
- };
4244
- if (modelId.startsWith("gpt-5-chat")) {
4245
- return {
4246
- ...defaults,
4247
- isReasoningModel: false
4248
- };
4249
- }
4250
- if (modelId.startsWith("o") || modelId.startsWith("gpt-5") || modelId.startsWith("codex-") || modelId.startsWith("computer-use")) {
4251
- return {
4252
- ...defaults,
4253
- isReasoningModel: true,
4254
- systemMessageMode: "developer"
4255
- };
4256
- }
4224
+ const isReasoningModel2 = isReasoningModel(modelId);
4225
+ const systemMessageMode = isReasoningModel2 ? "developer" : "system";
4257
4226
  return {
4258
- ...defaults,
4259
- isReasoningModel: false
4227
+ systemMessageMode,
4228
+ supportsFlexProcessing: supportsFlexProcessing2,
4229
+ supportsPriorityProcessing: supportsPriorityProcessing2,
4230
+ isReasoningModel: isReasoningModel2
4260
4231
  };
4261
4232
  }
4262
4233
  function mapWebSearchOutput(action) {
@@ -4642,7 +4613,7 @@ var OpenAITranscriptionModel = class {
4642
4613
  };
4643
4614
 
4644
4615
  // src/version.ts
4645
- var VERSION = true ? "3.0.0-beta.51" : "0.0.0-test";
4616
+ var VERSION = true ? "3.0.0-beta.53" : "0.0.0-test";
4646
4617
 
4647
4618
  // src/openai-provider.ts
4648
4619
  function createOpenAI(options = {}) {