@ai-sdk/gateway 4.0.0-beta.4 → 4.0.0-beta.41
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 +252 -4
- package/dist/index.d.mts +143 -21
- package/dist/index.d.ts +143 -21
- package/dist/index.js +454 -144
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +518 -186
- package/dist/index.mjs.map +1 -1
- package/docs/00-ai-gateway.mdx +292 -44
- package/package.json +4 -6
- package/src/gateway-embedding-model-settings.ts +1 -0
- package/src/gateway-embedding-model.ts +8 -8
- package/src/gateway-fetch-metadata.ts +1 -1
- package/src/gateway-generation-info.ts +147 -0
- package/src/gateway-image-model-settings.ts +6 -0
- package/src/gateway-image-model.ts +10 -10
- package/src/gateway-language-model-settings.ts +21 -10
- package/src/gateway-language-model.ts +19 -19
- package/src/gateway-model-entry.ts +2 -2
- package/src/gateway-provider-options.ts +27 -8
- package/src/gateway-provider.ts +99 -17
- package/src/gateway-reranking-model-settings.ts +1 -0
- package/src/gateway-reranking-model.ts +114 -0
- package/src/gateway-spend-report.ts +191 -0
- package/src/gateway-video-model.ts +15 -15
- package/src/index.ts +13 -3
package/dist/index.js
CHANGED
|
@@ -18,8 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
20
|
// src/index.ts
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
23
|
GatewayAuthenticationError: () => GatewayAuthenticationError,
|
|
24
24
|
GatewayError: () => GatewayError,
|
|
25
25
|
GatewayInternalServerError: () => GatewayInternalServerError,
|
|
@@ -31,10 +31,10 @@ __export(src_exports, {
|
|
|
31
31
|
createGatewayProvider: () => createGatewayProvider,
|
|
32
32
|
gateway: () => gateway
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
34
|
+
module.exports = __toCommonJS(index_exports);
|
|
35
35
|
|
|
36
36
|
// src/gateway-provider.ts
|
|
37
|
-
var
|
|
37
|
+
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
38
38
|
|
|
39
39
|
// src/errors/as-gateway-error.ts
|
|
40
40
|
var import_provider = require("@ai-sdk/provider");
|
|
@@ -553,7 +553,7 @@ var gatewayAvailableModelsResponseSchema = (0, import_provider_utils4.lazySchema
|
|
|
553
553
|
})
|
|
554
554
|
).nullish(),
|
|
555
555
|
specification: import_v44.z.object({
|
|
556
|
-
specificationVersion: import_v44.z.literal("
|
|
556
|
+
specificationVersion: import_v44.z.literal("v4"),
|
|
557
557
|
provider: import_v44.z.string(),
|
|
558
558
|
modelId: import_v44.z.string()
|
|
559
559
|
}),
|
|
@@ -575,14 +575,203 @@ var gatewayCreditsResponseSchema = (0, import_provider_utils4.lazySchema)(
|
|
|
575
575
|
)
|
|
576
576
|
);
|
|
577
577
|
|
|
578
|
-
// src/gateway-
|
|
578
|
+
// src/gateway-spend-report.ts
|
|
579
579
|
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
580
580
|
var import_v45 = require("zod/v4");
|
|
581
|
+
var GatewaySpendReport = class {
|
|
582
|
+
constructor(config) {
|
|
583
|
+
this.config = config;
|
|
584
|
+
}
|
|
585
|
+
async getSpendReport(params) {
|
|
586
|
+
try {
|
|
587
|
+
const baseUrl = new URL(this.config.baseURL);
|
|
588
|
+
const searchParams = new URLSearchParams();
|
|
589
|
+
searchParams.set("start_date", params.startDate);
|
|
590
|
+
searchParams.set("end_date", params.endDate);
|
|
591
|
+
if (params.groupBy) {
|
|
592
|
+
searchParams.set("group_by", params.groupBy);
|
|
593
|
+
}
|
|
594
|
+
if (params.datePart) {
|
|
595
|
+
searchParams.set("date_part", params.datePart);
|
|
596
|
+
}
|
|
597
|
+
if (params.userId) {
|
|
598
|
+
searchParams.set("user_id", params.userId);
|
|
599
|
+
}
|
|
600
|
+
if (params.model) {
|
|
601
|
+
searchParams.set("model", params.model);
|
|
602
|
+
}
|
|
603
|
+
if (params.provider) {
|
|
604
|
+
searchParams.set("provider", params.provider);
|
|
605
|
+
}
|
|
606
|
+
if (params.credentialType) {
|
|
607
|
+
searchParams.set("credential_type", params.credentialType);
|
|
608
|
+
}
|
|
609
|
+
if (params.tags && params.tags.length > 0) {
|
|
610
|
+
searchParams.set("tags", params.tags.join(","));
|
|
611
|
+
}
|
|
612
|
+
const { value } = await (0, import_provider_utils5.getFromApi)({
|
|
613
|
+
url: `${baseUrl.origin}/v1/report?${searchParams.toString()}`,
|
|
614
|
+
headers: await (0, import_provider_utils5.resolve)(this.config.headers()),
|
|
615
|
+
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
616
|
+
gatewaySpendReportResponseSchema
|
|
617
|
+
),
|
|
618
|
+
failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
|
|
619
|
+
errorSchema: import_v45.z.any(),
|
|
620
|
+
errorToMessage: (data) => data
|
|
621
|
+
}),
|
|
622
|
+
fetch: this.config.fetch
|
|
623
|
+
});
|
|
624
|
+
return value;
|
|
625
|
+
} catch (error) {
|
|
626
|
+
throw await asGatewayError(error);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
};
|
|
630
|
+
var gatewaySpendReportResponseSchema = (0, import_provider_utils5.lazySchema)(
|
|
631
|
+
() => (0, import_provider_utils5.zodSchema)(
|
|
632
|
+
import_v45.z.object({
|
|
633
|
+
results: import_v45.z.array(
|
|
634
|
+
import_v45.z.object({
|
|
635
|
+
day: import_v45.z.string().optional(),
|
|
636
|
+
hour: import_v45.z.string().optional(),
|
|
637
|
+
user: import_v45.z.string().optional(),
|
|
638
|
+
model: import_v45.z.string().optional(),
|
|
639
|
+
tag: import_v45.z.string().optional(),
|
|
640
|
+
provider: import_v45.z.string().optional(),
|
|
641
|
+
credential_type: import_v45.z.enum(["byok", "system"]).optional(),
|
|
642
|
+
total_cost: import_v45.z.number(),
|
|
643
|
+
market_cost: import_v45.z.number().optional(),
|
|
644
|
+
input_tokens: import_v45.z.number().optional(),
|
|
645
|
+
output_tokens: import_v45.z.number().optional(),
|
|
646
|
+
cached_input_tokens: import_v45.z.number().optional(),
|
|
647
|
+
cache_creation_input_tokens: import_v45.z.number().optional(),
|
|
648
|
+
reasoning_tokens: import_v45.z.number().optional(),
|
|
649
|
+
request_count: import_v45.z.number().optional()
|
|
650
|
+
}).transform(
|
|
651
|
+
({
|
|
652
|
+
credential_type,
|
|
653
|
+
total_cost,
|
|
654
|
+
market_cost,
|
|
655
|
+
input_tokens,
|
|
656
|
+
output_tokens,
|
|
657
|
+
cached_input_tokens,
|
|
658
|
+
cache_creation_input_tokens,
|
|
659
|
+
reasoning_tokens,
|
|
660
|
+
request_count,
|
|
661
|
+
...rest
|
|
662
|
+
}) => ({
|
|
663
|
+
...rest,
|
|
664
|
+
...credential_type !== void 0 ? { credentialType: credential_type } : {},
|
|
665
|
+
totalCost: total_cost,
|
|
666
|
+
...market_cost !== void 0 ? { marketCost: market_cost } : {},
|
|
667
|
+
...input_tokens !== void 0 ? { inputTokens: input_tokens } : {},
|
|
668
|
+
...output_tokens !== void 0 ? { outputTokens: output_tokens } : {},
|
|
669
|
+
...cached_input_tokens !== void 0 ? { cachedInputTokens: cached_input_tokens } : {},
|
|
670
|
+
...cache_creation_input_tokens !== void 0 ? { cacheCreationInputTokens: cache_creation_input_tokens } : {},
|
|
671
|
+
...reasoning_tokens !== void 0 ? { reasoningTokens: reasoning_tokens } : {},
|
|
672
|
+
...request_count !== void 0 ? { requestCount: request_count } : {}
|
|
673
|
+
})
|
|
674
|
+
)
|
|
675
|
+
)
|
|
676
|
+
})
|
|
677
|
+
)
|
|
678
|
+
);
|
|
679
|
+
|
|
680
|
+
// src/gateway-generation-info.ts
|
|
681
|
+
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
682
|
+
var import_v46 = require("zod/v4");
|
|
683
|
+
var GatewayGenerationInfoFetcher = class {
|
|
684
|
+
constructor(config) {
|
|
685
|
+
this.config = config;
|
|
686
|
+
}
|
|
687
|
+
async getGenerationInfo(params) {
|
|
688
|
+
try {
|
|
689
|
+
const baseUrl = new URL(this.config.baseURL);
|
|
690
|
+
const { value } = await (0, import_provider_utils6.getFromApi)({
|
|
691
|
+
url: `${baseUrl.origin}/v1/generation?id=${encodeURIComponent(params.id)}`,
|
|
692
|
+
headers: await (0, import_provider_utils6.resolve)(this.config.headers()),
|
|
693
|
+
successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(
|
|
694
|
+
gatewayGenerationInfoResponseSchema
|
|
695
|
+
),
|
|
696
|
+
failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
|
|
697
|
+
errorSchema: import_v46.z.any(),
|
|
698
|
+
errorToMessage: (data) => data
|
|
699
|
+
}),
|
|
700
|
+
fetch: this.config.fetch
|
|
701
|
+
});
|
|
702
|
+
return value;
|
|
703
|
+
} catch (error) {
|
|
704
|
+
throw await asGatewayError(error);
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
var gatewayGenerationInfoResponseSchema = (0, import_provider_utils6.lazySchema)(
|
|
709
|
+
() => (0, import_provider_utils6.zodSchema)(
|
|
710
|
+
import_v46.z.object({
|
|
711
|
+
data: import_v46.z.object({
|
|
712
|
+
id: import_v46.z.string(),
|
|
713
|
+
total_cost: import_v46.z.number(),
|
|
714
|
+
upstream_inference_cost: import_v46.z.number(),
|
|
715
|
+
usage: import_v46.z.number(),
|
|
716
|
+
created_at: import_v46.z.string(),
|
|
717
|
+
model: import_v46.z.string(),
|
|
718
|
+
is_byok: import_v46.z.boolean(),
|
|
719
|
+
provider_name: import_v46.z.string(),
|
|
720
|
+
streamed: import_v46.z.boolean(),
|
|
721
|
+
finish_reason: import_v46.z.string(),
|
|
722
|
+
latency: import_v46.z.number(),
|
|
723
|
+
generation_time: import_v46.z.number(),
|
|
724
|
+
native_tokens_prompt: import_v46.z.number(),
|
|
725
|
+
native_tokens_completion: import_v46.z.number(),
|
|
726
|
+
native_tokens_reasoning: import_v46.z.number(),
|
|
727
|
+
native_tokens_cached: import_v46.z.number(),
|
|
728
|
+
native_tokens_cache_creation: import_v46.z.number(),
|
|
729
|
+
billable_web_search_calls: import_v46.z.number()
|
|
730
|
+
}).transform(
|
|
731
|
+
({
|
|
732
|
+
total_cost,
|
|
733
|
+
upstream_inference_cost,
|
|
734
|
+
created_at,
|
|
735
|
+
is_byok,
|
|
736
|
+
provider_name,
|
|
737
|
+
finish_reason,
|
|
738
|
+
generation_time,
|
|
739
|
+
native_tokens_prompt,
|
|
740
|
+
native_tokens_completion,
|
|
741
|
+
native_tokens_reasoning,
|
|
742
|
+
native_tokens_cached,
|
|
743
|
+
native_tokens_cache_creation,
|
|
744
|
+
billable_web_search_calls,
|
|
745
|
+
...rest
|
|
746
|
+
}) => ({
|
|
747
|
+
...rest,
|
|
748
|
+
totalCost: total_cost,
|
|
749
|
+
upstreamInferenceCost: upstream_inference_cost,
|
|
750
|
+
createdAt: created_at,
|
|
751
|
+
isByok: is_byok,
|
|
752
|
+
providerName: provider_name,
|
|
753
|
+
finishReason: finish_reason,
|
|
754
|
+
generationTime: generation_time,
|
|
755
|
+
promptTokens: native_tokens_prompt,
|
|
756
|
+
completionTokens: native_tokens_completion,
|
|
757
|
+
reasoningTokens: native_tokens_reasoning,
|
|
758
|
+
cachedTokens: native_tokens_cached,
|
|
759
|
+
cacheCreationTokens: native_tokens_cache_creation,
|
|
760
|
+
billableWebSearchCalls: billable_web_search_calls
|
|
761
|
+
})
|
|
762
|
+
)
|
|
763
|
+
}).transform(({ data }) => data)
|
|
764
|
+
)
|
|
765
|
+
);
|
|
766
|
+
|
|
767
|
+
// src/gateway-language-model.ts
|
|
768
|
+
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
769
|
+
var import_v47 = require("zod/v4");
|
|
581
770
|
var GatewayLanguageModel = class {
|
|
582
771
|
constructor(modelId, config) {
|
|
583
772
|
this.modelId = modelId;
|
|
584
773
|
this.config = config;
|
|
585
|
-
this.specificationVersion = "
|
|
774
|
+
this.specificationVersion = "v4";
|
|
586
775
|
this.supportedUrls = { "*/*": [/.*/] };
|
|
587
776
|
}
|
|
588
777
|
get provider() {
|
|
@@ -598,24 +787,24 @@ var GatewayLanguageModel = class {
|
|
|
598
787
|
async doGenerate(options) {
|
|
599
788
|
const { args, warnings } = await this.getArgs(options);
|
|
600
789
|
const { abortSignal } = options;
|
|
601
|
-
const resolvedHeaders = await (0,
|
|
790
|
+
const resolvedHeaders = await (0, import_provider_utils7.resolve)(this.config.headers());
|
|
602
791
|
try {
|
|
603
792
|
const {
|
|
604
793
|
responseHeaders,
|
|
605
794
|
value: responseBody,
|
|
606
795
|
rawValue: rawResponse
|
|
607
|
-
} = await (0,
|
|
796
|
+
} = await (0, import_provider_utils7.postJsonToApi)({
|
|
608
797
|
url: this.getUrl(),
|
|
609
|
-
headers: (0,
|
|
798
|
+
headers: (0, import_provider_utils7.combineHeaders)(
|
|
610
799
|
resolvedHeaders,
|
|
611
800
|
options.headers,
|
|
612
801
|
this.getModelConfigHeaders(this.modelId, false),
|
|
613
|
-
await (0,
|
|
802
|
+
await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
|
|
614
803
|
),
|
|
615
804
|
body: args,
|
|
616
|
-
successfulResponseHandler: (0,
|
|
617
|
-
failedResponseHandler: (0,
|
|
618
|
-
errorSchema:
|
|
805
|
+
successfulResponseHandler: (0, import_provider_utils7.createJsonResponseHandler)(import_v47.z.any()),
|
|
806
|
+
failedResponseHandler: (0, import_provider_utils7.createJsonErrorResponseHandler)({
|
|
807
|
+
errorSchema: import_v47.z.any(),
|
|
619
808
|
errorToMessage: (data) => data
|
|
620
809
|
}),
|
|
621
810
|
...abortSignal && { abortSignal },
|
|
@@ -634,20 +823,20 @@ var GatewayLanguageModel = class {
|
|
|
634
823
|
async doStream(options) {
|
|
635
824
|
const { args, warnings } = await this.getArgs(options);
|
|
636
825
|
const { abortSignal } = options;
|
|
637
|
-
const resolvedHeaders = await (0,
|
|
826
|
+
const resolvedHeaders = await (0, import_provider_utils7.resolve)(this.config.headers());
|
|
638
827
|
try {
|
|
639
|
-
const { value: response, responseHeaders } = await (0,
|
|
828
|
+
const { value: response, responseHeaders } = await (0, import_provider_utils7.postJsonToApi)({
|
|
640
829
|
url: this.getUrl(),
|
|
641
|
-
headers: (0,
|
|
830
|
+
headers: (0, import_provider_utils7.combineHeaders)(
|
|
642
831
|
resolvedHeaders,
|
|
643
832
|
options.headers,
|
|
644
833
|
this.getModelConfigHeaders(this.modelId, true),
|
|
645
|
-
await (0,
|
|
834
|
+
await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
|
|
646
835
|
),
|
|
647
836
|
body: args,
|
|
648
|
-
successfulResponseHandler: (0,
|
|
649
|
-
failedResponseHandler: (0,
|
|
650
|
-
errorSchema:
|
|
837
|
+
successfulResponseHandler: (0, import_provider_utils7.createEventSourceResponseHandler)(import_v47.z.any()),
|
|
838
|
+
failedResponseHandler: (0, import_provider_utils7.createJsonErrorResponseHandler)({
|
|
839
|
+
errorSchema: import_v47.z.any(),
|
|
651
840
|
errorToMessage: (data) => data
|
|
652
841
|
}),
|
|
653
842
|
...abortSignal && { abortSignal },
|
|
@@ -717,7 +906,7 @@ var GatewayLanguageModel = class {
|
|
|
717
906
|
}
|
|
718
907
|
getModelConfigHeaders(modelId, streaming) {
|
|
719
908
|
return {
|
|
720
|
-
"ai-language-model-specification-version": "
|
|
909
|
+
"ai-language-model-specification-version": "4",
|
|
721
910
|
"ai-language-model-id": modelId,
|
|
722
911
|
"ai-language-model-streaming": String(streaming)
|
|
723
912
|
};
|
|
@@ -725,13 +914,13 @@ var GatewayLanguageModel = class {
|
|
|
725
914
|
};
|
|
726
915
|
|
|
727
916
|
// src/gateway-embedding-model.ts
|
|
728
|
-
var
|
|
729
|
-
var
|
|
917
|
+
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
918
|
+
var import_v48 = require("zod/v4");
|
|
730
919
|
var GatewayEmbeddingModel = class {
|
|
731
920
|
constructor(modelId, config) {
|
|
732
921
|
this.modelId = modelId;
|
|
733
922
|
this.config = config;
|
|
734
|
-
this.specificationVersion = "
|
|
923
|
+
this.specificationVersion = "v4";
|
|
735
924
|
this.maxEmbeddingsPerCall = 2048;
|
|
736
925
|
this.supportsParallelCalls = true;
|
|
737
926
|
}
|
|
@@ -745,29 +934,29 @@ var GatewayEmbeddingModel = class {
|
|
|
745
934
|
providerOptions
|
|
746
935
|
}) {
|
|
747
936
|
var _a9;
|
|
748
|
-
const resolvedHeaders = await (0,
|
|
937
|
+
const resolvedHeaders = await (0, import_provider_utils8.resolve)(this.config.headers());
|
|
749
938
|
try {
|
|
750
939
|
const {
|
|
751
940
|
responseHeaders,
|
|
752
941
|
value: responseBody,
|
|
753
942
|
rawValue
|
|
754
|
-
} = await (0,
|
|
943
|
+
} = await (0, import_provider_utils8.postJsonToApi)({
|
|
755
944
|
url: this.getUrl(),
|
|
756
|
-
headers: (0,
|
|
945
|
+
headers: (0, import_provider_utils8.combineHeaders)(
|
|
757
946
|
resolvedHeaders,
|
|
758
947
|
headers != null ? headers : {},
|
|
759
948
|
this.getModelConfigHeaders(),
|
|
760
|
-
await (0,
|
|
949
|
+
await (0, import_provider_utils8.resolve)(this.config.o11yHeaders)
|
|
761
950
|
),
|
|
762
951
|
body: {
|
|
763
952
|
values,
|
|
764
953
|
...providerOptions ? { providerOptions } : {}
|
|
765
954
|
},
|
|
766
|
-
successfulResponseHandler: (0,
|
|
955
|
+
successfulResponseHandler: (0, import_provider_utils8.createJsonResponseHandler)(
|
|
767
956
|
gatewayEmbeddingResponseSchema
|
|
768
957
|
),
|
|
769
|
-
failedResponseHandler: (0,
|
|
770
|
-
errorSchema:
|
|
958
|
+
failedResponseHandler: (0, import_provider_utils8.createJsonErrorResponseHandler)({
|
|
959
|
+
errorSchema: import_v48.z.any(),
|
|
771
960
|
errorToMessage: (data) => data
|
|
772
961
|
}),
|
|
773
962
|
...abortSignal && { abortSignal },
|
|
@@ -789,29 +978,29 @@ var GatewayEmbeddingModel = class {
|
|
|
789
978
|
}
|
|
790
979
|
getModelConfigHeaders() {
|
|
791
980
|
return {
|
|
792
|
-
"ai-embedding-model-specification-version": "
|
|
981
|
+
"ai-embedding-model-specification-version": "4",
|
|
793
982
|
"ai-model-id": this.modelId
|
|
794
983
|
};
|
|
795
984
|
}
|
|
796
985
|
};
|
|
797
|
-
var gatewayEmbeddingResponseSchema = (0,
|
|
798
|
-
() => (0,
|
|
799
|
-
|
|
800
|
-
embeddings:
|
|
801
|
-
usage:
|
|
802
|
-
providerMetadata:
|
|
986
|
+
var gatewayEmbeddingResponseSchema = (0, import_provider_utils8.lazySchema)(
|
|
987
|
+
() => (0, import_provider_utils8.zodSchema)(
|
|
988
|
+
import_v48.z.object({
|
|
989
|
+
embeddings: import_v48.z.array(import_v48.z.array(import_v48.z.number())),
|
|
990
|
+
usage: import_v48.z.object({ tokens: import_v48.z.number() }).nullish(),
|
|
991
|
+
providerMetadata: import_v48.z.record(import_v48.z.string(), import_v48.z.record(import_v48.z.string(), import_v48.z.unknown())).optional()
|
|
803
992
|
})
|
|
804
993
|
)
|
|
805
994
|
);
|
|
806
995
|
|
|
807
996
|
// src/gateway-image-model.ts
|
|
808
|
-
var
|
|
809
|
-
var
|
|
997
|
+
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
998
|
+
var import_v49 = require("zod/v4");
|
|
810
999
|
var GatewayImageModel = class {
|
|
811
1000
|
constructor(modelId, config) {
|
|
812
1001
|
this.modelId = modelId;
|
|
813
1002
|
this.config = config;
|
|
814
|
-
this.specificationVersion = "
|
|
1003
|
+
this.specificationVersion = "v4";
|
|
815
1004
|
// Set a very large number to prevent client-side splitting of requests
|
|
816
1005
|
this.maxImagesPerCall = Number.MAX_SAFE_INTEGER;
|
|
817
1006
|
}
|
|
@@ -831,19 +1020,19 @@ var GatewayImageModel = class {
|
|
|
831
1020
|
abortSignal
|
|
832
1021
|
}) {
|
|
833
1022
|
var _a9, _b9, _c, _d;
|
|
834
|
-
const resolvedHeaders = await (0,
|
|
1023
|
+
const resolvedHeaders = await (0, import_provider_utils9.resolve)(this.config.headers());
|
|
835
1024
|
try {
|
|
836
1025
|
const {
|
|
837
1026
|
responseHeaders,
|
|
838
1027
|
value: responseBody,
|
|
839
1028
|
rawValue
|
|
840
|
-
} = await (0,
|
|
1029
|
+
} = await (0, import_provider_utils9.postJsonToApi)({
|
|
841
1030
|
url: this.getUrl(),
|
|
842
|
-
headers: (0,
|
|
1031
|
+
headers: (0, import_provider_utils9.combineHeaders)(
|
|
843
1032
|
resolvedHeaders,
|
|
844
1033
|
headers != null ? headers : {},
|
|
845
1034
|
this.getModelConfigHeaders(),
|
|
846
|
-
await (0,
|
|
1035
|
+
await (0, import_provider_utils9.resolve)(this.config.o11yHeaders)
|
|
847
1036
|
),
|
|
848
1037
|
body: {
|
|
849
1038
|
prompt,
|
|
@@ -857,11 +1046,11 @@ var GatewayImageModel = class {
|
|
|
857
1046
|
},
|
|
858
1047
|
...mask && { mask: maybeEncodeImageFile(mask) }
|
|
859
1048
|
},
|
|
860
|
-
successfulResponseHandler: (0,
|
|
1049
|
+
successfulResponseHandler: (0, import_provider_utils9.createJsonResponseHandler)(
|
|
861
1050
|
gatewayImageResponseSchema
|
|
862
1051
|
),
|
|
863
|
-
failedResponseHandler: (0,
|
|
864
|
-
errorSchema:
|
|
1052
|
+
failedResponseHandler: (0, import_provider_utils9.createJsonErrorResponseHandler)({
|
|
1053
|
+
errorSchema: import_v49.z.any(),
|
|
865
1054
|
errorToMessage: (data) => data
|
|
866
1055
|
}),
|
|
867
1056
|
...abortSignal && { abortSignal },
|
|
@@ -894,7 +1083,7 @@ var GatewayImageModel = class {
|
|
|
894
1083
|
}
|
|
895
1084
|
getModelConfigHeaders() {
|
|
896
1085
|
return {
|
|
897
|
-
"ai-image-model-specification-version": "
|
|
1086
|
+
"ai-image-model-specification-version": "4",
|
|
898
1087
|
"ai-model-id": this.modelId
|
|
899
1088
|
};
|
|
900
1089
|
}
|
|
@@ -903,52 +1092,52 @@ function maybeEncodeImageFile(file) {
|
|
|
903
1092
|
if (file.type === "file" && file.data instanceof Uint8Array) {
|
|
904
1093
|
return {
|
|
905
1094
|
...file,
|
|
906
|
-
data: (0,
|
|
1095
|
+
data: (0, import_provider_utils9.convertUint8ArrayToBase64)(file.data)
|
|
907
1096
|
};
|
|
908
1097
|
}
|
|
909
1098
|
return file;
|
|
910
1099
|
}
|
|
911
|
-
var providerMetadataEntrySchema =
|
|
912
|
-
images:
|
|
913
|
-
}).catchall(
|
|
914
|
-
var gatewayImageWarningSchema =
|
|
915
|
-
|
|
916
|
-
type:
|
|
917
|
-
feature:
|
|
918
|
-
details:
|
|
1100
|
+
var providerMetadataEntrySchema = import_v49.z.object({
|
|
1101
|
+
images: import_v49.z.array(import_v49.z.unknown()).optional()
|
|
1102
|
+
}).catchall(import_v49.z.unknown());
|
|
1103
|
+
var gatewayImageWarningSchema = import_v49.z.discriminatedUnion("type", [
|
|
1104
|
+
import_v49.z.object({
|
|
1105
|
+
type: import_v49.z.literal("unsupported"),
|
|
1106
|
+
feature: import_v49.z.string(),
|
|
1107
|
+
details: import_v49.z.string().optional()
|
|
919
1108
|
}),
|
|
920
|
-
|
|
921
|
-
type:
|
|
922
|
-
feature:
|
|
923
|
-
details:
|
|
1109
|
+
import_v49.z.object({
|
|
1110
|
+
type: import_v49.z.literal("compatibility"),
|
|
1111
|
+
feature: import_v49.z.string(),
|
|
1112
|
+
details: import_v49.z.string().optional()
|
|
924
1113
|
}),
|
|
925
|
-
|
|
926
|
-
type:
|
|
927
|
-
message:
|
|
1114
|
+
import_v49.z.object({
|
|
1115
|
+
type: import_v49.z.literal("other"),
|
|
1116
|
+
message: import_v49.z.string()
|
|
928
1117
|
})
|
|
929
1118
|
]);
|
|
930
|
-
var gatewayImageUsageSchema =
|
|
931
|
-
inputTokens:
|
|
932
|
-
outputTokens:
|
|
933
|
-
totalTokens:
|
|
1119
|
+
var gatewayImageUsageSchema = import_v49.z.object({
|
|
1120
|
+
inputTokens: import_v49.z.number().nullish(),
|
|
1121
|
+
outputTokens: import_v49.z.number().nullish(),
|
|
1122
|
+
totalTokens: import_v49.z.number().nullish()
|
|
934
1123
|
});
|
|
935
|
-
var gatewayImageResponseSchema =
|
|
936
|
-
images:
|
|
1124
|
+
var gatewayImageResponseSchema = import_v49.z.object({
|
|
1125
|
+
images: import_v49.z.array(import_v49.z.string()),
|
|
937
1126
|
// Always base64 strings over the wire
|
|
938
|
-
warnings:
|
|
939
|
-
providerMetadata:
|
|
1127
|
+
warnings: import_v49.z.array(gatewayImageWarningSchema).optional(),
|
|
1128
|
+
providerMetadata: import_v49.z.record(import_v49.z.string(), providerMetadataEntrySchema).optional(),
|
|
940
1129
|
usage: gatewayImageUsageSchema.optional()
|
|
941
1130
|
});
|
|
942
1131
|
|
|
943
1132
|
// src/gateway-video-model.ts
|
|
944
1133
|
var import_provider2 = require("@ai-sdk/provider");
|
|
945
|
-
var
|
|
946
|
-
var
|
|
1134
|
+
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
|
1135
|
+
var import_v410 = require("zod/v4");
|
|
947
1136
|
var GatewayVideoModel = class {
|
|
948
1137
|
constructor(modelId, config) {
|
|
949
1138
|
this.modelId = modelId;
|
|
950
1139
|
this.config = config;
|
|
951
|
-
this.specificationVersion = "
|
|
1140
|
+
this.specificationVersion = "v4";
|
|
952
1141
|
// Set a very large number to prevent client-side splitting of requests
|
|
953
1142
|
this.maxVideosPerCall = Number.MAX_SAFE_INTEGER;
|
|
954
1143
|
}
|
|
@@ -969,15 +1158,15 @@ var GatewayVideoModel = class {
|
|
|
969
1158
|
abortSignal
|
|
970
1159
|
}) {
|
|
971
1160
|
var _a9;
|
|
972
|
-
const resolvedHeaders = await (0,
|
|
1161
|
+
const resolvedHeaders = await (0, import_provider_utils10.resolve)(this.config.headers());
|
|
973
1162
|
try {
|
|
974
|
-
const { responseHeaders, value: responseBody } = await (0,
|
|
1163
|
+
const { responseHeaders, value: responseBody } = await (0, import_provider_utils10.postJsonToApi)({
|
|
975
1164
|
url: this.getUrl(),
|
|
976
|
-
headers: (0,
|
|
1165
|
+
headers: (0, import_provider_utils10.combineHeaders)(
|
|
977
1166
|
resolvedHeaders,
|
|
978
1167
|
headers != null ? headers : {},
|
|
979
1168
|
this.getModelConfigHeaders(),
|
|
980
|
-
await (0,
|
|
1169
|
+
await (0, import_provider_utils10.resolve)(this.config.o11yHeaders),
|
|
981
1170
|
{ accept: "text/event-stream" }
|
|
982
1171
|
),
|
|
983
1172
|
body: {
|
|
@@ -1004,7 +1193,7 @@ var GatewayVideoModel = class {
|
|
|
1004
1193
|
statusCode: response.status
|
|
1005
1194
|
});
|
|
1006
1195
|
}
|
|
1007
|
-
const eventStream = (0,
|
|
1196
|
+
const eventStream = (0, import_provider_utils10.parseJsonEventStream)({
|
|
1008
1197
|
stream: response.body,
|
|
1009
1198
|
schema: gatewayVideoEventSchema
|
|
1010
1199
|
});
|
|
@@ -1055,8 +1244,8 @@ var GatewayVideoModel = class {
|
|
|
1055
1244
|
responseHeaders: Object.fromEntries([...response.headers])
|
|
1056
1245
|
};
|
|
1057
1246
|
},
|
|
1058
|
-
failedResponseHandler: (0,
|
|
1059
|
-
errorSchema:
|
|
1247
|
+
failedResponseHandler: (0, import_provider_utils10.createJsonErrorResponseHandler)({
|
|
1248
|
+
errorSchema: import_v410.z.any(),
|
|
1060
1249
|
errorToMessage: (data) => data
|
|
1061
1250
|
}),
|
|
1062
1251
|
...abortSignal && { abortSignal },
|
|
@@ -1081,7 +1270,7 @@ var GatewayVideoModel = class {
|
|
|
1081
1270
|
}
|
|
1082
1271
|
getModelConfigHeaders() {
|
|
1083
1272
|
return {
|
|
1084
|
-
"ai-video-model-specification-version": "
|
|
1273
|
+
"ai-video-model-specification-version": "4",
|
|
1085
1274
|
"ai-model-id": this.modelId
|
|
1086
1275
|
};
|
|
1087
1276
|
}
|
|
@@ -1090,63 +1279,147 @@ function maybeEncodeVideoFile(file) {
|
|
|
1090
1279
|
if (file.type === "file" && file.data instanceof Uint8Array) {
|
|
1091
1280
|
return {
|
|
1092
1281
|
...file,
|
|
1093
|
-
data: (0,
|
|
1282
|
+
data: (0, import_provider_utils10.convertUint8ArrayToBase64)(file.data)
|
|
1094
1283
|
};
|
|
1095
1284
|
}
|
|
1096
1285
|
return file;
|
|
1097
1286
|
}
|
|
1098
|
-
var providerMetadataEntrySchema2 =
|
|
1099
|
-
videos:
|
|
1100
|
-
}).catchall(
|
|
1101
|
-
var gatewayVideoDataSchema =
|
|
1102
|
-
|
|
1103
|
-
type:
|
|
1104
|
-
url:
|
|
1105
|
-
mediaType:
|
|
1287
|
+
var providerMetadataEntrySchema2 = import_v410.z.object({
|
|
1288
|
+
videos: import_v410.z.array(import_v410.z.unknown()).optional()
|
|
1289
|
+
}).catchall(import_v410.z.unknown());
|
|
1290
|
+
var gatewayVideoDataSchema = import_v410.z.union([
|
|
1291
|
+
import_v410.z.object({
|
|
1292
|
+
type: import_v410.z.literal("url"),
|
|
1293
|
+
url: import_v410.z.string(),
|
|
1294
|
+
mediaType: import_v410.z.string()
|
|
1106
1295
|
}),
|
|
1107
|
-
|
|
1108
|
-
type:
|
|
1109
|
-
data:
|
|
1110
|
-
mediaType:
|
|
1296
|
+
import_v410.z.object({
|
|
1297
|
+
type: import_v410.z.literal("base64"),
|
|
1298
|
+
data: import_v410.z.string(),
|
|
1299
|
+
mediaType: import_v410.z.string()
|
|
1111
1300
|
})
|
|
1112
1301
|
]);
|
|
1113
|
-
var gatewayVideoWarningSchema =
|
|
1114
|
-
|
|
1115
|
-
type:
|
|
1116
|
-
feature:
|
|
1117
|
-
details:
|
|
1302
|
+
var gatewayVideoWarningSchema = import_v410.z.discriminatedUnion("type", [
|
|
1303
|
+
import_v410.z.object({
|
|
1304
|
+
type: import_v410.z.literal("unsupported"),
|
|
1305
|
+
feature: import_v410.z.string(),
|
|
1306
|
+
details: import_v410.z.string().optional()
|
|
1118
1307
|
}),
|
|
1119
|
-
|
|
1120
|
-
type:
|
|
1121
|
-
feature:
|
|
1122
|
-
details:
|
|
1308
|
+
import_v410.z.object({
|
|
1309
|
+
type: import_v410.z.literal("compatibility"),
|
|
1310
|
+
feature: import_v410.z.string(),
|
|
1311
|
+
details: import_v410.z.string().optional()
|
|
1123
1312
|
}),
|
|
1124
|
-
|
|
1125
|
-
type:
|
|
1126
|
-
message:
|
|
1313
|
+
import_v410.z.object({
|
|
1314
|
+
type: import_v410.z.literal("other"),
|
|
1315
|
+
message: import_v410.z.string()
|
|
1127
1316
|
})
|
|
1128
1317
|
]);
|
|
1129
|
-
var gatewayVideoEventSchema =
|
|
1130
|
-
|
|
1131
|
-
type:
|
|
1132
|
-
videos:
|
|
1133
|
-
warnings:
|
|
1134
|
-
providerMetadata:
|
|
1318
|
+
var gatewayVideoEventSchema = import_v410.z.discriminatedUnion("type", [
|
|
1319
|
+
import_v410.z.object({
|
|
1320
|
+
type: import_v410.z.literal("result"),
|
|
1321
|
+
videos: import_v410.z.array(gatewayVideoDataSchema),
|
|
1322
|
+
warnings: import_v410.z.array(gatewayVideoWarningSchema).optional(),
|
|
1323
|
+
providerMetadata: import_v410.z.record(import_v410.z.string(), providerMetadataEntrySchema2).optional()
|
|
1135
1324
|
}),
|
|
1136
|
-
|
|
1137
|
-
type:
|
|
1138
|
-
message:
|
|
1139
|
-
errorType:
|
|
1140
|
-
statusCode:
|
|
1141
|
-
param:
|
|
1325
|
+
import_v410.z.object({
|
|
1326
|
+
type: import_v410.z.literal("error"),
|
|
1327
|
+
message: import_v410.z.string(),
|
|
1328
|
+
errorType: import_v410.z.string(),
|
|
1329
|
+
statusCode: import_v410.z.number(),
|
|
1330
|
+
param: import_v410.z.unknown().nullable()
|
|
1142
1331
|
})
|
|
1143
1332
|
]);
|
|
1144
1333
|
|
|
1334
|
+
// src/gateway-reranking-model.ts
|
|
1335
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
1336
|
+
var import_v411 = require("zod/v4");
|
|
1337
|
+
var GatewayRerankingModel = class {
|
|
1338
|
+
constructor(modelId, config) {
|
|
1339
|
+
this.modelId = modelId;
|
|
1340
|
+
this.config = config;
|
|
1341
|
+
this.specificationVersion = "v4";
|
|
1342
|
+
}
|
|
1343
|
+
get provider() {
|
|
1344
|
+
return this.config.provider;
|
|
1345
|
+
}
|
|
1346
|
+
async doRerank({
|
|
1347
|
+
documents,
|
|
1348
|
+
query,
|
|
1349
|
+
topN,
|
|
1350
|
+
headers,
|
|
1351
|
+
abortSignal,
|
|
1352
|
+
providerOptions
|
|
1353
|
+
}) {
|
|
1354
|
+
const resolvedHeaders = await (0, import_provider_utils11.resolve)(this.config.headers());
|
|
1355
|
+
try {
|
|
1356
|
+
const {
|
|
1357
|
+
responseHeaders,
|
|
1358
|
+
value: responseBody,
|
|
1359
|
+
rawValue
|
|
1360
|
+
} = await (0, import_provider_utils11.postJsonToApi)({
|
|
1361
|
+
url: this.getUrl(),
|
|
1362
|
+
headers: (0, import_provider_utils11.combineHeaders)(
|
|
1363
|
+
resolvedHeaders,
|
|
1364
|
+
headers != null ? headers : {},
|
|
1365
|
+
this.getModelConfigHeaders(),
|
|
1366
|
+
await (0, import_provider_utils11.resolve)(this.config.o11yHeaders)
|
|
1367
|
+
),
|
|
1368
|
+
body: {
|
|
1369
|
+
documents,
|
|
1370
|
+
query,
|
|
1371
|
+
...topN != null ? { topN } : {},
|
|
1372
|
+
...providerOptions ? { providerOptions } : {}
|
|
1373
|
+
},
|
|
1374
|
+
successfulResponseHandler: (0, import_provider_utils11.createJsonResponseHandler)(
|
|
1375
|
+
gatewayRerankingResponseSchema
|
|
1376
|
+
),
|
|
1377
|
+
failedResponseHandler: (0, import_provider_utils11.createJsonErrorResponseHandler)({
|
|
1378
|
+
errorSchema: import_v411.z.any(),
|
|
1379
|
+
errorToMessage: (data) => data
|
|
1380
|
+
}),
|
|
1381
|
+
...abortSignal && { abortSignal },
|
|
1382
|
+
fetch: this.config.fetch
|
|
1383
|
+
});
|
|
1384
|
+
return {
|
|
1385
|
+
ranking: responseBody.ranking,
|
|
1386
|
+
providerMetadata: responseBody.providerMetadata,
|
|
1387
|
+
response: { headers: responseHeaders, body: rawValue },
|
|
1388
|
+
warnings: []
|
|
1389
|
+
};
|
|
1390
|
+
} catch (error) {
|
|
1391
|
+
throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
getUrl() {
|
|
1395
|
+
return `${this.config.baseURL}/reranking-model`;
|
|
1396
|
+
}
|
|
1397
|
+
getModelConfigHeaders() {
|
|
1398
|
+
return {
|
|
1399
|
+
"ai-reranking-model-specification-version": "4",
|
|
1400
|
+
"ai-model-id": this.modelId
|
|
1401
|
+
};
|
|
1402
|
+
}
|
|
1403
|
+
};
|
|
1404
|
+
var gatewayRerankingResponseSchema = (0, import_provider_utils11.lazySchema)(
|
|
1405
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1406
|
+
import_v411.z.object({
|
|
1407
|
+
ranking: import_v411.z.array(
|
|
1408
|
+
import_v411.z.object({
|
|
1409
|
+
index: import_v411.z.number(),
|
|
1410
|
+
relevanceScore: import_v411.z.number()
|
|
1411
|
+
})
|
|
1412
|
+
),
|
|
1413
|
+
providerMetadata: import_v411.z.record(import_v411.z.string(), import_v411.z.record(import_v411.z.string(), import_v411.z.unknown())).optional()
|
|
1414
|
+
})
|
|
1415
|
+
)
|
|
1416
|
+
);
|
|
1417
|
+
|
|
1145
1418
|
// src/tool/parallel-search.ts
|
|
1146
|
-
var
|
|
1419
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
1147
1420
|
var import_zod = require("zod");
|
|
1148
|
-
var parallelSearchInputSchema = (0,
|
|
1149
|
-
() => (0,
|
|
1421
|
+
var parallelSearchInputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1422
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1150
1423
|
import_zod.z.object({
|
|
1151
1424
|
objective: import_zod.z.string().describe(
|
|
1152
1425
|
"Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."
|
|
@@ -1181,8 +1454,8 @@ var parallelSearchInputSchema = (0, import_provider_utils9.lazySchema)(
|
|
|
1181
1454
|
})
|
|
1182
1455
|
)
|
|
1183
1456
|
);
|
|
1184
|
-
var parallelSearchOutputSchema = (0,
|
|
1185
|
-
() => (0,
|
|
1457
|
+
var parallelSearchOutputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1458
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1186
1459
|
import_zod.z.union([
|
|
1187
1460
|
// Success response
|
|
1188
1461
|
import_zod.z.object({
|
|
@@ -1213,7 +1486,7 @@ var parallelSearchOutputSchema = (0, import_provider_utils9.lazySchema)(
|
|
|
1213
1486
|
])
|
|
1214
1487
|
)
|
|
1215
1488
|
);
|
|
1216
|
-
var parallelSearchToolFactory = (0,
|
|
1489
|
+
var parallelSearchToolFactory = (0, import_provider_utils12.createProviderToolFactoryWithOutputSchema)({
|
|
1217
1490
|
id: "gateway.parallel_search",
|
|
1218
1491
|
inputSchema: parallelSearchInputSchema,
|
|
1219
1492
|
outputSchema: parallelSearchOutputSchema
|
|
@@ -1221,10 +1494,10 @@ var parallelSearchToolFactory = (0, import_provider_utils9.createProviderToolFac
|
|
|
1221
1494
|
var parallelSearch = (config = {}) => parallelSearchToolFactory(config);
|
|
1222
1495
|
|
|
1223
1496
|
// src/tool/perplexity-search.ts
|
|
1224
|
-
var
|
|
1497
|
+
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
|
1225
1498
|
var import_zod2 = require("zod");
|
|
1226
|
-
var perplexitySearchInputSchema = (0,
|
|
1227
|
-
() => (0,
|
|
1499
|
+
var perplexitySearchInputSchema = (0, import_provider_utils13.lazySchema)(
|
|
1500
|
+
() => (0, import_provider_utils13.zodSchema)(
|
|
1228
1501
|
import_zod2.z.object({
|
|
1229
1502
|
query: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.array(import_zod2.z.string())]).describe(
|
|
1230
1503
|
"Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."
|
|
@@ -1265,8 +1538,8 @@ var perplexitySearchInputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1265
1538
|
})
|
|
1266
1539
|
)
|
|
1267
1540
|
);
|
|
1268
|
-
var perplexitySearchOutputSchema = (0,
|
|
1269
|
-
() => (0,
|
|
1541
|
+
var perplexitySearchOutputSchema = (0, import_provider_utils13.lazySchema)(
|
|
1542
|
+
() => (0, import_provider_utils13.zodSchema)(
|
|
1270
1543
|
import_zod2.z.union([
|
|
1271
1544
|
// Success response
|
|
1272
1545
|
import_zod2.z.object({
|
|
@@ -1296,7 +1569,7 @@ var perplexitySearchOutputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1296
1569
|
])
|
|
1297
1570
|
)
|
|
1298
1571
|
);
|
|
1299
|
-
var perplexitySearchToolFactory = (0,
|
|
1572
|
+
var perplexitySearchToolFactory = (0, import_provider_utils13.createProviderToolFactoryWithOutputSchema)({
|
|
1300
1573
|
id: "gateway.perplexity_search",
|
|
1301
1574
|
inputSchema: perplexitySearchInputSchema,
|
|
1302
1575
|
outputSchema: perplexitySearchOutputSchema
|
|
@@ -1333,10 +1606,10 @@ async function getVercelRequestId() {
|
|
|
1333
1606
|
}
|
|
1334
1607
|
|
|
1335
1608
|
// src/gateway-provider.ts
|
|
1336
|
-
var
|
|
1609
|
+
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
|
1337
1610
|
|
|
1338
1611
|
// src/version.ts
|
|
1339
|
-
var VERSION = true ? "4.0.0-beta.
|
|
1612
|
+
var VERSION = true ? "4.0.0-beta.41" : "0.0.0-test";
|
|
1340
1613
|
|
|
1341
1614
|
// src/gateway-provider.ts
|
|
1342
1615
|
var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
|
|
@@ -1346,11 +1619,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1346
1619
|
let metadataCache = null;
|
|
1347
1620
|
const cacheRefreshMillis = (_a9 = options.metadataCacheRefreshMillis) != null ? _a9 : 1e3 * 60 * 5;
|
|
1348
1621
|
let lastFetchTime = 0;
|
|
1349
|
-
const baseURL = (_b9 = (0,
|
|
1622
|
+
const baseURL = (_b9 = (0, import_provider_utils14.withoutTrailingSlash)(options.baseURL)) != null ? _b9 : "https://ai-gateway.vercel.sh/v3/ai";
|
|
1350
1623
|
const getHeaders = async () => {
|
|
1351
1624
|
try {
|
|
1352
1625
|
const auth = await getGatewayAuthToken(options);
|
|
1353
|
-
return (0,
|
|
1626
|
+
return (0, import_provider_utils15.withUserAgentSuffix)(
|
|
1354
1627
|
{
|
|
1355
1628
|
Authorization: `Bearer ${auth.token}`,
|
|
1356
1629
|
"ai-gateway-protocol-version": AI_GATEWAY_PROTOCOL_VERSION,
|
|
@@ -1369,19 +1642,19 @@ function createGatewayProvider(options = {}) {
|
|
|
1369
1642
|
}
|
|
1370
1643
|
};
|
|
1371
1644
|
const createO11yHeaders = () => {
|
|
1372
|
-
const deploymentId = (0,
|
|
1645
|
+
const deploymentId = (0, import_provider_utils14.loadOptionalSetting)({
|
|
1373
1646
|
settingValue: void 0,
|
|
1374
1647
|
environmentVariableName: "VERCEL_DEPLOYMENT_ID"
|
|
1375
1648
|
});
|
|
1376
|
-
const environment = (0,
|
|
1649
|
+
const environment = (0, import_provider_utils14.loadOptionalSetting)({
|
|
1377
1650
|
settingValue: void 0,
|
|
1378
1651
|
environmentVariableName: "VERCEL_ENV"
|
|
1379
1652
|
});
|
|
1380
|
-
const region = (0,
|
|
1653
|
+
const region = (0, import_provider_utils14.loadOptionalSetting)({
|
|
1381
1654
|
settingValue: void 0,
|
|
1382
1655
|
environmentVariableName: "VERCEL_REGION"
|
|
1383
1656
|
});
|
|
1384
|
-
const projectId = (0,
|
|
1657
|
+
const projectId = (0, import_provider_utils14.loadOptionalSetting)({
|
|
1385
1658
|
settingValue: void 0,
|
|
1386
1659
|
environmentVariableName: "VERCEL_PROJECT_ID"
|
|
1387
1660
|
});
|
|
@@ -1438,6 +1711,30 @@ function createGatewayProvider(options = {}) {
|
|
|
1438
1711
|
);
|
|
1439
1712
|
});
|
|
1440
1713
|
};
|
|
1714
|
+
const getSpendReport = async (params) => {
|
|
1715
|
+
return new GatewaySpendReport({
|
|
1716
|
+
baseURL,
|
|
1717
|
+
headers: getHeaders,
|
|
1718
|
+
fetch: options.fetch
|
|
1719
|
+
}).getSpendReport(params).catch(async (error) => {
|
|
1720
|
+
throw await asGatewayError(
|
|
1721
|
+
error,
|
|
1722
|
+
await parseAuthMethod(await getHeaders())
|
|
1723
|
+
);
|
|
1724
|
+
});
|
|
1725
|
+
};
|
|
1726
|
+
const getGenerationInfo = async (params) => {
|
|
1727
|
+
return new GatewayGenerationInfoFetcher({
|
|
1728
|
+
baseURL,
|
|
1729
|
+
headers: getHeaders,
|
|
1730
|
+
fetch: options.fetch
|
|
1731
|
+
}).getGenerationInfo(params).catch(async (error) => {
|
|
1732
|
+
throw await asGatewayError(
|
|
1733
|
+
error,
|
|
1734
|
+
await parseAuthMethod(await getHeaders())
|
|
1735
|
+
);
|
|
1736
|
+
});
|
|
1737
|
+
};
|
|
1441
1738
|
const provider = function(modelId) {
|
|
1442
1739
|
if (new.target) {
|
|
1443
1740
|
throw new Error(
|
|
@@ -1446,9 +1743,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1446
1743
|
}
|
|
1447
1744
|
return createLanguageModel(modelId);
|
|
1448
1745
|
};
|
|
1449
|
-
provider.specificationVersion = "
|
|
1746
|
+
provider.specificationVersion = "v4";
|
|
1450
1747
|
provider.getAvailableModels = getAvailableModels;
|
|
1451
1748
|
provider.getCredits = getCredits;
|
|
1749
|
+
provider.getSpendReport = getSpendReport;
|
|
1750
|
+
provider.getGenerationInfo = getGenerationInfo;
|
|
1452
1751
|
provider.imageModel = (modelId) => {
|
|
1453
1752
|
return new GatewayImageModel(modelId, {
|
|
1454
1753
|
provider: "gateway",
|
|
@@ -1479,6 +1778,17 @@ function createGatewayProvider(options = {}) {
|
|
|
1479
1778
|
o11yHeaders: createO11yHeaders()
|
|
1480
1779
|
});
|
|
1481
1780
|
};
|
|
1781
|
+
const createRerankingModel = (modelId) => {
|
|
1782
|
+
return new GatewayRerankingModel(modelId, {
|
|
1783
|
+
provider: "gateway",
|
|
1784
|
+
baseURL,
|
|
1785
|
+
headers: getHeaders,
|
|
1786
|
+
fetch: options.fetch,
|
|
1787
|
+
o11yHeaders: createO11yHeaders()
|
|
1788
|
+
});
|
|
1789
|
+
};
|
|
1790
|
+
provider.rerankingModel = createRerankingModel;
|
|
1791
|
+
provider.reranking = createRerankingModel;
|
|
1482
1792
|
provider.chat = provider.languageModel;
|
|
1483
1793
|
provider.embedding = provider.embeddingModel;
|
|
1484
1794
|
provider.image = provider.imageModel;
|
|
@@ -1488,7 +1798,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1488
1798
|
}
|
|
1489
1799
|
var gateway = createGatewayProvider();
|
|
1490
1800
|
async function getGatewayAuthToken(options) {
|
|
1491
|
-
const apiKey = (0,
|
|
1801
|
+
const apiKey = (0, import_provider_utils14.loadOptionalSetting)({
|
|
1492
1802
|
settingValue: options.apiKey,
|
|
1493
1803
|
environmentVariableName: "AI_GATEWAY_API_KEY"
|
|
1494
1804
|
});
|