ai 4.1.32 → 4.1.33

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
2
2
 
3
+ ## 4.1.33
4
+
5
+ ### Patch Changes
6
+
7
+ - 74f0f0e: chore (ai/core): move providerMetadata to stable
8
+
3
9
  ## 4.1.32
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -901,6 +901,10 @@ interface GenerateObjectResult<OBJECT> {
901
901
  from the provider to the AI SDK and enable provider-specific
902
902
  results that can be fully encapsulated in the provider.
903
903
  */
904
+ readonly providerMetadata: ProviderMetadata | undefined;
905
+ /**
906
+ @deprecated Use `providerMetadata` instead.
907
+ */
904
908
  readonly experimental_providerMetadata: ProviderMetadata | undefined;
905
909
  /**
906
910
  Converts the object to a JSON response.
@@ -1155,6 +1159,10 @@ interface StreamObjectResult<PARTIAL, RESULT, ELEMENT_STREAM> {
1155
1159
  from the provider to the AI SDK and enable provider-specific
1156
1160
  results that can be fully encapsulated in the provider.
1157
1161
  */
1162
+ readonly providerMetadata: Promise<ProviderMetadata | undefined>;
1163
+ /**
1164
+ @deprecated Use `providerMetadata` instead.
1165
+ */
1158
1166
  readonly experimental_providerMetadata: Promise<ProviderMetadata | undefined>;
1159
1167
  /**
1160
1168
  Additional request information from the last step.
@@ -1264,6 +1272,10 @@ type StreamObjectOnFinishCallback<RESULT> = (event: {
1264
1272
  Additional provider-specific metadata. They are passed through
1265
1273
  to the provider from the AI SDK and enable provider-specific
1266
1274
  functionality that can be fully encapsulated in the provider.
1275
+ */
1276
+ providerMetadata: ProviderMetadata | undefined;
1277
+ /**
1278
+ @deprecated Use `providerMetadata` instead.
1267
1279
  */
1268
1280
  experimental_providerMetadata?: ProviderMetadata;
1269
1281
  }) => Promise<void> | void;
@@ -1719,6 +1731,10 @@ type StepResult<TOOLS extends ToolSet> = {
1719
1731
  from the provider to the AI SDK and enable provider-specific
1720
1732
  results that can be fully encapsulated in the provider.
1721
1733
  */
1734
+ readonly providerMetadata: ProviderMetadata | undefined;
1735
+ /**
1736
+ @deprecated Use `providerMetadata` instead.
1737
+ */
1722
1738
  readonly experimental_providerMetadata: ProviderMetadata | undefined;
1723
1739
  /**
1724
1740
  The type of step that this result is for. The first step is always
@@ -1837,6 +1853,10 @@ interface GenerateTextResult<TOOLS extends ToolSet, OUTPUT> {
1837
1853
  from the provider to the AI SDK and enable provider-specific
1838
1854
  results that can be fully encapsulated in the provider.
1839
1855
  */
1856
+ readonly providerMetadata: ProviderMetadata | undefined;
1857
+ /**
1858
+ @deprecated Use `providerMetadata` instead.
1859
+ */
1840
1860
  readonly experimental_providerMetadata: ProviderMetadata | undefined;
1841
1861
  }
1842
1862
 
