@ai-sdk/gateway 3.0.130 → 3.0.132
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 +13 -0
- package/dist/index.d.mts +26 -8
- package/dist/index.d.ts +26 -8
- package/dist/index.js +104 -37
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +101 -35
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/errors/create-gateway-error.ts +8 -0
- package/src/errors/gateway-forbidden-error.ts +34 -0
- package/src/errors/index.ts +1 -0
- package/src/gateway-embedding-model.ts +19 -1
- package/src/gateway-language-model-settings.ts +1 -1
- package/src/gateway-reranking-model.ts +19 -1
- package/src/index.ts +1 -0
package/dist/index.mjs
CHANGED
|
@@ -237,12 +237,35 @@ var GatewayFailedDependencyError = class extends (_b7 = GatewayError, _a7 = symb
|
|
|
237
237
|
}
|
|
238
238
|
};
|
|
239
239
|
|
|
240
|
-
// src/errors/gateway-
|
|
241
|
-
var name7 = "
|
|
240
|
+
// src/errors/gateway-forbidden-error.ts
|
|
241
|
+
var name7 = "GatewayForbiddenError";
|
|
242
242
|
var marker8 = `vercel.ai.gateway.error.${name7}`;
|
|
243
243
|
var symbol8 = Symbol.for(marker8);
|
|
244
244
|
var _a8, _b8;
|
|
245
|
-
var
|
|
245
|
+
var GatewayForbiddenError = class extends (_b8 = GatewayError, _a8 = symbol8, _b8) {
|
|
246
|
+
constructor({
|
|
247
|
+
message = "Forbidden",
|
|
248
|
+
statusCode = 403,
|
|
249
|
+
cause,
|
|
250
|
+
generationId
|
|
251
|
+
} = {}) {
|
|
252
|
+
super({ message, statusCode, cause, generationId });
|
|
253
|
+
this[_a8] = true;
|
|
254
|
+
// used in isInstance
|
|
255
|
+
this.name = name7;
|
|
256
|
+
this.type = "forbidden";
|
|
257
|
+
}
|
|
258
|
+
static isInstance(error) {
|
|
259
|
+
return GatewayError.hasMarker(error) && symbol8 in error;
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// src/errors/gateway-response-error.ts
|
|
264
|
+
var name8 = "GatewayResponseError";
|
|
265
|
+
var marker9 = `vercel.ai.gateway.error.${name8}`;
|
|
266
|
+
var symbol9 = Symbol.for(marker9);
|
|
267
|
+
var _a9, _b9;
|
|
268
|
+
var GatewayResponseError = class extends (_b9 = GatewayError, _a9 = symbol9, _b9) {
|
|
246
269
|
constructor({
|
|
247
270
|
message = "Invalid response from Gateway",
|
|
248
271
|
statusCode = 502,
|
|
@@ -252,15 +275,15 @@ var GatewayResponseError = class extends (_b8 = GatewayError, _a8 = symbol8, _b8
|
|
|
252
275
|
generationId
|
|
253
276
|
} = {}) {
|
|
254
277
|
super({ message, statusCode, cause, generationId });
|
|
255
|
-
this[
|
|
278
|
+
this[_a9] = true;
|
|
256
279
|
// used in isInstance
|
|
257
|
-
this.name =
|
|
280
|
+
this.name = name8;
|
|
258
281
|
this.type = "response_error";
|
|
259
282
|
this.response = response;
|
|
260
283
|
this.validationError = validationError;
|
|
261
284
|
}
|
|
262
285
|
static isInstance(error) {
|
|
263
|
-
return GatewayError.hasMarker(error) &&
|
|
286
|
+
return GatewayError.hasMarker(error) && symbol9 in error;
|
|
264
287
|
}
|
|
265
288
|
};
|
|
266
289
|
|
|
@@ -277,7 +300,7 @@ async function createGatewayErrorFromResponse({
|
|
|
277
300
|
cause,
|
|
278
301
|
authMethod
|
|
279
302
|
}) {
|
|
280
|
-
var
|
|
303
|
+
var _a11;
|
|
281
304
|
const parseResult = await safeValidateTypes({
|
|
282
305
|
value: response,
|
|
283
306
|
schema: gatewayErrorResponseSchema
|
|
@@ -296,7 +319,7 @@ async function createGatewayErrorFromResponse({
|
|
|
296
319
|
const validatedResponse = parseResult.value;
|
|
297
320
|
const errorType = validatedResponse.error.type;
|
|
298
321
|
const message = validatedResponse.error.message;
|
|
299
|
-
const generationId = (
|
|
322
|
+
const generationId = (_a11 = validatedResponse.generationId) != null ? _a11 : void 0;
|
|
300
323
|
switch (errorType) {
|
|
301
324
|
case "authentication_error":
|
|
302
325
|
return GatewayAuthenticationError.createContextualError({
|
|
@@ -347,6 +370,13 @@ async function createGatewayErrorFromResponse({
|
|
|
347
370
|
cause,
|
|
348
371
|
generationId
|
|
349
372
|
});
|
|
373
|
+
case "forbidden":
|
|
374
|
+
return new GatewayForbiddenError({
|
|
375
|
+
message,
|
|
376
|
+
statusCode,
|
|
377
|
+
cause,
|
|
378
|
+
generationId
|
|
379
|
+
});
|
|
350
380
|
default:
|
|
351
381
|
return new GatewayInternalServerError({
|
|
352
382
|
message,
|
|
@@ -386,11 +416,11 @@ function extractApiCallResponse(error) {
|
|
|
386
416
|
}
|
|
387
417
|
|
|
388
418
|
// src/errors/gateway-timeout-error.ts
|
|
389
|
-
var
|
|
390
|
-
var
|
|
391
|
-
var
|
|
392
|
-
var
|
|
393
|
-
var GatewayTimeoutError = class _GatewayTimeoutError extends (
|
|
419
|
+
var name9 = "GatewayTimeoutError";
|
|
420
|
+
var marker10 = `vercel.ai.gateway.error.${name9}`;
|
|
421
|
+
var symbol10 = Symbol.for(marker10);
|
|
422
|
+
var _a10, _b10;
|
|
423
|
+
var GatewayTimeoutError = class _GatewayTimeoutError extends (_b10 = GatewayError, _a10 = symbol10, _b10) {
|
|
394
424
|
constructor({
|
|
395
425
|
message = "Request timed out",
|
|
396
426
|
statusCode = 408,
|
|
@@ -398,13 +428,13 @@ var GatewayTimeoutError = class _GatewayTimeoutError extends (_b9 = GatewayError
|
|
|
398
428
|
generationId
|
|
399
429
|
} = {}) {
|
|
400
430
|
super({ message, statusCode, cause, generationId });
|
|
401
|
-
this[
|
|
431
|
+
this[_a10] = true;
|
|
402
432
|
// used in isInstance
|
|
403
|
-
this.name =
|
|
433
|
+
this.name = name9;
|
|
404
434
|
this.type = "timeout_error";
|
|
405
435
|
}
|
|
406
436
|
static isInstance(error) {
|
|
407
|
-
return GatewayError.hasMarker(error) &&
|
|
437
|
+
return GatewayError.hasMarker(error) && symbol10 in error;
|
|
408
438
|
}
|
|
409
439
|
/**
|
|
410
440
|
* Creates a helpful timeout error message with troubleshooting guidance
|
|
@@ -444,7 +474,7 @@ function isTimeoutError(error) {
|
|
|
444
474
|
return false;
|
|
445
475
|
}
|
|
446
476
|
async function asGatewayError(error, authMethod) {
|
|
447
|
-
var
|
|
477
|
+
var _a11;
|
|
448
478
|
if (GatewayError.isInstance(error)) {
|
|
449
479
|
return error;
|
|
450
480
|
}
|
|
@@ -463,7 +493,7 @@ async function asGatewayError(error, authMethod) {
|
|
|
463
493
|
}
|
|
464
494
|
return await createGatewayErrorFromResponse({
|
|
465
495
|
response: extractApiCallResponse(error),
|
|
466
|
-
statusCode: (
|
|
496
|
+
statusCode: (_a11 = error.statusCode) != null ? _a11 : 500,
|
|
467
497
|
defaultMessage: "Gateway request failed",
|
|
468
498
|
cause: error,
|
|
469
499
|
authMethod
|
|
@@ -997,7 +1027,7 @@ var GatewayEmbeddingModel = class {
|
|
|
997
1027
|
abortSignal,
|
|
998
1028
|
providerOptions
|
|
999
1029
|
}) {
|
|
1000
|
-
var
|
|
1030
|
+
var _a11, _b11;
|
|
1001
1031
|
const resolvedHeaders = await resolve5(this.config.headers());
|
|
1002
1032
|
try {
|
|
1003
1033
|
const {
|
|
@@ -1028,10 +1058,10 @@ var GatewayEmbeddingModel = class {
|
|
|
1028
1058
|
});
|
|
1029
1059
|
return {
|
|
1030
1060
|
embeddings: responseBody.embeddings,
|
|
1031
|
-
usage: (
|
|
1061
|
+
usage: (_a11 = responseBody.usage) != null ? _a11 : void 0,
|
|
1032
1062
|
providerMetadata: responseBody.providerMetadata,
|
|
1033
1063
|
response: { headers: responseHeaders, body: rawValue },
|
|
1034
|
-
warnings: []
|
|
1064
|
+
warnings: (_b11 = responseBody.warnings) != null ? _b11 : []
|
|
1035
1065
|
};
|
|
1036
1066
|
} catch (error) {
|
|
1037
1067
|
throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));
|
|
@@ -1047,11 +1077,28 @@ var GatewayEmbeddingModel = class {
|
|
|
1047
1077
|
};
|
|
1048
1078
|
}
|
|
1049
1079
|
};
|
|
1080
|
+
var gatewayEmbeddingWarningSchema = z8.discriminatedUnion("type", [
|
|
1081
|
+
z8.object({
|
|
1082
|
+
type: z8.literal("unsupported"),
|
|
1083
|
+
feature: z8.string(),
|
|
1084
|
+
details: z8.string().optional()
|
|
1085
|
+
}),
|
|
1086
|
+
z8.object({
|
|
1087
|
+
type: z8.literal("compatibility"),
|
|
1088
|
+
feature: z8.string(),
|
|
1089
|
+
details: z8.string().optional()
|
|
1090
|
+
}),
|
|
1091
|
+
z8.object({
|
|
1092
|
+
type: z8.literal("other"),
|
|
1093
|
+
message: z8.string()
|
|
1094
|
+
})
|
|
1095
|
+
]);
|
|
1050
1096
|
var gatewayEmbeddingResponseSchema = lazySchema7(
|
|
1051
1097
|
() => zodSchema7(
|
|
1052
1098
|
z8.object({
|
|
1053
1099
|
embeddings: z8.array(z8.array(z8.number())),
|
|
1054
1100
|
usage: z8.object({ tokens: z8.number() }).nullish(),
|
|
1101
|
+
warnings: z8.array(gatewayEmbeddingWarningSchema).optional(),
|
|
1055
1102
|
providerMetadata: z8.record(z8.string(), z8.record(z8.string(), z8.unknown())).optional()
|
|
1056
1103
|
})
|
|
1057
1104
|
)
|
|
@@ -1090,7 +1137,7 @@ var GatewayImageModel = class {
|
|
|
1090
1137
|
headers,
|
|
1091
1138
|
abortSignal
|
|
1092
1139
|
}) {
|
|
1093
|
-
var
|
|
1140
|
+
var _a11, _b11, _c, _d;
|
|
1094
1141
|
const resolvedHeaders = await resolve6(this.config.headers());
|
|
1095
1142
|
try {
|
|
1096
1143
|
const {
|
|
@@ -1130,7 +1177,7 @@ var GatewayImageModel = class {
|
|
|
1130
1177
|
return {
|
|
1131
1178
|
images: responseBody.images,
|
|
1132
1179
|
// Always base64 strings from server
|
|
1133
|
-
warnings: (
|
|
1180
|
+
warnings: (_a11 = responseBody.warnings) != null ? _a11 : [],
|
|
1134
1181
|
providerMetadata: responseBody.providerMetadata,
|
|
1135
1182
|
response: {
|
|
1136
1183
|
timestamp: /* @__PURE__ */ new Date(),
|
|
@@ -1139,7 +1186,7 @@ var GatewayImageModel = class {
|
|
|
1139
1186
|
},
|
|
1140
1187
|
...responseBody.usage != null && {
|
|
1141
1188
|
usage: {
|
|
1142
|
-
inputTokens: (
|
|
1189
|
+
inputTokens: (_b11 = responseBody.usage.inputTokens) != null ? _b11 : void 0,
|
|
1143
1190
|
outputTokens: (_c = responseBody.usage.outputTokens) != null ? _c : void 0,
|
|
1144
1191
|
totalTokens: (_d = responseBody.usage.totalTokens) != null ? _d : void 0
|
|
1145
1192
|
}
|
|
@@ -1237,7 +1284,7 @@ var GatewayVideoModel = class {
|
|
|
1237
1284
|
headers,
|
|
1238
1285
|
abortSignal
|
|
1239
1286
|
}) {
|
|
1240
|
-
var
|
|
1287
|
+
var _a11;
|
|
1241
1288
|
const resolvedHeaders = await resolve7(this.config.headers());
|
|
1242
1289
|
try {
|
|
1243
1290
|
const { responseHeaders, value: responseBody } = await postJsonToApi4({
|
|
@@ -1333,7 +1380,7 @@ var GatewayVideoModel = class {
|
|
|
1333
1380
|
});
|
|
1334
1381
|
return {
|
|
1335
1382
|
videos: responseBody.videos,
|
|
1336
|
-
warnings: (
|
|
1383
|
+
warnings: (_a11 = responseBody.warnings) != null ? _a11 : [],
|
|
1337
1384
|
providerMetadata: responseBody.providerMetadata,
|
|
1338
1385
|
response: {
|
|
1339
1386
|
timestamp: /* @__PURE__ */ new Date(),
|
|
@@ -1439,6 +1486,7 @@ var GatewayRerankingModel = class {
|
|
|
1439
1486
|
abortSignal,
|
|
1440
1487
|
providerOptions
|
|
1441
1488
|
}) {
|
|
1489
|
+
var _a11;
|
|
1442
1490
|
const resolvedHeaders = await resolve8(this.config.headers());
|
|
1443
1491
|
try {
|
|
1444
1492
|
const {
|
|
@@ -1473,7 +1521,7 @@ var GatewayRerankingModel = class {
|
|
|
1473
1521
|
ranking: responseBody.ranking,
|
|
1474
1522
|
providerMetadata: responseBody.providerMetadata,
|
|
1475
1523
|
response: { headers: responseHeaders, body: rawValue },
|
|
1476
|
-
warnings: []
|
|
1524
|
+
warnings: (_a11 = responseBody.warnings) != null ? _a11 : []
|
|
1477
1525
|
};
|
|
1478
1526
|
} catch (error) {
|
|
1479
1527
|
throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));
|
|
@@ -1489,6 +1537,22 @@ var GatewayRerankingModel = class {
|
|
|
1489
1537
|
};
|
|
1490
1538
|
}
|
|
1491
1539
|
};
|
|
1540
|
+
var gatewayRerankingWarningSchema = z11.discriminatedUnion("type", [
|
|
1541
|
+
z11.object({
|
|
1542
|
+
type: z11.literal("unsupported"),
|
|
1543
|
+
feature: z11.string(),
|
|
1544
|
+
details: z11.string().optional()
|
|
1545
|
+
}),
|
|
1546
|
+
z11.object({
|
|
1547
|
+
type: z11.literal("compatibility"),
|
|
1548
|
+
feature: z11.string(),
|
|
1549
|
+
details: z11.string().optional()
|
|
1550
|
+
}),
|
|
1551
|
+
z11.object({
|
|
1552
|
+
type: z11.literal("other"),
|
|
1553
|
+
message: z11.string()
|
|
1554
|
+
})
|
|
1555
|
+
]);
|
|
1492
1556
|
var gatewayRerankingResponseSchema = lazySchema8(
|
|
1493
1557
|
() => zodSchema8(
|
|
1494
1558
|
z11.object({
|
|
@@ -1498,6 +1562,7 @@ var gatewayRerankingResponseSchema = lazySchema8(
|
|
|
1498
1562
|
relevanceScore: z11.number()
|
|
1499
1563
|
})
|
|
1500
1564
|
),
|
|
1565
|
+
warnings: z11.array(gatewayRerankingWarningSchema).optional(),
|
|
1501
1566
|
providerMetadata: z11.record(z11.string(), z11.record(z11.string(), z11.unknown())).optional()
|
|
1502
1567
|
})
|
|
1503
1568
|
)
|
|
@@ -1697,22 +1762,22 @@ var gatewayTools = {
|
|
|
1697
1762
|
import { getContext } from "@vercel/oidc";
|
|
1698
1763
|
import { getVercelOidcToken } from "@vercel/oidc";
|
|
1699
1764
|
async function getVercelRequestId() {
|
|
1700
|
-
var
|
|
1701
|
-
return (
|
|
1765
|
+
var _a11;
|
|
1766
|
+
return (_a11 = getContext().headers) == null ? void 0 : _a11["x-vercel-id"];
|
|
1702
1767
|
}
|
|
1703
1768
|
|
|
1704
1769
|
// src/version.ts
|
|
1705
|
-
var VERSION = true ? "3.0.
|
|
1770
|
+
var VERSION = true ? "3.0.132" : "0.0.0-test";
|
|
1706
1771
|
|
|
1707
1772
|
// src/gateway-provider.ts
|
|
1708
1773
|
var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
|
|
1709
1774
|
function createGatewayProvider(options = {}) {
|
|
1710
|
-
var
|
|
1775
|
+
var _a11, _b11;
|
|
1711
1776
|
let pendingMetadata = null;
|
|
1712
1777
|
let metadataCache = null;
|
|
1713
|
-
const cacheRefreshMillis = (
|
|
1778
|
+
const cacheRefreshMillis = (_a11 = options.metadataCacheRefreshMillis) != null ? _a11 : 1e3 * 60 * 5;
|
|
1714
1779
|
let lastFetchTime = 0;
|
|
1715
|
-
const baseURL = (
|
|
1780
|
+
const baseURL = (_b11 = withoutTrailingSlash(options.baseURL)) != null ? _b11 : "https://ai-gateway.vercel.sh/v3/ai";
|
|
1716
1781
|
const getHeaders = async () => {
|
|
1717
1782
|
try {
|
|
1718
1783
|
const auth = await getGatewayAuthToken(options);
|
|
@@ -1772,8 +1837,8 @@ function createGatewayProvider(options = {}) {
|
|
|
1772
1837
|
});
|
|
1773
1838
|
};
|
|
1774
1839
|
const getAvailableModels = async () => {
|
|
1775
|
-
var
|
|
1776
|
-
const now = (_c = (
|
|
1840
|
+
var _a12, _b12, _c;
|
|
1841
|
+
const now = (_c = (_b12 = (_a12 = options._internal) == null ? void 0 : _a12.currentDate) == null ? void 0 : _b12.call(_a12).getTime()) != null ? _c : Date.now();
|
|
1777
1842
|
if (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {
|
|
1778
1843
|
lastFetchTime = now;
|
|
1779
1844
|
pendingMetadata = new GatewayFetchMetadata({
|
|
@@ -1911,6 +1976,7 @@ export {
|
|
|
1911
1976
|
GatewayAuthenticationError,
|
|
1912
1977
|
GatewayError,
|
|
1913
1978
|
GatewayFailedDependencyError,
|
|
1979
|
+
GatewayForbiddenError,
|
|
1914
1980
|
GatewayInternalServerError,
|
|
1915
1981
|
GatewayInvalidRequestError,
|
|
1916
1982
|
GatewayModelNotFoundError,
|