ai 5.1.0-beta.12 → 5.1.0-beta.14

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.mjs CHANGED
@@ -98,7 +98,7 @@ import { gateway } from "@ai-sdk/gateway";
98
98
 
99
99
  // src/error/index.ts
100
100
  import {
101
- AISDKError as AISDKError17,
101
+ AISDKError as AISDKError18,
102
102
  APICallError,
103
103
  EmptyResponseBodyError,
104
104
  InvalidPromptError,
@@ -275,13 +275,25 @@ var NoOutputGeneratedError = class extends AISDKError8 {
275
275
  };
276
276
  _a8 = symbol8;
277
277
 
278
- // src/error/no-such-tool-error.ts
278
+ // src/error/no-speech-generated-error.ts
279
279
  import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
280
+ var NoSpeechGeneratedError = class extends AISDKError9 {
281
+ constructor(options) {
282
+ super({
283
+ name: "AI_NoSpeechGeneratedError",
284
+ message: "No speech audio generated."
285
+ });
286
+ this.responses = options.responses;
287
+ }
288
+ };
289
+
290
+ // src/error/no-such-tool-error.ts
291
+ import { AISDKError as AISDKError10 } from "@ai-sdk/provider";
280
292
  var name9 = "AI_NoSuchToolError";
281
293
  var marker9 = `vercel.ai.error.${name9}`;
282
294
  var symbol9 = Symbol.for(marker9);
283
295
  var _a9;
284
- var NoSuchToolError = class extends AISDKError9 {
296
+ var NoSuchToolError = class extends AISDKError10 {
285
297
  constructor({
286
298
  toolName,
287
299
  availableTools = void 0,
@@ -293,18 +305,18 @@ var NoSuchToolError = class extends AISDKError9 {
293
305
  this.availableTools = availableTools;
294
306
  }
295
307
  static isInstance(error) {
296
- return AISDKError9.hasMarker(error, marker9);
308
+ return AISDKError10.hasMarker(error, marker9);
297
309
  }
298
310
  };
299
311
  _a9 = symbol9;
300
312
 
301
313
  // src/error/tool-call-repair-error.ts
302
- import { AISDKError as AISDKError10, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
314
+ import { AISDKError as AISDKError11, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
303
315
  var name10 = "AI_ToolCallRepairError";
304
316
  var marker10 = `vercel.ai.error.${name10}`;
305
317
  var symbol10 = Symbol.for(marker10);
306
318
  var _a10;
307
- var ToolCallRepairError = class extends AISDKError10 {
319
+ var ToolCallRepairError = class extends AISDKError11 {
308
320
  constructor({
309
321
  cause,
310
322
  originalError,
@@ -315,14 +327,14 @@ var ToolCallRepairError = class extends AISDKError10 {
315
327
  this.originalError = originalError;
316
328
  }
317
329
  static isInstance(error) {
318
- return AISDKError10.hasMarker(error, marker10);
330
+ return AISDKError11.hasMarker(error, marker10);
319
331
  }
320
332
  };
321
333
  _a10 = symbol10;
322
334
 
323
335
  // src/error/unsupported-model-version-error.ts
324
- import { AISDKError as AISDKError11 } from "@ai-sdk/provider";
325
- var UnsupportedModelVersionError = class extends AISDKError11 {
336
+ import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
337
+ var UnsupportedModelVersionError = class extends AISDKError12 {
326
338
  constructor(options) {
327
339
  super({
328
340
  name: "AI_UnsupportedModelVersionError",
@@ -335,12 +347,12 @@ var UnsupportedModelVersionError = class extends AISDKError11 {
335
347
  };
336
348
 
337
349
  // src/prompt/invalid-data-content-error.ts
338
- import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
350
+ import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
339
351
  var name11 = "AI_InvalidDataContentError";
340
352
  var marker11 = `vercel.ai.error.${name11}`;
341
353
  var symbol11 = Symbol.for(marker11);
342
354
  var _a11;
343
- var InvalidDataContentError = class extends AISDKError12 {
355
+ var InvalidDataContentError = class extends AISDKError13 {
344
356
  constructor({
345
357
  content,
346
358
  cause,
@@ -351,18 +363,18 @@ var InvalidDataContentError = class extends AISDKError12 {
351
363
  this.content = content;
352
364
  }
353
365
  static isInstance(error) {
354
- return AISDKError12.hasMarker(error, marker11);
366
+ return AISDKError13.hasMarker(error, marker11);
355
367
  }
356
368
  };
357
369
  _a11 = symbol11;
358
370
 
359
371
  // src/prompt/invalid-message-role-error.ts
360
- import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
372
+ import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
361
373
  var name12 = "AI_InvalidMessageRoleError";
362
374
  var marker12 = `vercel.ai.error.${name12}`;
363
375
  var symbol12 = Symbol.for(marker12);
364
376
  var _a12;
365
- var InvalidMessageRoleError = class extends AISDKError13 {
377
+ var InvalidMessageRoleError = class extends AISDKError14 {
366
378
  constructor({
367
379
  role,
368
380
  message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
@@ -372,18 +384,18 @@ var InvalidMessageRoleError = class extends AISDKError13 {
372
384
  this.role = role;
373
385
  }
374
386
  static isInstance(error) {
375
- return AISDKError13.hasMarker(error, marker12);
387
+ return AISDKError14.hasMarker(error, marker12);
376
388
  }
377
389
  };
378
390
  _a12 = symbol12;
379
391
 
380
392
  // src/prompt/message-conversion-error.ts
381
- import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
393
+ import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
382
394
  var name13 = "AI_MessageConversionError";
383
395
  var marker13 = `vercel.ai.error.${name13}`;
384
396
  var symbol13 = Symbol.for(marker13);
385
397
  var _a13;
386
- var MessageConversionError = class extends AISDKError14 {
398
+ var MessageConversionError = class extends AISDKError15 {
387
399
  constructor({
388
400
  originalMessage,
389
401
  message
@@ -393,18 +405,18 @@ var MessageConversionError = class extends AISDKError14 {
393
405
  this.originalMessage = originalMessage;
394
406
  }
395
407
  static isInstance(error) {
396
- return AISDKError14.hasMarker(error, marker13);
408
+ return AISDKError15.hasMarker(error, marker13);
397
409
  }
398
410
  };
399
411
  _a13 = symbol13;
400
412
 
401
413
  // src/util/download/download-error.ts
402
- import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
414
+ import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
403
415
  var name14 = "AI_DownloadError";
404
416
  var marker14 = `vercel.ai.error.${name14}`;
405
417
  var symbol14 = Symbol.for(marker14);
406
418
  var _a14;
407
- var DownloadError = class extends AISDKError15 {
419
+ var DownloadError = class extends AISDKError16 {
408
420
  constructor({
409
421
  url,
410
422
  statusCode,
@@ -419,18 +431,18 @@ var DownloadError = class extends AISDKError15 {
419
431
  this.statusText = statusText;
420
432
  }
421
433
  static isInstance(error) {
422
- return AISDKError15.hasMarker(error, marker14);
434
+ return AISDKError16.hasMarker(error, marker14);
423
435
  }
424
436
  };
425
437
  _a14 = symbol14;
426
438
 
427
439
  // src/util/retry-error.ts
428
- import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
440
+ import { AISDKError as AISDKError17 } from "@ai-sdk/provider";
429
441
  var name15 = "AI_RetryError";
430
442
  var marker15 = `vercel.ai.error.${name15}`;
431
443
  var symbol15 = Symbol.for(marker15);
432
444
  var _a15;
433
- var RetryError = class extends AISDKError16 {
445
+ var RetryError = class extends AISDKError17 {
434
446
  constructor({
435
447
  message,
436
448
  reason,
@@ -443,7 +455,7 @@ var RetryError = class extends AISDKError16 {
443
455
  this.lastError = errors[errors.length - 1];
444
456
  }
445
457
  static isInstance(error) {
446
- return AISDKError16.hasMarker(error, marker15);
458
+ return AISDKError17.hasMarker(error, marker15);
447
459
  }
448
460
  };
449
461
  _a15 = symbol15;
@@ -451,7 +463,7 @@ _a15 = symbol15;
451
463
  // src/model/resolve-model.ts
452
464
  function resolveLanguageModel(model) {
453
465
  if (typeof model !== "string") {
454
- if (model.specificationVersion !== "v2") {
466
+ if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
455
467
  throw new UnsupportedModelVersionError({
456
468
  version: model.specificationVersion,
457
469
  provider: model.provider,
@@ -464,7 +476,7 @@ function resolveLanguageModel(model) {
464
476
  }
465
477
  function resolveEmbeddingModel(model) {
466
478
  if (typeof model !== "string") {
467
- if (model.specificationVersion !== "v3") {
479
+ if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
468
480
  throw new UnsupportedModelVersionError({
469
481
  version: model.specificationVersion,
470
482
  provider: model.provider,
@@ -679,7 +691,7 @@ import {
679
691
  } from "@ai-sdk/provider-utils";
680
692
 
681
693
  // src/version.ts
682
- var VERSION = true ? "5.1.0-beta.12" : "0.0.0-test";
694
+ var VERSION = true ? "5.1.0-beta.14" : "0.0.0-test";
683
695
 
684
696
  // src/util/download/download.ts
685
697
  var download = async ({ url }) => {
@@ -720,7 +732,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
720
732
  );
721
733
 
722
734
  // src/prompt/data-content.ts
723
- import { AISDKError as AISDKError18 } from "@ai-sdk/provider";
735
+ import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
724
736
  import {
725
737
  convertBase64ToUint8Array as convertBase64ToUint8Array2,
726
738
  convertUint8ArrayToBase64
@@ -757,7 +769,7 @@ var dataContentSchema = z.union([
757
769
  { message: "Must be a Buffer" }
758
770
  )
759
771
  ]);
760
- function convertToLanguageModelV2DataContent(content) {
772
+ function convertToLanguageModelV3DataContent(content) {
761
773
  if (content instanceof Uint8Array) {
762
774
  return { data: content, mediaType: void 0 };
763
775
  }
@@ -775,7 +787,7 @@ function convertToLanguageModelV2DataContent(content) {
775
787
  content.toString()
776
788
  );
777
789
  if (dataUrlMediaType == null || base64Content == null) {
778
- throw new AISDKError18({
790
+ throw new AISDKError19({
779
791
  name: "InvalidDataContentError",
780
792
  message: `Invalid data URL format in content ${content.toString()}`
781
793
  });
@@ -876,7 +888,7 @@ function convertToLanguageModelMessage({
876
888
  const providerOptions = part.providerOptions;
877
889
  switch (part.type) {
878
890
  case "file": {
879
- const { data, mediaType } = convertToLanguageModelV2DataContent(
891
+ const { data, mediaType } = convertToLanguageModelV3DataContent(
880
892
  part.data
881
893
  );
882
894
  return {
@@ -1001,7 +1013,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1001
1013
  default:
1002
1014
  throw new Error(`Unsupported part type: ${type}`);
1003
1015
  }
1004
- const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV2DataContent(originalData);
1016
+ const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV3DataContent(originalData);
1005
1017
  let mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;
1006
1018
  let data = convertedData;
1007
1019
  if (data instanceof URL) {
@@ -1402,10 +1414,10 @@ import {
1402
1414
  GatewayAuthenticationError,
1403
1415
  GatewayModelNotFoundError
1404
1416
  } from "@ai-sdk/gateway";
1405
- import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
1417
+ import { AISDKError as AISDKError20 } from "@ai-sdk/provider";
1406
1418
  function wrapGatewayError(error) {
1407
1419
  if (GatewayAuthenticationError.isInstance(error) || GatewayModelNotFoundError.isInstance(error)) {
1408
- return new AISDKError19({
1420
+ return new AISDKError20({
1409
1421
  name: "GatewayError",
1410
1422
  message: "Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",
1411
1423
  cause: error
@@ -4593,7 +4605,7 @@ var DefaultStreamTextResult = class {
4593
4605
  let activeReasoningContent = {};
4594
4606
  const eventProcessor = new TransformStream({
4595
4607
  async transform(chunk, controller) {
4596
- var _a17, _b, _c;
4608
+ var _a17, _b, _c, _d;
4597
4609
  controller.enqueue(chunk);
4598
4610
  const { part } = chunk;
4599
4611
  if (part.type === "text-delta" || part.type === "reasoning-delta" || part.type === "source" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-input-start" || part.type === "tool-input-delta" || part.type === "raw") {
@@ -4626,6 +4638,18 @@ var DefaultStreamTextResult = class {
4626
4638
  activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
4627
4639
  }
4628
4640
  if (part.type === "text-end") {
4641
+ const activeText = activeTextContent[part.id];
4642
+ if (activeText == null) {
4643
+ controller.enqueue({
4644
+ part: {
4645
+ type: "error",
4646
+ error: `text part ${part.id} not found`
4647
+ },
4648
+ partialOutput: void 0
4649
+ });
4650
+ return;
4651
+ }
4652
+ activeText.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeText.providerMetadata;
4629
4653
  delete activeTextContent[part.id];
4630
4654
  }
4631
4655
  if (part.type === "reasoning-start") {
@@ -4649,7 +4673,7 @@ var DefaultStreamTextResult = class {
4649
4673
  return;
4650
4674
  }
4651
4675
  activeReasoning.text += part.text;
4652
- activeReasoning.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeReasoning.providerMetadata;
4676
+ activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;
4653
4677
  }
4654
4678
  if (part.type === "reasoning-end") {
4655
4679
  const activeReasoning = activeReasoningContent[part.id];
@@ -4663,7 +4687,7 @@ var DefaultStreamTextResult = class {
4663
4687
  });
4664
4688
  return;
4665
4689
  }
4666
- activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;
4690
+ activeReasoning.providerMetadata = (_d = part.providerMetadata) != null ? _d : activeReasoning.providerMetadata;
4667
4691
  delete activeReasoningContent[part.id];
4668
4692
  }
4669
4693
  if (part.type === "file") {
@@ -7798,18 +7822,6 @@ var DefaultStreamObjectResult = class {
7798
7822
  // src/generate-speech/generate-speech.ts
7799
7823
  import { withUserAgentSuffix as withUserAgentSuffix7 } from "@ai-sdk/provider-utils";
7800
7824
 
7801
- // src/error/no-speech-generated-error.ts
7802
- import { AISDKError as AISDKError20 } from "@ai-sdk/provider";
7803
- var NoSpeechGeneratedError = class extends AISDKError20 {
7804
- constructor(options) {
7805
- super({
7806
- name: "AI_NoSpeechGeneratedError",
7807
- message: "No speech audio generated."
7808
- });
7809
- this.responses = options.responses;
7810
- }
7811
- };
7812
-
7813
7825
  // src/generate-speech/generated-audio-file.ts
7814
7826
  var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
7815
7827
  constructor({
@@ -8065,7 +8077,7 @@ function defaultSettingsMiddleware({
8065
8077
  settings
8066
8078
  }) {
8067
8079
  return {
8068
- middlewareVersion: "v2",
8080
+ middlewareVersion: "v3",
8069
8081
  transformParams: async ({ params }) => {
8070
8082
  return mergeObjects(settings, params);
8071
8083
  }
@@ -8099,7 +8111,7 @@ function extractReasoningMiddleware({
8099
8111
  const openingTag = `<${tagName}>`;
8100
8112
  const closingTag = `</${tagName}>`;
8101
8113
  return {
8102
- middlewareVersion: "v2",
8114
+ middlewareVersion: "v3",
8103
8115
  wrapGenerate: async ({ doGenerate }) => {
8104
8116
  const { content, ...rest } = await doGenerate();
8105
8117
  const transformedContent = [];
@@ -8245,7 +8257,7 @@ function extractReasoningMiddleware({
8245
8257
  // src/middleware/simulate-streaming-middleware.ts
8246
8258
  function simulateStreamingMiddleware() {
8247
8259
  return {
8248
- middlewareVersion: "v2",
8260
+ middlewareVersion: "v3",
8249
8261
  wrapStream: async ({ doGenerate }) => {
8250
8262
  const result = await doGenerate();
8251
8263
  let id = 0;
@@ -8342,7 +8354,7 @@ var doWrap = ({
8342
8354
  return transformParams ? await transformParams({ params, type, model }) : params;
8343
8355
  }
8344
8356
  return {
8345
- specificationVersion: "v2",
8357
+ specificationVersion: "v3",
8346
8358
  provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
8347
8359
  modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
8348
8360
  supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
@@ -10368,7 +10380,7 @@ function readUIMessageStream({
10368
10380
  return createAsyncIterableStream(outputStream);
10369
10381
  }
10370
10382
  export {
10371
- AISDKError17 as AISDKError,
10383
+ AISDKError18 as AISDKError,
10372
10384
  APICallError,
10373
10385
  AbstractChat,
10374
10386
  DefaultChatTransport,
@@ -10393,6 +10405,7 @@ export {
10393
10405
  NoObjectGeneratedError,
10394
10406
  NoOutputGeneratedError,
10395
10407
  NoOutputSpecifiedError,
10408
+ NoSpeechGeneratedError,
10396
10409
  NoSuchModelError,
10397
10410
  NoSuchProviderError,
10398
10411
  NoSuchToolError,