ai 4.1.10 → 4.1.12

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",
3
- "version": "4.1.10",
3
+ "version": "4.1.12",
4
4
  "description": "AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -42,8 +42,8 @@
42
42
  "dependencies": {
43
43
  "@ai-sdk/provider": "1.0.6",
44
44
  "@ai-sdk/provider-utils": "2.1.5",
45
- "@ai-sdk/react": "1.1.6",
46
- "@ai-sdk/ui-utils": "1.1.6",
45
+ "@ai-sdk/react": "1.1.7",
46
+ "@ai-sdk/ui-utils": "1.1.7",
47
47
  "@opentelemetry/api": "1.9.0",
48
48
  "jsondiffpatch": "0.6.0"
49
49
  },
@@ -205,11 +205,19 @@ type ToolChoice<TOOLS extends Record<string, unknown>> = 'auto' | 'none' | 'requ
205
205
  };
206
206
 
207
207
  /**
208
- Additional provider-specific metadata. They are passed through
209
- to the provider from the AI SDK and enable provider-specific
210
- functionality that can be fully encapsulated in the provider.
208
+ Additional provider-specific metadata that is returned from the provider.
209
+
210
+ This is needed to enable provider-specific functionality that can be
211
+ fully encapsulated in the provider.
211
212
  */
212
213
  type ProviderMetadata = LanguageModelV1ProviderMetadata;
214
+ /**
215
+ Additional provider-specific options.
216
+
217
+ They are passed through to the provider from the AI SDK and enable
218
+ provider-specific functionality that can be fully encapsulated in the provider.
219
+ */
220
+ type ProviderOptions = LanguageModelV1ProviderMetadata;
213
221
 
214
222
  /**
215
223
  Represents the number of tokens used in a prompt and completion.
@@ -256,6 +264,10 @@ interface TextPart {
256
264
  Additional provider-specific metadata. They are passed through
257
265
  to the provider from the AI SDK and enable provider-specific
258
266
  functionality that can be fully encapsulated in the provider.
267
+ */
268
+ providerOptions?: ProviderOptions;
269
+ /**
270
+ @deprecated Use `providerOptions` instead.
259
271
  */
260
272
  experimental_providerMetadata?: ProviderMetadata;
261
273
  }
@@ -279,6 +291,10 @@ interface ImagePart {
279
291
  Additional provider-specific metadata. They are passed through
280
292
  to the provider from the AI SDK and enable provider-specific
281
293
  functionality that can be fully encapsulated in the provider.
294
+ */
295
+ providerOptions?: ProviderOptions;
296
+ /**
297
+ @deprecated Use `providerOptions` instead.
282
298
  */
283
299
  experimental_providerMetadata?: ProviderMetadata;
284
300
  }
@@ -302,6 +318,10 @@ interface FilePart {
302
318
  Additional provider-specific metadata. They are passed through
303
319
  to the provider from the AI SDK and enable provider-specific
304
320
  functionality that can be fully encapsulated in the provider.
321
+ */
322
+ providerOptions?: ProviderOptions;
323
+ /**
324
+ @deprecated Use `providerOptions` instead.
305
325
  */
306
326
  experimental_providerMetadata?: ProviderMetadata;
307
327
  }
@@ -326,6 +346,10 @@ interface ToolCallPart {
326
346
  Additional provider-specific metadata. They are passed through
327
347
  to the provider from the AI SDK and enable provider-specific
328
348
  functionality that can be fully encapsulated in the provider.
349
+ */
350
+ providerOptions?: ProviderOptions;
351
+ /**
352
+ @deprecated Use `providerOptions` instead.
329
353
  */
330
354
  experimental_providerMetadata?: ProviderMetadata;
331
355
  }
@@ -358,6 +382,10 @@ interface ToolResultPart {
358
382
  Additional provider-specific metadata. They are passed through
359
383
  to the provider from the AI SDK and enable provider-specific
360
384
  functionality that can be fully encapsulated in the provider.
385
+ */
386
+ providerOptions?: ProviderOptions;
387
+ /**
388
+ @deprecated Use `providerOptions` instead.
361
389
  */
362
390
  experimental_providerMetadata?: ProviderMetadata;
363
391
  }
@@ -376,6 +404,10 @@ type CoreSystemMessage = {
376
404
  Additional provider-specific metadata. They are passed through
377
405
  to the provider from the AI SDK and enable provider-specific
378
406
  functionality that can be fully encapsulated in the provider.
407
+ */
408
+ providerOptions?: ProviderOptions;
409
+ /**
410
+ @deprecated Use `providerOptions` instead.
379
411
  */
380
412
  experimental_providerMetadata?: ProviderMetadata;
381
413
  };
