@ai-sdk/openai 4.0.90 → 4.0.91

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,16 @@
1
1
  # @ai-sdk/openai
2
2
 
3
+ ## 4.0.91
4
+
5
+ ### Patch Changes
6
+
7
+ - 5cf13d2: feat: map the top level embedding dimensions to provider settings
8
+ - 72e9d38: feat(openai): send image detail in decisions
9
+ - fb933f9: Report failed and incomplete web searches as tool errors instead of successful tool results in OpenAI Responses API calls and batch results.
10
+ - Updated dependencies [4dbc902]
11
+ - @ai-sdk/provider@4.0.26
12
+ - @ai-sdk/provider-utils@5.0.58
13
+
3
14
  ## 4.0.90
4
15
 
5
16
  ### Patch Changes
package/dist/index.js CHANGED
@@ -142,9 +142,11 @@ var DecisionOpenAIModel = class DecisionOpenAIModel {
142
142
  "image/webp",
143
143
  "image/gif"
144
144
  ].includes(mediaType ?? "")) throw new UnsupportedFunctionalityError({ functionality: `OpenAI decision image media type: ${part.mediaType}` });
145
+ const detail = part.providerOptions?.openai?.imageDetail;
145
146
  return {
146
147
  type: "input_image",
147
- image_url: `data:${mediaType};base64,${typeof part.data.data === "string" ? part.data.data : convertUint8ArrayToBase64(part.data.data)}`
148
+ image_url: `data:${mediaType};base64,${typeof part.data.data === "string" ? part.data.data : convertUint8ArrayToBase64(part.data.data)}`,
149
+ ...detail != null && { detail }
148
150
  };
149
151
  })
150
152
  }],
@@ -1978,7 +1980,7 @@ var OpenAIEmbeddingModel = class OpenAIEmbeddingModel {
1978
1980
  this.modelId = modelId;
1979
1981
  this.config = config;
1980
1982
  }
1981
- async doEmbed({ values, headers, abortSignal, providerOptions }) {
1983
+ async doEmbed({ values, dimensions, headers, abortSignal, providerOptions }) {
1982
1984
  if (values.length > this.maxEmbeddingsPerCall) throw new TooManyEmbeddingValuesForCallError({
1983
1985
  provider: this.provider,
1984
1986
  modelId: this.modelId,
@@ -2000,7 +2002,7 @@ var OpenAIEmbeddingModel = class OpenAIEmbeddingModel {
2000
2002
  model: this.modelId,
2001
2003
  input: values,
2002
2004
  encoding_format: "float",
2003
- dimensions: openaiOptions.dimensions,
2005
+ dimensions: openaiOptions.dimensions ?? dimensions,
2004
2006
  user: openaiOptions.user
2005
2007
  },
2006
2008
  failedResponseHandler: openaiFailedResponseHandler,
@@ -6656,7 +6658,10 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
6656
6658
  type: "tool-result",
6657
6659
  toolCallId: part.id,
6658
6660
  toolName: toolNameMapping.toCustomToolName(webSearchToolName ?? "web_search"),
6659
- result: mapWebSearchOutput(part.action)
6661
+ ...part.status === "failed" || part.status === "incomplete" ? {
6662
+ isError: true,
6663
+ result: { status: part.status }
6664
+ } : { result: mapWebSearchOutput(part.action) }
6660
6665
  });
6661
6666
  break;
6662
6667
  case "mcp_call": {
@@ -7236,7 +7241,10 @@ var OpenAIResponsesLanguageModel = class OpenAIResponsesLanguageModel {
7236
7241
  type: "tool-result",
7237
7242
  toolCallId: value.item.id,
7238
7243
  toolName: toolNameMapping.toCustomToolName(webSearchToolName ?? "web_search"),
7239
- result: mapWebSearchOutput(value.item.action)
7244
+ ...value.item.status === "failed" || value.item.status === "incomplete" ? {
7245
+ isError: true,
7246
+ result: { status: value.item.status }
7247
+ } : { result: mapWebSearchOutput(value.item.action) }
7240
7248
  });
7241
7249
  } else if (value.item.type === "computer_call") {
7242
7250
  ongoingToolCalls[value.output_index] = void 0;
@@ -8369,7 +8377,10 @@ async function convertOpenAIBatchResult(body) {
8369
8377
  type: "tool-result",
8370
8378
  toolCallId: part.id,
8371
8379
  toolName: "web_search",
8372
- result: mapWebSearchOutput(part.action),
8380
+ ...part.status === "failed" || part.status === "incomplete" ? {
8381
+ isError: true,
8382
+ result: { status: part.status }
8383
+ } : { result: mapWebSearchOutput(part.action) },
8373
8384
  dynamic: true
8374
8385
  });
8375
8386
  break;
@@ -10075,7 +10086,7 @@ var OpenAISkills = class {
10075
10086
  };
10076
10087
  //#endregion
10077
10088
  //#region src/version.ts
10078
- const VERSION = "4.0.90";
10089
+ const VERSION = "4.0.91";
10079
10090
  //#endregion
10080
10091
  //#region src/openai-provider.ts
10081
10092
  /**