@ai-sdk/xai 2.0.63 → 2.0.64

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/xai
2
2
 
3
+ ## 2.0.64
4
+
5
+ ### Patch Changes
6
+
7
+ - 2418bd8: fix(provider/xai): correct finish reason for tool calls
8
+
3
9
  ## 2.0.63
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1781,6 +1781,7 @@ var XaiResponsesLanguageModel = class {
1781
1781
  fetch: this.config.fetch
1782
1782
  });
1783
1783
  const content = [];
1784
+ let hasFunctionCall = false;
1784
1785
  const webSearchSubTools = [
1785
1786
  "web_search",
1786
1787
  "web_search_with_snippets",
@@ -1838,6 +1839,7 @@ var XaiResponsesLanguageModel = class {
1838
1839
  break;
1839
1840
  }
1840
1841
  case "function_call": {
1842
+ hasFunctionCall = true;
1841
1843
  content.push({
1842
1844
  type: "tool-call",
1843
1845
  toolCallId: part.call_id,
@@ -1879,7 +1881,7 @@ var XaiResponsesLanguageModel = class {
1879
1881
  }
1880
1882
  return {
1881
1883
  content,
1882
- finishReason: mapXaiResponsesFinishReason(response.status),
1884
+ finishReason: hasFunctionCall ? "tool-calls" : mapXaiResponsesFinishReason(response.status),
1883
1885
  usage: convertXaiResponsesUsage(response.usage),
1884
1886
  request: { body },
1885
1887
  response: {
@@ -1920,6 +1922,7 @@ var XaiResponsesLanguageModel = class {
1920
1922
  outputTokens: void 0,
1921
1923
  totalTokens: void 0
1922
1924
  };
1925
+ let hasFunctionCall = false;
1923
1926
  let isFirstChunk = true;
1924
1927
  const contentBlocks = {};
1925
1928
  const seenToolCalls = /* @__PURE__ */ new Set();
@@ -2066,7 +2069,7 @@ var XaiResponsesLanguageModel = class {
2066
2069
  usage.cachedInputTokens = converted.cachedInputTokens;
2067
2070
  }
2068
2071
  if (response2.status) {
2069
- finishReason = mapXaiResponsesFinishReason(response2.status);
2072
+ finishReason = hasFunctionCall ? "tool-calls" : mapXaiResponsesFinishReason(response2.status);
2070
2073
  }
2071
2074
  return;
2072
2075
  }
@@ -2206,6 +2209,7 @@ var XaiResponsesLanguageModel = class {
2206
2209
  toolName: part.name
2207
2210
  });
2208
2211
  } else if (event.type === "response.output_item.done") {
2212
+ hasFunctionCall = true;
2209
2213
  ongoingToolCalls[event.output_index] = void 0;
2210
2214
  controller.enqueue({
2211
2215
  type: "tool-input-end",
@@ -2296,7 +2300,7 @@ var xaiTools = {
2296
2300
  };
2297
2301
 
2298
2302
  // src/version.ts
2299
- var VERSION = true ? "2.0.63" : "0.0.0-test";
2303
+ var VERSION = true ? "2.0.64" : "0.0.0-test";
2300
2304
 
2301
2305
  // src/xai-provider.ts
2302
2306
  var xaiErrorStructure = {