@@ -390,6 +422,10 @@ type CoreUserMessage = {
390
422
  to the provider from the AI SDK and enable provider-specific
391
423
  functionality that can be fully encapsulated in the provider.
392
424
  */
425
+ providerOptions?: ProviderOptions;
426
+ /**
427
+ @deprecated Use `providerOptions` instead.
428
+ */
393
429
  experimental_providerMetadata?: ProviderMetadata;
394
430
  };
395
431
  /**
@@ -407,6 +443,10 @@ type CoreAssistantMessage = {
407
443
  to the provider from the AI SDK and enable provider-specific
408
444
  functionality that can be fully encapsulated in the provider.
409
445
  */
446
+ providerOptions?: ProviderOptions;
447
+ /**
448
+ @deprecated Use `providerOptions` instead.
449
+ */
410
450
  experimental_providerMetadata?: ProviderMetadata;
411
451
  };
412
452
  /**
@@ -424,6 +464,10 @@ type CoreToolMessage = {
424
464
  to the provider from the AI SDK and enable provider-specific
425
465
  functionality that can be fully encapsulated in the provider.
426
466
  */
467
+ providerOptions?: ProviderOptions;
468
+ /**
469
+ @deprecated Use `providerOptions` instead.
470
+ */
427
471
  experimental_providerMetadata?: ProviderMetadata;
428
472
  };
429
473
  /**
@@ -500,7 +544,7 @@ type RenderResult = {
500
544
  */