@@ -2102,6 +2122,10 @@ interface StreamTextResult<TOOLS extends ToolSet, PARTIAL_OUTPUT> {
2102
2122
  Metadata is passed through from the provider to the AI SDK and
2103
2123
  enables provider-specific results that can be fully encapsulated in the provider.
2104
2124
  */
2125
+ readonly providerMetadata: Promise<ProviderMetadata | undefined>;
2126
+ /**
2127
+ @deprecated Use `providerMetadata` instead.
2128
+ */
2105
2129
  readonly experimental_providerMetadata: Promise<ProviderMetadata | undefined>;
2106
2130
  /**
2107
2131
  The full text that has been generated by the last step.
@@ -2293,12 +2317,20 @@ type TextStreamPart<TOOLS extends ToolSet> = {
2293
2317
  response: LanguageModelResponseMetadata;
2294
2318
  usage: LanguageModelUsage;
2295
2319
  finishReason: FinishReason;
2320
+ providerMetadata: ProviderMetadata | undefined;
2321
+ /**
2322
+ * @deprecated Use `providerMetadata` instead.
2323
+ */
2296
2324
  experimental_providerMetadata?: ProviderMetadata;
2297
2325
  isContinued: boolean;
2298
2326
  } | {
2299
2327
  type: 'finish';
2300
2328
  finishReason: FinishReason;
2301
2329
  usage: LanguageModelUsage;
2330
+ providerMetadata: ProviderMetadata | undefined;
2331
+ /**
2332
+ * @deprecated Use `providerMetadata` instead.
2333
+ */
2302
2334
  experimental_providerMetadata?: ProviderMetadata;
2303
2335
  /**
2304
2336
  * @deprecated will be moved into provider metadata
package/dist/index.d.ts CHANGED
@@ -901,6 +901,10 @@ interface GenerateObjectResult<OBJECT> {
901
901
  from the provider to the AI SDK and enable provider-specific
902
902
  results that can be fully encapsulated in the provider.
903
903
  */
904
+ readonly providerMetadata: ProviderMetadata | undefined;
905
+ /**
906
+ @deprecated Use `providerMetadata` instead.
907
+ */
904
908
  readonly experimental_providerMetadata: ProviderMetadata | undefined;
905
909
  /**
906
910
  Converts the object to a JSON response.
@@ -1155,6 +1159,10 @@ interface StreamObjectResult<PARTIAL, RESULT, ELEMENT_STREAM> {
1155
1159
  from the provider to the AI SDK and enable provider-specific
1156
1160
  results that can be fully encapsulated in the provider.
1157
1161
  */
1162
+ readonly providerMetadata: Promise<ProviderMetadata | undefined>;
1163
+ /**
1164
+ @deprecated Use `providerMetadata` instead.
1165
+ */
1158
1166
  readonly experimental_providerMetadata: Promise<ProviderMetadata | undefined>;
1159
1167
  /**
1160
1168
  Additional request information from the last step.
@@ -1264,6 +1272,10 @@ type StreamObjectOnFinishCallback<RESULT> = (event: {
1264
1272
  Additional provider-specific metadata. They are passed through
1265
1273
  to the provider from the AI SDK and enable provider-specific
1266
1274
  functionality that can be fully encapsulated in the provider.
1275
+ */
1276
+ providerMetadata: ProviderMetadata | undefined;
1277
+ /**
1278
+ @deprecated Use `providerMetadata` instead.
1267
1279
  */
1268
1280
  experimental_providerMetadata?: ProviderMetadata;
1269
1281
  }) => Promise<void> | void;
@@ -1719,6 +1731,10 @@ type StepResult<TOOLS extends ToolSet> = {
1719
1731
  from the provider to the AI SDK and enable provider-specific
1720
1732
  results that can be fully encapsulated in the provider.
1721
1733
  */
1734
+ readonly providerMetadata: ProviderMetadata | undefined;
1735
+ /**
1736
+ @deprecated Use `providerMetadata` instead.
1737
+ */
1722
1738
  readonly experimental_providerMetadata: ProviderMetadata | undefined;
1723
1739
  /**
1724
1740
  The type of step that this result is for. The first step is always
@@ -1837,6 +1853,10 @@ interface GenerateTextResult<TOOLS extends ToolSet, OUTPUT> {
1837
1853
  from the provider to the AI SDK and enable provider-specific
1838
1854
  results that can be fully encapsulated in the provider.
1839
1855
  */
1856
+ readonly providerMetadata: ProviderMetadata | undefined;
1857
+ /**
1858
+ @deprecated Use `providerMetadata` instead.
1859
+ */
1840
1860
  readonly experimental_providerMetadata: ProviderMetadata | undefined;
1841
1861
  }
1842
1862
 
