@ai-sdk/xai 4.0.0-beta.17 → 4.0.0-beta.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/xai",
3
- "version": "4.0.0-beta.17",
3
+ "version": "4.0.0-beta.18",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -257,6 +257,7 @@ export class XaiResponsesLanguageModel implements LanguageModelV4 {
257
257
  });
258
258
 
259
259
  const content: Array<LanguageModelV4Content> = [];
260
+ let hasFunctionCall = false;
260
261
 
261
262
  const webSearchSubTools = [
262
263
  'web_search',
@@ -379,6 +380,7 @@ export class XaiResponsesLanguageModel implements LanguageModelV4 {
379
380
  }
380
381
 
381
382
  case 'function_call': {
383
+ hasFunctionCall = true;
382
384
  content.push({
383
385
  type: 'tool-call',
384
386
  toolCallId: part.call_id,
@@ -431,7 +433,9 @@ export class XaiResponsesLanguageModel implements LanguageModelV4 {
431
433
  return {
432
434
  content,
433
435
  finishReason: {
434
- unified: mapXaiResponsesFinishReason(response.status),
436
+ unified: hasFunctionCall
437
+ ? 'tool-calls'
438
+ : mapXaiResponsesFinishReason(response.status),
435
439
  raw: response.status ?? undefined,
436
440
  },
437
441
  usage: response.usage
@@ -483,6 +487,7 @@ export class XaiResponsesLanguageModel implements LanguageModelV4 {
483
487
  unified: 'other',
484
488
  raw: undefined,
485
489
  };
490
+ let hasFunctionCall = false;
486
491
  let usage: LanguageModelV4Usage | undefined = undefined;
487
492
  let isFirstChunk = true;
488
493
  const contentBlocks: Record<string, { type: 'text' }> = {};
@@ -676,7 +681,9 @@ export class XaiResponsesLanguageModel implements LanguageModelV4 {
676
681
 
677
682
  if (response.status) {
678
683
  finishReason = {
679
- unified: mapXaiResponsesFinishReason(response.status),
684
+ unified: hasFunctionCall
685
+ ? 'tool-calls'
686
+ : mapXaiResponsesFinishReason(response.status),
680
687
  raw: response.status,
681
688
  };
682
689
  }
@@ -944,6 +951,7 @@ export class XaiResponsesLanguageModel implements LanguageModelV4 {
944
951
  toolName: part.name,
945
952
  });
946
953
  } else if (event.type === 'response.output_item.done') {
954
+ hasFunctionCall = true;
947
955
  ongoingToolCalls[event.output_index] = undefined;
948
956
 
949
957
  controller.enqueue({