ai 4.1.10 → 4.1.11

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.11",
4
4
  "description": "AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -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: {
@@ -1082,7 +1086,7 @@ function detectSingleMessageCharacteristics(message) {
1082
1086
  "experimental_attachments" in message)) {
1083
1087
  return "has-ui-specific-parts";
1084
1088
  } 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)) {
1089
+ "experimental_providerMetadata" in message || "providerOptions" in message)) {
1086
1090
  return "has-core-specific-parts";
1087
1091
  } 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
1092
  return "message";
@@ -1136,25 +1140,30 @@ var toolResultContentSchema = z4.array(
1136
1140
  var textPartSchema = z5.object({
1137
1141
  type: z5.literal("text"),
1138
1142
  text: z5.string(),
1143
+ providerOptions: providerMetadataSchema.optional(),
1139
1144
  experimental_providerMetadata: providerMetadataSchema.optional()
1140
1145
  });
1141
1146
  var imagePartSchema = z5.object({
1142
1147
  type: z5.literal("image"),
1143
1148
  image: z5.union([dataContentSchema, z5.instanceof(URL)]),
1144
1149
  mimeType: z5.string().optional(),
1150
+ providerOptions: providerMetadataSchema.optional(),
1145
1151
  experimental_providerMetadata: providerMetadataSchema.optional()
1146
1152
  });
1147
1153
  var filePartSchema = z5.object({
1148
1154
  type: z5.literal("file"),
1149
1155
  data: z5.union([dataContentSchema, z5.instanceof(URL)]),
1150
1156
  mimeType: z5.string(),
1157
+ providerOptions: providerMetadataSchema.optional(),
1151
1158
  experimental_providerMetadata: providerMetadataSchema.optional()
1152
1159
  });
1153
1160
  var toolCallPartSchema = z5.object({
1154
1161
  type: z5.literal("tool-call"),
1155
1162
  toolCallId: z5.string(),
1156
1163
  toolName: z5.string(),
1157
- args: z5.unknown()
1164
+ args: z5.unknown(),
1165
+ providerOptions: providerMetadataSchema.optional(),
1166
+ experimental_providerMetadata: providerMetadataSchema.optional()
1158
1167
  });
1159
1168
  var toolResultPartSchema = z5.object({
1160
1169
  type: z5.literal("tool-result"),
@@ -1163,6 +1172,7 @@ var toolResultPartSchema = z5.object({
1163
1172
  result: z5.unknown(),
1164
1173
  content: toolResultContentSchema.optional(),
1165
1174
  isError: z5.boolean().optional(),
1175
+ providerOptions: providerMetadataSchema.optional(),
1166
1176
  experimental_providerMetadata: providerMetadataSchema.optional()
1167
1177
  });
1168
1178
 
@@ -1170,6 +1180,7 @@ var toolResultPartSchema = z5.object({
1170
1180
  var coreSystemMessageSchema = z6.object({
1171
1181
  role: z6.literal("system"),
1172
1182
  content: z6.string(),
1183
+ providerOptions: providerMetadataSchema.optional(),
1173
1184
  experimental_providerMetadata: providerMetadataSchema.optional()
1174
1185
  });
1175
1186
  var coreUserMessageSchema = z6.object({
@@ -1178,6 +1189,7 @@ var coreUserMessageSchema = z6.object({
1178
1189
  z6.string(),
1179
1190
  z6.array(z6.union([textPartSchema, imagePartSchema, filePartSchema]))
1180
1191
  ]),
1192
+ providerOptions: providerMetadataSchema.optional(),
1181
1193
  experimental_providerMetadata: providerMetadataSchema.optional()
1182
1194
  });
1183
1195
  var coreAssistantMessageSchema = z6.object({
@@ -1186,11 +1198,13 @@ var coreAssistantMessageSchema = z6.object({
1186
1198
  z6.string(),
1187
1199
  z6.array(z6.union([textPartSchema, toolCallPartSchema]))
1188
1200
  ]),
1201
+ providerOptions: providerMetadataSchema.optional(),
1189
1202
  experimental_providerMetadata: providerMetadataSchema.optional()
1190
1203
  });
1191
1204
  var coreToolMessageSchema = z6.object({
1192
1205
  role: z6.literal("tool"),
1193
1206
  content: z6.array(toolResultPartSchema),
1207
+ providerOptions: providerMetadataSchema.optional(),
1194
1208
  experimental_providerMetadata: providerMetadataSchema.optional()
1195
1209
  });
1196
1210
  var coreMessageSchema = z6.union([
@@ -1466,7 +1480,8 @@ async function streamUI({
1466
1480
  headers,
1467
1481
  initial,
1468
1482
  text,
1469
- experimental_providerMetadata: providerMetadata,
1483
+ experimental_providerMetadata,
1484
+ providerOptions = experimental_providerMetadata,
1470
1485
  onFinish,
1471
1486
  ...settings
1472
1487
  }) {
@@ -1554,7 +1569,7 @@ async function streamUI({
1554
1569
  modelSupportsImageUrls: model.supportsImageUrls,
1555
1570
  modelSupportsUrl: model.supportsUrl
1556
1571
  }),
1557
- providerMetadata,
1572
+ providerMetadata: providerOptions,
1558
1573
  abortSignal,
1559
1574
  headers
1560
1575
  })