ai 5.0.0-beta.20 → 5.0.0-beta.21

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/dist/index.d.ts CHANGED
@@ -1253,6 +1253,10 @@ type TextUIPart = {
1253
1253
  * The state of the text part.
1254
1254
  */
1255
1255
  state?: 'streaming' | 'done';
1256
+ /**
1257
+ * The provider metadata.
1258
+ */
1259
+ providerMetadata?: ProviderMetadata;
1256
1260
  };
1257
1261
  /**
1258
1262
  * A reasoning part of a message.
@@ -1270,7 +1274,7 @@ type ReasoningUIPart = {
1270
1274
  /**
1271
1275
  * The provider metadata.
1272
1276
  */
1273
- providerMetadata?: Record<string, any>;
1277
+ providerMetadata?: ProviderMetadata;
1274
1278
  };
1275
1279
  /**
1276
1280
  * A source part of a message.
@@ -1280,7 +1284,7 @@ type SourceUrlUIPart = {
1280
1284
  sourceId: string;
1281
1285
  url: string;
1282
1286
  title?: string;
1283
- providerMetadata?: Record<string, any>;
1287
+ providerMetadata?: ProviderMetadata;
1284
1288
  };
1285
1289
  /**
1286
1290
  * A document source part of a message.
@@ -1291,7 +1295,7 @@ type SourceDocumentUIPart = {
1291
1295
  mediaType: string;
1292
1296
  title: string;
1293
1297
  filename?: string;
1294
- providerMetadata?: Record<string, any>;
1298
+ providerMetadata?: ProviderMetadata;
1295
1299
  };
1296
1300
  /**
1297
1301
  * A file part of a message.
@@ -1313,6 +1317,10 @@ type FileUIPart = {
1313
1317
  * It can either be a URL to a hosted file or a [Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs).
1314
1318
  */
1315
1319
  url: string;
1320
+ /**
1321
+ * The provider metadata.
1322
+ */
1323
+ providerMetadata?: ProviderMetadata;
1316
1324
  };
