@ai-sdk/gateway 2.0.100 → 2.0.101

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
@@ -100,56 +100,78 @@ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the toke
100
100
  }
101
101
  };
102
102
 
103
- // src/errors/gateway-invalid-request-error.ts
104
- var name2 = "GatewayInvalidRequestError";
103
+ // src/errors/gateway-forbidden-error.ts
104
+ var name2 = "GatewayForbiddenError";
105
105
  var marker3 = `vercel.ai.gateway.error.${name2}`;
106
106
  var symbol3 = Symbol.for(marker3);
107
107
  var _a3, _b3;
108
- var GatewayInvalidRequestError = class extends (_b3 = GatewayError, _a3 = symbol3, _b3) {
108
+ var GatewayForbiddenError = class extends (_b3 = GatewayError, _a3 = symbol3, _b3) {
109
109
  constructor({
110
- message = "Invalid request",
111
- statusCode = 400,
110
+ message = "Forbidden",
111
+ statusCode = 403,
112
112
  cause
113
113
  } = {}) {
114
114
  super({ message, statusCode, cause });
115
115
  this[_a3] = true;
116
116
  // used in isInstance
117
117
  this.name = name2;
118
- this.type = "invalid_request_error";
118
+ this.type = "forbidden";
119
119
  }
120
120
  static isInstance(error) {
121
121
  return GatewayError.hasMarker(error) && symbol3 in error;
122
122
  }
123
123
  };
124
124
 
125
- // src/errors/gateway-rate-limit-error.ts
126
- var name3 = "GatewayRateLimitError";
125
+ // src/errors/gateway-invalid-request-error.ts
126
+ var name3 = "GatewayInvalidRequestError";
127
127
  var marker4 = `vercel.ai.gateway.error.${name3}`;
128
128
  var symbol4 = Symbol.for(marker4);
129
129
  var _a4, _b4;
130
- var GatewayRateLimitError = class extends (_b4 = GatewayError, _a4 = symbol4, _b4) {
130
+ var GatewayInvalidRequestError = class extends (_b4 = GatewayError, _a4 = symbol4, _b4) {
131
131
  constructor({
132
- message = "Rate limit exceeded",
133
- statusCode = 429,
132
+ message = "Invalid request",
133
+ statusCode = 400,
134
134
  cause
135
135
  } = {}) {
136
136
  super({ message, statusCode, cause });
137
137
  this[_a4] = true;
138
138
  // used in isInstance
139
139
  this.name = name3;
140
- this.type = "rate_limit_exceeded";
140
+ this.type = "invalid_request_error";
141
141
  }
142
142
  static isInstance(error) {
143
143
  return GatewayError.hasMarker(error) && symbol4 in error;
144
144
  }
145
145
  };
146
146
 
147
+ // src/errors/gateway-rate-limit-error.ts
148
+ var name4 = "GatewayRateLimitError";
149
+ var marker5 = `vercel.ai.gateway.error.${name4}`;
150
+ var symbol5 = Symbol.for(marker5);
151
+ var _a5, _b5;
152
+ var GatewayRateLimitError = class extends (_b5 = GatewayError, _a5 = symbol5, _b5) {
153
+ constructor({
154
+ message = "Rate limit exceeded",
155
+ statusCode = 429,
156
+ cause
157
+ } = {}) {
158
+ super({ message, statusCode, cause });
159
+ this[_a5] = true;
160
+ // used in isInstance
161
+ this.name = name4;
162
+ this.type = "rate_limit_exceeded";
163
+ }
164
+ static isInstance(error) {
165
+ return GatewayError.hasMarker(error) && symbol5 in error;
166
+ }
167
+ };
168
+
147
169
  // src/errors/gateway-model-not-found-error.ts
148
170
  import { z } from "zod/v4";
149
171
  import { lazyValidator, zodSchema } from "@ai-sdk/provider-utils";
150
- var name4 = "GatewayModelNotFoundError";
151
- var marker5 = `vercel.ai.gateway.error.${name4}`;
152
- var symbol5 = Symbol.for(marker5);
172
+ var name5 = "GatewayModelNotFoundError";
173
+ var marker6 = `vercel.ai.gateway.error.${name5}`;
174
+ var symbol6 = Symbol.for(marker6);
153
175
  var modelNotFoundParamSchema = lazyValidator(
154
176
  () => zodSchema(
155
177
  z.object({
@@ -157,8 +179,8 @@ var modelNotFoundParamSchema = lazyValidator(
157
179
  })
158
180
  )
159
181
  );
160
- var _a5, _b5;
161
- var GatewayModelNotFoundError = class extends (_b5 = GatewayError, _a5 = symbol5, _b5) {
182
+ var _a6, _b6;
183
+ var GatewayModelNotFoundError = class extends (_b6 = GatewayError, _a6 = symbol6, _b6) {
162
184
  constructor({
163
185
  message = "Model not found",
164
186
  statusCode = 404,
@@ -166,45 +188,45 @@ var GatewayModelNotFoundError = class extends (_b5 = GatewayError, _a5 = symbol5
166
188
  cause
167
189
  } = {}) {
168
190
  super({ message, statusCode, cause });
169
- this[_a5] = true;
191
+ this[_a6] = true;
170
192
  // used in isInstance
171
- this.name = name4;
193
+ this.name = name5;
172
194
  this.type = "model_not_found";
173
195
  this.modelId = modelId;
174
196
  }
175
197
  static isInstance(error) {
176
- return GatewayError.hasMarker(error) && symbol5 in error;
198
+ return GatewayError.hasMarker(error) && symbol6 in error;
177
199
  }
178
200
  };
179
201
 
180
202
  // src/errors/gateway-internal-server-error.ts
181
- var name5 = "GatewayInternalServerError";
182
- var marker6 = `vercel.ai.gateway.error.${name5}`;
183
- var symbol6 = Symbol.for(marker6);
184
- var _a6, _b6;
185
- var GatewayInternalServerError = class extends (_b6 = GatewayError, _a6 = symbol6, _b6) {
203
+ var name6 = "GatewayInternalServerError";
204
+ var marker7 = `vercel.ai.gateway.error.${name6}`;
205
+ var symbol7 = Symbol.for(marker7);
206
+ var _a7, _b7;
207
+ var GatewayInternalServerError = class extends (_b7 = GatewayError, _a7 = symbol7, _b7) {
186
208
  constructor({
187
209
  message = "Internal server error",
188
210
  statusCode = 500,
189
211
  cause
190
212
  } = {}) {
191
213
  super({ message, statusCode, cause });
192
- this[_a6] = true;
214
+ this[_a7] = true;
193
215
  // used in isInstance
194
- this.name = name5;
216
+ this.name = name6;
195
217
  this.type = "internal_server_error";
196
218
  }
197
219
  static isInstance(error) {
198
- return GatewayError.hasMarker(error) && symbol6 in error;
220
+ return GatewayError.hasMarker(error) && symbol7 in error;
199
221
  }
200
222
  };
201
223
 
202
224
  // src/errors/gateway-response-error.ts
203
- var name6 = "GatewayResponseError";
204
- var marker7 = `vercel.ai.gateway.error.${name6}`;
205
- var symbol7 = Symbol.for(marker7);
206
- var _a7, _b7;
207
- var GatewayResponseError = class extends (_b7 = GatewayError, _a7 = symbol7, _b7) {
225
+ var name7 = "GatewayResponseError";
226
+ var marker8 = `vercel.ai.gateway.error.${name7}`;
227
+ var symbol8 = Symbol.for(marker8);
228
+ var _a8, _b8;
229
+ var GatewayResponseError = class extends (_b8 = GatewayError, _a8 = symbol8, _b8) {
208
230
  constructor({
209
231
  message = "Invalid response from Gateway",
210
232
  statusCode = 502,
@@ -213,15 +235,15 @@ var GatewayResponseError = class extends (_b7 = GatewayError, _a7 = symbol7, _b7
213
235
  cause
214
236
  } = {}) {
215
237
  super({ message, statusCode, cause });
216
- this[_a7] = true;
238
+ this[_a8] = true;
217
239
  // used in isInstance
218
- this.name = name6;
240
+ this.name = name7;
219
241
  this.type = "response_error";
220
242
  this.response = response;
221
243
  this.validationError = validationError;
222
244
  }
223
245
  static isInstance(error) {
224
- return GatewayError.hasMarker(error) && symbol7 in error;
246
+ return GatewayError.hasMarker(error) && symbol8 in error;
225
247
  }
226
248
  };
227
249
 
@@ -280,6 +302,8 @@ async function createGatewayErrorFromResponse({
280
302
  }
281
303
  case "internal_server_error":
282
304
  return new GatewayInternalServerError({ message, statusCode, cause });
305
+ case "forbidden":
306
+ return new GatewayForbiddenError({ message, statusCode, cause });
283
307
  default:
284
308
  return new GatewayInternalServerError({ message, statusCode, cause });
285
309
  }
@@ -313,24 +337,24 @@ function extractApiCallResponse(error) {
313
337
  }
314
338
 
315
339
  // src/errors/gateway-timeout-error.ts
316
- var name7 = "GatewayTimeoutError";
317
- var marker8 = `vercel.ai.gateway.error.${name7}`;
318
- var symbol8 = Symbol.for(marker8);
319
- var _a8, _b8;
320
- var GatewayTimeoutError = class _GatewayTimeoutError extends (_b8 = GatewayError, _a8 = symbol8, _b8) {
340
+ var name8 = "GatewayTimeoutError";
341
+ var marker9 = `vercel.ai.gateway.error.${name8}`;
342
+ var symbol9 = Symbol.for(marker9);
343
+ var _a9, _b9;
344
+ var GatewayTimeoutError = class _GatewayTimeoutError extends (_b9 = GatewayError, _a9 = symbol9, _b9) {
321
345
  constructor({
322
346
  message = "Request timed out",
323
347
  statusCode = 408,
324
348
  cause
325
349
  } = {}) {
326
350
  super({ message, statusCode, cause });
327
- this[_a8] = true;
351
+ this[_a9] = true;
328
352
  // used in isInstance
329
- this.name = name7;
353
+ this.name = name8;
330
354
  this.type = "timeout_error";
331
355
  }
332
356
  static isInstance(error) {
333
- return GatewayError.hasMarker(error) && symbol8 in error;
357
+ return GatewayError.hasMarker(error) && symbol9 in error;
334
358
  }
335
359
  /**
336
360
  * Creates a helpful timeout error message with troubleshooting guidance
@@ -368,7 +392,7 @@ function isTimeoutError(error) {
368
392
  return false;
369
393
  }
370
394
  async function asGatewayError(error, authMethod) {
371
- var _a9;
395
+ var _a10;
372
396
  if (GatewayError.isInstance(error)) {
373
397
  return error;
374
398
  }
@@ -387,7 +411,7 @@ async function asGatewayError(error, authMethod) {
387
411
  }
388
412
  return await createGatewayErrorFromResponse({
389
413
  response: extractApiCallResponse(error),
390
- statusCode: (_a9 = error.statusCode) != null ? _a9 : 500,
414
+ statusCode: (_a10 = error.statusCode) != null ? _a10 : 500,
391
415
  defaultMessage: "Gateway request failed",
392
416
  cause: error,
393
417
  authMethod
@@ -915,7 +939,7 @@ var GatewayEmbeddingModel = class {
915
939
  abortSignal,
916
940
  providerOptions
917
941
  }) {
918
- var _a9;
942
+ var _a10;
919
943
  const resolvedHeaders = await resolve5(this.config.headers());
920
944
  try {
921
945
  const {
@@ -946,7 +970,7 @@ var GatewayEmbeddingModel = class {
946
970
  });
947
971
  return {
948
972
  embeddings: responseBody.embeddings,
949
- usage: (_a9 = responseBody.usage) != null ? _a9 : void 0,
973
+ usage: (_a10 = responseBody.usage) != null ? _a10 : void 0,
950
974
  providerMetadata: responseBody.providerMetadata,
951
975
  response: { headers: responseHeaders, body: rawValue }
952
976
  };
@@ -1004,7 +1028,7 @@ var GatewayImageModel = class {
1004
1028
  headers,
1005
1029
  abortSignal
1006
1030
  }) {
1007
- var _a9, _b9, _c, _d;
1031
+ var _a10, _b10, _c, _d;
1008
1032
  const resolvedHeaders = await resolve6(this.config.headers());
1009
1033
  try {
1010
1034
  const {
@@ -1040,7 +1064,7 @@ var GatewayImageModel = class {
1040
1064
  return {
1041
1065
  images: responseBody.images,
1042
1066
  // Always base64 strings from server
1043
- warnings: (_a9 = responseBody.warnings) != null ? _a9 : [],
1067
+ warnings: (_a10 = responseBody.warnings) != null ? _a10 : [],
1044
1068
  providerMetadata: responseBody.providerMetadata,
1045
1069
  response: {
1046
1070
  timestamp: /* @__PURE__ */ new Date(),
@@ -1049,7 +1073,7 @@ var GatewayImageModel = class {
1049
1073
  },
1050
1074
  ...responseBody.usage != null && {
1051
1075
  usage: {
1052
- inputTokens: (_b9 = responseBody.usage.inputTokens) != null ? _b9 : void 0,
1076
+ inputTokens: (_b10 = responseBody.usage.inputTokens) != null ? _b10 : void 0,
1053
1077
  outputTokens: (_c = responseBody.usage.outputTokens) != null ? _c : void 0,
1054
1078
  totalTokens: (_d = responseBody.usage.totalTokens) != null ? _d : void 0
1055
1079
  }
@@ -1286,22 +1310,22 @@ var gatewayTools = {
1286
1310
  import { getContext } from "@vercel/oidc";
1287
1311
  import { getVercelOidcToken } from "@vercel/oidc";
1288
1312
  async function getVercelRequestId() {
1289
- var _a9;
1290
- return (_a9 = getContext().headers) == null ? void 0 : _a9["x-vercel-id"];
1313
+ var _a10;
1314
+ return (_a10 = getContext().headers) == null ? void 0 : _a10["x-vercel-id"];
1291
1315
  }
1292
1316
 
1293
1317
  // src/version.ts
1294
- var VERSION = true ? "2.0.100" : "0.0.0-test";
1318
+ var VERSION = true ? "2.0.101" : "0.0.0-test";
1295
1319
 
1296
1320
  // src/gateway-provider.ts
1297
1321
  var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
1298
1322
  function createGatewayProvider(options = {}) {
1299
- var _a9, _b9;
1323
+ var _a10, _b10;
1300
1324
  let pendingMetadata = null;
1301
1325
  let metadataCache = null;
1302
- const cacheRefreshMillis = (_a9 = options.metadataCacheRefreshMillis) != null ? _a9 : 1e3 * 60 * 5;
1326
+ const cacheRefreshMillis = (_a10 = options.metadataCacheRefreshMillis) != null ? _a10 : 1e3 * 60 * 5;
1303
1327
  let lastFetchTime = 0;
1304
- const baseURL = (_b9 = withoutTrailingSlash(options.baseURL)) != null ? _b9 : "https://ai-gateway.vercel.sh/v1/ai";
1328
+ const baseURL = (_b10 = withoutTrailingSlash(options.baseURL)) != null ? _b10 : "https://ai-gateway.vercel.sh/v1/ai";
1305
1329
  const getHeaders = async () => {
1306
1330
  const auth = await getGatewayAuthToken(options);
1307
1331
  if (auth) {
@@ -1359,8 +1383,8 @@ function createGatewayProvider(options = {}) {
1359
1383
  });
1360
1384
  };
1361
1385
  const getAvailableModels = async () => {
1362
- var _a10, _b10, _c;
1363
- const now = (_c = (_b10 = (_a10 = options._internal) == null ? void 0 : _a10.currentDate) == null ? void 0 : _b10.call(_a10).getTime()) != null ? _c : Date.now();
1386
+ var _a11, _b11, _c;
1387
+ const now = (_c = (_b11 = (_a11 = options._internal) == null ? void 0 : _a11.currentDate) == null ? void 0 : _b11.call(_a11).getTime()) != null ? _c : Date.now();
1364
1388
  if (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {
1365
1389
  lastFetchTime = now;
1366
1390
  pendingMetadata = new GatewayFetchMetadata({
@@ -1474,6 +1498,7 @@ async function getGatewayAuthToken(options) {
1474
1498
  export {
1475
1499
  GatewayAuthenticationError,
1476
1500
  GatewayError,
1501
+ GatewayForbiddenError,
1477
1502
  GatewayInternalServerError,
1478
1503
  GatewayInvalidRequestError,
1479
1504
  GatewayModelNotFoundError,