@ai-sdk/openai 2.0.2 → 2.0.4

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.
@@ -142,7 +142,7 @@ function convertToOpenAIChatMessages({
142
142
  }
143
143
  return {
144
144
  type: "file",
145
- file: {
145
+ file: typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
146
146
  filename: (_c = part.filename) != null ? _c : `part-${index}.pdf`,
147
147
  file_data: `data:application/pdf;base64,${(0, import_provider_utils.convertToBase64)(part.data)}`
148
148
  }
@@ -2047,13 +2047,14 @@ var OpenAISpeechModel = class {
2047
2047
 
2048
2048
  // src/responses/openai-responses-language-model.ts
2049
2049
  var import_provider8 = require("@ai-sdk/provider");
2050
- var import_provider_utils12 = require("@ai-sdk/provider-utils");
2050
+ var import_provider_utils13 = require("@ai-sdk/provider-utils");
2051
2051
  var import_v415 = require("zod/v4");
2052
2052
 
2053
2053
  // src/responses/convert-to-openai-responses-messages.ts
2054
2054
  var import_provider6 = require("@ai-sdk/provider");
2055
2055
  var import_provider_utils11 = require("@ai-sdk/provider-utils");
2056
2056
  var import_v414 = require("zod/v4");
2057
+ var import_provider_utils12 = require("@ai-sdk/provider-utils");
2057
2058
  async function convertToOpenAIResponsesMessages({
2058
2059
  prompt,
2059
2060
  systemMessageMode
@@ -2103,8 +2104,9 @@ async function convertToOpenAIResponsesMessages({
2103
2104
  const mediaType = part.mediaType === "image/*" ? "image/jpeg" : part.mediaType;
2104
2105
  return {
2105
2106
  type: "input_image",
2106
- image_url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${part.data}`,
2107
- // OpenAI specific extension: image detail
2107
+ ...part.data instanceof URL ? { image_url: part.data.toString() } : typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
2108
+ image_url: `data:${mediaType};base64,${part.data}`
2109
+ },
2108
2110
  detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2.openai) == null ? void 0 : _b2.imageDetail
2109
2111
  };
2110
2112
  } else if (part.mediaType === "application/pdf") {
@@ -2115,8 +2117,10 @@ async function convertToOpenAIResponsesMessages({
2115
2117
  }
2116
2118
  return {
2117
2119
  type: "input_file",
2118
- filename: (_c2 = part.filename) != null ? _c2 : `part-${index}.pdf`,
2119
- file_data: `data:application/pdf;base64,${part.data}`
2120
+ ...typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
2121
+ filename: (_c2 = part.filename) != null ? _c2 : `part-${index}.pdf`,
2122
+ file_data: `data:application/pdf;base64,${(0, import_provider_utils12.convertToBase64)(part.data)}`
2123
+ }
2120
2124
  };
2121
2125
  } else {
2122
2126
  throw new import_provider6.UnsupportedFunctionalityError({
@@ -2391,7 +2395,7 @@ var OpenAIResponsesLanguageModel = class {
2391
2395
  systemMessageMode: modelConfig.systemMessageMode
2392
2396
  });
2393
2397
  warnings.push(...messageWarnings);
2394
- const openaiOptions = await (0, import_provider_utils12.parseProviderOptions)({
2398
+ const openaiOptions = await (0, import_provider_utils13.parseProviderOptions)({
2395
2399
  provider: "openai",
2396
2400
  providerOptions,
2397
2401
  schema: openaiResponsesProviderOptionsSchema
@@ -2516,12 +2520,12 @@ var OpenAIResponsesLanguageModel = class {
2516
2520
  responseHeaders,
2517
2521
  value: response,
2518
2522
  rawValue: rawResponse
2519
- } = await (0, import_provider_utils12.postJsonToApi)({
2523
+ } = await (0, import_provider_utils13.postJsonToApi)({
2520
2524
  url,
2521
- headers: (0, import_provider_utils12.combineHeaders)(this.config.headers(), options.headers),
2525
+ headers: (0, import_provider_utils13.combineHeaders)(this.config.headers(), options.headers),
2522
2526
  body,
2523
2527
  failedResponseHandler: openaiFailedResponseHandler,
2524
- successfulResponseHandler: (0, import_provider_utils12.createJsonResponseHandler)(
2528
+ successfulResponseHandler: (0, import_provider_utils13.createJsonResponseHandler)(
2525
2529
  import_v415.z.object({
2526
2530
  id: import_v415.z.string(),
2527
2531
  created_at: import_v415.z.number(),
@@ -2641,7 +2645,7 @@ var OpenAIResponsesLanguageModel = class {
2641
2645
  content.push({
2642
2646
  type: "source",
2643
2647
  sourceType: "url",
2644
- id: (_d = (_c = (_b = this.config).generateId) == null ? void 0 : _c.call(_b)) != null ? _d : (0, import_provider_utils12.generateId)(),
2648
+ id: (_d = (_c = (_b = this.config).generateId) == null ? void 0 : _c.call(_b)) != null ? _d : (0, import_provider_utils13.generateId)(),
2645
2649
  url: annotation.url,
2646
2650
  title: annotation.title
2647
2651
  });
@@ -2753,18 +2757,18 @@ var OpenAIResponsesLanguageModel = class {
2753
2757
  }
2754
2758
  async doStream(options) {
2755
2759
  const { args: body, warnings } = await this.getArgs(options);
2756
- const { responseHeaders, value: response } = await (0, import_provider_utils12.postJsonToApi)({
2760
+ const { responseHeaders, value: response } = await (0, import_provider_utils13.postJsonToApi)({
2757
2761
  url: this.config.url({
2758
2762
  path: "/responses",
2759
2763
  modelId: this.modelId
2760
2764
  }),
2761
- headers: (0, import_provider_utils12.combineHeaders)(this.config.headers(), options.headers),
2765
+ headers: (0, import_provider_utils13.combineHeaders)(this.config.headers(), options.headers),
2762
2766
  body: {
2763
2767
  ...body,
2764
2768
  stream: true
2765
2769
  },
2766
2770
  failedResponseHandler: openaiFailedResponseHandler,
2767
- successfulResponseHandler: (0, import_provider_utils12.createEventSourceResponseHandler)(
2771
+ successfulResponseHandler: (0, import_provider_utils13.createEventSourceResponseHandler)(
2768
2772
  openaiResponsesChunkSchema
2769
2773
  ),
2770
2774
  abortSignal: options.abortSignal,
@@ -3007,7 +3011,7 @@ var OpenAIResponsesLanguageModel = class {
3007
3011
  controller.enqueue({
3008
3012
  type: "source",
3009
3013
  sourceType: "url",
3010
- id: (_m = (_l = (_k = self.config).generateId) == null ? void 0 : _l.call(_k)) != null ? _m : (0, import_provider_utils12.generateId)(),
3014
+ id: (_m = (_l = (_k = self.config).generateId) == null ? void 0 : _l.call(_k)) != null ? _m : (0, import_provider_utils13.generateId)(),
3011
3015
  url: value.annotation.url,
3012
3016
  title: value.annotation.title
3013
3017
  });