501
545
  declare function streamUI<TOOLS extends {
502
546
  [name: string]: z.ZodTypeAny;
503
- } = {}>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, initial, text, experimental_providerMetadata: providerMetadata, onFinish, ...settings }: CallSettings & Prompt & {
547
+ } = {}>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, initial, text, experimental_providerMetadata, providerOptions, onFinish, ...settings }: CallSettings & Prompt & {
504
548
  /**
505
549
  * The language model to use.
506
550
  */
@@ -518,10 +562,14 @@ declare function streamUI<TOOLS extends {
518
562
  text?: RenderText;
519
563
  initial?: ReactNode;
520
564
  /**
521
- Additional provider-specific metadata. They are passed through
565
+ Additional provider-specific options. They are passed through
522
566
  to the provider from the AI SDK and enable provider-specific
523
567
  functionality that can be fully encapsulated in the provider.
524
568
  */
569
+ providerOptions?: ProviderOptions;
570
+ /**
571
+ @deprecated Use `providerOptions` instead.
572
+ */
525
573
  experimental_providerMetadata?: ProviderMetadata;
526
574
  /**
527
575
  * Callback that is called when the LLM response and the final object validation are finished.
@@ -203,11 +203,19 @@ type ToolChoice<TOOLS extends Record<string, unknown>> = 'auto' | 'none' | 'requ
203
203
  };
204
204
 
205
205
  /**
206
- Additional provider-specific metadata. They are passed through
207
- to the provider from the AI SDK and enable provider-specific
208
- functionality that can be fully encapsulated in the provider.
206
+ Additional provider-specific metadata that is returned from the provider.
207
+
208
+ This is needed to enable provider-specific functionality that can be
209
+ fully encapsulated in the provider.
209
210
  */
210
211
  type ProviderMetadata = LanguageModelV1ProviderMetadata;
212
+ /**
213
+ Additional provider-specific options.
214
+
215
+ They are passed through to the provider from the AI SDK and enable
216
+ provider-specific functionality that can be fully encapsulated in the provider.
217
+ */
218
+ type ProviderOptions = LanguageModelV1ProviderMetadata;
211
219
 
212
220
  /**
213
221
  Represents the number of tokens used in a prompt and completion.
@@ -254,6 +262,10 @@ interface TextPart {
254
262
  Additional provider-specific metadata. They are passed through
255
263
  to the provider from the AI SDK and enable provider-specific
256
264
  functionality that can be fully encapsulated in the provider.
265
+ */
266
+ providerOptions?: ProviderOptions;
267
+ /**
268
+ @deprecated Use `providerOptions` instead.
257
269
  */
258
270
  experimental_providerMetadata?: ProviderMetadata;
259
271
  }
@@ -277,6 +289,10 @@ interface ImagePart {
277
289
  Additional provider-specific metadata. They are passed through
278
290
  to the provider from the AI SDK and enable provider-specific
279
291
  functionality that can be fully encapsulated in the provider.
292
+ */
293
+ providerOptions?: ProviderOptions;
294
+ /**
295
+ @deprecated Use `providerOptions` instead.
280
296
  */
281
297
  experimental_providerMetadata?: ProviderMetadata;
282
298
  }
@@ -300,6 +316,10 @@ interface FilePart {
300
316
  Additional provider-specific metadata. They are passed through
301
317
  to the provider from the AI SDK and enable provider-specific
302
318
  functionality that can be fully encapsulated in the provider.
319
+ */
320
+ providerOptions?: ProviderOptions;
321
+ /**
322
+ @deprecated Use `providerOptions` instead.
303
323
  */
304
324
  experimental_providerMetadata?: ProviderMetadata;
305
325
  }
@@ -324,6 +344,10 @@ interface ToolCallPart {
324
344
  Additional provider-specific metadata. They are passed through
325
345
  to the provider from the AI SDK and enable provider-specific
326
346
  functionality that can be fully encapsulated in the provider.
347
+ */
348
+ providerOptions?: ProviderOptions;
349
+ /**
350
+ @deprecated Use `providerOptions` instead.
327
351
  */
328
352
  experimental_providerMetadata?: ProviderMetadata;
329
353
  }
@@ -356,6 +380,10 @@ interface ToolResultPart {
356
380
  Additional provider-specific metadata. They are passed through
357
381
  to the provider from the AI SDK and enable provider-specific
358
382
  functionality that can be fully encapsulated in the provider.
383
+ */
384
+ providerOptions?: ProviderOptions;
385
+ /**
386
+ @deprecated Use `providerOptions` instead.
359
387
  */
360
388
  experimental_providerMetadata?: ProviderMetadata;
361
389
  }
@@ -374,6 +402,10 @@ type CoreSystemMessage = {
374
402
  Additional provider-specific metadata. They are passed through
375
403
  to the provider from the AI SDK and enable provider-specific
376
404
  functionality that can be fully encapsulated in the provider.
405
+ */
406
+ providerOptions?: ProviderOptions;
407
+ /**
408
+ @deprecated Use `providerOptions` instead.
377
409
  */
378
410
  experimental_providerMetadata?: ProviderMetadata;
379
411
  };
@@ -388,6 +420,10 @@ type CoreUserMessage = {
388
420
  to the provider from the AI SDK and enable provider-specific
389
421
  functionality that can be fully encapsulated in the provider.
390
422
  */
423
+ providerOptions?: ProviderOptions;
424
+ /**
425
+ @deprecated Use `providerOptions` instead.
426
+ */
391
427
  experimental_providerMetadata?: ProviderMetadata;
392
428
  };
393
429
  /**
@@ -405,6 +441,10 @@ type CoreAssistantMessage = {
405
441
  to the provider from the AI SDK and enable provider-specific
406
442
  functionality that can be fully encapsulated in the provider.
407
443
  */
444
+ providerOptions?: ProviderOptions;
445
+ /**
446
+ @deprecated Use `providerOptions` instead.
447
+ */
408
448
  experimental_providerMetadata?: ProviderMetadata;
409
449
  };
410
450
  /**
@@ -422,6 +462,10 @@ type CoreToolMessage = {
422
462
  to the provider from the AI SDK and enable provider-specific
423
463
  functionality that can be fully encapsulated in the provider.
424
464
  */
465
+ providerOptions?: ProviderOptions;
466
+ /**
467
+ @deprecated Use `providerOptions` instead.
468
+ */
425
469
  experimental_providerMetadata?: ProviderMetadata;
426
470
  };
427
471
  /**
@@ -498,7 +542,7 @@ type RenderResult = {
498
542
  */
