@ai-sdk/gateway 4.0.0-beta.3 → 4.0.0-beta.31
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 +189 -4
- package/dist/index.d.mts +131 -21
- package/dist/index.d.ts +131 -21
- package/dist/index.js +359 -144
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +415 -186
- package/dist/index.mjs.map +1 -1
- package/docs/00-ai-gateway.mdx +219 -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 +18 -6
- package/src/gateway-language-model.ts +19 -19
- package/src/gateway-model-entry.ts +2 -2
- package/src/gateway-provider-options.ts +8 -4
- package/src/gateway-provider.ts +75 -17
- package/src/gateway-spend-report.ts +191 -0
- package/src/gateway-video-model.ts +15 -15
- package/src/index.ts +12 -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_utils13 = 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,63 @@ 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
|
|
|
1145
1334
|
// src/tool/parallel-search.ts
|
|
1146
|
-
var
|
|
1335
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
1147
1336
|
var import_zod = require("zod");
|
|
1148
|
-
var parallelSearchInputSchema = (0,
|
|
1149
|
-
() => (0,
|
|
1337
|
+
var parallelSearchInputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1338
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1150
1339
|
import_zod.z.object({
|
|
1151
1340
|
objective: import_zod.z.string().describe(
|
|
1152
1341
|
"Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."
|
|
@@ -1181,8 +1370,8 @@ var parallelSearchInputSchema = (0, import_provider_utils9.lazySchema)(
|
|
|
1181
1370
|
})
|
|
1182
1371
|
)
|
|
1183
1372
|
);
|
|
1184
|
-
var parallelSearchOutputSchema = (0,
|
|
1185
|
-
() => (0,
|
|
1373
|
+
var parallelSearchOutputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1374
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1186
1375
|
import_zod.z.union([
|
|
1187
1376
|
// Success response
|
|
1188
1377
|
import_zod.z.object({
|
|
@@ -1213,7 +1402,7 @@ var parallelSearchOutputSchema = (0, import_provider_utils9.lazySchema)(
|
|
|
1213
1402
|
])
|
|
1214
1403
|
)
|
|
1215
1404
|
);
|
|
1216
|
-
var parallelSearchToolFactory = (0,
|
|
1405
|
+
var parallelSearchToolFactory = (0, import_provider_utils11.createProviderToolFactoryWithOutputSchema)({
|
|
1217
1406
|
id: "gateway.parallel_search",
|
|
1218
1407
|
inputSchema: parallelSearchInputSchema,
|
|
1219
1408
|
outputSchema: parallelSearchOutputSchema
|
|
@@ -1221,10 +1410,10 @@ var parallelSearchToolFactory = (0, import_provider_utils9.createProviderToolFac
|
|
|
1221
1410
|
var parallelSearch = (config = {}) => parallelSearchToolFactory(config);
|
|
1222
1411
|
|
|
1223
1412
|
// src/tool/perplexity-search.ts
|
|
1224
|
-
var
|
|
1413
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
1225
1414
|
var import_zod2 = require("zod");
|
|
1226
|
-
var perplexitySearchInputSchema = (0,
|
|
1227
|
-
() => (0,
|
|
1415
|
+
var perplexitySearchInputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1416
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1228
1417
|
import_zod2.z.object({
|
|
1229
1418
|
query: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.array(import_zod2.z.string())]).describe(
|
|
1230
1419
|
"Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."
|
|
@@ -1265,8 +1454,8 @@ var perplexitySearchInputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1265
1454
|
})
|
|
1266
1455
|
)
|
|
1267
1456
|
);
|
|
1268
|
-
var perplexitySearchOutputSchema = (0,
|
|
1269
|
-
() => (0,
|
|
1457
|
+
var perplexitySearchOutputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1458
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1270
1459
|
import_zod2.z.union([
|
|
1271
1460
|
// Success response
|
|
1272
1461
|
import_zod2.z.object({
|
|
@@ -1296,7 +1485,7 @@ var perplexitySearchOutputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1296
1485
|
])
|
|
1297
1486
|
)
|
|
1298
1487
|
);
|
|
1299
|
-
var perplexitySearchToolFactory = (0,
|
|
1488
|
+
var perplexitySearchToolFactory = (0, import_provider_utils12.createProviderToolFactoryWithOutputSchema)({
|
|
1300
1489
|
id: "gateway.perplexity_search",
|
|
1301
1490
|
inputSchema: perplexitySearchInputSchema,
|
|
1302
1491
|
outputSchema: perplexitySearchOutputSchema
|
|
@@ -1333,10 +1522,10 @@ async function getVercelRequestId() {
|
|
|
1333
1522
|
}
|
|
1334
1523
|
|
|
1335
1524
|
// src/gateway-provider.ts
|
|
1336
|
-
var
|
|
1525
|
+
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
1337
1526
|
|
|
1338
1527
|
// src/version.ts
|
|
1339
|
-
var VERSION = true ? "4.0.0-beta.
|
|
1528
|
+
var VERSION = true ? "4.0.0-beta.31" : "0.0.0-test";
|
|
1340
1529
|
|
|
1341
1530
|
// src/gateway-provider.ts
|
|
1342
1531
|
var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
|
|
@@ -1346,11 +1535,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1346
1535
|
let metadataCache = null;
|
|
1347
1536
|
const cacheRefreshMillis = (_a9 = options.metadataCacheRefreshMillis) != null ? _a9 : 1e3 * 60 * 5;
|
|
1348
1537
|
let lastFetchTime = 0;
|
|
1349
|
-
const baseURL = (_b9 = (0,
|
|
1538
|
+
const baseURL = (_b9 = (0, import_provider_utils13.withoutTrailingSlash)(options.baseURL)) != null ? _b9 : "https://ai-gateway.vercel.sh/v3/ai";
|
|
1350
1539
|
const getHeaders = async () => {
|
|
1351
1540
|
try {
|
|
1352
1541
|
const auth = await getGatewayAuthToken(options);
|
|
1353
|
-
return (0,
|
|
1542
|
+
return (0, import_provider_utils14.withUserAgentSuffix)(
|
|
1354
1543
|
{
|
|
1355
1544
|
Authorization: `Bearer ${auth.token}`,
|
|
1356
1545
|
"ai-gateway-protocol-version": AI_GATEWAY_PROTOCOL_VERSION,
|
|
@@ -1369,19 +1558,19 @@ function createGatewayProvider(options = {}) {
|
|
|
1369
1558
|
}
|
|
1370
1559
|
};
|
|
1371
1560
|
const createO11yHeaders = () => {
|
|
1372
|
-
const deploymentId = (0,
|
|
1561
|
+
const deploymentId = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1373
1562
|
settingValue: void 0,
|
|
1374
1563
|
environmentVariableName: "VERCEL_DEPLOYMENT_ID"
|
|
1375
1564
|
});
|
|
1376
|
-
const environment = (0,
|
|
1565
|
+
const environment = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1377
1566
|
settingValue: void 0,
|
|
1378
1567
|
environmentVariableName: "VERCEL_ENV"
|
|
1379
1568
|
});
|
|
1380
|
-
const region = (0,
|
|
1569
|
+
const region = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1381
1570
|
settingValue: void 0,
|
|
1382
1571
|
environmentVariableName: "VERCEL_REGION"
|
|
1383
1572
|
});
|
|
1384
|
-
const projectId = (0,
|
|
1573
|
+
const projectId = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1385
1574
|
settingValue: void 0,
|
|
1386
1575
|
environmentVariableName: "VERCEL_PROJECT_ID"
|
|
1387
1576
|
});
|
|
@@ -1438,6 +1627,30 @@ function createGatewayProvider(options = {}) {
|
|
|
1438
1627
|
);
|
|
1439
1628
|
});
|
|
1440
1629
|
};
|
|
1630
|
+
const getSpendReport = async (params) => {
|
|
1631
|
+
return new GatewaySpendReport({
|
|
1632
|
+
baseURL,
|
|
1633
|
+
headers: getHeaders,
|
|
1634
|
+
fetch: options.fetch
|
|
1635
|
+
}).getSpendReport(params).catch(async (error) => {
|
|
1636
|
+
throw await asGatewayError(
|
|
1637
|
+
error,
|
|
1638
|
+
await parseAuthMethod(await getHeaders())
|
|
1639
|
+
);
|
|
1640
|
+
});
|
|
1641
|
+
};
|
|
1642
|
+
const getGenerationInfo = async (params) => {
|
|
1643
|
+
return new GatewayGenerationInfoFetcher({
|
|
1644
|
+
baseURL,
|
|
1645
|
+
headers: getHeaders,
|
|
1646
|
+
fetch: options.fetch
|
|
1647
|
+
}).getGenerationInfo(params).catch(async (error) => {
|
|
1648
|
+
throw await asGatewayError(
|
|
1649
|
+
error,
|
|
1650
|
+
await parseAuthMethod(await getHeaders())
|
|
1651
|
+
);
|
|
1652
|
+
});
|
|
1653
|
+
};
|
|
1441
1654
|
const provider = function(modelId) {
|
|
1442
1655
|
if (new.target) {
|
|
1443
1656
|
throw new Error(
|
|
@@ -1446,9 +1659,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1446
1659
|
}
|
|
1447
1660
|
return createLanguageModel(modelId);
|
|
1448
1661
|
};
|
|
1449
|
-
provider.specificationVersion = "
|
|
1662
|
+
provider.specificationVersion = "v4";
|
|
1450
1663
|
provider.getAvailableModels = getAvailableModels;
|
|
1451
1664
|
provider.getCredits = getCredits;
|
|
1665
|
+
provider.getSpendReport = getSpendReport;
|
|
1666
|
+
provider.getGenerationInfo = getGenerationInfo;
|
|
1452
1667
|
provider.imageModel = (modelId) => {
|
|
1453
1668
|
return new GatewayImageModel(modelId, {
|
|
1454
1669
|
provider: "gateway",
|
|
@@ -1488,7 +1703,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1488
1703
|
}
|
|
1489
1704
|
var gateway = createGatewayProvider();
|
|
1490
1705
|
async function getGatewayAuthToken(options) {
|
|
1491
|
-
const apiKey = (0,
|
|
1706
|
+
const apiKey = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1492
1707
|
settingValue: options.apiKey,
|
|
1493
1708
|
environmentVariableName: "AI_GATEWAY_API_KEY"
|
|
1494
1709
|
});
|