1317
1325
  /**
1318
1326
  * A step boundary part of a message.
@@ -1343,18 +1351,21 @@ type ToolUIPart<TOOLS extends UITools = UITools> = ValueOf<{
1343
1351
  providerExecuted?: boolean;
1344
1352
  output?: never;
1345
1353
  errorText?: never;
1354
+ callProviderMetadata?: ProviderMetadata;
1346
1355
  } | {
1347
1356
  state: 'output-available';
1348
1357
  input: TOOLS[NAME]['input'];
1349
1358
  output: TOOLS[NAME]['output'];
1350
1359
  errorText?: never;
1351
1360
  providerExecuted?: boolean;
1361
+ callProviderMetadata?: ProviderMetadata;
1352
1362
  } | {
1353
1363
  state: 'output-error';
1354
1364
  input: TOOLS[NAME]['input'];
1355
1365
  output?: never;
1356
1366
  errorText: string;
1357
1367
  providerExecuted?: boolean;
1368
+ callProviderMetadata?: ProviderMetadata;
1358
1369
  });
1359
1370
  }>;
1360
1371
  declare function isToolUIPart<TOOLS extends UITools>(part: UIMessagePart<UIDataTypes, TOOLS>): part is ToolUIPart<TOOLS>;
@@ -1373,13 +1384,16 @@ type DataUIMessageChunk<DATA_TYPES extends UIDataTypes> = ValueOf<{
1373
1384
  type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataTypes> = {
1374
1385
  type: 'text-start';
1375
1386
  id: string;
1387
+ providerMetadata?: ProviderMetadata;
1376
1388
  } | {
1377
1389
  type: 'text-delta';
1378
1390
  delta: string;
1379
1391
  id: string;
1392
+ providerMetadata?: ProviderMetadata;
1380
1393
  } | {
1381
1394
  type: 'text-end';
1382
1395
  id: string;
1396
+ providerMetadata?: ProviderMetadata;
1383
1397
  } | {
1384
1398
  type: 'reasoning-start';
1385
1399
  id: string;
@@ -1402,6 +1416,7 @@ type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataT
1402
1416
  toolName: string;
1403
1417
  input: unknown;
1404
1418
  providerExecuted?: boolean;
1419
+ providerMetadata?: ProviderMetadata;
1405
1420
  } | {
1406
1421
  type: 'tool-output-available';
1407
1422
  toolCallId: string;
@@ -3992,4 +4007,4 @@ declare global {
3992
4007
  var AI_SDK_DEFAULT_PROVIDER: ProviderV2 | undefined;
3993
4008
  }
3994
4009
 
3995
- export { AbstractChat, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RetryError, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolErrorUnion, ToolResultUnion, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, hasToolCall, isDeepEqualData, isToolUIPart, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, wrapLanguageModel };
4010
+ export { AbstractChat, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RetryError, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolErrorUnion, ToolResultUnion, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, hasToolCall, isDeepEqualData, isToolUIPart, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, wrapLanguageModel };
package/dist/index.js CHANGED
@@ -1874,7 +1874,11 @@ function toResponseMessages({
1874
1874
  ).filter((part) => part.type !== "text" || part.text.length > 0).map((part) => {
1875
1875
  switch (part.type) {
1876
1876
  case "text":
1877
- return part;
1877
+ return {
1878
+ type: "text",
1879
+ text: part.text,
1880
+ providerOptions: part.providerMetadata
1881
+ };
1878
1882
  case "reasoning":
1879
1883
  return {
1880
1884
  type: "reasoning",
@@ -2616,16 +2620,19 @@ var import_v47 = require("zod/v4");
2616
2620
  var uiMessageChunkSchema = import_v47.z.union([
2617
2621
  import_v47.z.strictObject({
2618
2622
  type: import_v47.z.literal("text-start"),
2619
- id: import_v47.z.string()
2623
+ id: import_v47.z.string(),
2624
+ providerMetadata: providerMetadataSchema.optional()
2620
2625
  }),
2621
2626
  import_v47.z.strictObject({
2622
2627
  type: import_v47.z.literal("text-delta"),
2623
2628
  id: import_v47.z.string(),
2624
- delta: import_v47.z.string()
2629
+ delta: import_v47.z.string(),
2630
+ providerMetadata: providerMetadataSchema.optional()
2625
2631
  }),
2626
2632
  import_v47.z.strictObject({
2627
2633
  type: import_v47.z.literal("text-end"),
2628
- id: import_v47.z.string()
2634
+ id: import_v47.z.string(),
2635
+ providerMetadata: providerMetadataSchema.optional()
2629
2636
  }),
2630
2637
  import_v47.z.strictObject({
2631
2638
  type: import_v47.z.literal("error"),
@@ -2647,7 +2654,8 @@ var uiMessageChunkSchema = import_v47.z.union([
2647
2654
  toolCallId: import_v47.z.string(),
2648
2655
  toolName: import_v47.z.string(),
2649
2656
  input: import_v47.z.unknown(),
2650
- providerExecuted: import_v47.z.boolean().optional()
2657
+ providerExecuted: import_v47.z.boolean().optional(),
2658
+ providerMetadata: providerMetadataSchema.optional()
2651
2659
  }),
2652
2660
  import_v47.z.strictObject({
2653
2661
  type: import_v47.z.literal("tool-output-available"),
@@ -2664,23 +2672,23 @@ var uiMessageChunkSchema = import_v47.z.union([
2664
2672
  import_v47.z.strictObject({
2665
2673
  type: import_v47.z.literal("reasoning"),
2666
2674
  text: import_v47.z.string(),
2667
- providerMetadata: import_v47.z.record(import_v47.z.string(), import_v47.z.any()).optional()
2675
+ providerMetadata: providerMetadataSchema.optional()
2668
2676
  }),
2669
2677
  import_v47.z.strictObject({
2670
2678
  type: import_v47.z.literal("reasoning-start"),
2671
2679
  id: import_v47.z.string(),
2672
- providerMetadata: import_v47.z.record(import_v47.z.string(), import_v47.z.any()).optional()
2680
+ providerMetadata: providerMetadataSchema.optional()
2673
2681
  }),
2674
2682
  import_v47.z.strictObject({
2675
2683
  type: import_v47.z.literal("reasoning-delta"),
2676
2684
  id: import_v47.z.string(),
2677
2685
  delta: import_v47.z.string(),
2678
- providerMetadata: import_v47.z.record(import_v47.z.string(), import_v47.z.any()).optional()
2686
+ providerMetadata: providerMetadataSchema.optional()
2679
2687
  }),
2680
2688
  import_v47.z.strictObject({
2681
2689
  type: import_v47.z.literal("reasoning-end"),
2682
2690
  id: import_v47.z.string(),
2683
- providerMetadata: import_v47.z.record(import_v47.z.string(), import_v47.z.any()).optional()
2691
+ providerMetadata: providerMetadataSchema.optional()
2684
2692
  }),
2685
2693
  import_v47.z.strictObject({
2686
2694
  type: import_v47.z.literal("reasoning-part-finish")
@@ -2690,8 +2698,7 @@ var uiMessageChunkSchema = import_v47.z.union([
2690
2698
  sourceId: import_v47.z.string(),
2691
2699
  url: import_v47.z.string(),
2692
2700
  title: import_v47.z.string().optional(),
2693
- providerMetadata: import_v47.z.any().optional()
2694
- // Use z.any() for generic metadata
2701
+ providerMetadata: providerMetadataSchema.optional()
2695
2702
  }),
2696
2703
  import_v47.z.strictObject({
2697
2704
  type: import_v47.z.literal("source-document"),
@@ -2699,13 +2706,13 @@ var uiMessageChunkSchema = import_v47.z.union([
2699
2706
  mediaType: import_v47.z.string(),
2700
2707
  title: import_v47.z.string(),
2701
2708
  filename: import_v47.z.string().optional(),
2702
- providerMetadata: import_v47.z.any().optional()
2703
- // Use z.any() for generic metadata
2709
+ providerMetadata: providerMetadataSchema.optional()
2704
2710
  }),
2705
2711
  import_v47.z.strictObject({
2706
2712
  type: import_v47.z.literal("file"),
2707
2713
  url: import_v47.z.string(),
2708
- mediaType: import_v47.z.string()
2714
+ mediaType: import_v47.z.string(),
2715
+ providerMetadata: providerMetadataSchema.optional()
2709
2716
  }),
2710
2717
  import_v47.z.strictObject({
2711
2718
  type: import_v47.z.string().startsWith("data-"),
@@ -3145,7 +3152,7 @@ function processUIMessageStream({
3145
3152
  new TransformStream({
3146
3153
  async transform(part, controller) {
3147
3154
  await runUpdateMessageJob(async ({ state, write }) => {
3148
- var _a16, _b;
3155
+ var _a16, _b, _c, _d;
3149
3156
  function updateToolInvocationPart(options) {
3150
3157
  var _a17;
3151
3158
  const part2 = state.message.parts.find(
@@ -3159,6 +3166,9 @@ function processUIMessageStream({
3159
3166
  anyPart.output = anyOptions.output;
3160
3167
  anyPart.errorText = anyOptions.errorText;
3161
3168
  anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part2.providerExecuted;
3169
+ if (anyOptions.providerMetadata != null && part2.state === "input-available") {
3170
+ part2.callProviderMetadata = anyOptions.providerMetadata;
3171
+ }
3162
3172
  } else {
3163
3173
  state.message.parts.push({
3164
3174
  type: `tool-${options.toolName}`,
@@ -3167,7 +3177,8 @@ function processUIMessageStream({
3167
3177
  input: anyOptions.input,
3168
3178
  output: anyOptions.output,
3169
3179
  errorText: anyOptions.errorText,
3170
- providerExecuted: anyOptions.providerExecuted
3180
+ providerExecuted: anyOptions.providerExecuted,
3181
+ ...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}
3171
3182
  });
3172
3183
  }
3173
3184
  }
@@ -3188,6 +3199,7 @@ function processUIMessageStream({
3188
3199
  const textPart = {
3189
3200
  type: "text",
3190
3201
  text: "",
3202
+ providerMetadata: part.providerMetadata,
3191
3203
  state: "streaming"
3192
3204
  };
3193
3205
  state.activeTextParts[part.id] = textPart;
@@ -3196,13 +3208,16 @@ function processUIMessageStream({
3196
3208
  break;
3197
3209
  }
3198
3210
  case "text-delta": {
3199
- state.activeTextParts[part.id].text += part.delta;
3211
+ const textPart = state.activeTextParts[part.id];
3212
+ textPart.text += part.delta;
3213
+ textPart.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : textPart.providerMetadata;
3200
3214
  write();
3201
3215
  break;
3202
3216
  }
3203
3217
  case "text-end": {
3204
3218
  const textPart = state.activeTextParts[part.id];
3205
3219
  textPart.state = "done";
3220
+ textPart.providerMetadata = (_b = part.providerMetadata) != null ? _b : textPart.providerMetadata;
3206
3221
  delete state.activeTextParts[part.id];
3207
3222
  write();
3208
3223
  break;
@@ -3222,13 +3237,13 @@ function processUIMessageStream({
3222
3237
  case "reasoning-delta": {
3223
3238
  const reasoningPart = state.activeReasoningParts[part.id];
3224
3239
  reasoningPart.text += part.delta;
3225
- reasoningPart.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : reasoningPart.providerMetadata;
3240
+ reasoningPart.providerMetadata = (_c = part.providerMetadata) != null ? _c : reasoningPart.providerMetadata;
3226
3241
  write();
3227
3242
  break;
3228
3243
  }
3229
3244
  case "reasoning-end": {
3230
3245
  const reasoningPart = state.activeReasoningParts[part.id];
3231
- reasoningPart.providerMetadata = (_b = part.providerMetadata) != null ? _b : reasoningPart.providerMetadata;
3246
+ reasoningPart.providerMetadata = (_d = part.providerMetadata) != null ? _d : reasoningPart.providerMetadata;
3232
3247
  reasoningPart.state = "done";
3233
3248
  delete state.activeReasoningParts[part.id];
3234
3249
  write();
@@ -3304,7 +3319,8 @@ function processUIMessageStream({
3304
3319
  toolName: part.toolName,
3305
3320
  state: "input-available",
3306
3321
  input: part.input,
3307
- providerExecuted: part.providerExecuted
3322
+ providerExecuted: part.providerExecuted,
3323
+ providerMetadata: part.providerMetadata
3308
3324
  });
3309
3325
  write();
3310
3326
  if (onToolCall && !part.providerExecuted) {
@@ -4107,7 +4123,7 @@ var DefaultStreamTextResult = class {
4107
4123
  let activeReasoningContent = {};
4108
4124
  const eventProcessor = new TransformStream({
4109
4125
  async transform(chunk, controller) {
4110
- var _a16, _b;
4126
+ var _a16, _b, _c;
4111
4127
  controller.enqueue(chunk);
4112
4128
  const { part } = chunk;
4113
4129
  if (part.type === "text" || part.type === "reasoning" || part.type === "source" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-input-start" || part.type === "tool-input-delta" || part.type === "raw") {
@@ -4137,7 +4153,7 @@ var DefaultStreamTextResult = class {
4137
4153
  return;
4138
4154
  }
4139
4155
  activeText.text += part.text;
4140
- activeText.providerMetadata = part.providerMetadata;
4156
+ activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
4141
4157
  }
4142
4158
  if (part.type === "text-end") {
4143
4159
  delete activeTextContent[part.id];
@@ -4163,7 +4179,7 @@ var DefaultStreamTextResult = class {
4163
4179
  return;
4164
4180
  }
4165
4181
  activeReasoning.text += part.text;
4166
- activeReasoning.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeReasoning.providerMetadata;
4182
+ activeReasoning.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeReasoning.providerMetadata;
4167
4183
  }
4168
4184
  if (part.type === "reasoning-end") {
4169
4185
  const activeReasoning = activeReasoningContent[part.id];
@@ -4177,7 +4193,7 @@ var DefaultStreamTextResult = class {
4177
4193
  });
4178
4194
  return;
4179
4195
  }
4180
- activeReasoning.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeReasoning.providerMetadata;
4196
+ activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;
4181
4197
  delete activeReasoningContent[part.id];
4182
4198
  }
4183
4199
  if (part.type === "file") {
@@ -4877,26 +4893,35 @@ var DefaultStreamTextResult = class {
4877
4893
  const partType = part.type;
4878
4894
  switch (partType) {
4879
4895
  case "text-start": {
4880
- controller.enqueue({ type: "text-start", id: part.id });
4896
+ controller.enqueue({
4897
+ type: "text-start",
4898
+ id: part.id,
4899
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4900
+ });
4881
4901
  break;
4882
4902
  }
4883
4903
  case "text": {
4884
4904
  controller.enqueue({
4885
4905
  type: "text-delta",
4886
4906
  id: part.id,
4887
- delta: part.text
4907
+ delta: part.text,
4908
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4888
4909
  });
4889
4910
  break;
4890
4911
  }
4891
4912
  case "text-end": {
4892
- controller.enqueue({ type: "text-end", id: part.id });
4913
+ controller.enqueue({
4914
+ type: "text-end",
4915
+ id: part.id,
4916
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4917
+ });
4893
4918
  break;
4894
4919
  }
4895
4920
  case "reasoning-start": {
4896
4921
  controller.enqueue({
4897
4922
  type: "reasoning-start",
4898
4923
  id: part.id,
4899
- providerMetadata: part.providerMetadata
4924
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4900
4925
  });
4901
4926
  break;
4902
4927
  }
@@ -4906,7 +4931,7 @@ var DefaultStreamTextResult = class {
4906
4931
  type: "reasoning-delta",
4907
4932
  id: part.id,
4908
4933
  delta: part.text,
4909
- providerMetadata: part.providerMetadata
4934
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4910
4935
  });
4911
4936
  }
4912
4937
  break;
@@ -4915,7 +4940,7 @@ var DefaultStreamTextResult = class {
4915
4940
  controller.enqueue({
4916
4941
  type: "reasoning-end",
4917
4942
  id: part.id,
4918
- providerMetadata: part.providerMetadata
4943
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4919
4944
  });
4920
4945
  break;
4921
4946
  }
@@ -4934,7 +4959,7 @@ var DefaultStreamTextResult = class {
4934
4959
  sourceId: part.id,
4935
4960
  url: part.url,
4936
4961
  title: part.title,
4937
- providerMetadata: part.providerMetadata
4962
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4938
4963
  });
4939
4964
  }
4940
4965
  if (sendSources && part.sourceType === "document") {
@@ -4944,7 +4969,7 @@ var DefaultStreamTextResult = class {
4944
4969
  mediaType: part.mediaType,
4945
4970
  title: part.title,
4946
4971
  filename: part.filename,
4947
- providerMetadata: part.providerMetadata
4972
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
4948
4973
  });
4949
4974
  }
4950
4975
  break;
@@ -4972,7 +4997,8 @@ var DefaultStreamTextResult = class {
4972
4997
  toolCallId: part.toolCallId,
4973
4998
  toolName: part.toolName,
4974
4999
  input: part.input,
4975
- providerExecuted: part.providerExecuted
5000
+ providerExecuted: part.providerExecuted,
5001
+ providerMetadata: part.providerMetadata
4976
5002
  });
4977
5003
  break;
4978
5004
  }
@@ -8951,7 +8977,8 @@ function convertToModelMessages(messages, options) {
8951
8977
  if (part.type === "text") {
8952
8978
  content.push({
8953
8979
  type: "text",
8954
- text: part.text
8980
+ text: part.text,
8981
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
8955
8982
  });
8956
8983
  } else if (part.type === "file") {
8957
8984
  content.push({
@@ -8978,7 +9005,8 @@ function convertToModelMessages(messages, options) {
8978
9005
  toolCallId: part.toolCallId,
8979
9006
  toolName,
8980
9007
  input: part.input,
8981
- providerExecuted: part.providerExecuted
9008
+ providerExecuted: part.providerExecuted,
9009
+ ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
8982
9010
  });
8983
9011
  if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
8984
9012
  content.push({