499
543
  declare function streamUI<TOOLS extends {
500
544
  [name: string]: z.ZodTypeAny;
501
- } = {}>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, initial, text, experimental_providerMetadata: providerMetadata, onFinish, ...settings }: CallSettings & Prompt & {
545
+ } = {}>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, initial, text, experimental_providerMetadata, providerOptions, onFinish, ...settings }: CallSettings & Prompt & {
502
546
  /**
503
547
  * The language model to use.
504
548
  */
@@ -516,10 +560,14 @@ declare function streamUI<TOOLS extends {
516
560
  text?: RenderText;
517
561
  initial?: ReactNode;
518
562
  /**
519
- Additional provider-specific metadata. They are passed through
563
+ Additional provider-specific options. They are passed through
520
564
  to the provider from the AI SDK and enable provider-specific
521
565
  functionality that can be fully encapsulated in the provider.
522
566
  */
567
+ providerOptions?: ProviderOptions;
568
+ /**
569
+ @deprecated Use `providerOptions` instead.
570
+ */
523
571
  experimental_providerMetadata?: ProviderMetadata;
524
572
  /**
525
573
  * Callback that is called when the LLM response and the final object validation are finished.
@@ -421,13 +421,14 @@ async function convertToLanguageModelPrompt({
421
421
  ];
422
422
  }
423
423
  function convertToLanguageModelMessage(message, downloadedAssets) {
424
+ var _a9, _b, _c, _d, _e, _f;
424
425
  const role = message.role;
425
426
  switch (role) {
426
427
  case "system": {
427
428
  return {
428
429
  role: "system",
429
430
  content: message.content,
430
- providerMetadata: message.experimental_providerMetadata
431
+ providerMetadata: (_a9 = message.providerOptions) != null ? _a9 : message.experimental_providerMetadata
431
432
  };
432
433
  }
433
434
  case "user": {
@@ -435,13 +436,13 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
435
436
  return {
436
437
  role: "user",
437
438
  content: [{ type: "text", text: message.content }],
438
- providerMetadata: message.experimental_providerMetadata
439
+ providerMetadata: (_b = message.providerOptions) != null ? _b : message.experimental_providerMetadata
439
440
  };
440
441
  }
441
442
  return {
442
443
  role: "user",
443
444
  content: message.content.map((part) => convertPartToLanguageModelPart(part, downloadedAssets)).filter((part) => part.type !== "text" || part.text !== ""),
444
- providerMetadata: message.experimental_providerMetadata
445
+ providerMetadata: (_c = message.providerOptions) != null ? _c : message.experimental_providerMetadata
445
446
  };
446
447
  }
447
448
  case "assistant": {
@@ -449,7 +450,7 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
449
450
  return {
450
451
  role: "assistant",
451
452
  content: [{ type: "text", text: message.content }],
452
- providerMetadata: message.experimental_providerMetadata
453
+ providerMetadata: (_d = message.providerOptions) != null ? _d : message.experimental_providerMetadata
453
454
  };
454
455
  }
455
456
  return {
@@ -458,28 +459,31 @@ function convertToLanguageModelMessage(message, downloadedAssets) {
458
459
  // remove empty text parts:
459
460
  (part) => part.type !== "text" || part.text !== ""
460
461
  ).map((part) => {
461
- const { experimental_providerMetadata, ...rest } = part;
462
+ const { experimental_providerMetadata, providerOptions, ...rest } = part;
462
463
  return {
463
464
  ...rest,
464
- providerMetadata: experimental_providerMetadata
465
+ providerMetadata: providerOptions != null ? providerOptions : experimental_providerMetadata
465
466
  };
466
467
  }),
467
- providerMetadata: message.experimental_providerMetadata
468
+ providerMetadata: (_e = message.providerOptions) != null ? _e : message.experimental_providerMetadata
468
469
  };
469
470
  }
470
471
  case "tool": {
471
472
  return {
472
473
  role: "tool",
473
- content: message.content.map((part) => ({
474
- type: "tool-result",
475
- toolCallId: part.toolCallId,
476
- toolName: part.toolName,
477
- result: part.result,
478
- content: part.experimental_content,
479
- isError: part.isError,
480
- providerMetadata: part.experimental_providerMetadata
481
- })),
482
- providerMetadata: message.experimental_providerMetadata
474
+ content: message.content.map((part) => {
475
+ var _a10;
476
+ return {
477
+ type: "tool-result",
478
+ toolCallId: part.toolCallId,
479
+ toolName: part.toolName,
480
+ result: part.result,
481
+ content: part.experimental_content,
482
+ isError: part.isError,
483
+ providerMetadata: (_a10 = part.providerOptions) != null ? _a10 : part.experimental_providerMetadata
484
+ };
485
+ }),
486
+ providerMetadata: (_f = message.providerOptions) != null ? _f : message.experimental_providerMetadata
483
487
  };
484
488
  }
485
489
  default: {
@@ -1000,45 +1004,62 @@ function convertToCoreMessages(messages, options) {
1000
1004
  coreMessages.push({ role: "assistant", content });
1001
1005
  break;
1002
1006
  }
1003
- coreMessages.push({
1004
- role: "assistant",
1005
- content: [
1006
- { type: "text", text: content },
1007
- ...toolInvocations.map(
1008
- ({ toolCallId, toolName, args }) => ({
1009
- type: "tool-call",
1007
+ const maxStep = toolInvocations.reduce((max, toolInvocation) => {
1008
+ var _a10;
1009
+ return Math.max(max, (_a10 = toolInvocation.step) != null ? _a10 : 0);
1010
+ }, 0);
1011
+ for (let i = 0; i <= maxStep; i++) {
1012
+ const stepInvocations = toolInvocations.filter(
1013
+ (toolInvocation) => {
1014
+ var _a10;
1015
+ return ((_a10 = toolInvocation.step) != null ? _a10 : 0) === i;
1016
+ }
1017
+ );
1018
+ if (stepInvocations.length === 0) {
1019
+ continue;
1020
+ }
1021
+ coreMessages.push({
1022
+ role: "assistant",
1023
+ content: [
1024
+ ...stepInvocations.map(
1025
+ ({ toolCallId, toolName, args }) => ({
1026
+ type: "tool-call",
1027
+ toolCallId,
1028
+ toolName,
1029
+ args
1030
+ })
1031
+ )
1032
+ ]
1033
+ });
1034
+ coreMessages.push({
1035
+ role: "tool",
1036
+ content: stepInvocations.map((toolInvocation) => {
1037
+ if (!("result" in toolInvocation)) {
1038
+ throw new MessageConversionError({
1039
+ originalMessage: message,
1040
+ message: "ToolInvocation must have a result: " + JSON.stringify(toolInvocation)
1041
+ });
1042
+ }
1043
+ const { toolCallId, toolName, result } = toolInvocation;
1044
+ const tool = tools[toolName];
1045
+ return (tool == null ? void 0 : tool.experimental_toToolResultContent) != null ? {
1046
+ type: "tool-result",
1010
1047
  toolCallId,
1011
1048
  toolName,
1012
- args
1013
- })
1014
- )
1015
- ]
1016
- });
1017
- coreMessages.push({
1018
- role: "tool",
1019
- content: toolInvocations.map((toolInvocation) => {
1020
- if (!("result" in toolInvocation)) {
1021
- throw new MessageConversionError({
1022
- originalMessage: message,
1023
- message: "ToolInvocation must have a result: " + JSON.stringify(toolInvocation)
1024
- });
1025
- }
1026
- const { toolCallId, toolName, result } = toolInvocation;
1027
- const tool = tools[toolName];
1028
- return (tool == null ? void 0 : tool.experimental_toToolResultContent) != null ? {
1029
- type: "tool-result",
1030
- toolCallId,
1031
- toolName,
1032
- result: tool.experimental_toToolResultContent(result),
1033
- experimental_content: tool.experimental_toToolResultContent(result)
1034
- } : {
1035
- type: "tool-result",
1036
- toolCallId,
1037
- toolName,
1038
- result
1039
- };
1040
- })
1041
- });
1049
+ result: tool.experimental_toToolResultContent(result),
1050
+ experimental_content: tool.experimental_toToolResultContent(result)
1051
+ } : {
1052
+ type: "tool-result",
1053
+ toolCallId,
1054
+ toolName,
1055
+ result
1056
+ };
1057
+ })
1058
+ });
1059
+ }
1060
+ if (content) {
1061
+ coreMessages.push({ role: "assistant", content });
1062
+ }
1042
1063
  break;
1043
1064
  }
1044
1065
  case "data": {
@@ -1082,7 +1103,7 @@ function detectSingleMessageCharacteristics(message) {
1082
1103
  "experimental_attachments" in message)) {
1083
1104
  return "has-ui-specific-parts";
1084
1105
  } else if (typeof message === "object" && message !== null && "content" in message && (Array.isArray(message.content) || // Core messages can have array content
1085
- "experimental_providerMetadata" in message)) {
1106
+ "experimental_providerMetadata" in message || "providerOptions" in message)) {
1086
1107
  return "has-core-specific-parts";
1087
1108
  } else if (typeof message === "object" && message !== null && "role" in message && "content" in message && typeof message.content === "string" && ["system", "user", "assistant", "tool"].includes(message.role)) {
1088
1109
  return "message";
@@ -1136,25 +1157,30 @@ var toolResultContentSchema = z4.array(
1136
1157
  var textPartSchema = z5.object({
1137
1158
  type: z5.literal("text"),
1138
1159
  text: z5.string(),
1160
+ providerOptions: providerMetadataSchema.optional(),
1139
1161
  experimental_providerMetadata: providerMetadataSchema.optional()
1140
1162
  });
1141
1163
  var imagePartSchema = z5.object({
1142
1164
  type: z5.literal("image"),
1143
1165
  image: z5.union([dataContentSchema, z5.instanceof(URL)]),
1144
1166
  mimeType: z5.string().optional(),
1167
+ providerOptions: providerMetadataSchema.optional(),
1145
1168
  experimental_providerMetadata: providerMetadataSchema.optional()
1146
1169
  });
1147
1170
  var filePartSchema = z5.object({
1148
1171
  type: z5.literal("file"),
1149
1172
  data: z5.union([dataContentSchema, z5.instanceof(URL)]),
1150
1173
  mimeType: z5.string(),
1174
+ providerOptions: providerMetadataSchema.optional(),
1151
1175
  experimental_providerMetadata: providerMetadataSchema.optional()
1152
1176
  });
1153
1177
  var toolCallPartSchema = z5.object({
1154
1178
  type: z5.literal("tool-call"),
1155
1179
  toolCallId: z5.string(),
1156
1180
  toolName: z5.string(),
1157
- args: z5.unknown()
1181
+ args: z5.unknown(),
1182
+ providerOptions: providerMetadataSchema.optional(),
1183
+ experimental_providerMetadata: providerMetadataSchema.optional()
1158
1184
  });
1159
1185
  var toolResultPartSchema = z5.object({
1160
1186
  type: z5.literal("tool-result"),
@@ -1163,6 +1189,7 @@ var toolResultPartSchema = z5.object({
1163
1189
  result: z5.unknown(),
1164
1190
  content: toolResultContentSchema.optional(),
1165
1191
  isError: z5.boolean().optional(),
1192
+ providerOptions: providerMetadataSchema.optional(),
1166
1193
  experimental_providerMetadata: providerMetadataSchema.optional()
1167
1194
  });
1168
1195
 
@@ -1170,6 +1197,7 @@ var toolResultPartSchema = z5.object({
1170
1197
  var coreSystemMessageSchema = z6.object({
1171
1198
  role: z6.literal("system"),
1172
1199
  content: z6.string(),
1200
+ providerOptions: providerMetadataSchema.optional(),
1173
1201
  experimental_providerMetadata: providerMetadataSchema.optional()
1174
1202
  });
1175
1203
  var coreUserMessageSchema = z6.object({
@@ -1178,6 +1206,7 @@ var coreUserMessageSchema = z6.object({
1178
1206
  z6.string(),
1179
1207
  z6.array(z6.union([textPartSchema, imagePartSchema, filePartSchema]))
1180
1208
  ]),
1209
+ providerOptions: providerMetadataSchema.optional(),
1181
1210
  experimental_providerMetadata: providerMetadataSchema.optional()
1182
1211
  });
1183
1212
  var coreAssistantMessageSchema = z6.object({
@@ -1186,11 +1215,13 @@ var coreAssistantMessageSchema = z6.object({
1186
1215
  z6.string(),
1187
1216
  z6.array(z6.union([textPartSchema, toolCallPartSchema]))
1188
1217
  ]),
1218
+ providerOptions: providerMetadataSchema.optional(),
1189
1219
  experimental_providerMetadata: providerMetadataSchema.optional()
1190
1220
  });
1191
1221
  var coreToolMessageSchema = z6.object({
1192
1222
  role: z6.literal("tool"),
1193
1223
  content: z6.array(toolResultPartSchema),
1224
+ providerOptions: providerMetadataSchema.optional(),
1194
1225
  experimental_providerMetadata: providerMetadataSchema.optional()
1195
1226
  });
1196
1227
  var coreMessageSchema = z6.union([
@@ -1466,7 +1497,8 @@ async function streamUI({
1466
1497
  headers,
1467
1498
  initial,
1468
1499
  text,
1469
- experimental_providerMetadata: providerMetadata,
1500
+ experimental_providerMetadata,
1501
+ providerOptions = experimental_providerMetadata,
1470
1502
  onFinish,
1471
1503
  ...settings
1472
1504
  }) {
@@ -1554,7 +1586,7 @@ async function streamUI({
1554
1586
  modelSupportsImageUrls: model.supportsImageUrls,
1555
1587
  modelSupportsUrl: model.supportsUrl
1556
1588
  }),
1557
- providerMetadata,
1589
+ providerMetadata: providerOptions,
1558
1590
  abortSignal,
1559
1591
  headers
1560
1592
  })