ai 5.0.284 → 5.0.285
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 +12 -0
- package/dist/index.js +19 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -16
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +112 -63
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +101 -50
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/internal/index.mjs
CHANGED
|
@@ -144,7 +144,7 @@ import {
|
|
|
144
144
|
} from "@ai-sdk/provider-utils";
|
|
145
145
|
|
|
146
146
|
// src/version.ts
|
|
147
|
-
var VERSION = true ? "5.0.
|
|
147
|
+
var VERSION = true ? "5.0.285" : "0.0.0-test";
|
|
148
148
|
|
|
149
149
|
// src/util/download/download.ts
|
|
150
150
|
var download = async ({
|
|
@@ -152,7 +152,7 @@ var download = async ({
|
|
|
152
152
|
maxBytes,
|
|
153
153
|
abortSignal
|
|
154
154
|
}) => {
|
|
155
|
-
var
|
|
155
|
+
var _a5;
|
|
156
156
|
const urlText = url.toString();
|
|
157
157
|
try {
|
|
158
158
|
const headers = withUserAgentSuffix(
|
|
@@ -180,7 +180,7 @@ var download = async ({
|
|
|
180
180
|
});
|
|
181
181
|
return {
|
|
182
182
|
data,
|
|
183
|
-
mediaType: (
|
|
183
|
+
mediaType: (_a5 = response.headers.get("content-type")) != null ? _a5 : void 0
|
|
184
184
|
};
|
|
185
185
|
} catch (error) {
|
|
186
186
|
if (DownloadError.isInstance(error)) {
|
|
@@ -198,13 +198,37 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
198
198
|
);
|
|
199
199
|
|
|
200
200
|
// src/prompt/data-content.ts
|
|
201
|
-
import { AISDKError } from "@ai-sdk/provider";
|
|
201
|
+
import { AISDKError as AISDKError2 } from "@ai-sdk/provider";
|
|
202
202
|
import {
|
|
203
|
+
isUint8Array,
|
|
204
|
+
isArrayBuffer,
|
|
203
205
|
convertBase64ToUint8Array as convertBase64ToUint8Array2,
|
|
204
206
|
convertUint8ArrayToBase64
|
|
205
207
|
} from "@ai-sdk/provider-utils";
|
|
206
208
|
import { z } from "zod/v4";
|
|
207
209
|
|
|
210
|
+
// src/prompt/invalid-data-content-error.ts
|
|
211
|
+
import { AISDKError } from "@ai-sdk/provider";
|
|
212
|
+
var name = "AI_InvalidDataContentError";
|
|
213
|
+
var marker = `vercel.ai.error.${name}`;
|
|
214
|
+
var symbol = Symbol.for(marker);
|
|
215
|
+
var _a;
|
|
216
|
+
var InvalidDataContentError = class extends AISDKError {
|
|
217
|
+
constructor({
|
|
218
|
+
content,
|
|
219
|
+
cause,
|
|
220
|
+
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
221
|
+
}) {
|
|
222
|
+
super({ name, message, cause });
|
|
223
|
+
this[_a] = true;
|
|
224
|
+
this.content = content;
|
|
225
|
+
}
|
|
226
|
+
static isInstance(error) {
|
|
227
|
+
return AISDKError.hasMarker(error, marker);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
_a = symbol;
|
|
231
|
+
|
|
208
232
|
// src/prompt/split-data-url.ts
|
|
209
233
|
function splitDataUrl(dataUrl) {
|
|
210
234
|
try {
|
|
@@ -224,22 +248,25 @@ function splitDataUrl(dataUrl) {
|
|
|
224
248
|
// src/prompt/data-content.ts
|
|
225
249
|
var dataContentSchema = z.union([
|
|
226
250
|
z.string(),
|
|
227
|
-
z.
|
|
228
|
-
z.
|
|
251
|
+
z.custom(isUint8Array, { message: "Must be a Uint8Array" }),
|
|
252
|
+
z.custom(isArrayBuffer, { message: "Must be an ArrayBuffer" }),
|
|
229
253
|
z.custom(
|
|
230
254
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
231
255
|
(value) => {
|
|
232
|
-
var
|
|
233
|
-
return (_b = (
|
|
256
|
+
var _a5, _b;
|
|
257
|
+
return (_b = (_a5 = globalThis.Buffer) == null ? void 0 : _a5.isBuffer(value)) != null ? _b : false;
|
|
234
258
|
},
|
|
235
259
|
{ message: "Must be a Buffer" }
|
|
236
260
|
)
|
|
237
261
|
]);
|
|
238
262
|
function convertToLanguageModelV2DataContent(content) {
|
|
239
|
-
if (content
|
|
240
|
-
return {
|
|
263
|
+
if (isUint8Array(content)) {
|
|
264
|
+
return {
|
|
265
|
+
data: convertDataContentToUint8Array(content),
|
|
266
|
+
mediaType: void 0
|
|
267
|
+
};
|
|
241
268
|
}
|
|
242
|
-
if (content
|
|
269
|
+
if (isArrayBuffer(content)) {
|
|
243
270
|
return { data: new Uint8Array(content), mediaType: void 0 };
|
|
244
271
|
}
|
|
245
272
|
if (typeof content === "string") {
|
|
@@ -253,7 +280,7 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
253
280
|
content.toString()
|
|
254
281
|
);
|
|
255
282
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
256
|
-
throw new
|
|
283
|
+
throw new AISDKError2({
|
|
257
284
|
name: "InvalidDataContentError",
|
|
258
285
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
259
286
|
});
|
|
@@ -262,27 +289,51 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
262
289
|
}
|
|
263
290
|
return { data: content, mediaType: void 0 };
|
|
264
291
|
}
|
|
292
|
+
function convertDataContentToUint8Array(content) {
|
|
293
|
+
if (isUint8Array(content)) {
|
|
294
|
+
if (content instanceof Uint8Array) {
|
|
295
|
+
return content;
|
|
296
|
+
}
|
|
297
|
+
const { buffer, byteOffset, byteLength } = content;
|
|
298
|
+
return new Uint8Array(buffer, byteOffset, byteLength);
|
|
299
|
+
}
|
|
300
|
+
if (typeof content === "string") {
|
|
301
|
+
try {
|
|
302
|
+
return convertBase64ToUint8Array2(content);
|
|
303
|
+
} catch (error) {
|
|
304
|
+
throw new InvalidDataContentError({
|
|
305
|
+
message: "Invalid data content. Content string is not a base64-encoded media.",
|
|
306
|
+
content,
|
|
307
|
+
cause: error
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
if (isArrayBuffer(content)) {
|
|
312
|
+
return new Uint8Array(content);
|
|
313
|
+
}
|
|
314
|
+
throw new InvalidDataContentError({ content });
|
|
315
|
+
}
|
|
265
316
|
|
|
266
317
|
// src/prompt/invalid-message-role-error.ts
|
|
267
|
-
import { AISDKError as
|
|
268
|
-
var
|
|
269
|
-
var
|
|
270
|
-
var
|
|
271
|
-
var
|
|
272
|
-
var InvalidMessageRoleError = class extends
|
|
318
|
+
import { AISDKError as AISDKError3 } from "@ai-sdk/provider";
|
|
319
|
+
var name2 = "AI_InvalidMessageRoleError";
|
|
320
|
+
var marker2 = `vercel.ai.error.${name2}`;
|
|
321
|
+
var symbol2 = Symbol.for(marker2);
|
|
322
|
+
var _a2;
|
|
323
|
+
var InvalidMessageRoleError = class extends AISDKError3 {
|
|
273
324
|
constructor({
|
|
274
325
|
role,
|
|
275
326
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
276
327
|
}) {
|
|
277
|
-
super({ name, message });
|
|
278
|
-
this[
|
|
328
|
+
super({ name: name2, message });
|
|
329
|
+
this[_a2] = true;
|
|
279
330
|
this.role = role;
|
|
280
331
|
}
|
|
281
332
|
static isInstance(error) {
|
|
282
|
-
return
|
|
333
|
+
return AISDKError3.hasMarker(error, marker2);
|
|
283
334
|
}
|
|
284
335
|
};
|
|
285
|
-
|
|
336
|
+
_a2 = symbol2;
|
|
286
337
|
|
|
287
338
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
288
339
|
async function convertToLanguageModelPrompt({
|
|
@@ -422,8 +473,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
422
473
|
).flat().filter(
|
|
423
474
|
(part) => part.type === "image" || part.type === "file"
|
|
424
475
|
).map((part) => {
|
|
425
|
-
var
|
|
426
|
-
const mediaType = (
|
|
476
|
+
var _a5;
|
|
477
|
+
const mediaType = (_a5 = part.mediaType) != null ? _a5 : part.type === "image" ? "image/*" : void 0;
|
|
427
478
|
let data = part.type === "image" ? part.image : part.data;
|
|
428
479
|
if (typeof data === "string") {
|
|
429
480
|
try {
|
|
@@ -456,7 +507,7 @@ function getOriginalUrl(originalData, convertedData) {
|
|
|
456
507
|
return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
|
|
457
508
|
}
|
|
458
509
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
459
|
-
var
|
|
510
|
+
var _a5;
|
|
460
511
|
if (part.type === "text") {
|
|
461
512
|
return {
|
|
462
513
|
type: "text",
|
|
@@ -491,7 +542,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
491
542
|
switch (type) {
|
|
492
543
|
case "image": {
|
|
493
544
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
494
|
-
mediaType = (
|
|
545
|
+
mediaType = (_a5 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a5 : mediaType;
|
|
495
546
|
}
|
|
496
547
|
return {
|
|
497
548
|
type: "file",
|
|
@@ -540,10 +591,10 @@ function prepareToolsAndToolChoice({
|
|
|
540
591
|
};
|
|
541
592
|
}
|
|
542
593
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
543
|
-
([
|
|
594
|
+
([name5]) => activeTools.includes(name5)
|
|
544
595
|
) : Object.entries(tools);
|
|
545
596
|
return {
|
|
546
|
-
tools: filteredTools.map(([
|
|
597
|
+
tools: filteredTools.map(([name5, tool]) => {
|
|
547
598
|
const toolType = tool.type;
|
|
548
599
|
switch (toolType) {
|
|
549
600
|
case void 0:
|
|
@@ -551,7 +602,7 @@ function prepareToolsAndToolChoice({
|
|
|
551
602
|
case "function":
|
|
552
603
|
return {
|
|
553
604
|
type: "function",
|
|
554
|
-
name:
|
|
605
|
+
name: name5,
|
|
555
606
|
description: tool.description,
|
|
556
607
|
inputSchema: asSchema(tool.inputSchema).jsonSchema,
|
|
557
608
|
providerOptions: tool.providerOptions
|
|
@@ -559,7 +610,7 @@ function prepareToolsAndToolChoice({
|
|
|
559
610
|
case "provider-defined":
|
|
560
611
|
return {
|
|
561
612
|
type: "provider-defined",
|
|
562
|
-
name:
|
|
613
|
+
name: name5,
|
|
563
614
|
id: tool.id,
|
|
564
615
|
args: tool.args
|
|
565
616
|
};
|
|
@@ -791,30 +842,30 @@ async function standardizePrompt({
|
|
|
791
842
|
}
|
|
792
843
|
|
|
793
844
|
// src/error/invalid-argument-error.ts
|
|
794
|
-
import { AISDKError as
|
|
795
|
-
var
|
|
796
|
-
var
|
|
797
|
-
var
|
|
798
|
-
var
|
|
799
|
-
var InvalidArgumentError = class extends
|
|
845
|
+
import { AISDKError as AISDKError4 } from "@ai-sdk/provider";
|
|
846
|
+
var name3 = "AI_InvalidArgumentError";
|
|
847
|
+
var marker3 = `vercel.ai.error.${name3}`;
|
|
848
|
+
var symbol3 = Symbol.for(marker3);
|
|
849
|
+
var _a3;
|
|
850
|
+
var InvalidArgumentError = class extends AISDKError4 {
|
|
800
851
|
constructor({
|
|
801
852
|
parameter,
|
|
802
853
|
value,
|
|
803
854
|
message
|
|
804
855
|
}) {
|
|
805
856
|
super({
|
|
806
|
-
name:
|
|
857
|
+
name: name3,
|
|
807
858
|
message: `Invalid argument for parameter ${parameter}: ${message}`
|
|
808
859
|
});
|
|
809
|
-
this[
|
|
860
|
+
this[_a3] = true;
|
|
810
861
|
this.parameter = parameter;
|
|
811
862
|
this.value = value;
|
|
812
863
|
}
|
|
813
864
|
static isInstance(error) {
|
|
814
|
-
return
|
|
865
|
+
return AISDKError4.hasMarker(error, marker3);
|
|
815
866
|
}
|
|
816
867
|
};
|
|
817
|
-
|
|
868
|
+
_a3 = symbol3;
|
|
818
869
|
|
|
819
870
|
// src/prompt/prepare-call-settings.ts
|
|
820
871
|
function prepareCallSettings({
|
|
@@ -915,28 +966,28 @@ import { GatewayError } from "@ai-sdk/gateway";
|
|
|
915
966
|
import { delay, getErrorMessage, isAbortError } from "@ai-sdk/provider-utils";
|
|
916
967
|
|
|
917
968
|
// src/util/retry-error.ts
|
|
918
|
-
import { AISDKError as
|
|
919
|
-
var
|
|
920
|
-
var
|
|
921
|
-
var
|
|
922
|
-
var
|
|
923
|
-
var RetryError = class extends
|
|
969
|
+
import { AISDKError as AISDKError5 } from "@ai-sdk/provider";
|
|
970
|
+
var name4 = "AI_RetryError";
|
|
971
|
+
var marker4 = `vercel.ai.error.${name4}`;
|
|
972
|
+
var symbol4 = Symbol.for(marker4);
|
|
973
|
+
var _a4;
|
|
974
|
+
var RetryError = class extends AISDKError5 {
|
|
924
975
|
constructor({
|
|
925
976
|
message,
|
|
926
977
|
reason,
|
|
927
978
|
errors
|
|
928
979
|
}) {
|
|
929
|
-
super({ name:
|
|
930
|
-
this[
|
|
980
|
+
super({ name: name4, message });
|
|
981
|
+
this[_a4] = true;
|
|
931
982
|
this.reason = reason;
|
|
932
983
|
this.errors = errors;
|
|
933
984
|
this.lastError = errors[errors.length - 1];
|
|
934
985
|
}
|
|
935
986
|
static isInstance(error) {
|
|
936
|
-
return
|
|
987
|
+
return AISDKError5.hasMarker(error, marker4);
|
|
937
988
|
}
|
|
938
989
|
};
|
|
939
|
-
|
|
990
|
+
_a4 = symbol4;
|
|
940
991
|
|
|
941
992
|
// src/util/retry-with-exponential-backoff.ts
|
|
942
993
|
function getRetryDelayInMs({
|