@ai-sdk/gateway 4.0.0-beta.24 → 4.0.0-beta.26
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 +50 -2
- package/dist/index.d.ts +50 -2
- package/dist/index.js +231 -131
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +283 -176
- package/dist/index.mjs.map +1 -1
- package/docs/00-ai-gateway.mdx +80 -0
- package/package.json +1 -1
- package/src/gateway-generation-info.ts +147 -0
- package/src/gateway-language-model-settings.ts +2 -0
- package/src/gateway-provider.ts +29 -0
- package/src/index.ts +4 -0
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_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");
|
|
@@ -677,9 +677,96 @@ var gatewaySpendReportResponseSchema = (0, import_provider_utils5.lazySchema)(
|
|
|
677
677
|
)
|
|
678
678
|
);
|
|
679
679
|
|
|
680
|
-
// src/gateway-
|
|
680
|
+
// src/gateway-generation-info.ts
|
|
681
681
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
682
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");
|
|
683
770
|
var GatewayLanguageModel = class {
|
|
684
771
|
constructor(modelId, config) {
|
|
685
772
|
this.modelId = modelId;
|
|
@@ -700,24 +787,24 @@ var GatewayLanguageModel = class {
|
|
|
700
787
|
async doGenerate(options) {
|
|
701
788
|
const { args, warnings } = await this.getArgs(options);
|
|
702
789
|
const { abortSignal } = options;
|
|
703
|
-
const resolvedHeaders = await (0,
|
|
790
|
+
const resolvedHeaders = await (0, import_provider_utils7.resolve)(this.config.headers());
|
|
704
791
|
try {
|
|
705
792
|
const {
|
|
706
793
|
responseHeaders,
|
|
707
794
|
value: responseBody,
|
|
708
795
|
rawValue: rawResponse
|
|
709
|
-
} = await (0,
|
|
796
|
+
} = await (0, import_provider_utils7.postJsonToApi)({
|
|
710
797
|
url: this.getUrl(),
|
|
711
|
-
headers: (0,
|
|
798
|
+
headers: (0, import_provider_utils7.combineHeaders)(
|
|
712
799
|
resolvedHeaders,
|
|
713
800
|
options.headers,
|
|
714
801
|
this.getModelConfigHeaders(this.modelId, false),
|
|
715
|
-
await (0,
|
|
802
|
+
await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
|
|
716
803
|
),
|
|
717
804
|
body: args,
|
|
718
|
-
successfulResponseHandler: (0,
|
|
719
|
-
failedResponseHandler: (0,
|
|
720
|
-
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(),
|
|
721
808
|
errorToMessage: (data) => data
|
|
722
809
|
}),
|
|
723
810
|
...abortSignal && { abortSignal },
|
|
@@ -736,20 +823,20 @@ var GatewayLanguageModel = class {
|
|
|
736
823
|
async doStream(options) {
|
|
737
824
|
const { args, warnings } = await this.getArgs(options);
|
|
738
825
|
const { abortSignal } = options;
|
|
739
|
-
const resolvedHeaders = await (0,
|
|
826
|
+
const resolvedHeaders = await (0, import_provider_utils7.resolve)(this.config.headers());
|
|
740
827
|
try {
|
|
741
|
-
const { value: response, responseHeaders } = await (0,
|
|
828
|
+
const { value: response, responseHeaders } = await (0, import_provider_utils7.postJsonToApi)({
|
|
742
829
|
url: this.getUrl(),
|
|
743
|
-
headers: (0,
|
|
830
|
+
headers: (0, import_provider_utils7.combineHeaders)(
|
|
744
831
|
resolvedHeaders,
|
|
745
832
|
options.headers,
|
|
746
833
|
this.getModelConfigHeaders(this.modelId, true),
|
|
747
|
-
await (0,
|
|
834
|
+
await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
|
|
748
835
|
),
|
|
749
836
|
body: args,
|
|
750
|
-
successfulResponseHandler: (0,
|
|
751
|
-
failedResponseHandler: (0,
|
|
752
|
-
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(),
|
|
753
840
|
errorToMessage: (data) => data
|
|
754
841
|
}),
|
|
755
842
|
...abortSignal && { abortSignal },
|
|
@@ -827,8 +914,8 @@ var GatewayLanguageModel = class {
|
|
|
827
914
|
};
|
|
828
915
|
|
|
829
916
|
// src/gateway-embedding-model.ts
|
|
830
|
-
var
|
|
831
|
-
var
|
|
917
|
+
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
918
|
+
var import_v48 = require("zod/v4");
|
|
832
919
|
var GatewayEmbeddingModel = class {
|
|
833
920
|
constructor(modelId, config) {
|
|
834
921
|
this.modelId = modelId;
|
|
@@ -847,29 +934,29 @@ var GatewayEmbeddingModel = class {
|
|
|
847
934
|
providerOptions
|
|
848
935
|
}) {
|
|
849
936
|
var _a9;
|
|
850
|
-
const resolvedHeaders = await (0,
|
|
937
|
+
const resolvedHeaders = await (0, import_provider_utils8.resolve)(this.config.headers());
|
|
851
938
|
try {
|
|
852
939
|
const {
|
|
853
940
|
responseHeaders,
|
|
854
941
|
value: responseBody,
|
|
855
942
|
rawValue
|
|
856
|
-
} = await (0,
|
|
943
|
+
} = await (0, import_provider_utils8.postJsonToApi)({
|
|
857
944
|
url: this.getUrl(),
|
|
858
|
-
headers: (0,
|
|
945
|
+
headers: (0, import_provider_utils8.combineHeaders)(
|
|
859
946
|
resolvedHeaders,
|
|
860
947
|
headers != null ? headers : {},
|
|
861
948
|
this.getModelConfigHeaders(),
|
|
862
|
-
await (0,
|
|
949
|
+
await (0, import_provider_utils8.resolve)(this.config.o11yHeaders)
|
|
863
950
|
),
|
|
864
951
|
body: {
|
|
865
952
|
values,
|
|
866
953
|
...providerOptions ? { providerOptions } : {}
|
|
867
954
|
},
|
|
868
|
-
successfulResponseHandler: (0,
|
|
955
|
+
successfulResponseHandler: (0, import_provider_utils8.createJsonResponseHandler)(
|
|
869
956
|
gatewayEmbeddingResponseSchema
|
|
870
957
|
),
|
|
871
|
-
failedResponseHandler: (0,
|
|
872
|
-
errorSchema:
|
|
958
|
+
failedResponseHandler: (0, import_provider_utils8.createJsonErrorResponseHandler)({
|
|
959
|
+
errorSchema: import_v48.z.any(),
|
|
873
960
|
errorToMessage: (data) => data
|
|
874
961
|
}),
|
|
875
962
|
...abortSignal && { abortSignal },
|
|
@@ -896,19 +983,19 @@ var GatewayEmbeddingModel = class {
|
|
|
896
983
|
};
|
|
897
984
|
}
|
|
898
985
|
};
|
|
899
|
-
var gatewayEmbeddingResponseSchema = (0,
|
|
900
|
-
() => (0,
|
|
901
|
-
|
|
902
|
-
embeddings:
|
|
903
|
-
usage:
|
|
904
|
-
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()
|
|
905
992
|
})
|
|
906
993
|
)
|
|
907
994
|
);
|
|
908
995
|
|
|
909
996
|
// src/gateway-image-model.ts
|
|
910
|
-
var
|
|
911
|
-
var
|
|
997
|
+
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
998
|
+
var import_v49 = require("zod/v4");
|
|
912
999
|
var GatewayImageModel = class {
|
|
913
1000
|
constructor(modelId, config) {
|
|
914
1001
|
this.modelId = modelId;
|
|
@@ -933,19 +1020,19 @@ var GatewayImageModel = class {
|
|
|
933
1020
|
abortSignal
|
|
934
1021
|
}) {
|
|
935
1022
|
var _a9, _b9, _c, _d;
|
|
936
|
-
const resolvedHeaders = await (0,
|
|
1023
|
+
const resolvedHeaders = await (0, import_provider_utils9.resolve)(this.config.headers());
|
|
937
1024
|
try {
|
|
938
1025
|
const {
|
|
939
1026
|
responseHeaders,
|
|
940
1027
|
value: responseBody,
|
|
941
1028
|
rawValue
|
|
942
|
-
} = await (0,
|
|
1029
|
+
} = await (0, import_provider_utils9.postJsonToApi)({
|
|
943
1030
|
url: this.getUrl(),
|
|
944
|
-
headers: (0,
|
|
1031
|
+
headers: (0, import_provider_utils9.combineHeaders)(
|
|
945
1032
|
resolvedHeaders,
|
|
946
1033
|
headers != null ? headers : {},
|
|
947
1034
|
this.getModelConfigHeaders(),
|
|
948
|
-
await (0,
|
|
1035
|
+
await (0, import_provider_utils9.resolve)(this.config.o11yHeaders)
|
|
949
1036
|
),
|
|
950
1037
|
body: {
|
|
951
1038
|
prompt,
|
|
@@ -959,11 +1046,11 @@ var GatewayImageModel = class {
|
|
|
959
1046
|
},
|
|
960
1047
|
...mask && { mask: maybeEncodeImageFile(mask) }
|
|
961
1048
|
},
|
|
962
|
-
successfulResponseHandler: (0,
|
|
1049
|
+
successfulResponseHandler: (0, import_provider_utils9.createJsonResponseHandler)(
|
|
963
1050
|
gatewayImageResponseSchema
|
|
964
1051
|
),
|
|
965
|
-
failedResponseHandler: (0,
|
|
966
|
-
errorSchema:
|
|
1052
|
+
failedResponseHandler: (0, import_provider_utils9.createJsonErrorResponseHandler)({
|
|
1053
|
+
errorSchema: import_v49.z.any(),
|
|
967
1054
|
errorToMessage: (data) => data
|
|
968
1055
|
}),
|
|
969
1056
|
...abortSignal && { abortSignal },
|
|
@@ -1005,47 +1092,47 @@ function maybeEncodeImageFile(file) {
|
|
|
1005
1092
|
if (file.type === "file" && file.data instanceof Uint8Array) {
|
|
1006
1093
|
return {
|
|
1007
1094
|
...file,
|
|
1008
|
-
data: (0,
|
|
1095
|
+
data: (0, import_provider_utils9.convertUint8ArrayToBase64)(file.data)
|
|
1009
1096
|
};
|
|
1010
1097
|
}
|
|
1011
1098
|
return file;
|
|
1012
1099
|
}
|
|
1013
|
-
var providerMetadataEntrySchema =
|
|
1014
|
-
images:
|
|
1015
|
-
}).catchall(
|
|
1016
|
-
var gatewayImageWarningSchema =
|
|
1017
|
-
|
|
1018
|
-
type:
|
|
1019
|
-
feature:
|
|
1020
|
-
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()
|
|
1021
1108
|
}),
|
|
1022
|
-
|
|
1023
|
-
type:
|
|
1024
|
-
feature:
|
|
1025
|
-
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()
|
|
1026
1113
|
}),
|
|
1027
|
-
|
|
1028
|
-
type:
|
|
1029
|
-
message:
|
|
1114
|
+
import_v49.z.object({
|
|
1115
|
+
type: import_v49.z.literal("other"),
|
|
1116
|
+
message: import_v49.z.string()
|
|
1030
1117
|
})
|
|
1031
1118
|
]);
|
|
1032
|
-
var gatewayImageUsageSchema =
|
|
1033
|
-
inputTokens:
|
|
1034
|
-
outputTokens:
|
|
1035
|
-
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()
|
|
1036
1123
|
});
|
|
1037
|
-
var gatewayImageResponseSchema =
|
|
1038
|
-
images:
|
|
1124
|
+
var gatewayImageResponseSchema = import_v49.z.object({
|
|
1125
|
+
images: import_v49.z.array(import_v49.z.string()),
|
|
1039
1126
|
// Always base64 strings over the wire
|
|
1040
|
-
warnings:
|
|
1041
|
-
providerMetadata:
|
|
1127
|
+
warnings: import_v49.z.array(gatewayImageWarningSchema).optional(),
|
|
1128
|
+
providerMetadata: import_v49.z.record(import_v49.z.string(), providerMetadataEntrySchema).optional(),
|
|
1042
1129
|
usage: gatewayImageUsageSchema.optional()
|
|
1043
1130
|
});
|
|
1044
1131
|
|
|
1045
1132
|
// src/gateway-video-model.ts
|
|
1046
1133
|
var import_provider2 = require("@ai-sdk/provider");
|
|
1047
|
-
var
|
|
1048
|
-
var
|
|
1134
|
+
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
|
1135
|
+
var import_v410 = require("zod/v4");
|
|
1049
1136
|
var GatewayVideoModel = class {
|
|
1050
1137
|
constructor(modelId, config) {
|
|
1051
1138
|
this.modelId = modelId;
|
|
@@ -1071,15 +1158,15 @@ var GatewayVideoModel = class {
|
|
|
1071
1158
|
abortSignal
|
|
1072
1159
|
}) {
|
|
1073
1160
|
var _a9;
|
|
1074
|
-
const resolvedHeaders = await (0,
|
|
1161
|
+
const resolvedHeaders = await (0, import_provider_utils10.resolve)(this.config.headers());
|
|
1075
1162
|
try {
|
|
1076
|
-
const { responseHeaders, value: responseBody } = await (0,
|
|
1163
|
+
const { responseHeaders, value: responseBody } = await (0, import_provider_utils10.postJsonToApi)({
|
|
1077
1164
|
url: this.getUrl(),
|
|
1078
|
-
headers: (0,
|
|
1165
|
+
headers: (0, import_provider_utils10.combineHeaders)(
|
|
1079
1166
|
resolvedHeaders,
|
|
1080
1167
|
headers != null ? headers : {},
|
|
1081
1168
|
this.getModelConfigHeaders(),
|
|
1082
|
-
await (0,
|
|
1169
|
+
await (0, import_provider_utils10.resolve)(this.config.o11yHeaders),
|
|
1083
1170
|
{ accept: "text/event-stream" }
|
|
1084
1171
|
),
|
|
1085
1172
|
body: {
|
|
@@ -1106,7 +1193,7 @@ var GatewayVideoModel = class {
|
|
|
1106
1193
|
statusCode: response.status
|
|
1107
1194
|
});
|
|
1108
1195
|
}
|
|
1109
|
-
const eventStream = (0,
|
|
1196
|
+
const eventStream = (0, import_provider_utils10.parseJsonEventStream)({
|
|
1110
1197
|
stream: response.body,
|
|
1111
1198
|
schema: gatewayVideoEventSchema
|
|
1112
1199
|
});
|
|
@@ -1157,8 +1244,8 @@ var GatewayVideoModel = class {
|
|
|
1157
1244
|
responseHeaders: Object.fromEntries([...response.headers])
|
|
1158
1245
|
};
|
|
1159
1246
|
},
|
|
1160
|
-
failedResponseHandler: (0,
|
|
1161
|
-
errorSchema:
|
|
1247
|
+
failedResponseHandler: (0, import_provider_utils10.createJsonErrorResponseHandler)({
|
|
1248
|
+
errorSchema: import_v410.z.any(),
|
|
1162
1249
|
errorToMessage: (data) => data
|
|
1163
1250
|
}),
|
|
1164
1251
|
...abortSignal && { abortSignal },
|
|
@@ -1192,63 +1279,63 @@ function maybeEncodeVideoFile(file) {
|
|
|
1192
1279
|
if (file.type === "file" && file.data instanceof Uint8Array) {
|
|
1193
1280
|
return {
|
|
1194
1281
|
...file,
|
|
1195
|
-
data: (0,
|
|
1282
|
+
data: (0, import_provider_utils10.convertUint8ArrayToBase64)(file.data)
|
|
1196
1283
|
};
|
|
1197
1284
|
}
|
|
1198
1285
|
return file;
|
|
1199
1286
|
}
|
|
1200
|
-
var providerMetadataEntrySchema2 =
|
|
1201
|
-
videos:
|
|
1202
|
-
}).catchall(
|
|
1203
|
-
var gatewayVideoDataSchema =
|
|
1204
|
-
|
|
1205
|
-
type:
|
|
1206
|
-
url:
|
|
1207
|
-
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()
|
|
1208
1295
|
}),
|
|
1209
|
-
|
|
1210
|
-
type:
|
|
1211
|
-
data:
|
|
1212
|
-
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()
|
|
1213
1300
|
})
|
|
1214
1301
|
]);
|
|
1215
|
-
var gatewayVideoWarningSchema =
|
|
1216
|
-
|
|
1217
|
-
type:
|
|
1218
|
-
feature:
|
|
1219
|
-
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()
|
|
1220
1307
|
}),
|
|
1221
|
-
|
|
1222
|
-
type:
|
|
1223
|
-
feature:
|
|
1224
|
-
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()
|
|
1225
1312
|
}),
|
|
1226
|
-
|
|
1227
|
-
type:
|
|
1228
|
-
message:
|
|
1313
|
+
import_v410.z.object({
|
|
1314
|
+
type: import_v410.z.literal("other"),
|
|
1315
|
+
message: import_v410.z.string()
|
|
1229
1316
|
})
|
|
1230
1317
|
]);
|
|
1231
|
-
var gatewayVideoEventSchema =
|
|
1232
|
-
|
|
1233
|
-
type:
|
|
1234
|
-
videos:
|
|
1235
|
-
warnings:
|
|
1236
|
-
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()
|
|
1237
1324
|
}),
|
|
1238
|
-
|
|
1239
|
-
type:
|
|
1240
|
-
message:
|
|
1241
|
-
errorType:
|
|
1242
|
-
statusCode:
|
|
1243
|
-
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()
|
|
1244
1331
|
})
|
|
1245
1332
|
]);
|
|
1246
1333
|
|
|
1247
1334
|
// src/tool/parallel-search.ts
|
|
1248
|
-
var
|
|
1335
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
1249
1336
|
var import_zod = require("zod");
|
|
1250
|
-
var parallelSearchInputSchema = (0,
|
|
1251
|
-
() => (0,
|
|
1337
|
+
var parallelSearchInputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1338
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1252
1339
|
import_zod.z.object({
|
|
1253
1340
|
objective: import_zod.z.string().describe(
|
|
1254
1341
|
"Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."
|
|
@@ -1283,8 +1370,8 @@ var parallelSearchInputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1283
1370
|
})
|
|
1284
1371
|
)
|
|
1285
1372
|
);
|
|
1286
|
-
var parallelSearchOutputSchema = (0,
|
|
1287
|
-
() => (0,
|
|
1373
|
+
var parallelSearchOutputSchema = (0, import_provider_utils11.lazySchema)(
|
|
1374
|
+
() => (0, import_provider_utils11.zodSchema)(
|
|
1288
1375
|
import_zod.z.union([
|
|
1289
1376
|
// Success response
|
|
1290
1377
|
import_zod.z.object({
|
|
@@ -1315,7 +1402,7 @@ var parallelSearchOutputSchema = (0, import_provider_utils10.lazySchema)(
|
|
|
1315
1402
|
])
|
|
1316
1403
|
)
|
|
1317
1404
|
);
|
|
1318
|
-
var parallelSearchToolFactory = (0,
|
|
1405
|
+
var parallelSearchToolFactory = (0, import_provider_utils11.createProviderToolFactoryWithOutputSchema)({
|
|
1319
1406
|
id: "gateway.parallel_search",
|
|
1320
1407
|
inputSchema: parallelSearchInputSchema,
|
|
1321
1408
|
outputSchema: parallelSearchOutputSchema
|
|
@@ -1323,10 +1410,10 @@ var parallelSearchToolFactory = (0, import_provider_utils10.createProviderToolFa
|
|
|
1323
1410
|
var parallelSearch = (config = {}) => parallelSearchToolFactory(config);
|
|
1324
1411
|
|
|
1325
1412
|
// src/tool/perplexity-search.ts
|
|
1326
|
-
var
|
|
1413
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
1327
1414
|
var import_zod2 = require("zod");
|
|
1328
|
-
var perplexitySearchInputSchema = (0,
|
|
1329
|
-
() => (0,
|
|
1415
|
+
var perplexitySearchInputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1416
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1330
1417
|
import_zod2.z.object({
|
|
1331
1418
|
query: import_zod2.z.union([import_zod2.z.string(), import_zod2.z.array(import_zod2.z.string())]).describe(
|
|
1332
1419
|
"Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."
|
|
@@ -1367,8 +1454,8 @@ var perplexitySearchInputSchema = (0, import_provider_utils11.lazySchema)(
|
|
|
1367
1454
|
})
|
|
1368
1455
|
)
|
|
1369
1456
|
);
|
|
1370
|
-
var perplexitySearchOutputSchema = (0,
|
|
1371
|
-
() => (0,
|
|
1457
|
+
var perplexitySearchOutputSchema = (0, import_provider_utils12.lazySchema)(
|
|
1458
|
+
() => (0, import_provider_utils12.zodSchema)(
|
|
1372
1459
|
import_zod2.z.union([
|
|
1373
1460
|
// Success response
|
|
1374
1461
|
import_zod2.z.object({
|
|
@@ -1398,7 +1485,7 @@ var perplexitySearchOutputSchema = (0, import_provider_utils11.lazySchema)(
|
|
|
1398
1485
|
])
|
|
1399
1486
|
)
|
|
1400
1487
|
);
|
|
1401
|
-
var perplexitySearchToolFactory = (0,
|
|
1488
|
+
var perplexitySearchToolFactory = (0, import_provider_utils12.createProviderToolFactoryWithOutputSchema)({
|
|
1402
1489
|
id: "gateway.perplexity_search",
|
|
1403
1490
|
inputSchema: perplexitySearchInputSchema,
|
|
1404
1491
|
outputSchema: perplexitySearchOutputSchema
|
|
@@ -1435,10 +1522,10 @@ async function getVercelRequestId() {
|
|
|
1435
1522
|
}
|
|
1436
1523
|
|
|
1437
1524
|
// src/gateway-provider.ts
|
|
1438
|
-
var
|
|
1525
|
+
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
1439
1526
|
|
|
1440
1527
|
// src/version.ts
|
|
1441
|
-
var VERSION = true ? "4.0.0-beta.
|
|
1528
|
+
var VERSION = true ? "4.0.0-beta.26" : "0.0.0-test";
|
|
1442
1529
|
|
|
1443
1530
|
// src/gateway-provider.ts
|
|
1444
1531
|
var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
|
|
@@ -1448,11 +1535,11 @@ function createGatewayProvider(options = {}) {
|
|
|
1448
1535
|
let metadataCache = null;
|
|
1449
1536
|
const cacheRefreshMillis = (_a9 = options.metadataCacheRefreshMillis) != null ? _a9 : 1e3 * 60 * 5;
|
|
1450
1537
|
let lastFetchTime = 0;
|
|
1451
|
-
const baseURL = (_b9 = (0,
|
|
1538
|
+
const baseURL = (_b9 = (0, import_provider_utils13.withoutTrailingSlash)(options.baseURL)) != null ? _b9 : "https://ai-gateway.vercel.sh/v3/ai";
|
|
1452
1539
|
const getHeaders = async () => {
|
|
1453
1540
|
try {
|
|
1454
1541
|
const auth = await getGatewayAuthToken(options);
|
|
1455
|
-
return (0,
|
|
1542
|
+
return (0, import_provider_utils14.withUserAgentSuffix)(
|
|
1456
1543
|
{
|
|
1457
1544
|
Authorization: `Bearer ${auth.token}`,
|
|
1458
1545
|
"ai-gateway-protocol-version": AI_GATEWAY_PROTOCOL_VERSION,
|
|
@@ -1471,19 +1558,19 @@ function createGatewayProvider(options = {}) {
|
|
|
1471
1558
|
}
|
|
1472
1559
|
};
|
|
1473
1560
|
const createO11yHeaders = () => {
|
|
1474
|
-
const deploymentId = (0,
|
|
1561
|
+
const deploymentId = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1475
1562
|
settingValue: void 0,
|
|
1476
1563
|
environmentVariableName: "VERCEL_DEPLOYMENT_ID"
|
|
1477
1564
|
});
|
|
1478
|
-
const environment = (0,
|
|
1565
|
+
const environment = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1479
1566
|
settingValue: void 0,
|
|
1480
1567
|
environmentVariableName: "VERCEL_ENV"
|
|
1481
1568
|
});
|
|
1482
|
-
const region = (0,
|
|
1569
|
+
const region = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1483
1570
|
settingValue: void 0,
|
|
1484
1571
|
environmentVariableName: "VERCEL_REGION"
|
|
1485
1572
|
});
|
|
1486
|
-
const projectId = (0,
|
|
1573
|
+
const projectId = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1487
1574
|
settingValue: void 0,
|
|
1488
1575
|
environmentVariableName: "VERCEL_PROJECT_ID"
|
|
1489
1576
|
});
|
|
@@ -1552,6 +1639,18 @@ function createGatewayProvider(options = {}) {
|
|
|
1552
1639
|
);
|
|
1553
1640
|
});
|
|
1554
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
|
+
};
|
|
1555
1654
|
const provider = function(modelId) {
|
|
1556
1655
|
if (new.target) {
|
|
1557
1656
|
throw new Error(
|
|
@@ -1564,6 +1663,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1564
1663
|
provider.getAvailableModels = getAvailableModels;
|
|
1565
1664
|
provider.getCredits = getCredits;
|
|
1566
1665
|
provider.getSpendReport = getSpendReport;
|
|
1666
|
+
provider.getGenerationInfo = getGenerationInfo;
|
|
1567
1667
|
provider.imageModel = (modelId) => {
|
|
1568
1668
|
return new GatewayImageModel(modelId, {
|
|
1569
1669
|
provider: "gateway",
|
|
@@ -1603,7 +1703,7 @@ function createGatewayProvider(options = {}) {
|
|
|
1603
1703
|
}
|
|
1604
1704
|
var gateway = createGatewayProvider();
|
|
1605
1705
|
async function getGatewayAuthToken(options) {
|
|
1606
|
-
const apiKey = (0,
|
|
1706
|
+
const apiKey = (0, import_provider_utils13.loadOptionalSetting)({
|
|
1607
1707
|
settingValue: options.apiKey,
|
|
1608
1708
|
environmentVariableName: "AI_GATEWAY_API_KEY"
|
|
1609
1709
|
});
|