@ai-sdk/gateway 4.0.0-beta.22 → 4.0.0-beta.24
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 +12 -0
- package/dist/index.d.mts +64 -3
- package/dist/index.d.ts +64 -3
- package/dist/index.js +246 -131
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +298 -176
- package/dist/index.mjs.map +1 -1
- package/docs/00-ai-gateway.mdx +87 -14
- package/package.json +1 -1
- package/src/gateway-provider-options.ts +2 -4
- package/src/gateway-provider.ts +29 -0
- package/src/gateway-spend-report.ts +191 -0
- package/src/index.ts +8 -3
package/dist/index.js
CHANGED
|
@@ -34,7 +34,7 @@ __export(index_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(index_exports);
|
|
35
35
|
|
|
36
36
|
// src/gateway-provider.ts
|
|
37
|
-
var
|
|
37
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
38
38
|
|
|
39
39
|
// src/errors/as-gateway-error.ts
|
|
40
40
|
var import_provider = require("@ai-sdk/provider");
|
|
@@ -575,9 +575,111 @@ 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-language-model.ts
|
|
681
|
+
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
682
|
+
var import_v46 = require("zod/v4");
|
|
581
683
|
var GatewayLanguageModel = class {
|
|
582
684
|
constructor(modelId, config) {
|
|
583
685
|
this.modelId = modelId;
|
|
@@ -598,24 +700,24 @@ var GatewayLanguageModel = class {
|
|
|
598
700
|
async doGenerate(options) {
|
|
599
701
|
const { args, warnings } = await this.getArgs(options);
|
|
600
702
|
const { abortSignal } = options;
|
|
601
|
-
const resolvedHeaders = await (0,
|
|
703
|
+
const resolvedHeaders = await (0, import_provider_utils6.resolve)(this.config.headers());
|
|
602
704
|
try {
|
|
603
705
|
const {
|
|
604
706
|
responseHeaders,
|
|
605
707
|
value: responseBody,
|
|
606
708
|
rawValue: rawResponse
|
|
607
|
-
} = await (0,
|
|
709
|
+
} = await (0, import_provider_utils6.postJsonToApi)({
|
|
608
710
|
url: this.getUrl(),
|
|
609
|
-
headers: (0,
|
|
711
|
+
headers: (0, import_provider_utils6.combineHeaders)(
|
|
610
712
|
resolvedHeaders,
|
|
611
713
|
options.headers,
|
|
612
714
|
this.getModelConfigHeaders(this.modelId, false),
|
|
613
|
-
await (0,
|
|
715
|
+
await (0, import_provider_utils6.resolve)(this.config.o11yHeaders)
|
|
614
716
|
),
|
|
615
717
|
body: args,
|
|
616
|
-
successfulResponseHandler: (0,
|
|
617
|
-
failedResponseHandler: (0,
|
|
618
|
-
errorSchema:
|
|
718
|
+
successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(import_v46.z.any()),
|
|
719
|
+
failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
|
|
720
|
+
errorSchema: import_v46.z.any(),
|
|
619
721
|
errorToMessage: (data) => data
|
|
620
722
|
}),
|
|
621
723
|
...abortSignal && { abortSignal },
|
|
@@ -634,20 +736,20 @@ var GatewayLanguageModel = class {
|
|
|
634
736
|
async doStream(options) {
|
|
635
737
|
const { args, warnings } = await this.getArgs(options);
|
|
636
738
|
const { abortSignal } = options;
|
|
637
|
-
const resolvedHeaders = await (0,
|
|
739
|
+
const resolvedHeaders = await (0, import_provider_utils6.resolve)(this.config.headers());
|
|
638
740
|
try {
|
|
639
|
-
const { value: response, responseHeaders } = await (0,
|
|
741
|
+
const { value: response, responseHeaders } = await (0, import_provider_utils6.postJsonToApi)({
|
|
640
742
|
url: this.getUrl(),
|
|
641
|
-
headers: (0,
|
|
743
|
+
headers: (0, import_provider_utils6.combineHeaders)(
|
|
642
744
|
resolvedHeaders,
|
|
643
745
|
options.headers,
|
|
644
746
|
this.getModelConfigHeaders(this.modelId, true),
|
|
645
|
-
await (0,
|
|
747
|
+
await (0, import_provider_utils6.resolve)(this.config.o11yHeaders)
|
|
646
748
|
),
|
|
647
749
|
body: args,
|
|
648
|
-
successfulResponseHandler: (0,
|
|
649
|
-
failedResponseHandler: (0,
|
|
650
|
-
errorSchema:
|
|
750
|
+
successfulResponseHandler: (0, import_provider_utils6.createEventSourceResponseHandler)(import_v46.z.any()),
|
|
751
|
+
failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
|
|
752
|
+
errorSchema: import_v46.z.any(),
|
|
651
753
|
errorToMessage: (data) => data
|
|
652
754
|
}),
|
|
653
755
|
...abortSignal && { abortSignal },
|
|
@@ -725,8 +827,8 @@ var GatewayLanguageModel = class {
|
|
|
725
827
|
};
|
|
726
828
|
|
|
727
829
|
// src/gateway-embedding-model.ts
|
|
728
|
-
var
|
|
729
|
-
var
|
|
830
|
+
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
831
|
+
var import_v47 = require("zod/v4");
|
|
730
832
|
var GatewayEmbeddingModel = class {
|
|
731
833
|
constructor(modelId, config) {
|
|
732
834
|
this.modelId = modelId;
|
|
@@ -745,29 +847,29 @@ var GatewayEmbeddingModel = class {
|
|
|
745
847
|
providerOptions
|
|
746
848
|
}) {
|
|
747
849
|
var _a9;
|
|
748
|
-
const resolvedHeaders = await (0,
|
|
850
|
+
const resolvedHeaders = await (0, import_provider_utils7.resolve)(this.config.headers());
|
|
749
851
|
try {
|
|
750
852
|
const {
|
|
751
853
|
responseHeaders,
|
|
752
854
|
value: responseBody,
|
|
753
855
|
rawValue
|
|
754
|
-
} = await (0,
|
|
856
|
+
} = await (0, import_provider_utils7.postJsonToApi)({
|
|
755
857
|
url: this.getUrl(),
|
|
756
|
-
headers: (0,
|
|
858
|
+
headers: (0, import_provider_utils7.combineHeaders)(
|
|
757
859
|
resolvedHeaders,
|
|
758
860
|
headers != null ? headers : {},
|
|
759
861
|
this.getModelConfigHeaders(),
|
|
760
|
-
await (0,
|
|
862
|
+
await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
|
|
761
863
|
),
|
|
762
864
|
body: {
|
|
763
865
|
values,
|
|
764
866
|
...providerOptions ? { providerOptions } : {}
|
|
765
867
|
},
|
|
766
|
-
successfulResponseHandler: (0,
|
|
868
|
+
successfulResponseHandler: (0, import_provider_utils7.createJsonResponseHandler)(
|
|
767
869
|
gatewayEmbeddingResponseSchema
|
|
768
870
|
),
|
|
769
|
-
failedResponseHandler: (0,
|
|
770
|
-
errorSchema:
|
|
871
|
+
failedResponseHandler: (0, import_provider_utils7.createJsonErrorResponseHandler)({
|
|
872
|
+
errorSchema: import_v47.z.any(),
|
|
771
873
|
errorToMessage: (data) => data
|
|
772
874
|
}),
|
|
773
875
|
...abortSignal && { abortSignal },
|
|
@@ -794,19 +896,19 @@ var GatewayEmbeddingModel = class {
|
|
|
794
896
|
};
|
|
795
897
|
}
|
|
796
898
|
};
|
|
797
|
-
var gatewayEmbeddingResponseSchema = (0,
|
|
798
|
-
() => (0,
|
|
799
|
-
|
|
800
|
-
embeddings:
|
|
801
|
-
usage:
|
|
802
|
-
providerMetadata:
|
|
899
|
+
var gatewayEmbeddingResponseSchema = (0, import_provider_utils7.lazySchema)(
|
|
900
|
+
() => (0, import_provider_utils7.zodSchema)(
|
|
901
|
+
import_v47.z.object({
|
|
902
|
+
embeddings: import_v47.z.array(import_v47.z.array(import_v47.z.number())),
|
|
903
|
+
usage: import_v47.z.object({ tokens: import_v47.z.number() }).nullish(),
|
|
904
|
+
providerMetadata: import_v47.z.record(import_v47.z.string(), import_v47.z.record(import_v47.z.string(), import_v47.z.unknown())).optional()
|
|
803
905
|
})
|
|
804
906
|
)
|
|
805
907
|
);
|
|
806
908
|
|
|
807
909
|
// src/gateway-image-model.ts
|
|
808
|
-
var
|
|
809
|
-
var
|
|
910
|
+
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
911
|
+
var import_v48 = require("zod/v4");
|
|
810
912
|
var GatewayImageModel = class {
|
|
811
913
|
constructor(modelId, config) {
|
|
812
914
|
this.modelId = modelId;
|
|
@@ -831,19 +933,19 @@ var GatewayImageModel = class {
|
|
|
831
933
|
abortSignal
|
|
832
934
|
}) {
|
|
833
935
|
var _a9, _b9, _c, _d;
|
|
834
|
-
const resolvedHeaders = await (0,
|
|
936
|
+
const resolvedHeaders = await (0, import_provider_utils8.resolve)(this.config.headers());
|
|
835
937
|
try {
|
|
836
938
|
const {
|
|
837
939
|
responseHeaders,
|
|
838
940
|
value: responseBody,
|
|
839
941
|
rawValue
|
|
840
|
-
} = await (0,
|
|
942
|
+
} = await (0, import_provider_utils8.postJsonToApi)({
|
|
841
943
|
url: this.getUrl(),
|
|
842
|
-
headers: (0,
|
|
944
|
+
headers: (0, import_provider_utils8.combineHeaders)(
|
|
843
945
|
resolvedHeaders,
|
|
844
946
|
headers != null ? headers : {},
|
|
845
947
|
this.getModelConfigHeaders(),
|
|
846
|
-
await (0,
|
|
948
|
+
await (0, import_provider_utils8.resolve)(this.config.o11yHeaders)
|
|
847
949
|
),
|
|
848
950
|
body: {
|
|
849
951
|
prompt,
|
|
@@ -857,11 +959,11 @@ var GatewayImageModel = class {
|
|
|
857
959
|
},
|
|
858
960
|
...mask && { mask: maybeEncodeImageFile(mask) }
|
|
859
961
|
},
|
|
860
|
-
successfulResponseHandler: (0,
|
|
962
|
+
successfulResponseHandler: (0, import_provider_utils8.createJsonResponseHandler)(
|
|
861
963
|
gatewayImageResponseSchema
|
|
862
964
|
),
|
|
863
|
-
failedResponseHandler: (0,
|
|
864
|
-
errorSchema:
|
|
965
|
+
failedResponseHandler: (0, import_provider_utils8.createJsonErrorResponseHandler)({
|
|
966
|
+
errorSchema: import_v48.z.any(),
|
|
865
967
|
errorToMessage: (data) => data
|
|
866
968
|
}),
|
|
867
969
|
...abortSignal && { abortSignal },
|
|
@@ -903,47 +1005,47 @@ function maybeEncodeImageFile(file) {
|
|
|
903
1005
|
if (file.type === "file" && file.data instanceof Uint8Array) {
|
|
904
1006
|
return {
|
|
905
1007
|
...file,
|
|
906
|
-
data: (0,
|
|
1008
|
+
data: (0, import_provider_utils8.convertUint8ArrayToBase64)(file.data)
|
|
907
1009
|
};
|
|
908
1010
|
}
|
|
909
1011
|
return file;
|
|
910
1012
|
}
|
|
911
|
-
var providerMetadataEntrySchema =
|
|
912
|
-
images:
|
|
913
|
-
}).catchall(
|
|
914
|
-
var gatewayImageWarningSchema =
|
|
915
|
-
|
|
916
|
-
type:
|
|
917
|
-
feature:
|
|
918
|
-
details:
|
|
1013
|
+
var providerMetadataEntrySchema = import_v48.z.object({
|
|
1014
|
+
images: import_v48.z.array(import_v48.z.unknown()).optional()
|
|
1015
|
+
}).catchall(import_v48.z.unknown());
|
|
1016
|
+
var gatewayImageWarningSchema = import_v48.z.discriminatedUnion("type", [
|
|
1017
|
+
import_v48.z.object({
|
|
1018
|
+
type: import_v48.z.literal("unsupported"),
|
|
1019
|
+
feature: import_v48.z.string(),
|
|
1020
|
+
details: import_v48.z.string().optional()
|
|
919
1021
|
}),
|
|
920
|
-
|
|
921
|
-
type:
|
|
922
|
-
feature:
|
|
923
|
-
details:
|
|
1022
|
+
import_v48.z.object({
|
|
1023
|
+
type: import_v48.z.literal("compatibility"),
|
|
1024
|
+
feature: import_v48.z.string(),
|
|
1025
|
+
details: import_v48.z.string().optional()
|
|
924
1026
|
}),
|
|
925
|
-
|
|
926
|
-
type:
|
|
927
|
-
message:
|
|
1027
|
+
import_v48.z.object({
|
|
1028
|
+
type: import_v48.z.literal("other"),
|
|
1029
|
+
message: import_v48.z.string()
|
|
928
1030
|
})
|
|
929
1031
|
]);
|
|
930
|
-
var gatewayImageUsageSchema =
|
|
931
|
-
inputTokens:
|
|
932
|
-
outputTokens:
|
|
933
|
-
totalTokens:
|
|
1032
|
+
var gatewayImageUsageSchema = import_v48.z.object({
|
|
1033
|
+
inputTokens: import_v48.z.number().nullish(),
|
|
1034
|
+
outputTokens: import_v48.z.number().nullish(),
|
|
1035
|
+
totalTokens: import_v48.z.number().nullish()
|
|
934
1036
|
});
|
|
935
|
-
var gatewayImageResponseSchema =
|
|
936
|
-
images:
|
|
1037
|
+
var gatewayImageResponseSchema = import_v48.z.object({
|
|
1038
|
+
images: import_v48.z.array(import_v48.z.string()),
|
|
937
1039
|
// Always base64 strings over the wire
|
|
938
|
-
warnings:
|
|
939
|
-
providerMetadata:
|
|
1040
|
+
warnings: import_v48.z.array(gatewayImageWarningSchema).optional(),
|
|
1041
|
+
providerMetadata: import_v48.z.record(import_v48.z.string(), providerMetadataEntrySchema).optional(),
|
|
940
1042
|
usage: gatewayImageUsageSchema.optional()
|
|
941
1043
|
});
|
|
942
1044
|
|
|
943
1045
|
// src/gateway-video-model.ts
|
|
944
1046
|
var import_provider2 = require("@ai-sdk/provider");
|
|
945
|
-
var
|
|
946
|
-
var
|
|
1047
|
+
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
1048
|
+
var import_v49 = require("zod/v4");
|
|
947
1049
|
var GatewayVideoModel = class {
|
|
948
1050
|
constructor(modelId, config) {
|
|
949
1051
|
this.modelId = modelId;
|
|
@@ -969,15 +1071,15 @@ var GatewayVideoModel = class {
|
|
|
969
1071
|
abortSignal
|
|
970
1072
|
}) {
|
|
971
1073
|
var _a9;
|
|
972
|
-
const resolvedHeaders = await (0,
|
|
1074
|
+
const resolvedHeaders = await (0, import_provider_utils9.resolve)(this.config.headers());
|
|
973
1075
|
try {
|
|
974
|
-
const { responseHeaders, value: responseBody } = await (0,
|
|
1076
|
+
const { responseHeaders, value: responseBody } = await (0, import_provider_utils9.postJsonToApi)({
|
|
975
1077
|
url: this.getUrl(),
|
|
976
|
-
headers: (0,
|
|
1078
|
+
headers: (0, import_provider_utils9.combineHeaders)(
|
|
977
1079
|
resolvedHeaders,
|
|
978
1080
|
headers != null ? headers : {},
|
|
979
1081
|
this.getModelConfigHeaders(),
|
|
980
|
-
await (0,
|
|
1082
|
+
await (0, import_provider_utils9.resolve)(this.config.o11yHeaders),
|
|
981
1083
|
{ accept: "text/event-stream" }
|
|
982
1084
|
),
|
|
983
1085
|
body: {
|
|
@@ -1004,7 +1106,7 @@ var GatewayVideoModel = class {
|
|
|
1004
1106
|
statusCode: response.status
|
|
1005
1107
|
});
|
|
1006
1108
|
}
|
|
1007
|
-
const eventStream = (0,
|
|
1109
|
+
const eventStream = (0, import_provider_utils9.parseJsonEventStream)({
|
|
1008
1110
|
stream: response.body,
|
|
1009
1111
|
schema: gatewayVideoEventSchema
|
|
1010
1112
|
});
|
|
@@ -1055,8 +1157,8 @@ var GatewayVideoModel = class {
|
|
|
1055
1157
|
responseHeaders: Object.fromEntries([...response.headers])
|
|
1056
1158
|
};
|
|
1057
1159
|
},
|
|
1058
|
-
failedResponseHandler: (0,
|
|
1059
|
-
errorSchema:
|
|
1160
|
+
failedResponseHandler: (0, import_provider_utils9.createJsonErrorResponseHandler)({
|
|
1161
|
+
errorSchema: import_v49.z.any(),
|
|
1060
1162
|
errorToMessage: (data) => data
|
|
1061
1163
|
}),
|
|
1062
1164
|
...abortSignal && { abortSignal },
|
|
@@ -1090,63 +1192,63 @@ function maybeEncodeVideoFile(file) {
|
|
|
1090
1192
|
if (file.type === "file" && file.data instanceof Uint8Array) {
|
|
1091
1193
|
return {
|
|
1092
1194
|
...file,
|
|
1093
|
-
data: (0,
|
|
1195
|
+
data: (0, import_provider_utils9.convertUint8ArrayToBase64)(file.data)
|
|
1094
1196
|
};
|
|
1095
1197
|
}
|
|
1096
1198
|
return file;
|
|
1097
1199
|
}
|
|
1098
|
-
var providerMetadataEntrySchema2 =
|
|
1099
|
-
videos:
|
|
1100
|
-
}).catchall(
|
|
1101
|
-
var gatewayVideoDataSchema =
|
|
1102
|
-
|
|
1103
|
-
type:
|
|
1104
|
-
url:
|
|
1105
|
-
mediaType:
|
|
1200
|
+
var providerMetadataEntrySchema2 = import_v49.z.object({
|
|
1201
|
+
videos: import_v49.z.array(import_v49.z.unknown()).optional()
|
|
1202
|
+
}).catchall(import_v49.z.unknown());
|
|
1203
|
+
var gatewayVideoDataSchema = import_v49.z.union([
|
|
1204
|
+
import_v49.z.object({
|
|
1205
|
+
type: import_v49.z.literal("url"),
|
|
1206
|
+
url: import_v49.z.string(),
|
|
1207
|
+
mediaType: import_v49.z.string()
|
|
1106
1208
|
}),
|
|
1107
|
-
|
|
1108
|
-
type:
|
|
1109
|
-
data:
|
|
1110
|
-
mediaType:
|
|
1209
|
+
import_v49.z.object({
|
|
1210
|
+
type: import_v49.z.literal("base64"),
|
|
1211
|
+
data: import_v49.z.string(),
|
|
1212
|
+
mediaType: import_v49.z.string()
|
|
1111
1213
|
})
|
|
1112
1214
|
]);
|
|
1113
|
-
var gatewayVideoWarningSchema =
|
|
1114
|
-
|
|
1115
|
-
type:
|
|
1116
|
-
feature:
|
|
1117
|
-
details:
|
|
1215
|
+
var gatewayVideoWarningSchema = import_v49.z.discriminatedUnion("type", [
|
|
1216
|
+
import_v49.z.object({
|
|
1217
|
+
type: import_v49.z.literal("unsupported"),
|
|
1218
|
+
feature: import_v49.z.string(),
|
|
1219
|
+
details: import_v49.z.string().optional()
|
|
1118
1220
|
}),
|
|
1119
|
-
|
|
1120
|
-
type:
|
|
1121
|
-
feature:
|
|
1122
|
-
details:
|
|
1221
|
+
import_v49.z.object({
|
|
1222
|
+
type: import_v49.z.literal("compatibility"),
|
|
1223
|
+
feature: import_v49.z.string(),
|
|
1224
|
+
details: import_v49.z.string().optional()
|
|
1123
1225
|
}),
|
|
1124
|
-
|
|
1125
|
-
type:
|
|
1126
|
-
message:
|
|
1226
|
+
import_v49.z.object({
|
|
1227
|
+
type: import_v49.z.literal("other"),
|
|
1228
|
+
message: import_v49.z.string()
|
|
1127
1229
|
})
|
|
1128
1230
|
]);
|
|
1129
|
-
var gatewayVideoEventSchema =
|
|
1130
|
-
|
|
1131
|
-
type:
|
|
1132
|
-
videos:
|
|
1133
|
-
warnings:
|
|
1134
|
-
providerMetadata:
|
|
1231
|
+
var gatewayVideoEventSchema = import_v49.z.discriminatedUnion("type", [
|
|
1232
|
+
import_v49.z.object({
|
|
1233
|
+
type: import_v49.z.literal("result"),
|
|
1234
|
+
videos: import_v49.z.array(gatewayVideoDataSchema),
|
|
1235
|
+
warnings: import_v49.z.array(gatewayVideoWarningSchema).optional(),
|
|
1236
|
+
providerMetadata: import_v49.z.record(import_v49.z.string(), providerMetadataEntrySchema2).optional()
|
|
1135
1237
|
}),
|
|
1136
|
-
|
|
1137
|
-
type:
|
|
1138
|
-
message:
|
|
1139
|
-
errorType:
|
|
1140
|
-
statusCode:
|
|
1141
|
-
param:
|
|
1238
|
+
import_v49.z.object({
|
|
1239
|
+
type: import_v49.z.literal("error"),
|
|
1240
|
+
message: import_v49.z.string(),
|
|
1241
|
+
errorType: import_v49.z.string(),
|
|
1242
|
+
statusCode: import_v49.z.number(),
|
|
1243
|
+
param: import_v49.z.unknown().nullable()
|
|
1142
1244
|
})
|
|
1143
1245
|
]);
|
|
1144
1246
|
|
|
1145
1247
|
// src/tool/parallel-search.ts
|
|
1146
|
-
var
|
|
1248
|
+
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
|
1147
1249
|
var import_zod = require("zod");
|
|
1148
|
-
var parallelSearchInputSchema = (0,
|
|
1149
|
-
() => (0,
|
|
1250
|
+
var parallelSearchInputSchema = (0, import_provider_utils10.lazySchema)(
|
|
1251
|
+
() => (0, import_provider_utils10.zodSchema)(
|
|
1150
1252
|
import_zod.z.object({
|
|
1151
1253
|
objective: import_zod.z.string().describe(
|
|
1152
1254
|
"Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."
|
|
@@ -1181,8 +1283,8 @@ var parallelSearchInputSchema = (0, import_provider_utils9.lazySchema)(
|
|
|
1181
1283
|
})
|
|
1182
1284
|
)
|
|
1183
1285
|
);
|
|
1184
|
-
var parallelSearchOutputSchema = (0,
|
|
1185
|
-
() => (0,
|
|
1286
|
+
var parallelSearchOutputSchema = (0, import_provider_utils10.lazySchema)(
|
|
1287
|
+
() => (0, import_provider_utils10.zodSchema)(
|
|
1186
1288
|
import_zod.z.union([
|
|
1187
1289
|
// Success response
|
|
1188
1290
|
import_zod.z.object({
|
|
@@ -1213,7 +1315,7 @@ var parallelSearchOutputSchema = (0, import_provider_utils9.lazySchema)(
|
|
|
1213
1315
|
])
|
|
1214
1316
|
)
|
|
1215
1317
|
);
|
|
1216
|
-
var parallelSearchToolFactory = (0,
|
|
1318
|
+
var parallelSearchToolFactory = (0, import_provider_utils10.createProviderToolFactoryWithOutputSchema)({
|
|
1217
1319
|
id: "gateway.parallel_search",
|
|
1218
1320
|
inputSchema: parallelSearchInputSchema,
|
|
1219
1321
|
outputSchema: parallelSearchOutputSchema
|
|
@@ -1221,10 +1323,10 @@ var parallelSearchToolFactory = (0, import_provider_utils9.createProviderToolFac
|
|
|
1221
1323
|
var parallelSearch = (config = {}) => parallelSearchToolFactory(config);
|
|
1222
1324
|
|
|
1223
1325
|
// src/tool/perplexity-search.ts
|
|
1224
|
-
var
|
|
1326
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
1225
1327
|
var import_zod2 = require("zod");
|
|
1226
|
-
var perplexitySearchInputSchema = (0,
|
|
1227
|
-
() => (0,
|
|
1328
|
+
var perplexitySearchInputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1329
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1228
1330
|
import_zod2.z.object({
|
|
1229
1331
|
query: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.array(import_zod2.z.string())]).describe(
|
|
1230
1332
|
"Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."
|
|
@@ -1265,8 +1367,8 @@ var perplexitySearchInputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1265
1367
|
})
|
|
1266
1368
|
)
|
|
1267
1369
|
);
|
|
1268
|
-
var perplexitySearchOutputSchema = (0,
|
|
1269
|
-
() => (0,
|
|
1370
|
+
var perplexitySearchOutputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1371
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1270
1372
|
import_zod2.z.union([
|
|
1271
1373
|
// Success response
|
|
1272
1374
|
import_zod2.z.object({
|
|
@@ -1296,7 +1398,7 @@ var perplexitySearchOutputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1296
1398
|
])
|
|
1297
1399
|
)
|
|
1298
1400
|
);
|
|
1299
|
-
var perplexitySearchToolFactory = (0,
|
|
1401
|
+
var perplexitySearchToolFactory = (0, import_provider_utils11.createProviderToolFactoryWithOutputSchema)({
|
|
1300
1402
|
id: "gateway.perplexity_search",
|
|
1301
1403
|
inputSchema: perplexitySearchInputSchema,
|
|
1302
1404
|
outputSchema: perplexitySearchOutputSchema
|
|
@@ -1333,10 +1435,10 @@ async function getVercelRequestId() {
|
|
|
1333
1435
|
}
|
|
1334
1436
|
|
|
1335
1437
|
// src/gateway-provider.ts
|
|
1336
|
-
var
|
|
1438
|
+
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
|
1337
1439
|
|
|
1338
1440
|
// src/version.ts
|
|
1339
|
-
var VERSION = true ? "4.0.0-beta.
|
|
1441
|
+
var VERSION = true ? "4.0.0-beta.24" : "0.0.0-test";
|
|
1340
1442
|
|
|
1341
1443
|
// src/gateway-provider.ts
|
|
1342
1444
|
var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
|
|
@@ -1346,11 +1448,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1346
1448
|
let metadataCache = null;
|
|
1347
1449
|
const cacheRefreshMillis = (_a9 = options.metadataCacheRefreshMillis) != null ? _a9 : 1e3 * 60 * 5;
|
|
1348
1450
|
let lastFetchTime = 0;
|
|
1349
|
-
const baseURL = (_b9 = (0,
|
|
1451
|
+
const baseURL = (_b9 = (0, import_provider_utils12.withoutTrailingSlash)(options.baseURL)) != null ? _b9 : "https://ai-gateway.vercel.sh/v3/ai";
|
|
1350
1452
|
const getHeaders = async () => {
|
|
1351
1453
|
try {
|
|
1352
1454
|
const auth = await getGatewayAuthToken(options);
|
|
1353
|
-
return (0,
|
|
1455
|
+
return (0, import_provider_utils13.withUserAgentSuffix)(
|
|
1354
1456
|
{
|
|
1355
1457
|
Authorization: `Bearer ${auth.token}`,
|
|
1356
1458
|
"ai-gateway-protocol-version": AI_GATEWAY_PROTOCOL_VERSION,
|
|
@@ -1369,19 +1471,19 @@ function createGatewayProvider(options = {}) {
|
|
|
1369
1471
|
}
|
|
1370
1472
|
};
|
|
1371
1473
|
const createO11yHeaders = () => {
|
|
1372
|
-
const deploymentId = (0,
|
|
1474
|
+
const deploymentId = (0, import_provider_utils12.loadOptionalSetting)({
|
|
1373
1475
|
settingValue: void 0,
|
|
1374
1476
|
environmentVariableName: "VERCEL_DEPLOYMENT_ID"
|
|
1375
1477
|
});
|
|
1376
|
-
const environment = (0,
|
|
1478
|
+
const environment = (0, import_provider_utils12.loadOptionalSetting)({
|
|
1377
1479
|
settingValue: void 0,
|
|
1378
1480
|
environmentVariableName: "VERCEL_ENV"
|
|
1379
1481
|
});
|
|
1380
|
-
const region = (0,
|
|
1482
|
+
const region = (0, import_provider_utils12.loadOptionalSetting)({
|
|
1381
1483
|
settingValue: void 0,
|
|
1382
1484
|
environmentVariableName: "VERCEL_REGION"
|
|
1383
1485
|
});
|
|
1384
|
-
const projectId = (0,
|
|
1486
|
+
const projectId = (0, import_provider_utils12.loadOptionalSetting)({
|
|
1385
1487
|
settingValue: void 0,
|
|
1386
1488
|
environmentVariableName: "VERCEL_PROJECT_ID"
|
|
1387
1489
|
});
|
|
@@ -1438,6 +1540,18 @@ function createGatewayProvider(options = {}) {
|
|
|
1438
1540
|
);
|
|
1439
1541
|
});
|
|
1440
1542
|
};
|
|
1543
|
+
const getSpendReport = async (params) => {
|
|
1544
|
+
return new GatewaySpendReport({
|
|
1545
|
+
baseURL,
|
|
1546
|
+
headers: getHeaders,
|
|
1547
|
+
fetch: options.fetch
|
|
1548
|
+
}).getSpendReport(params).catch(async (error) => {
|
|
1549
|
+
throw await asGatewayError(
|
|
1550
|
+
error,
|
|
1551
|
+
await parseAuthMethod(await getHeaders())
|
|
1552
|
+
);
|
|
1553
|
+
});
|
|
1554
|
+
};
|
|
1441
1555
|
const provider = function(modelId) {
|
|
1442
1556
|
if (new.target) {
|
|
1443
1557
|
throw new Error(
|
|
@@ -1449,6 +1563,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1449
1563
|
provider.specificationVersion = "v4";
|
|
1450
1564
|
provider.getAvailableModels = getAvailableModels;
|
|
1451
1565
|
provider.getCredits = getCredits;
|
|
1566
|
+
provider.getSpendReport = getSpendReport;
|
|
1452
1567
|
provider.imageModel = (modelId) => {
|
|
1453
1568
|
return new GatewayImageModel(modelId, {
|
|
1454
1569
|
provider: "gateway",
|
|
@@ -1488,7 +1603,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1488
1603
|
}
|
|
1489
1604
|
var gateway = createGatewayProvider();
|
|
1490
1605
|
async function getGatewayAuthToken(options) {
|
|
1491
|
-
const apiKey = (0,
|
|
1606
|
+
const apiKey = (0, import_provider_utils12.loadOptionalSetting)({
|
|
1492
1607
|
settingValue: options.apiKey,
|
|
1493
1608
|
environmentVariableName: "AI_GATEWAY_API_KEY"
|
|
1494
1609
|
});
|