ai 6.0.0-beta.75 → 6.0.0-beta.77

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
@@ -43,21 +43,32 @@ var NoOutputSpecifiedError = class extends AISDKError {
43
43
  _a = symbol;
44
44
 
45
45
  // src/logger/log-warnings.ts
46
- function formatWarning(warning) {
47
- const prefix = "AI SDK Warning:";
46
+ function formatWarning({
47
+ warning,
48
+ provider,
49
+ model
50
+ }) {
51
+ const prefix = `AI SDK Warning (${provider} / ${model}):`;
48
52
  switch (warning.type) {
49
53
  case "unsupported-setting": {
50
- let message = `${prefix} The "${warning.setting}" setting is not supported by this model`;
54
+ let message = `${prefix} The "${warning.setting}" setting is not supported.`;
51
55
  if (warning.details) {
52
- message += ` - ${warning.details}`;
56
+ message += ` ${warning.details}`;
57
+ }
58
+ return message;
59
+ }
60
+ case "compatibility": {
61
+ let message = `${prefix} The "${warning.feature}" feature is not fully supported.`;
62
+ if (warning.details) {
63
+ message += ` ${warning.details}`;
53
64
  }
54
65
  return message;
55
66
  }
56
67
  case "unsupported-tool": {
57
68
  const toolName = "name" in warning.tool ? warning.tool.name : "unknown tool";
58
- let message = `${prefix} The tool "${toolName}" is not supported by this model`;
69
+ let message = `${prefix} The tool "${toolName}" is not supported.`;
59
70
  if (warning.details) {
60
- message += ` - ${warning.details}`;
71
+ message += ` ${warning.details}`;
61
72
  }
62
73
  return message;
63
74
  }
@@ -71,8 +82,8 @@ function formatWarning(warning) {
71
82
  }
72
83
  var FIRST_WARNING_INFO_MESSAGE = "AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.";
73
84
  var hasLoggedBefore = false;
74
- var logWarnings = (warnings) => {
75
- if (warnings.length === 0) {
85
+ var logWarnings = (options) => {
86
+ if (options.warnings.length === 0) {
76
87
  return;
77
88
  }
78
89
  const logger = globalThis.AI_SDK_LOG_WARNINGS;
@@ -80,15 +91,21 @@ var logWarnings = (warnings) => {
80
91
  return;
81
92
  }
82
93
  if (typeof logger === "function") {
83
- logger(warnings);
94
+ logger(options);
84
95
  return;
85
96
  }
86
97
  if (!hasLoggedBefore) {
87
98
  hasLoggedBefore = true;
88
99
  console.info(FIRST_WARNING_INFO_MESSAGE);
89
100
  }
90
- for (const warning of warnings) {
91
- console.warn(formatWarning(warning));
101
+ for (const warning of options.warnings) {
102
+ console.warn(
103
+ formatWarning({
104
+ warning,
105
+ provider: options.provider,
106
+ model: options.model
107
+ })
108
+ );
92
109
  }
93
110
  };
94
111
 
@@ -439,8 +456,11 @@ var RetryError = class extends AISDKError16 {
439
456
  };
440
457
  _a14 = symbol14;
441
458
 
442
- // src/model/resolve-model.ts
443
- function transformToV3LanguageModel(model) {
459
+ // src/model/as-embedding-model-v3.ts
460
+ function asEmbeddingModelV3(model) {
461
+ if (model.specificationVersion === "v3") {
462
+ return model;
463
+ }
444
464
  return new Proxy(model, {
445
465
  get(target, prop) {
446
466
  if (prop === "specificationVersion")
@@ -449,7 +469,12 @@ function transformToV3LanguageModel(model) {
449
469
  }
450
470
  });
451
471
  }
452
- function transformToV3EmbeddingModel(model) {
472
+
473
+ // src/model/as-language-model-v3.ts
474
+ function asLanguageModelV3(model) {
475
+ if (model.specificationVersion === "v3") {
476
+ return model;
477
+ }
453
478
  return new Proxy(model, {
454
479
  get(target, prop) {
455
480
  if (prop === "specificationVersion")
@@ -458,7 +483,12 @@ function transformToV3EmbeddingModel(model) {
458
483
  }
459
484
  });
460
485
  }
461
- function transformToV3TranscriptionModel(model) {
486
+
487
+ // src/model/as-speech-model-v3.ts
488
+ function asSpeechModelV3(model) {
489
+ if (model.specificationVersion === "v3") {
490
+ return model;
491
+ }
462
492
  return new Proxy(model, {
463
493
  get(target, prop) {
464
494
  if (prop === "specificationVersion")
@@ -467,7 +497,12 @@ function transformToV3TranscriptionModel(model) {
467
497
  }
468
498
  });
469
499
  }
470
- function transformToV3SpeechModel(model) {
500
+
501
+ // src/model/as-transcription-model-v3.ts
502
+ function asTranscriptionModelV3(model) {
503
+ if (model.specificationVersion === "v3") {
504
+ return model;
505
+ }
471
506
  return new Proxy(model, {
472
507
  get(target, prop) {
473
508
  if (prop === "specificationVersion")
@@ -476,6 +511,8 @@ function transformToV3SpeechModel(model) {
476
511
  }
477
512
  });
478
513
  }
514
+
515
+ // src/model/resolve-model.ts
479
516
  function resolveLanguageModel(model) {
480
517
  if (typeof model !== "string") {
481
518
  if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
@@ -486,10 +523,7 @@ function resolveLanguageModel(model) {
486
523
  modelId: unsupportedModel.modelId
487
524
  });
488
525
  }
489
- if (model.specificationVersion === "v2") {
490
- return transformToV3LanguageModel(model);
491
- }
492
- return model;
526
+ return asLanguageModelV3(model);
493
527
  }
494
528
  return getGlobalProvider().languageModel(model);
495
529
  }
@@ -503,10 +537,7 @@ function resolveEmbeddingModel(model) {
503
537
  modelId: unsupportedModel.modelId
504
538
  });
505
539
  }
506
- if (model.specificationVersion === "v2") {
507
- return transformToV3EmbeddingModel(model);
508
- }
509
- return model;
540
+ return asEmbeddingModelV3(model);
510
541
  }
511
542
  return getGlobalProvider().textEmbeddingModel(
512
543
  model
@@ -523,10 +554,7 @@ function resolveTranscriptionModel(model) {
523
554
  modelId: unsupportedModel.modelId
524
555
  });
525
556
  }
526
- if (model.specificationVersion === "v2") {
527
- return transformToV3TranscriptionModel(model);
528
- }
529
- return model;
557
+ return asTranscriptionModelV3(model);
530
558
  }
531
559
  return (_b = (_a16 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a16, model);
532
560
  }
@@ -541,10 +569,7 @@ function resolveSpeechModel(model) {
541
569
  modelId: unsupportedModel.modelId
542
570
  });
543
571
  }
544
- if (model.specificationVersion === "v2") {
545
- return transformToV3SpeechModel(model);
546
- }
547
- return model;
572
+ return asSpeechModelV3(model);
548
573
  }
549
574
  return (_b = (_a16 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a16, model);
550
575
  }
@@ -750,7 +775,7 @@ import {
750
775
  } from "@ai-sdk/provider-utils";
751
776
 
752
777
  // src/version.ts
753
- var VERSION = true ? "6.0.0-beta.75" : "0.0.0-test";
778
+ var VERSION = true ? "6.0.0-beta.77" : "0.0.0-test";
754
779
 
755
780
  // src/util/download/download.ts
756
781
  var download = async ({ url }) => {
@@ -2871,7 +2896,11 @@ async function generateText({
2871
2896
  messages: structuredClone(responseMessages)
2872
2897
  }
2873
2898
  });
2874
- logWarnings((_g = currentModelResponse.warnings) != null ? _g : []);
2899
+ logWarnings({
2900
+ warnings: (_g = currentModelResponse.warnings) != null ? _g : [],
2901
+ provider: stepModel.provider,
2902
+ model: stepModel.modelId
2903
+ });
2875
2904
  steps.push(currentStepResult);
2876
2905
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
2877
2906
  } while (
@@ -5164,7 +5193,11 @@ var DefaultStreamTextResult = class {
5164
5193
  providerMetadata: part.providerMetadata
5165
5194
  });
5166
5195
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
5167
- logWarnings(recordedWarnings);
5196
+ logWarnings({
5197
+ warnings: recordedWarnings,
5198
+ provider: model.provider,
5199
+ model: model.modelId
5200
+ });
5168
5201
  recordedSteps.push(currentStepResult);
5169
5202
  recordedResponseMessages.push(...stepMessages);
5170
5203
  stepFinish.resolve();
@@ -7564,7 +7597,7 @@ async function generateImage({
7564
7597
  }
7565
7598
  responses.push(result.response);
7566
7599
  }
7567
- logWarnings(warnings);
7600
+ logWarnings({ warnings, provider: model.provider, model: model.modelId });
7568
7601
  if (!images.length) {
7569
7602
  throw new NoImageGeneratedError({ responses });
7570
7603
  }
@@ -8252,7 +8285,11 @@ async function generateObject(options) {
8252
8285
  request = (_a16 = generateResult.request) != null ? _a16 : {};
8253
8286
  response = generateResult.responseData;
8254
8287
  reasoning = generateResult.reasoning;
8255
- logWarnings(warnings);
8288
+ logWarnings({
8289
+ warnings,
8290
+ provider: model.provider,
8291
+ model: model.modelId
8292
+ });
8256
8293
  const object2 = await parseAndValidateObjectResultWithRepair(
8257
8294
  result,
8258
8295
  outputStrategy,
@@ -8769,7 +8806,11 @@ var DefaultStreamObjectResult = class {
8769
8806
  usage,
8770
8807
  response: fullResponse
8771
8808
  });
8772
- logWarnings(warnings != null ? warnings : []);
8809
+ logWarnings({
8810
+ warnings: warnings != null ? warnings : [],
8811
+ provider: model.provider,
8812
+ model: model.modelId
8813
+ });
8773
8814
  self._usage.resolve(usage);
8774
8815
  self._providerMetadata.resolve(providerMetadata);
8775
8816
  self._warnings.resolve(warnings);
@@ -9047,7 +9088,11 @@ async function generateSpeech({
9047
9088
  if (!result.audio || result.audio.length === 0) {
9048
9089
  throw new NoSpeechGeneratedError({ responses: [result.response] });
9049
9090
  }
9050
- logWarnings(result.warnings);
9091
+ logWarnings({
9092
+ warnings: result.warnings,
9093
+ provider: resolvedModel.provider,
9094
+ model: resolvedModel.modelId
9095
+ });
9051
9096
  return new DefaultSpeechResult({
9052
9097
  audio: new DefaultGeneratedAudioFile({
9053
9098
  data: result.audio,
@@ -9795,26 +9840,52 @@ var doWrap = ({
9795
9840
  };
9796
9841
  };
9797
9842
 
9843
+ // src/model/as-image-model-v3.ts
9844
+ function asImageModelV3(model) {
9845
+ if (model.specificationVersion === "v3") {
9846
+ return model;
9847
+ }
9848
+ return new Proxy(model, {
9849
+ get(target, prop) {
9850
+ if (prop === "specificationVersion")
9851
+ return "v3";
9852
+ return target[prop];
9853
+ }
9854
+ });
9855
+ }
9856
+
9857
+ // src/model/as-provider-v3.ts
9858
+ function asProviderV3(provider) {
9859
+ if ("specificationVersion" in provider && provider.specificationVersion === "v3") {
9860
+ return provider;
9861
+ }
9862
+ return {
9863
+ specificationVersion: "v3",
9864
+ languageModel: (modelId) => asLanguageModelV3(provider.languageModel(modelId)),
9865
+ textEmbeddingModel: (modelId) => asEmbeddingModelV3(provider.textEmbeddingModel(modelId)),
9866
+ imageModel: (modelId) => asImageModelV3(provider.imageModel(modelId)),
9867
+ transcriptionModel: provider.transcriptionModel ? (modelId) => asTranscriptionModelV3(provider.transcriptionModel(modelId)) : void 0,
9868
+ speechModel: provider.speechModel ? (modelId) => asSpeechModelV3(provider.speechModel(modelId)) : void 0
9869
+ };
9870
+ }
9871
+
9798
9872
  // src/middleware/wrap-provider.ts
9799
9873
  function wrapProvider({
9800
9874
  provider,
9801
9875
  languageModelMiddleware
9802
9876
  }) {
9803
- const wrappedProvider = {
9804
- languageModel(modelId) {
9805
- let model = provider.languageModel(modelId);
9806
- model = wrapLanguageModel({
9807
- model,
9808
- middleware: languageModelMiddleware
9809
- });
9810
- return model;
9811
- },
9812
- textEmbeddingModel: provider.textEmbeddingModel,
9813
- imageModel: provider.imageModel,
9814
- transcriptionModel: provider.transcriptionModel,
9815
- speechModel: provider.speechModel
9877
+ const providerV3 = asProviderV3(provider);
9878
+ return {
9879
+ specificationVersion: "v3",
9880
+ languageModel: (modelId) => wrapLanguageModel({
9881
+ model: providerV3.languageModel(modelId),
9882
+ middleware: languageModelMiddleware
9883
+ }),
9884
+ textEmbeddingModel: providerV3.textEmbeddingModel,
9885
+ imageModel: providerV3.imageModel,
9886
+ transcriptionModel: providerV3.transcriptionModel,
9887
+ speechModel: providerV3.speechModel
9816
9888
  };
9817
- return wrappedProvider;
9818
9889
  }
9819
9890
 
9820
9891
  // src/registry/custom-provider.ts
@@ -9830,6 +9901,7 @@ function customProvider({
9830
9901
  fallbackProvider
9831
9902
  }) {
9832
9903
  return {
9904
+ specificationVersion: "v3",
9833
9905
  languageModel(modelId) {
9834
9906
  if (languageModels != null && modelId in languageModels) {
9835
9907
  return languageModels[modelId];
@@ -10078,7 +10150,11 @@ async function transcribe({
10078
10150
  });
10079
10151
  }
10080
10152
  );
10081
- logWarnings(result.warnings);
10153
+ logWarnings({
10154
+ warnings: result.warnings,
10155
+ provider: resolvedModel.provider,
10156
+ model: resolvedModel.modelId
10157
+ });
10082
10158
  if (!result.text) {
10083
10159
  throw new NoTranscriptGeneratedError({ responses: [result.response] });
10084
10160
  }