@@ -2102,6 +2122,10 @@ interface StreamTextResult<TOOLS extends ToolSet, PARTIAL_OUTPUT> {
2102
2122
  Metadata is passed through from the provider to the AI SDK and
2103
2123
  enables provider-specific results that can be fully encapsulated in the provider.
2104
2124
  */
2125
+ readonly providerMetadata: Promise<ProviderMetadata | undefined>;
2126
+ /**
2127
+ @deprecated Use `providerMetadata` instead.
2128
+ */
2105
2129
  readonly experimental_providerMetadata: Promise<ProviderMetadata | undefined>;
2106
2130
  /**
2107
2131
  The full text that has been generated by the last step.
@@ -2293,12 +2317,20 @@ type TextStreamPart<TOOLS extends ToolSet> = {
2293
2317
  response: LanguageModelResponseMetadata;
2294
2318
  usage: LanguageModelUsage;
2295
2319
  finishReason: FinishReason;
2320
+ providerMetadata: ProviderMetadata | undefined;
2321
+ /**
2322
+ * @deprecated Use `providerMetadata` instead.
2323
+ */
2296
2324
  experimental_providerMetadata?: ProviderMetadata;
2297
2325
  isContinued: boolean;
2298
2326
  } | {
2299
2327
  type: 'finish';
2300
2328
  finishReason: FinishReason;
2301
2329
  usage: LanguageModelUsage;
2330
+ providerMetadata: ProviderMetadata | undefined;
2331
+ /**
2332
+ * @deprecated Use `providerMetadata` instead.
2333
+ */
2302
2334
  experimental_providerMetadata?: ProviderMetadata;
2303
2335
  /**
2304
2336
  * @deprecated will be moved into provider metadata
package/dist/index.js CHANGED
@@ -2799,6 +2799,7 @@ var DefaultGenerateObjectResult = class {
2799
2799
  this.finishReason = options.finishReason;
2800
2800
  this.usage = options.usage;
2801
2801
  this.warnings = options.warnings;
2802
+ this.providerMetadata = options.providerMetadata;
2802
2803
  this.experimental_providerMetadata = options.providerMetadata;
2803
2804
  this.response = options.response;
2804
2805
  this.request = options.request;
@@ -3409,6 +3410,7 @@ var DefaultStreamObjectResult = class {
3409
3410
  headers: rawResponse == null ? void 0 : rawResponse.headers
3410
3411
  },
3411
3412
  warnings,
3413
+ providerMetadata,
3412
3414
  experimental_providerMetadata: providerMetadata
3413
3415
  }));
3414
3416
  } catch (error2) {
@@ -3444,6 +3446,9 @@ var DefaultStreamObjectResult = class {
3444
3446
  get experimental_providerMetadata() {
3445
3447
  return this.providerMetadataPromise.value;
3446
3448
  }
3449
+ get providerMetadata() {
3450
+ return this.providerMetadataPromise.value;
3451
+ }
3447
3452
  get warnings() {
3448
3453
  return this.warningsPromise.value;
3449
3454
  }
@@ -4103,6 +4108,7 @@ async function generateText({
4103
4108
  // deep clone msgs to avoid mutating past messages in multi-step:
4104
4109
  messages: structuredClone(responseMessages)
4105
4110
  },
4111
+ providerMetadata: currentModelResponse.providerMetadata,
4106
4112
  experimental_providerMetadata: currentModelResponse.providerMetadata,
4107
4113
  isContinued: nextStepType === "continue"
4108
4114
  };
@@ -4245,6 +4251,7 @@ var DefaultGenerateTextResult = class {
4245
4251
  this.response = options.response;
4246
4252
  this.steps = options.steps;
4247
4253
  this.experimental_providerMetadata = options.providerMetadata;
4254
+ this.providerMetadata = options.providerMetadata;
4248
4255
  this.logprobs = options.logprobs;
4249
4256
  this.outputResolver = options.outputResolver;
4250
4257
  this.sources = options.sources;
@@ -4937,6 +4944,7 @@ var DefaultStreamTextResult = class {
4937
4944
  ...part.response,
4938
4945
  messages: [...recordedResponse.messages, ...stepMessages]
4939
4946
  },
4947
+ providerMetadata: part.experimental_providerMetadata,
4940
4948
  experimental_providerMetadata: part.experimental_providerMetadata,
4941
4949
  isContinued: part.isContinued
4942
4950
  };
@@ -5002,6 +5010,7 @@ var DefaultStreamTextResult = class {
5002
5010
  request: (_a16 = lastStep.request) != null ? _a16 : {},
5003
5011
  response: lastStep.response,
5004
5012
  warnings: lastStep.warnings,
5013
+ providerMetadata: lastStep.providerMetadata,
5005
5014
  experimental_providerMetadata: lastStep.experimental_providerMetadata,
5006
5015
  steps: recordedSteps
5007
5016
  }));
@@ -5382,6 +5391,7 @@ var DefaultStreamTextResult = class {
5382
5391
  type: "step-finish",
5383
5392
  finishReason: stepFinishReason,
5384
5393
  usage: stepUsage,
5394
+ providerMetadata: stepProviderMetadata,
5385
5395
  experimental_providerMetadata: stepProviderMetadata,
5386
5396
  logprobs: stepLogProbs,
5387
5397
  request: stepRequest,
@@ -5399,6 +5409,7 @@ var DefaultStreamTextResult = class {
5399
5409
  type: "finish",
5400
5410
  finishReason: stepFinishReason,
5401
5411
  usage: combinedUsage,
5412
+ providerMetadata: stepProviderMetadata,
5402
5413
  experimental_providerMetadata: stepProviderMetadata,
5403
5414
  logprobs: stepLogProbs,
5404
5415
  response: {
@@ -5486,6 +5497,9 @@ var DefaultStreamTextResult = class {
5486
5497
  get experimental_providerMetadata() {
5487
5498
  return this.providerMetadataPromise.value;
5488
5499
  }
5500
+ get providerMetadata() {
5501
+ return this.providerMetadataPromise.value;
5502
+ }
5489
5503
  get text() {
5490
5504
  return this.textPromise.value;
5491
5505
  }
@@ -5574,118 +5588,110 @@ var DefaultStreamTextResult = class {
5574
5588
  sendUsage = true,
5575
5589
  sendReasoning = false
5576
5590
  }) {
5577
- let aggregatedResponse = "";
5578
- const callbackTransformer = new TransformStream({
5579
- async transform(chunk, controller) {
5580
- controller.enqueue(chunk);
5581
- if (chunk.type === "text-delta") {
5582
- aggregatedResponse += chunk.textDelta;
5583
- }
5584
- }
5585
- });
5586
- const streamPartsTransformer = new TransformStream({
5587
- transform: async (chunk, controller) => {
5588
- const chunkType = chunk.type;
5589
- switch (chunkType) {
5590
- case "text-delta": {
5591
- controller.enqueue((0, import_ui_utils8.formatDataStreamPart)("text", chunk.textDelta));
5592
- break;
5593
- }
5594
- case "reasoning": {
5595
- if (sendReasoning) {
5591
+ return this.fullStream.pipeThrough(
5592
+ new TransformStream({
5593
+ transform: async (chunk, controller) => {
5594
+ const chunkType = chunk.type;
5595
+ switch (chunkType) {
5596
+ case "text-delta": {
5597
+ controller.enqueue((0, import_ui_utils8.formatDataStreamPart)("text", chunk.textDelta));
5598
+ break;
5599
+ }
5600
+ case "reasoning": {
5601
+ if (sendReasoning) {
5602
+ controller.enqueue(
5603
+ (0, import_ui_utils8.formatDataStreamPart)("reasoning", chunk.textDelta)
5604
+ );
5605
+ }
5606
+ break;
5607
+ }
5608
+ case "source": {
5609
+ break;
5610
+ }
5611
+ case "tool-call-streaming-start": {
5596
5612
  controller.enqueue(
5597
- (0, import_ui_utils8.formatDataStreamPart)("reasoning", chunk.textDelta)
5613
+ (0, import_ui_utils8.formatDataStreamPart)("tool_call_streaming_start", {
5614
+ toolCallId: chunk.toolCallId,
5615
+ toolName: chunk.toolName
5616
+ })
5598
5617
  );
5618
+ break;
5619
+ }
5620
+ case "tool-call-delta": {
5621
+ controller.enqueue(
5622
+ (0, import_ui_utils8.formatDataStreamPart)("tool_call_delta", {
5623
+ toolCallId: chunk.toolCallId,
5624
+ argsTextDelta: chunk.argsTextDelta
5625
+ })
5626
+ );
5627
+ break;
5628
+ }
5629
+ case "tool-call": {
5630
+ controller.enqueue(
5631
+ (0, import_ui_utils8.formatDataStreamPart)("tool_call", {
5632
+ toolCallId: chunk.toolCallId,
5633
+ toolName: chunk.toolName,
5634
+ args: chunk.args
5635
+ })
5636
+ );
5637
+ break;
5638
+ }
5639
+ case "tool-result": {
5640
+ controller.enqueue(
5641
+ (0, import_ui_utils8.formatDataStreamPart)("tool_result", {
5642
+ toolCallId: chunk.toolCallId,
5643
+ result: chunk.result
5644
+ })
5645
+ );
5646
+ break;
5647
+ }
5648
+ case "error": {
5649
+ controller.enqueue(
5650
+ (0, import_ui_utils8.formatDataStreamPart)("error", getErrorMessage5(chunk.error))
5651
+ );
5652
+ break;
5653
+ }
5654
+ case "step-start": {
5655
+ controller.enqueue(
5656
+ (0, import_ui_utils8.formatDataStreamPart)("start_step", {
5657
+ messageId: chunk.messageId
5658
+ })
5659
+ );
5660
+ break;
5661
+ }
5662
+ case "step-finish": {
5663
+ controller.enqueue(
5664
+ (0, import_ui_utils8.formatDataStreamPart)("finish_step", {
5665
+ finishReason: chunk.finishReason,
5666
+ usage: sendUsage ? {
5667
+ promptTokens: chunk.usage.promptTokens,
5668
+ completionTokens: chunk.usage.completionTokens
5669
+ } : void 0,
5670
+ isContinued: chunk.isContinued
5671
+ })
5672
+ );
5673
+ break;
5674
+ }
5675
+ case "finish": {
5676
+ controller.enqueue(
5677
+ (0, import_ui_utils8.formatDataStreamPart)("finish_message", {
5678
+ finishReason: chunk.finishReason,
5679
+ usage: sendUsage ? {
5680
+ promptTokens: chunk.usage.promptTokens,
5681
+ completionTokens: chunk.usage.completionTokens
5682
+ } : void 0
5683
+ })
5684
+ );
5685
+ break;
5686
+ }
5687
+ default: {
5688
+ const exhaustiveCheck = chunkType;
5689
+ throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);
5599
5690
  }
5600
- break;
5601
- }
5602
- case "source": {
5603
- break;
5604
- }
5605
- case "tool-call-streaming-start": {
5606
- controller.enqueue(
5607
- (0, import_ui_utils8.formatDataStreamPart)("tool_call_streaming_start", {
5608
- toolCallId: chunk.toolCallId,
5609
- toolName: chunk.toolName
5610
- })
5611
- );
5612
- break;
5613
- }
5614
- case "tool-call-delta": {
5615
- controller.enqueue(
5616
- (0, import_ui_utils8.formatDataStreamPart)("tool_call_delta", {
5617
- toolCallId: chunk.toolCallId,
5618
- argsTextDelta: chunk.argsTextDelta
5619
- })
5620
- );
5621
- break;
5622
- }
5623
- case "tool-call": {
5624
- controller.enqueue(
5625
- (0, import_ui_utils8.formatDataStreamPart)("tool_call", {
5626
- toolCallId: chunk.toolCallId,
5627
- toolName: chunk.toolName,
5628
- args: chunk.args
5629
- })
5630
- );
5631
- break;
5632
- }
5633
- case "tool-result": {
5634
- controller.enqueue(
5635
- (0, import_ui_utils8.formatDataStreamPart)("tool_result", {
5636
- toolCallId: chunk.toolCallId,
5637
- result: chunk.result
5638
- })
5639
- );
5640
- break;
5641
- }
5642
- case "error": {
5643
- controller.enqueue(
5644
- (0, import_ui_utils8.formatDataStreamPart)("error", getErrorMessage5(chunk.error))
5645
- );
5646
- break;
5647
- }
5648
- case "step-start": {
5649
- controller.enqueue(
5650
- (0, import_ui_utils8.formatDataStreamPart)("start_step", {
5651
- messageId: chunk.messageId
5652
- })
5653
- );
5654
- break;
5655
- }
5656
- case "step-finish": {
5657
- controller.enqueue(
5658
- (0, import_ui_utils8.formatDataStreamPart)("finish_step", {
5659
- finishReason: chunk.finishReason,
5660
- usage: sendUsage ? {
5661
- promptTokens: chunk.usage.promptTokens,
5662
- completionTokens: chunk.usage.completionTokens
5663
- } : void 0,
5664
- isContinued: chunk.isContinued
5665
- })
5666
- );
5667
- break;
5668
- }
5669
- case "finish": {
5670
- controller.enqueue(
5671
- (0, import_ui_utils8.formatDataStreamPart)("finish_message", {
5672
- finishReason: chunk.finishReason,
5673
- usage: sendUsage ? {
5674
- promptTokens: chunk.usage.promptTokens,
5675
- completionTokens: chunk.usage.completionTokens
5676
- } : void 0
5677
- })
5678
- );
5679
- break;
5680
- }
5681
- default: {
5682
- const exhaustiveCheck = chunkType;
5683
- throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);
5684
5691
  }
5685
5692
  }
5686
- }
5687
- });
5688
- return this.fullStream.pipeThrough(callbackTransformer).pipeThrough(streamPartsTransformer);
5693
+ })
5694
+ );
5689
5695
  }
5690
5696
  pipeDataStreamToResponse(response, {
5691
5697
  status,