ai 6.0.0-beta.74 → 6.0.0-beta.76

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.`;
55
+ if (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.`;
51
62
  if (warning.details) {
52
- message += ` - ${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
 
@@ -750,7 +767,7 @@ import {
750
767
  } from "@ai-sdk/provider-utils";
751
768
 
752
769
  // src/version.ts
753
- var VERSION = true ? "6.0.0-beta.74" : "0.0.0-test";
770
+ var VERSION = true ? "6.0.0-beta.76" : "0.0.0-test";
754
771
 
755
772
  // src/util/download/download.ts
756
773
  var download = async ({ url }) => {
@@ -2871,7 +2888,11 @@ async function generateText({
2871
2888
  messages: structuredClone(responseMessages)
2872
2889
  }
2873
2890
  });
2874
- logWarnings((_g = currentModelResponse.warnings) != null ? _g : []);
2891
+ logWarnings({
2892
+ warnings: (_g = currentModelResponse.warnings) != null ? _g : [],
2893
+ provider: stepModel.provider,
2894
+ model: stepModel.modelId
2895
+ });
2875
2896
  steps.push(currentStepResult);
2876
2897
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
2877
2898
  } while (
@@ -5164,7 +5185,11 @@ var DefaultStreamTextResult = class {
5164
5185
  providerMetadata: part.providerMetadata
5165
5186
  });
5166
5187
  await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
5167
- logWarnings(recordedWarnings);
5188
+ logWarnings({
5189
+ warnings: recordedWarnings,
5190
+ provider: model.provider,
5191
+ model: model.modelId
5192
+ });
5168
5193
  recordedSteps.push(currentStepResult);
5169
5194
  recordedResponseMessages.push(...stepMessages);
5170
5195
  stepFinish.resolve();
@@ -7564,7 +7589,7 @@ async function generateImage({
7564
7589
  }
7565
7590
  responses.push(result.response);
7566
7591
  }
7567
- logWarnings(warnings);
7592
+ logWarnings({ warnings, provider: model.provider, model: model.modelId });
7568
7593
  if (!images.length) {
7569
7594
  throw new NoImageGeneratedError({ responses });
7570
7595
  }
@@ -8252,7 +8277,11 @@ async function generateObject(options) {
8252
8277
  request = (_a16 = generateResult.request) != null ? _a16 : {};
8253
8278
  response = generateResult.responseData;
8254
8279
  reasoning = generateResult.reasoning;
8255
- logWarnings(warnings);
8280
+ logWarnings({
8281
+ warnings,
8282
+ provider: model.provider,
8283
+ model: model.modelId
8284
+ });
8256
8285
  const object2 = await parseAndValidateObjectResultWithRepair(
8257
8286
  result,
8258
8287
  outputStrategy,
@@ -8769,7 +8798,11 @@ var DefaultStreamObjectResult = class {
8769
8798
  usage,
8770
8799
  response: fullResponse
8771
8800
  });
8772
- logWarnings(warnings != null ? warnings : []);
8801
+ logWarnings({
8802
+ warnings: warnings != null ? warnings : [],
8803
+ provider: model.provider,
8804
+ model: model.modelId
8805
+ });
8773
8806
  self._usage.resolve(usage);
8774
8807
  self._providerMetadata.resolve(providerMetadata);
8775
8808
  self._warnings.resolve(warnings);
@@ -9047,7 +9080,11 @@ async function generateSpeech({
9047
9080
  if (!result.audio || result.audio.length === 0) {
9048
9081
  throw new NoSpeechGeneratedError({ responses: [result.response] });
9049
9082
  }
9050
- logWarnings(result.warnings);
9083
+ logWarnings({
9084
+ warnings: result.warnings,
9085
+ provider: resolvedModel.provider,
9086
+ model: resolvedModel.modelId
9087
+ });
9051
9088
  return new DefaultSpeechResult({
9052
9089
  audio: new DefaultGeneratedAudioFile({
9053
9090
  data: result.audio,
@@ -10078,7 +10115,11 @@ async function transcribe({
10078
10115
  });
10079
10116
  }
10080
10117
  );
10081
- logWarnings(result.warnings);
10118
+ logWarnings({
10119
+ warnings: result.warnings,
10120
+ provider: resolvedModel.provider,
10121
+ model: resolvedModel.modelId
10122
+ });
10082
10123
  if (!result.text) {
10083
10124
  throw new NoTranscriptGeneratedError({ responses: [result.response] });
10084
10125
  }
@@ -10283,6 +10324,7 @@ import { parseJsonEventStream as parseJsonEventStream2 } from "@ai-sdk/provider-
10283
10324
 
10284
10325
  // src/ui/http-chat-transport.ts
10285
10326
  import {
10327
+ normalizeHeaders,
10286
10328
  resolve as resolve2,
10287
10329
  withUserAgentSuffix as withUserAgentSuffix10,
10288
10330
  getRuntimeEnvironmentUserAgent as getRuntimeEnvironmentUserAgent3
@@ -10313,19 +10355,23 @@ var HttpChatTransport = class {
10313
10355
  const resolvedBody = await resolve2(this.body);
10314
10356
  const resolvedHeaders = await resolve2(this.headers);
10315
10357
  const resolvedCredentials = await resolve2(this.credentials);
10358
+ const baseHeaders = {
10359
+ ...normalizeHeaders(resolvedHeaders),
10360
+ ...normalizeHeaders(options.headers)
10361
+ };
10316
10362
  const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
10317
10363
  api: this.api,
10318
10364
  id: options.chatId,
10319
10365
  messages: options.messages,
10320
10366
  body: { ...resolvedBody, ...options.body },
10321
- headers: { ...resolvedHeaders, ...options.headers },
10367
+ headers: baseHeaders,
10322
10368
  credentials: resolvedCredentials,
10323
10369
  requestMetadata: options.metadata,
10324
10370
  trigger: options.trigger,
10325
10371
  messageId: options.messageId
10326
10372
  }));
10327
10373
  const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : this.api;
10328
- const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? preparedRequest.headers : { ...resolvedHeaders, ...options.headers };
10374
+ const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;
10329
10375
  const body = (preparedRequest == null ? void 0 : preparedRequest.body) !== void 0 ? preparedRequest.body : {
10330
10376
  ...resolvedBody,
10331
10377
  ...options.body,
@@ -10365,16 +10411,20 @@ var HttpChatTransport = class {
10365
10411
  const resolvedBody = await resolve2(this.body);
10366
10412
  const resolvedHeaders = await resolve2(this.headers);
10367
10413
  const resolvedCredentials = await resolve2(this.credentials);
10414
+ const baseHeaders = {
10415
+ ...normalizeHeaders(resolvedHeaders),
10416
+ ...normalizeHeaders(options.headers)
10417
+ };
10368
10418
  const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
10369
10419
  api: this.api,
10370
10420
  id: options.chatId,
10371
10421
  body: { ...resolvedBody, ...options.body },
10372
- headers: { ...resolvedHeaders, ...options.headers },
10422
+ headers: baseHeaders,
10373
10423
  credentials: resolvedCredentials,
10374
10424
  requestMetadata: options.metadata
10375
10425
  }));
10376
10426
  const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : `${this.api}/${options.chatId}/stream`;
10377
- const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? preparedRequest.headers : { ...resolvedHeaders, ...options.headers };
10427
+ const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;
10378
10428
  const credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;
10379
10429
  const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
10380
10430
  const response = await fetch2(api, {