ai 5.0.199 → 5.0.201
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/CHANGELOG.md +34 -0
- package/dist/index.d.mts +15 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.js +64 -62
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -28
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +69 -97
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +56 -83
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/internal/index.js
CHANGED
|
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
6
|
var __export = (target, all) => {
|
|
7
|
-
for (var
|
|
8
|
-
__defProp(target,
|
|
7
|
+
for (var name4 in all)
|
|
8
|
+
__defProp(target, name4, { get: all[name4], enumerable: true });
|
|
9
9
|
};
|
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -147,37 +147,11 @@ function detectMediaType({
|
|
|
147
147
|
return void 0;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
// src/util/download/download-error.ts
|
|
151
|
-
var import_provider = require("@ai-sdk/provider");
|
|
152
|
-
var name = "AI_DownloadError";
|
|
153
|
-
var marker = `vercel.ai.error.${name}`;
|
|
154
|
-
var symbol = Symbol.for(marker);
|
|
155
|
-
var _a;
|
|
156
|
-
var DownloadError = class extends import_provider.AISDKError {
|
|
157
|
-
constructor({
|
|
158
|
-
url,
|
|
159
|
-
statusCode,
|
|
160
|
-
statusText,
|
|
161
|
-
cause,
|
|
162
|
-
message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
|
|
163
|
-
}) {
|
|
164
|
-
super({ name, message, cause });
|
|
165
|
-
this[_a] = true;
|
|
166
|
-
this.url = url;
|
|
167
|
-
this.statusCode = statusCode;
|
|
168
|
-
this.statusText = statusText;
|
|
169
|
-
}
|
|
170
|
-
static isInstance(error) {
|
|
171
|
-
return import_provider.AISDKError.hasMarker(error, marker);
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
_a = symbol;
|
|
175
|
-
|
|
176
150
|
// src/util/download/download.ts
|
|
177
151
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
178
152
|
|
|
179
153
|
// src/version.ts
|
|
180
|
-
var VERSION = true ? "5.0.
|
|
154
|
+
var VERSION = true ? "5.0.201" : "0.0.0-test";
|
|
181
155
|
|
|
182
156
|
// src/util/download/download.ts
|
|
183
157
|
var download = async ({
|
|
@@ -185,23 +159,21 @@ var download = async ({
|
|
|
185
159
|
maxBytes,
|
|
186
160
|
abortSignal
|
|
187
161
|
}) => {
|
|
188
|
-
var
|
|
162
|
+
var _a4;
|
|
189
163
|
const urlText = url.toString();
|
|
190
|
-
(0, import_provider_utils2.validateDownloadUrl)(urlText);
|
|
191
164
|
try {
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
165
|
+
const headers = (0, import_provider_utils2.withUserAgentSuffix)(
|
|
166
|
+
{},
|
|
167
|
+
`ai-sdk/${VERSION}`,
|
|
168
|
+
(0, import_provider_utils2.getRuntimeEnvironmentUserAgent)()
|
|
169
|
+
);
|
|
170
|
+
const response = await (0, import_provider_utils2.fetchWithValidatedRedirects)({
|
|
171
|
+
url: urlText,
|
|
172
|
+
headers,
|
|
173
|
+
abortSignal
|
|
199
174
|
});
|
|
200
|
-
if (response.redirected) {
|
|
201
|
-
(0, import_provider_utils2.validateDownloadUrl)(response.url);
|
|
202
|
-
}
|
|
203
175
|
if (!response.ok) {
|
|
204
|
-
throw new DownloadError({
|
|
176
|
+
throw new import_provider_utils2.DownloadError({
|
|
205
177
|
url: urlText,
|
|
206
178
|
statusCode: response.status,
|
|
207
179
|
statusText: response.statusText
|
|
@@ -214,13 +186,13 @@ var download = async ({
|
|
|
214
186
|
});
|
|
215
187
|
return {
|
|
216
188
|
data,
|
|
217
|
-
mediaType: (
|
|
189
|
+
mediaType: (_a4 = response.headers.get("content-type")) != null ? _a4 : void 0
|
|
218
190
|
};
|
|
219
191
|
} catch (error) {
|
|
220
|
-
if (DownloadError.isInstance(error)) {
|
|
192
|
+
if (import_provider_utils2.DownloadError.isInstance(error)) {
|
|
221
193
|
throw error;
|
|
222
194
|
}
|
|
223
|
-
throw new DownloadError({ url: urlText, cause: error });
|
|
195
|
+
throw new import_provider_utils2.DownloadError({ url: urlText, cause: error });
|
|
224
196
|
}
|
|
225
197
|
};
|
|
226
198
|
|
|
@@ -232,7 +204,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
232
204
|
);
|
|
233
205
|
|
|
234
206
|
// src/prompt/data-content.ts
|
|
235
|
-
var
|
|
207
|
+
var import_provider = require("@ai-sdk/provider");
|
|
236
208
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
237
209
|
var import_v4 = require("zod/v4");
|
|
238
210
|
|
|
@@ -260,8 +232,8 @@ var dataContentSchema = import_v4.z.union([
|
|
|
260
232
|
import_v4.z.custom(
|
|
261
233
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
262
234
|
(value) => {
|
|
263
|
-
var
|
|
264
|
-
return (_b = (
|
|
235
|
+
var _a4, _b;
|
|
236
|
+
return (_b = (_a4 = globalThis.Buffer) == null ? void 0 : _a4.isBuffer(value)) != null ? _b : false;
|
|
265
237
|
},
|
|
266
238
|
{ message: "Must be a Buffer" }
|
|
267
239
|
)
|
|
@@ -284,7 +256,7 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
284
256
|
content.toString()
|
|
285
257
|
);
|
|
286
258
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
287
|
-
throw new
|
|
259
|
+
throw new import_provider.AISDKError({
|
|
288
260
|
name: "InvalidDataContentError",
|
|
289
261
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
290
262
|
});
|
|
@@ -295,25 +267,25 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
295
267
|
}
|
|
296
268
|
|
|
297
269
|
// src/prompt/invalid-message-role-error.ts
|
|
298
|
-
var
|
|
299
|
-
var
|
|
300
|
-
var
|
|
301
|
-
var
|
|
302
|
-
var
|
|
303
|
-
var InvalidMessageRoleError = class extends
|
|
270
|
+
var import_provider2 = require("@ai-sdk/provider");
|
|
271
|
+
var name = "AI_InvalidMessageRoleError";
|
|
272
|
+
var marker = `vercel.ai.error.${name}`;
|
|
273
|
+
var symbol = Symbol.for(marker);
|
|
274
|
+
var _a;
|
|
275
|
+
var InvalidMessageRoleError = class extends import_provider2.AISDKError {
|
|
304
276
|
constructor({
|
|
305
277
|
role,
|
|
306
278
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
307
279
|
}) {
|
|
308
|
-
super({ name
|
|
309
|
-
this[
|
|
280
|
+
super({ name, message });
|
|
281
|
+
this[_a] = true;
|
|
310
282
|
this.role = role;
|
|
311
283
|
}
|
|
312
284
|
static isInstance(error) {
|
|
313
|
-
return
|
|
285
|
+
return import_provider2.AISDKError.hasMarker(error, marker);
|
|
314
286
|
}
|
|
315
287
|
};
|
|
316
|
-
|
|
288
|
+
_a = symbol;
|
|
317
289
|
|
|
318
290
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
319
291
|
async function convertToLanguageModelPrompt({
|
|
@@ -451,8 +423,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
451
423
|
).flat().filter(
|
|
452
424
|
(part) => part.type === "image" || part.type === "file"
|
|
453
425
|
).map((part) => {
|
|
454
|
-
var
|
|
455
|
-
const mediaType = (
|
|
426
|
+
var _a4;
|
|
427
|
+
const mediaType = (_a4 = part.mediaType) != null ? _a4 : part.type === "image" ? "image/*" : void 0;
|
|
456
428
|
let data = part.type === "image" ? part.image : part.data;
|
|
457
429
|
if (typeof data === "string") {
|
|
458
430
|
try {
|
|
@@ -482,7 +454,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
482
454
|
);
|
|
483
455
|
}
|
|
484
456
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
485
|
-
var
|
|
457
|
+
var _a4;
|
|
486
458
|
if (part.type === "text") {
|
|
487
459
|
return {
|
|
488
460
|
type: "text",
|
|
@@ -515,7 +487,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
515
487
|
switch (type) {
|
|
516
488
|
case "image": {
|
|
517
489
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
518
|
-
mediaType = (
|
|
490
|
+
mediaType = (_a4 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a4 : mediaType;
|
|
519
491
|
}
|
|
520
492
|
return {
|
|
521
493
|
type: "file",
|
|
@@ -562,10 +534,10 @@ function prepareToolsAndToolChoice({
|
|
|
562
534
|
};
|
|
563
535
|
}
|
|
564
536
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
565
|
-
([
|
|
537
|
+
([name4]) => activeTools.includes(name4)
|
|
566
538
|
) : Object.entries(tools);
|
|
567
539
|
return {
|
|
568
|
-
tools: filteredTools.map(([
|
|
540
|
+
tools: filteredTools.map(([name4, tool]) => {
|
|
569
541
|
const toolType = tool.type;
|
|
570
542
|
switch (toolType) {
|
|
571
543
|
case void 0:
|
|
@@ -573,7 +545,7 @@ function prepareToolsAndToolChoice({
|
|
|
573
545
|
case "function":
|
|
574
546
|
return {
|
|
575
547
|
type: "function",
|
|
576
|
-
name:
|
|
548
|
+
name: name4,
|
|
577
549
|
description: tool.description,
|
|
578
550
|
inputSchema: (0, import_provider_utils5.asSchema)(tool.inputSchema).jsonSchema,
|
|
579
551
|
providerOptions: tool.providerOptions
|
|
@@ -581,7 +553,7 @@ function prepareToolsAndToolChoice({
|
|
|
581
553
|
case "provider-defined":
|
|
582
554
|
return {
|
|
583
555
|
type: "provider-defined",
|
|
584
|
-
name:
|
|
556
|
+
name: name4,
|
|
585
557
|
id: tool.id,
|
|
586
558
|
args: tool.args
|
|
587
559
|
};
|
|
@@ -596,7 +568,7 @@ function prepareToolsAndToolChoice({
|
|
|
596
568
|
}
|
|
597
569
|
|
|
598
570
|
// src/prompt/standardize-prompt.ts
|
|
599
|
-
var
|
|
571
|
+
var import_provider3 = require("@ai-sdk/provider");
|
|
600
572
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
601
573
|
var import_v46 = require("zod/v4");
|
|
602
574
|
|
|
@@ -752,19 +724,19 @@ async function standardizePrompt({
|
|
|
752
724
|
messages
|
|
753
725
|
}) {
|
|
754
726
|
if (prompt == null && messages == null) {
|
|
755
|
-
throw new
|
|
727
|
+
throw new import_provider3.InvalidPromptError({
|
|
756
728
|
prompt,
|
|
757
729
|
message: "prompt or messages must be defined"
|
|
758
730
|
});
|
|
759
731
|
}
|
|
760
732
|
if (prompt != null && messages != null) {
|
|
761
|
-
throw new
|
|
733
|
+
throw new import_provider3.InvalidPromptError({
|
|
762
734
|
prompt,
|
|
763
735
|
message: "prompt and messages cannot be defined at the same time"
|
|
764
736
|
});
|
|
765
737
|
}
|
|
766
738
|
if (system != null && typeof system !== "string") {
|
|
767
|
-
throw new
|
|
739
|
+
throw new import_provider3.InvalidPromptError({
|
|
768
740
|
prompt,
|
|
769
741
|
message: "system must be a string"
|
|
770
742
|
});
|
|
@@ -774,20 +746,20 @@ async function standardizePrompt({
|
|
|
774
746
|
} else if (prompt != null && Array.isArray(prompt)) {
|
|
775
747
|
messages = prompt;
|
|
776
748
|
} else if (messages == null) {
|
|
777
|
-
throw new
|
|
749
|
+
throw new import_provider3.InvalidPromptError({
|
|
778
750
|
prompt,
|
|
779
751
|
message: "prompt or messages must be defined"
|
|
780
752
|
});
|
|
781
753
|
}
|
|
782
754
|
if (messages.length === 0) {
|
|
783
|
-
throw new
|
|
755
|
+
throw new import_provider3.InvalidPromptError({
|
|
784
756
|
prompt,
|
|
785
757
|
message: "messages must not be empty"
|
|
786
758
|
});
|
|
787
759
|
}
|
|
788
760
|
if (messages.some((message) => message.role === "system")) {
|
|
789
761
|
if (allowSystemInMessages === false) {
|
|
790
|
-
throw new
|
|
762
|
+
throw new import_provider3.InvalidPromptError({
|
|
791
763
|
prompt,
|
|
792
764
|
message: "System messages are not allowed in the prompt or messages fields. Use the system option instead."
|
|
793
765
|
});
|
|
@@ -803,7 +775,7 @@ async function standardizePrompt({
|
|
|
803
775
|
schema: import_v46.z.array(modelMessageSchema)
|
|
804
776
|
});
|
|
805
777
|
if (!validationResult.success) {
|
|
806
|
-
throw new
|
|
778
|
+
throw new import_provider3.InvalidPromptError({
|
|
807
779
|
prompt,
|
|
808
780
|
message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
|
|
809
781
|
cause: validationResult.error
|
|
@@ -813,30 +785,30 @@ async function standardizePrompt({
|
|
|
813
785
|
}
|
|
814
786
|
|
|
815
787
|
// src/error/invalid-argument-error.ts
|
|
816
|
-
var
|
|
817
|
-
var
|
|
818
|
-
var
|
|
819
|
-
var
|
|
820
|
-
var
|
|
821
|
-
var InvalidArgumentError = class extends
|
|
788
|
+
var import_provider4 = require("@ai-sdk/provider");
|
|
789
|
+
var name2 = "AI_InvalidArgumentError";
|
|
790
|
+
var marker2 = `vercel.ai.error.${name2}`;
|
|
791
|
+
var symbol2 = Symbol.for(marker2);
|
|
792
|
+
var _a2;
|
|
793
|
+
var InvalidArgumentError = class extends import_provider4.AISDKError {
|
|
822
794
|
constructor({
|
|
823
795
|
parameter,
|
|
824
796
|
value,
|
|
825
797
|
message
|
|
826
798
|
}) {
|
|
827
799
|
super({
|
|
828
|
-
name:
|
|
800
|
+
name: name2,
|
|
829
801
|
message: `Invalid argument for parameter ${parameter}: ${message}`
|
|
830
802
|
});
|
|
831
|
-
this[
|
|
803
|
+
this[_a2] = true;
|
|
832
804
|
this.parameter = parameter;
|
|
833
805
|
this.value = value;
|
|
834
806
|
}
|
|
835
807
|
static isInstance(error) {
|
|
836
|
-
return
|
|
808
|
+
return import_provider4.AISDKError.hasMarker(error, marker2);
|
|
837
809
|
}
|
|
838
810
|
};
|
|
839
|
-
|
|
811
|
+
_a2 = symbol2;
|
|
840
812
|
|
|
841
813
|
// src/prompt/prepare-call-settings.ts
|
|
842
814
|
function prepareCallSettings({
|
|
@@ -932,32 +904,32 @@ function prepareCallSettings({
|
|
|
932
904
|
}
|
|
933
905
|
|
|
934
906
|
// src/util/retry-with-exponential-backoff.ts
|
|
935
|
-
var
|
|
907
|
+
var import_provider6 = require("@ai-sdk/provider");
|
|
936
908
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
937
909
|
|
|
938
910
|
// src/util/retry-error.ts
|
|
939
|
-
var
|
|
940
|
-
var
|
|
941
|
-
var
|
|
942
|
-
var
|
|
943
|
-
var
|
|
944
|
-
var RetryError = class extends
|
|
911
|
+
var import_provider5 = require("@ai-sdk/provider");
|
|
912
|
+
var name3 = "AI_RetryError";
|
|
913
|
+
var marker3 = `vercel.ai.error.${name3}`;
|
|
914
|
+
var symbol3 = Symbol.for(marker3);
|
|
915
|
+
var _a3;
|
|
916
|
+
var RetryError = class extends import_provider5.AISDKError {
|
|
945
917
|
constructor({
|
|
946
918
|
message,
|
|
947
919
|
reason,
|
|
948
920
|
errors
|
|
949
921
|
}) {
|
|
950
|
-
super({ name:
|
|
951
|
-
this[
|
|
922
|
+
super({ name: name3, message });
|
|
923
|
+
this[_a3] = true;
|
|
952
924
|
this.reason = reason;
|
|
953
925
|
this.errors = errors;
|
|
954
926
|
this.lastError = errors[errors.length - 1];
|
|
955
927
|
}
|
|
956
928
|
static isInstance(error) {
|
|
957
|
-
return
|
|
929
|
+
return import_provider5.AISDKError.hasMarker(error, marker3);
|
|
958
930
|
}
|
|
959
931
|
};
|
|
960
|
-
|
|
932
|
+
_a3 = symbol3;
|
|
961
933
|
|
|
962
934
|
// src/util/retry-with-exponential-backoff.ts
|
|
963
935
|
function getRetryDelayInMs({
|
|
@@ -1025,7 +997,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
1025
997
|
errors: newErrors
|
|
1026
998
|
});
|
|
1027
999
|
}
|
|
1028
|
-
if (error instanceof Error &&
|
|
1000
|
+
if (error instanceof Error && import_provider6.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
|
|
1029
1001
|
await (0, import_provider_utils7.delay)(
|
|
1030
1002
|
getRetryDelayInMs({
|
|
1031
1003
|
error,
|