@ai-sdk/openai 4.0.52 → 4.0.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ai-sdk/openai
2
2
 
3
+ ## 4.0.53
4
+
5
+ ### Patch Changes
6
+
7
+ - 7439d7a: Fix workflow deserialization for OpenAI Responses models.
8
+
3
9
  ## 4.0.52
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1585,13 +1585,15 @@ type OpenAIToolOptions = {
1585
1585
  };
1586
1586
  };
1587
1587
 
1588
+ type OpenAIHeaders = Record<string, string | undefined>;
1588
1589
  type OpenAIConfig = {
1589
1590
  provider: string;
1591
+ baseURL?: string;
1590
1592
  url: (options: {
1591
1593
  modelId: string;
1592
1594
  path: string;
1593
1595
  }) => string;
1594
- headers?: () => Record<string, string | undefined>;
1596
+ headers?: () => OpenAIHeaders;
1595
1597
  fetch?: FetchFunction;
1596
1598
  webSocket?: WebSocketConstructor;
1597
1599
  generateId?: () => string;
package/dist/index.js CHANGED
@@ -3375,6 +3375,28 @@ import {
3375
3375
  } from "@ai-sdk/provider-utils";
3376
3376
  import { z as z28 } from "zod/v4";
3377
3377
 
3378
+ // src/openai-config.ts
3379
+ function prepareOpenAIConfigForWorkflowDeserialize(config) {
3380
+ if (config.provider == null) {
3381
+ throw new Error(
3382
+ "OpenAI model is missing provider after workflow deserialization."
3383
+ );
3384
+ }
3385
+ return {
3386
+ ...config,
3387
+ provider: config.provider,
3388
+ url: typeof config.url === "function" ? config.url : ({ path }) => {
3389
+ if (config.baseURL == null) {
3390
+ throw new Error(
3391
+ "OpenAI model is missing baseURL after workflow deserialization."
3392
+ );
3393
+ }
3394
+ return `${config.baseURL}${path}`;
3395
+ },
3396
+ headers: typeof config.headers === "function" ? config.headers : config.headers == null ? void 0 : () => config.headers
3397
+ };
3398
+ }
3399
+
3378
3400
  // src/responses/convert-openai-responses-usage.ts
3379
3401
  import { createNullLanguageModelUsage as createNullLanguageModelUsage3 } from "@ai-sdk/provider-utils";
3380
3402
  function convertOpenAIResponsesUsage(usage) {
@@ -6594,7 +6616,10 @@ var OpenAIResponsesLanguageModel = class _OpenAIResponsesLanguageModel {
6594
6616
  });
6595
6617
  }
6596
6618
  static [WORKFLOW_DESERIALIZE5](options) {
6597
- return new _OpenAIResponsesLanguageModel(options.modelId, options.config);
6619
+ return new _OpenAIResponsesLanguageModel(
6620
+ options.modelId,
6621
+ prepareOpenAIConfigForWorkflowDeserialize(options.config)
6622
+ );
6598
6623
  }
6599
6624
  get provider() {
6600
6625
  return this.config.provider;
@@ -8997,7 +9022,7 @@ var OpenAIResponsesBatchLanguageModel = class _OpenAIResponsesBatchLanguageModel
8997
9022
  static [WORKFLOW_DESERIALIZE6](options) {
8998
9023
  return new _OpenAIResponsesBatchLanguageModel(
8999
9024
  options.modelId,
9000
- options.config
9025
+ prepareOpenAIConfigForWorkflowDeserialize(options.config)
9001
9026
  );
9002
9027
  }
9003
9028
  constructor(modelId, config) {
@@ -10673,7 +10698,7 @@ var OpenAISkills = class {
10673
10698
  };
10674
10699
 
10675
10700
  // src/version.ts
10676
- var VERSION = true ? "4.0.52" : "0.0.0-test";
10701
+ var VERSION = true ? "4.0.53" : "0.0.0-test";
10677
10702
 
10678
10703
  // src/openai-provider.ts
10679
10704
  function createOpenAI(options = {}) {
@@ -10767,6 +10792,7 @@ function createOpenAI(options = {}) {
10767
10792
  const createResponsesModel = (modelId) => {
10768
10793
  return new OpenAIResponsesBatchLanguageModel(modelId, {
10769
10794
  provider: `${providerName}.responses`,
10795
+ baseURL,
10770
10796
  url: ({ path }) => `${baseURL}${path}`,
10771
10797
  headers: getHeaders,
10772
10798
  fetch: options.fetch,