@ai-sdk/gateway 2.0.109 → 2.0.110
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 +10 -0
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +213 -192
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +215 -194
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -35,13 +35,13 @@ __export(index_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(index_exports);
|
|
36
36
|
|
|
37
37
|
// src/gateway-provider.ts
|
|
38
|
-
var
|
|
38
|
+
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
|
39
39
|
|
|
40
40
|
// src/errors/as-gateway-error.ts
|
|
41
41
|
var import_provider = require("@ai-sdk/provider");
|
|
42
42
|
|
|
43
43
|
// src/errors/create-gateway-error.ts
|
|
44
|
-
var
|
|
44
|
+
var import_v43 = require("zod/v4");
|
|
45
45
|
|
|
46
46
|
// src/errors/gateway-error.ts
|
|
47
47
|
var marker = "vercel.ai.gateway.error";
|
|
@@ -133,21 +133,32 @@ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the toke
|
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
// src/errors/gateway-forbidden-error.ts
|
|
136
|
+
var import_v4 = require("zod/v4");
|
|
137
|
+
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
136
138
|
var name2 = "GatewayForbiddenError";
|
|
137
139
|
var marker3 = `vercel.ai.gateway.error.${name2}`;
|
|
138
140
|
var symbol3 = Symbol.for(marker3);
|
|
141
|
+
var forbiddenParamSchema = (0, import_provider_utils.lazyValidator)(
|
|
142
|
+
() => (0, import_provider_utils.zodSchema)(
|
|
143
|
+
import_v4.z.object({
|
|
144
|
+
ruleId: import_v4.z.string()
|
|
145
|
+
})
|
|
146
|
+
)
|
|
147
|
+
);
|
|
139
148
|
var _a3, _b3;
|
|
140
149
|
var GatewayForbiddenError = class extends (_b3 = GatewayError, _a3 = symbol3, _b3) {
|
|
141
150
|
constructor({
|
|
142
151
|
message = "Forbidden",
|
|
143
152
|
statusCode = 403,
|
|
144
|
-
cause
|
|
153
|
+
cause,
|
|
154
|
+
ruleId
|
|
145
155
|
} = {}) {
|
|
146
156
|
super({ message, statusCode, cause });
|
|
147
157
|
this[_a3] = true;
|
|
148
158
|
// used in isInstance
|
|
149
159
|
this.name = name2;
|
|
150
160
|
this.type = "forbidden";
|
|
161
|
+
this.ruleId = ruleId;
|
|
151
162
|
}
|
|
152
163
|
static isInstance(error) {
|
|
153
164
|
return GatewayError.hasMarker(error) && symbol3 in error;
|
|
@@ -199,15 +210,15 @@ var GatewayRateLimitError = class extends (_b5 = GatewayError, _a5 = symbol5, _b
|
|
|
199
210
|
};
|
|
200
211
|
|
|
201
212
|
// src/errors/gateway-model-not-found-error.ts
|
|
202
|
-
var
|
|
203
|
-
var
|
|
213
|
+
var import_v42 = require("zod/v4");
|
|
214
|
+
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
204
215
|
var name5 = "GatewayModelNotFoundError";
|
|
205
216
|
var marker6 = `vercel.ai.gateway.error.${name5}`;
|
|
206
217
|
var symbol6 = Symbol.for(marker6);
|
|
207
|
-
var modelNotFoundParamSchema = (0,
|
|
208
|
-
() => (0,
|
|
209
|
-
|
|
210
|
-
modelId:
|
|
218
|
+
var modelNotFoundParamSchema = (0, import_provider_utils2.lazyValidator)(
|
|
219
|
+
() => (0, import_provider_utils2.zodSchema)(
|
|
220
|
+
import_v42.z.object({
|
|
221
|
+
modelId: import_v42.z.string()
|
|
211
222
|
})
|
|
212
223
|
)
|
|
213
224
|
);
|
|
@@ -280,7 +291,7 @@ var GatewayResponseError = class extends (_b8 = GatewayError, _a8 = symbol8, _b8
|
|
|
280
291
|
};
|
|
281
292
|
|
|
282
293
|
// src/errors/create-gateway-error.ts
|
|
283
|
-
var
|
|
294
|
+
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
284
295
|
async function createGatewayErrorFromResponse({
|
|
285
296
|
response,
|
|
286
297
|
statusCode,
|
|
@@ -288,7 +299,7 @@ async function createGatewayErrorFromResponse({
|
|
|
288
299
|
cause,
|
|
289
300
|
authMethod
|
|
290
301
|
}) {
|
|
291
|
-
const parseResult = await (0,
|
|
302
|
+
const parseResult = await (0, import_provider_utils3.safeValidateTypes)({
|
|
292
303
|
value: response,
|
|
293
304
|
schema: gatewayErrorResponseSchema
|
|
294
305
|
});
|
|
@@ -317,7 +328,7 @@ async function createGatewayErrorFromResponse({
|
|
|
317
328
|
case "rate_limit_exceeded":
|
|
318
329
|
return new GatewayRateLimitError({ message, statusCode, cause });
|
|
319
330
|
case "model_not_found": {
|
|
320
|
-
const modelResult = await (0,
|
|
331
|
+
const modelResult = await (0, import_provider_utils3.safeValidateTypes)({
|
|
321
332
|
value: validatedResponse.error.param,
|
|
322
333
|
schema: modelNotFoundParamSchema
|
|
323
334
|
});
|
|
@@ -330,20 +341,30 @@ async function createGatewayErrorFromResponse({
|
|
|
330
341
|
}
|
|
331
342
|
case "internal_server_error":
|
|
332
343
|
return new GatewayInternalServerError({ message, statusCode, cause });
|
|
333
|
-
case "forbidden":
|
|
334
|
-
|
|
344
|
+
case "forbidden": {
|
|
345
|
+
const ruleResult = await (0, import_provider_utils3.safeValidateTypes)({
|
|
346
|
+
value: validatedResponse.error.param,
|
|
347
|
+
schema: forbiddenParamSchema
|
|
348
|
+
});
|
|
349
|
+
return new GatewayForbiddenError({
|
|
350
|
+
message,
|
|
351
|
+
statusCode,
|
|
352
|
+
cause,
|
|
353
|
+
ruleId: ruleResult.success ? ruleResult.value.ruleId : void 0
|
|
354
|
+
});
|
|
355
|
+
}
|
|
335
356
|
default:
|
|
336
357
|
return new GatewayInternalServerError({ message, statusCode, cause });
|
|
337
358
|
}
|
|
338
359
|
}
|
|
339
|
-
var gatewayErrorResponseSchema = (0,
|
|
340
|
-
() => (0,
|
|
341
|
-
|
|
342
|
-
error:
|
|
343
|
-
message:
|
|
344
|
-
type:
|
|
345
|
-
param:
|
|
346
|
-
code:
|
|
360
|
+
var gatewayErrorResponseSchema = (0, import_provider_utils3.lazyValidator)(
|
|
361
|
+
() => (0, import_provider_utils3.zodSchema)(
|
|
362
|
+
import_v43.z.object({
|
|
363
|
+
error: import_v43.z.object({
|
|
364
|
+
message: import_v43.z.string(),
|
|
365
|
+
type: import_v43.z.string().nullish(),
|
|
366
|
+
param: import_v43.z.unknown().nullish(),
|
|
367
|
+
code: import_v43.z.union([import_v43.z.string(), import_v43.z.number()]).nullish()
|
|
347
368
|
})
|
|
348
369
|
})
|
|
349
370
|
)
|
|
@@ -455,23 +476,23 @@ async function asGatewayError(error, authMethod) {
|
|
|
455
476
|
}
|
|
456
477
|
|
|
457
478
|
// src/errors/parse-auth-method.ts
|
|
458
|
-
var
|
|
459
|
-
var
|
|
479
|
+
var import_v44 = require("zod/v4");
|
|
480
|
+
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
460
481
|
var GATEWAY_AUTH_METHOD_HEADER = "ai-gateway-auth-method";
|
|
461
482
|
async function parseAuthMethod(headers) {
|
|
462
|
-
const result = await (0,
|
|
483
|
+
const result = await (0, import_provider_utils4.safeValidateTypes)({
|
|
463
484
|
value: headers[GATEWAY_AUTH_METHOD_HEADER],
|
|
464
485
|
schema: gatewayAuthMethodSchema
|
|
465
486
|
});
|
|
466
487
|
return result.success ? result.value : void 0;
|
|
467
488
|
}
|
|
468
|
-
var gatewayAuthMethodSchema = (0,
|
|
469
|
-
() => (0,
|
|
489
|
+
var gatewayAuthMethodSchema = (0, import_provider_utils4.lazyValidator)(
|
|
490
|
+
() => (0, import_provider_utils4.zodSchema)(import_v44.z.union([import_v44.z.literal("api-key"), import_v44.z.literal("oidc")]))
|
|
470
491
|
);
|
|
471
492
|
|
|
472
493
|
// src/gateway-fetch-metadata.ts
|
|
473
|
-
var
|
|
474
|
-
var
|
|
494
|
+
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
495
|
+
var import_v45 = require("zod/v4");
|
|
475
496
|
|
|
476
497
|
// src/gateway-model-entry.ts
|
|
477
498
|
var KNOWN_MODEL_TYPES = ["embedding", "image", "language"];
|
|
@@ -483,14 +504,14 @@ var GatewayFetchMetadata = class {
|
|
|
483
504
|
}
|
|
484
505
|
async getAvailableModels() {
|
|
485
506
|
try {
|
|
486
|
-
const { value } = await (0,
|
|
507
|
+
const { value } = await (0, import_provider_utils5.getFromApi)({
|
|
487
508
|
url: `${this.config.baseURL}/config`,
|
|
488
|
-
headers: await (0,
|
|
489
|
-
successfulResponseHandler: (0,
|
|
509
|
+
headers: await (0, import_provider_utils5.resolve)(this.config.headers()),
|
|
510
|
+
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
490
511
|
gatewayAvailableModelsResponseSchema
|
|
491
512
|
),
|
|
492
|
-
failedResponseHandler: (0,
|
|
493
|
-
errorSchema:
|
|
513
|
+
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
|
|
514
|
+
errorSchema: import_v45.z.any(),
|
|
494
515
|
errorToMessage: (data) => data
|
|
495
516
|
}),
|
|
496
517
|
fetch: this.config.fetch
|
|
@@ -503,14 +524,14 @@ var GatewayFetchMetadata = class {
|
|
|
503
524
|
async getCredits() {
|
|
504
525
|
try {
|
|
505
526
|
const baseUrl = new URL(this.config.baseURL);
|
|
506
|
-
const { value } = await (0,
|
|
527
|
+
const { value } = await (0, import_provider_utils5.getFromApi)({
|
|
507
528
|
url: `${baseUrl.origin}/v1/credits`,
|
|
508
|
-
headers: await (0,
|
|
509
|
-
successfulResponseHandler: (0,
|
|
529
|
+
headers: await (0, import_provider_utils5.resolve)(this.config.headers()),
|
|
530
|
+
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
510
531
|
gatewayCreditsResponseSchema
|
|
511
532
|
),
|
|
512
|
-
failedResponseHandler: (0,
|
|
513
|
-
errorSchema:
|
|
533
|
+
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
|
|
534
|
+
errorSchema: import_v45.z.any(),
|
|
514
535
|
errorToMessage: (data) => data
|
|
515
536
|
}),
|
|
516
537
|
fetch: this.config.fetch
|
|
@@ -521,19 +542,19 @@ var GatewayFetchMetadata = class {
|
|
|
521
542
|
}
|
|
522
543
|
}
|
|
523
544
|
};
|
|
524
|
-
var gatewayAvailableModelsResponseSchema = (0,
|
|
525
|
-
() => (0,
|
|
526
|
-
|
|
527
|
-
models:
|
|
528
|
-
|
|
529
|
-
id:
|
|
530
|
-
name:
|
|
531
|
-
description:
|
|
532
|
-
pricing:
|
|
533
|
-
input:
|
|
534
|
-
output:
|
|
535
|
-
input_cache_read:
|
|
536
|
-
input_cache_write:
|
|
545
|
+
var gatewayAvailableModelsResponseSchema = (0, import_provider_utils5.lazyValidator)(
|
|
546
|
+
() => (0, import_provider_utils5.zodSchema)(
|
|
547
|
+
import_v45.z.object({
|
|
548
|
+
models: import_v45.z.array(
|
|
549
|
+
import_v45.z.object({
|
|
550
|
+
id: import_v45.z.string(),
|
|
551
|
+
name: import_v45.z.string(),
|
|
552
|
+
description: import_v45.z.string().nullish(),
|
|
553
|
+
pricing: import_v45.z.object({
|
|
554
|
+
input: import_v45.z.string(),
|
|
555
|
+
output: import_v45.z.string(),
|
|
556
|
+
input_cache_read: import_v45.z.string().nullish(),
|
|
557
|
+
input_cache_write: import_v45.z.string().nullish()
|
|
537
558
|
}).transform(
|
|
538
559
|
({ input, output, input_cache_read, input_cache_write }) => ({
|
|
539
560
|
input,
|
|
@@ -542,12 +563,12 @@ var gatewayAvailableModelsResponseSchema = (0, import_provider_utils4.lazyValida
|
|
|
542
563
|
...input_cache_write ? { cacheCreationInputTokens: input_cache_write } : {}
|
|
543
564
|
})
|
|
544
565
|
).nullish(),
|
|
545
|
-
specification:
|
|
546
|
-
specificationVersion:
|
|
547
|
-
provider:
|
|
548
|
-
modelId:
|
|
566
|
+
specification: import_v45.z.object({
|
|
567
|
+
specificationVersion: import_v45.z.literal("v2"),
|
|
568
|
+
provider: import_v45.z.string(),
|
|
569
|
+
modelId: import_v45.z.string()
|
|
549
570
|
}),
|
|
550
|
-
modelType:
|
|
571
|
+
modelType: import_v45.z.string().nullish()
|
|
551
572
|
})
|
|
552
573
|
).transform(
|
|
553
574
|
(models) => models.filter(
|
|
@@ -557,11 +578,11 @@ var gatewayAvailableModelsResponseSchema = (0, import_provider_utils4.lazyValida
|
|
|
557
578
|
})
|
|
558
579
|
)
|
|
559
580
|
);
|
|
560
|
-
var gatewayCreditsResponseSchema = (0,
|
|
561
|
-
() => (0,
|
|
562
|
-
|
|
563
|
-
balance:
|
|
564
|
-
total_used:
|
|
581
|
+
var gatewayCreditsResponseSchema = (0, import_provider_utils5.lazyValidator)(
|
|
582
|
+
() => (0, import_provider_utils5.zodSchema)(
|
|
583
|
+
import_v45.z.object({
|
|
584
|
+
balance: import_v45.z.string(),
|
|
585
|
+
total_used: import_v45.z.string()
|
|
565
586
|
}).transform(({ balance, total_used }) => ({
|
|
566
587
|
balance,
|
|
567
588
|
totalUsed: total_used
|
|
@@ -570,8 +591,8 @@ var gatewayCreditsResponseSchema = (0, import_provider_utils4.lazyValidator)(
|
|
|
570
591
|
);
|
|
571
592
|
|
|
572
593
|
// src/gateway-spend-report.ts
|
|
573
|
-
var
|
|
574
|
-
var
|
|
594
|
+
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
595
|
+
var import_v46 = require("zod/v4");
|
|
575
596
|
var GatewaySpendReport = class {
|
|
576
597
|
constructor(config) {
|
|
577
598
|
this.config = config;
|
|
@@ -603,14 +624,14 @@ var GatewaySpendReport = class {
|
|
|
603
624
|
if (params.tags && params.tags.length > 0) {
|
|
604
625
|
searchParams.set("tags", params.tags.join(","));
|
|
605
626
|
}
|
|
606
|
-
const { value } = await (0,
|
|
627
|
+
const { value } = await (0, import_provider_utils6.getFromApi)({
|
|
607
628
|
url: `${baseUrl.origin}/v1/report?${searchParams.toString()}`,
|
|
608
|
-
headers: await (0,
|
|
609
|
-
successfulResponseHandler: (0,
|
|
629
|
+
headers: await (0, import_provider_utils6.resolve)(this.config.headers()),
|
|
630
|
+
successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(
|
|
610
631
|
gatewaySpendReportResponseSchema
|
|
611
632
|
),
|
|
612
|
-
failedResponseHandler: (0,
|
|
613
|
-
errorSchema:
|
|
633
|
+
failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
|
|
634
|
+
errorSchema: import_v46.z.any(),
|
|
614
635
|
errorToMessage: (data) => data
|
|
615
636
|
}),
|
|
616
637
|
fetch: this.config.fetch
|
|
@@ -621,26 +642,26 @@ var GatewaySpendReport = class {
|
|
|
621
642
|
}
|
|
622
643
|
}
|
|
623
644
|
};
|
|
624
|
-
var gatewaySpendReportResponseSchema = (0,
|
|
625
|
-
() => (0,
|
|
626
|
-
|
|
627
|
-
results:
|
|
628
|
-
|
|
629
|
-
day:
|
|
630
|
-
hour:
|
|
631
|
-
user:
|
|
632
|
-
model:
|
|
633
|
-
tag:
|
|
634
|
-
provider:
|
|
635
|
-
credential_type:
|
|
636
|
-
total_cost:
|
|
637
|
-
market_cost:
|
|
638
|
-
input_tokens:
|
|
639
|
-
output_tokens:
|
|
640
|
-
cached_input_tokens:
|
|
641
|
-
cache_creation_input_tokens:
|
|
642
|
-
reasoning_tokens:
|
|
643
|
-
request_count:
|
|
645
|
+
var gatewaySpendReportResponseSchema = (0, import_provider_utils6.lazySchema)(
|
|
646
|
+
() => (0, import_provider_utils6.zodSchema)(
|
|
647
|
+
import_v46.z.object({
|
|
648
|
+
results: import_v46.z.array(
|
|
649
|
+
import_v46.z.object({
|
|
650
|
+
day: import_v46.z.string().optional(),
|
|
651
|
+
hour: import_v46.z.string().optional(),
|
|
652
|
+
user: import_v46.z.string().optional(),
|
|
653
|
+
model: import_v46.z.string().optional(),
|
|
654
|
+
tag: import_v46.z.string().optional(),
|
|
655
|
+
provider: import_v46.z.string().optional(),
|
|
656
|
+
credential_type: import_v46.z.enum(["byok", "system"]).optional(),
|
|
657
|
+
total_cost: import_v46.z.number(),
|
|
658
|
+
market_cost: import_v46.z.number().optional(),
|
|
659
|
+
input_tokens: import_v46.z.number().optional(),
|
|
660
|
+
output_tokens: import_v46.z.number().optional(),
|
|
661
|
+
cached_input_tokens: import_v46.z.number().optional(),
|
|
662
|
+
cache_creation_input_tokens: import_v46.z.number().optional(),
|
|
663
|
+
reasoning_tokens: import_v46.z.number().optional(),
|
|
664
|
+
request_count: import_v46.z.number().optional()
|
|
644
665
|
}).transform(
|
|
645
666
|
({
|
|
646
667
|
credential_type,
|
|
@@ -672,8 +693,8 @@ var gatewaySpendReportResponseSchema = (0, import_provider_utils5.lazySchema)(
|
|
|
672
693
|
);
|
|
673
694
|
|
|
674
695
|
// src/gateway-generation-info.ts
|
|
675
|
-
var
|
|
676
|
-
var
|
|
696
|
+
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
697
|
+
var import_v47 = require("zod/v4");
|
|
677
698
|
var GatewayGenerationInfoFetcher = class {
|
|
678
699
|
constructor(config) {
|
|
679
700
|
this.config = config;
|
|
@@ -681,14 +702,14 @@ var GatewayGenerationInfoFetcher = class {
|
|
|
681
702
|
async getGenerationInfo(params) {
|
|
682
703
|
try {
|
|
683
704
|
const baseUrl = new URL(this.config.baseURL);
|
|
684
|
-
const { value } = await (0,
|
|
705
|
+
const { value } = await (0, import_provider_utils7.getFromApi)({
|
|
685
706
|
url: `${baseUrl.origin}/v1/generation?id=${encodeURIComponent(params.id)}`,
|
|
686
|
-
headers: await (0,
|
|
687
|
-
successfulResponseHandler: (0,
|
|
707
|
+
headers: await (0, import_provider_utils7.resolve)(this.config.headers()),
|
|
708
|
+
successfulResponseHandler: (0, import_provider_utils7.createJsonResponseHandler)(
|
|
688
709
|
gatewayGenerationInfoResponseSchema
|
|
689
710
|
),
|
|
690
|
-
failedResponseHandler: (0,
|
|
691
|
-
errorSchema:
|
|
711
|
+
failedResponseHandler: (0, import_provider_utils7.createJsonErrorResponseHandler)({
|
|
712
|
+
errorSchema: import_v47.z.any(),
|
|
692
713
|
errorToMessage: (data) => data
|
|
693
714
|
}),
|
|
694
715
|
fetch: this.config.fetch
|
|
@@ -699,28 +720,28 @@ var GatewayGenerationInfoFetcher = class {
|
|
|
699
720
|
}
|
|
700
721
|
}
|
|
701
722
|
};
|
|
702
|
-
var gatewayGenerationInfoResponseSchema = (0,
|
|
703
|
-
() => (0,
|
|
704
|
-
|
|
705
|
-
data:
|
|
706
|
-
id:
|
|
707
|
-
total_cost:
|
|
708
|
-
upstream_inference_cost:
|
|
709
|
-
usage:
|
|
710
|
-
created_at:
|
|
711
|
-
model:
|
|
712
|
-
is_byok:
|
|
713
|
-
provider_name:
|
|
714
|
-
streamed:
|
|
715
|
-
finish_reason:
|
|
716
|
-
latency:
|
|
717
|
-
generation_time:
|
|
718
|
-
native_tokens_prompt:
|
|
719
|
-
native_tokens_completion:
|
|
720
|
-
native_tokens_reasoning:
|
|
721
|
-
native_tokens_cached:
|
|
722
|
-
native_tokens_cache_creation:
|
|
723
|
-
billable_web_search_calls:
|
|
723
|
+
var gatewayGenerationInfoResponseSchema = (0, import_provider_utils7.lazySchema)(
|
|
724
|
+
() => (0, import_provider_utils7.zodSchema)(
|
|
725
|
+
import_v47.z.object({
|
|
726
|
+
data: import_v47.z.object({
|
|
727
|
+
id: import_v47.z.string(),
|
|
728
|
+
total_cost: import_v47.z.number(),
|
|
729
|
+
upstream_inference_cost: import_v47.z.number(),
|
|
730
|
+
usage: import_v47.z.number(),
|
|
731
|
+
created_at: import_v47.z.string(),
|
|
732
|
+
model: import_v47.z.string(),
|
|
733
|
+
is_byok: import_v47.z.boolean(),
|
|
734
|
+
provider_name: import_v47.z.string(),
|
|
735
|
+
streamed: import_v47.z.boolean(),
|
|
736
|
+
finish_reason: import_v47.z.string(),
|
|
737
|
+
latency: import_v47.z.number(),
|
|
738
|
+
generation_time: import_v47.z.number(),
|
|
739
|
+
native_tokens_prompt: import_v47.z.number(),
|
|
740
|
+
native_tokens_completion: import_v47.z.number(),
|
|
741
|
+
native_tokens_reasoning: import_v47.z.number(),
|
|
742
|
+
native_tokens_cached: import_v47.z.number(),
|
|
743
|
+
native_tokens_cache_creation: import_v47.z.number(),
|
|
744
|
+
billable_web_search_calls: import_v47.z.number()
|
|
724
745
|
}).transform(
|
|
725
746
|
({
|
|
726
747
|
total_cost,
|
|
@@ -759,8 +780,8 @@ var gatewayGenerationInfoResponseSchema = (0, import_provider_utils6.lazySchema)
|
|
|
759
780
|
);
|
|
760
781
|
|
|
761
782
|
// src/gateway-language-model.ts
|
|
762
|
-
var
|
|
763
|
-
var
|
|
783
|
+
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
784
|
+
var import_v48 = require("zod/v4");
|
|
764
785
|
var GatewayLanguageModel = class {
|
|
765
786
|
constructor(modelId, config) {
|
|
766
787
|
this.modelId = modelId;
|
|
@@ -781,24 +802,24 @@ var GatewayLanguageModel = class {
|
|
|
781
802
|
async doGenerate(options) {
|
|
782
803
|
const { args, warnings } = await this.getArgs(options);
|
|
783
804
|
const { abortSignal } = options;
|
|
784
|
-
const resolvedHeaders = await (0,
|
|
805
|
+
const resolvedHeaders = await (0, import_provider_utils8.resolve)(this.config.headers());
|
|
785
806
|
try {
|
|
786
807
|
const {
|
|
787
808
|
responseHeaders,
|
|
788
809
|
value: responseBody,
|
|
789
810
|
rawValue: rawResponse
|
|
790
|
-
} = await (0,
|
|
811
|
+
} = await (0, import_provider_utils8.postJsonToApi)({
|
|
791
812
|
url: this.getUrl(),
|
|
792
|
-
headers: (0,
|
|
813
|
+
headers: (0, import_provider_utils8.combineHeaders)(
|
|
793
814
|
resolvedHeaders,
|
|
794
815
|
options.headers,
|
|
795
816
|
this.getModelConfigHeaders(this.modelId, false),
|
|
796
|
-
await (0,
|
|
817
|
+
await (0, import_provider_utils8.resolve)(this.config.o11yHeaders)
|
|
797
818
|
),
|
|
798
819
|
body: args,
|
|
799
|
-
successfulResponseHandler: (0,
|
|
800
|
-
failedResponseHandler: (0,
|
|
801
|
-
errorSchema:
|
|
820
|
+
successfulResponseHandler: (0, import_provider_utils8.createJsonResponseHandler)(import_v48.z.any()),
|
|
821
|
+
failedResponseHandler: (0, import_provider_utils8.createJsonErrorResponseHandler)({
|
|
822
|
+
errorSchema: import_v48.z.any(),
|
|
802
823
|
errorToMessage: (data) => data
|
|
803
824
|
}),
|
|
804
825
|
...abortSignal && { abortSignal },
|
|
@@ -817,20 +838,20 @@ var GatewayLanguageModel = class {
|
|
|
817
838
|
async doStream(options) {
|
|
818
839
|
const { args, warnings } = await this.getArgs(options);
|
|
819
840
|
const { abortSignal } = options;
|
|
820
|
-
const resolvedHeaders = await (0,
|
|
841
|
+
const resolvedHeaders = await (0, import_provider_utils8.resolve)(this.config.headers());
|
|
821
842
|
try {
|
|
822
|
-
const { value: response, responseHeaders } = await (0,
|
|
843
|
+
const { value: response, responseHeaders } = await (0, import_provider_utils8.postJsonToApi)({
|
|
823
844
|
url: this.getUrl(),
|
|
824
|
-
headers: (0,
|
|
845
|
+
headers: (0, import_provider_utils8.combineHeaders)(
|
|
825
846
|
resolvedHeaders,
|
|
826
847
|
options.headers,
|
|
827
848
|
this.getModelConfigHeaders(this.modelId, true),
|
|
828
|
-
await (0,
|
|
849
|
+
await (0, import_provider_utils8.resolve)(this.config.o11yHeaders)
|
|
829
850
|
),
|
|
830
851
|
body: args,
|
|
831
|
-
successfulResponseHandler: (0,
|
|
832
|
-
failedResponseHandler: (0,
|
|
833
|
-
errorSchema:
|
|
852
|
+
successfulResponseHandler: (0, import_provider_utils8.createEventSourceResponseHandler)(import_v48.z.any()),
|
|
853
|
+
failedResponseHandler: (0, import_provider_utils8.createJsonErrorResponseHandler)({
|
|
854
|
+
errorSchema: import_v48.z.any(),
|
|
834
855
|
errorToMessage: (data) => data
|
|
835
856
|
}),
|
|
836
857
|
...abortSignal && { abortSignal },
|
|
@@ -908,8 +929,8 @@ var GatewayLanguageModel = class {
|
|
|
908
929
|
};
|
|
909
930
|
|
|
910
931
|
// src/gateway-embedding-model.ts
|
|
911
|
-
var
|
|
912
|
-
var
|
|
932
|
+
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
933
|
+
var import_v49 = require("zod/v4");
|
|
913
934
|
var GatewayEmbeddingModel = class {
|
|
914
935
|
constructor(modelId, config) {
|
|
915
936
|
this.modelId = modelId;
|
|
@@ -928,29 +949,29 @@ var GatewayEmbeddingModel = class {
|
|
|
928
949
|
providerOptions
|
|
929
950
|
}) {
|
|
930
951
|
var _a10;
|
|
931
|
-
const resolvedHeaders = await (0,
|
|
952
|
+
const resolvedHeaders = await (0, import_provider_utils9.resolve)(this.config.headers());
|
|
932
953
|
try {
|
|
933
954
|
const {
|
|
934
955
|
responseHeaders,
|
|
935
956
|
value: responseBody,
|
|
936
957
|
rawValue
|
|
937
|
-
} = await (0,
|
|
958
|
+
} = await (0, import_provider_utils9.postJsonToApi)({
|
|
938
959
|
url: this.getUrl(),
|
|
939
|
-
headers: (0,
|
|
960
|
+
headers: (0, import_provider_utils9.combineHeaders)(
|
|
940
961
|
resolvedHeaders,
|
|
941
962
|
headers != null ? headers : {},
|
|
942
963
|
this.getModelConfigHeaders(),
|
|
943
|
-
await (0,
|
|
964
|
+
await (0, import_provider_utils9.resolve)(this.config.o11yHeaders)
|
|
944
965
|
),
|
|
945
966
|
body: {
|
|
946
967
|
input: values.length === 1 ? values[0] : values,
|
|
947
968
|
...providerOptions ? { providerOptions } : {}
|
|
948
969
|
},
|
|
949
|
-
successfulResponseHandler: (0,
|
|
970
|
+
successfulResponseHandler: (0, import_provider_utils9.createJsonResponseHandler)(
|
|
950
971
|
gatewayEmbeddingResponseSchema
|
|
951
972
|
),
|
|
952
|
-
failedResponseHandler: (0,
|
|
953
|
-
errorSchema:
|
|
973
|
+
failedResponseHandler: (0, import_provider_utils9.createJsonErrorResponseHandler)({
|
|
974
|
+
errorSchema: import_v49.z.any(),
|
|
954
975
|
errorToMessage: (data) => data
|
|
955
976
|
}),
|
|
956
977
|
...abortSignal && { abortSignal },
|
|
@@ -976,19 +997,19 @@ var GatewayEmbeddingModel = class {
|
|
|
976
997
|
};
|
|
977
998
|
}
|
|
978
999
|
};
|
|
979
|
-
var gatewayEmbeddingResponseSchema = (0,
|
|
980
|
-
() => (0,
|
|
981
|
-
|
|
982
|
-
embeddings:
|
|
983
|
-
usage:
|
|
984
|
-
providerMetadata:
|
|
1000
|
+
var gatewayEmbeddingResponseSchema = (0, import_provider_utils9.lazyValidator)(
|
|
1001
|
+
() => (0, import_provider_utils9.zodSchema)(
|
|
1002
|
+
import_v49.z.object({
|
|
1003
|
+
embeddings: import_v49.z.array(import_v49.z.array(import_v49.z.number())),
|
|
1004
|
+
usage: import_v49.z.object({ tokens: import_v49.z.number() }).nullish(),
|
|
1005
|
+
providerMetadata: import_v49.z.record(import_v49.z.string(), import_v49.z.record(import_v49.z.string(), import_v49.z.unknown())).optional()
|
|
985
1006
|
})
|
|
986
1007
|
)
|
|
987
1008
|
);
|
|
988
1009
|
|
|
989
1010
|
// src/gateway-image-model.ts
|
|
990
|
-
var
|
|
991
|
-
var
|
|
1011
|
+
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
|
1012
|
+
var import_v410 = require("zod/v4");
|
|
992
1013
|
var GatewayImageModel = class {
|
|
993
1014
|
constructor(modelId, config) {
|
|
994
1015
|
this.modelId = modelId;
|
|
@@ -1011,19 +1032,19 @@ var GatewayImageModel = class {
|
|
|
1011
1032
|
abortSignal
|
|
1012
1033
|
}) {
|
|
1013
1034
|
var _a10, _b10, _c, _d;
|
|
1014
|
-
const resolvedHeaders = await (0,
|
|
1035
|
+
const resolvedHeaders = await (0, import_provider_utils10.resolve)(this.config.headers());
|
|
1015
1036
|
try {
|
|
1016
1037
|
const {
|
|
1017
1038
|
responseHeaders,
|
|
1018
1039
|
value: responseBody,
|
|
1019
1040
|
rawValue
|
|
1020
|
-
} = await (0,
|
|
1041
|
+
} = await (0, import_provider_utils10.postJsonToApi)({
|
|
1021
1042
|
url: this.getUrl(),
|
|
1022
|
-
headers: (0,
|
|
1043
|
+
headers: (0, import_provider_utils10.combineHeaders)(
|
|
1023
1044
|
resolvedHeaders,
|
|
1024
1045
|
headers != null ? headers : {},
|
|
1025
1046
|
this.getModelConfigHeaders(),
|
|
1026
|
-
await (0,
|
|
1047
|
+
await (0, import_provider_utils10.resolve)(this.config.o11yHeaders)
|
|
1027
1048
|
),
|
|
1028
1049
|
body: {
|
|
1029
1050
|
prompt,
|
|
@@ -1033,11 +1054,11 @@ var GatewayImageModel = class {
|
|
|
1033
1054
|
...seed && { seed },
|
|
1034
1055
|
...providerOptions && { providerOptions }
|
|
1035
1056
|
},
|
|
1036
|
-
successfulResponseHandler: (0,
|
|
1057
|
+
successfulResponseHandler: (0, import_provider_utils10.createJsonResponseHandler)(
|
|
1037
1058
|
gatewayImageResponseSchema
|
|
1038
1059
|
),
|
|
1039
|
-
failedResponseHandler: (0,
|
|
1040
|
-
errorSchema:
|
|
1060
|
+
failedResponseHandler: (0, import_provider_utils10.createJsonErrorResponseHandler)({
|
|
1061
|
+
errorSchema: import_v410.z.any(),
|
|
1041
1062
|
errorToMessage: (data) => data
|
|
1042
1063
|
}),
|
|
1043
1064
|
...abortSignal && { abortSignal },
|
|
@@ -1075,32 +1096,32 @@ var GatewayImageModel = class {
|
|
|
1075
1096
|
};
|
|
1076
1097
|
}
|
|
1077
1098
|
};
|
|
1078
|
-
var providerMetadataEntrySchema =
|
|
1079
|
-
images:
|
|
1080
|
-
}).catchall(
|
|
1081
|
-
var gatewayImageUsageSchema =
|
|
1082
|
-
inputTokens:
|
|
1083
|
-
outputTokens:
|
|
1084
|
-
totalTokens:
|
|
1099
|
+
var providerMetadataEntrySchema = import_v410.z.object({
|
|
1100
|
+
images: import_v410.z.array(import_v410.z.unknown()).optional()
|
|
1101
|
+
}).catchall(import_v410.z.unknown());
|
|
1102
|
+
var gatewayImageUsageSchema = import_v410.z.object({
|
|
1103
|
+
inputTokens: import_v410.z.number().nullish(),
|
|
1104
|
+
outputTokens: import_v410.z.number().nullish(),
|
|
1105
|
+
totalTokens: import_v410.z.number().nullish()
|
|
1085
1106
|
});
|
|
1086
|
-
var gatewayImageResponseSchema =
|
|
1087
|
-
images:
|
|
1107
|
+
var gatewayImageResponseSchema = import_v410.z.object({
|
|
1108
|
+
images: import_v410.z.array(import_v410.z.string()),
|
|
1088
1109
|
// Always base64 strings over the wire
|
|
1089
|
-
warnings:
|
|
1090
|
-
|
|
1091
|
-
type:
|
|
1092
|
-
message:
|
|
1110
|
+
warnings: import_v410.z.array(
|
|
1111
|
+
import_v410.z.object({
|
|
1112
|
+
type: import_v410.z.literal("other"),
|
|
1113
|
+
message: import_v410.z.string()
|
|
1093
1114
|
})
|
|
1094
1115
|
).optional(),
|
|
1095
|
-
providerMetadata:
|
|
1116
|
+
providerMetadata: import_v410.z.record(import_v410.z.string(), providerMetadataEntrySchema).optional(),
|
|
1096
1117
|
usage: gatewayImageUsageSchema.optional()
|
|
1097
1118
|
});
|
|
1098
1119
|
|
|
1099
1120
|
// src/tool/parallel-search.ts
|
|
1100
|
-
var
|
|
1121
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
1101
1122
|
var import_zod = require("zod");
|
|
1102
|
-
var parallelSearchInputSchema = (0,
|
|
1103
|
-
() => (0,
|
|
1123
|
+
var parallelSearchInputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1124
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1104
1125
|
import_zod.z.object({
|
|
1105
1126
|
objective: import_zod.z.string().describe(
|
|
1106
1127
|
"Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."
|
|
@@ -1135,8 +1156,8 @@ var parallelSearchInputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1135
1156
|
})
|
|
1136
1157
|
)
|
|
1137
1158
|
);
|
|
1138
|
-
var parallelSearchOutputSchema = (0,
|
|
1139
|
-
() => (0,
|
|
1159
|
+
var parallelSearchOutputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1160
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1140
1161
|
import_zod.z.union([
|
|
1141
1162
|
// Success response
|
|
1142
1163
|
import_zod.z.object({
|
|
@@ -1167,7 +1188,7 @@ var parallelSearchOutputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1167
1188
|
])
|
|
1168
1189
|
)
|
|
1169
1190
|
);
|
|
1170
|
-
var parallelSearchToolFactory = (0,
|
|
1191
|
+
var parallelSearchToolFactory = (0, import_provider_utils11.createProviderDefinedToolFactoryWithOutputSchema)({
|
|
1171
1192
|
id: "gateway.parallel_search",
|
|
1172
1193
|
name: "parallel_search",
|
|
1173
1194
|
inputSchema: parallelSearchInputSchema,
|
|
@@ -1176,10 +1197,10 @@ var parallelSearchToolFactory = (0, import_provider_utils10.createProviderDefine
|
|
|
1176
1197
|
var parallelSearch = (config = {}) => parallelSearchToolFactory(config);
|
|
1177
1198
|
|
|
1178
1199
|
// src/tool/perplexity-search.ts
|
|
1179
|
-
var
|
|
1200
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
1180
1201
|
var import_zod2 = require("zod");
|
|
1181
|
-
var perplexitySearchInputSchema = (0,
|
|
1182
|
-
() => (0,
|
|
1202
|
+
var perplexitySearchInputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1203
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1183
1204
|
import_zod2.z.object({
|
|
1184
1205
|
query: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.array(import_zod2.z.string())]).describe(
|
|
1185
1206
|
"Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."
|
|
@@ -1220,8 +1241,8 @@ var perplexitySearchInputSchema = (0, import_provider_utils11.lazySchema)(
|
|
|
1220
1241
|
})
|
|
1221
1242
|
)
|
|
1222
1243
|
);
|
|
1223
|
-
var perplexitySearchOutputSchema = (0,
|
|
1224
|
-
() => (0,
|
|
1244
|
+
var perplexitySearchOutputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1245
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1225
1246
|
import_zod2.z.union([
|
|
1226
1247
|
// Success response
|
|
1227
1248
|
import_zod2.z.object({
|
|
@@ -1251,7 +1272,7 @@ var perplexitySearchOutputSchema = (0, import_provider_utils11.lazySchema)(
|
|
|
1251
1272
|
])
|
|
1252
1273
|
)
|
|
1253
1274
|
);
|
|
1254
|
-
var perplexitySearchToolFactory = (0,
|
|
1275
|
+
var perplexitySearchToolFactory = (0, import_provider_utils12.createProviderDefinedToolFactoryWithOutputSchema)({
|
|
1255
1276
|
id: "gateway.perplexity_search",
|
|
1256
1277
|
name: "perplexity_search",
|
|
1257
1278
|
inputSchema: perplexitySearchInputSchema,
|
|
@@ -1289,7 +1310,7 @@ async function getVercelRequestId() {
|
|
|
1289
1310
|
}
|
|
1290
1311
|
|
|
1291
1312
|
// src/version.ts
|
|
1292
|
-
var VERSION = true ? "2.0.
|
|
1313
|
+
var VERSION = true ? "2.0.110" : "0.0.0-test";
|
|
1293
1314
|
|
|
1294
1315
|
// src/gateway-provider.ts
|
|
1295
1316
|
var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
|
|
@@ -1299,11 +1320,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1299
1320
|
let metadataCache = null;
|
|
1300
1321
|
const cacheRefreshMillis = (_a10 = options.metadataCacheRefreshMillis) != null ? _a10 : 1e3 * 60 * 5;
|
|
1301
1322
|
let lastFetchTime = 0;
|
|
1302
|
-
const baseURL = (_b10 = (0,
|
|
1323
|
+
const baseURL = (_b10 = (0, import_provider_utils13.withoutTrailingSlash)(options.baseURL)) != null ? _b10 : "https://ai-gateway.vercel.sh/v1/ai";
|
|
1303
1324
|
const getHeaders = async () => {
|
|
1304
1325
|
const auth = await getGatewayAuthToken(options);
|
|
1305
1326
|
if (auth) {
|
|
1306
|
-
return (0,
|
|
1327
|
+
return (0, import_provider_utils13.withUserAgentSuffix)(
|
|
1307
1328
|
{
|
|
1308
1329
|
Authorization: `Bearer ${auth.token}`,
|
|
1309
1330
|
"ai-gateway-protocol-version": AI_GATEWAY_PROTOCOL_VERSION,
|
|
@@ -1320,19 +1341,19 @@ function createGatewayProvider(options = {}) {
|
|
|
1320
1341
|
});
|
|
1321
1342
|
};
|
|
1322
1343
|
const createO11yHeaders = () => {
|
|
1323
|
-
const deploymentId = (0,
|
|
1344
|
+
const deploymentId = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1324
1345
|
settingValue: void 0,
|
|
1325
1346
|
environmentVariableName: "VERCEL_DEPLOYMENT_ID"
|
|
1326
1347
|
});
|
|
1327
|
-
const environment = (0,
|
|
1348
|
+
const environment = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1328
1349
|
settingValue: void 0,
|
|
1329
1350
|
environmentVariableName: "VERCEL_ENV"
|
|
1330
1351
|
});
|
|
1331
|
-
const region = (0,
|
|
1352
|
+
const region = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1332
1353
|
settingValue: void 0,
|
|
1333
1354
|
environmentVariableName: "VERCEL_REGION"
|
|
1334
1355
|
});
|
|
1335
|
-
const projectId = (0,
|
|
1356
|
+
const projectId = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1336
1357
|
settingValue: void 0,
|
|
1337
1358
|
environmentVariableName: "VERCEL_PROJECT_ID"
|
|
1338
1359
|
});
|
|
@@ -1449,7 +1470,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1449
1470
|
}
|
|
1450
1471
|
var gateway = createGatewayProvider();
|
|
1451
1472
|
async function getGatewayAuthToken(options) {
|
|
1452
|
-
const apiKey = (0,
|
|
1473
|
+
const apiKey = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1453
1474
|
settingValue: options.apiKey,
|
|
1454
1475
|
environmentVariableName: "AI_GATEWAY_API_KEY"
|
|
1455
1476
|
});
|