@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/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 import_provider_utils12 = require("@ai-sdk/provider-utils");
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-language-model.ts
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, import_provider_utils6.resolve)(this.config.headers());
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, import_provider_utils6.postJsonToApi)({
796
+ } = await (0, import_provider_utils7.postJsonToApi)({
710
797
  url: this.getUrl(),
711
- headers: (0, import_provider_utils6.combineHeaders)(
798
+ headers: (0, import_provider_utils7.combineHeaders)(
712
799
  resolvedHeaders,
713
800
  options.headers,
714
801
  this.getModelConfigHeaders(this.modelId, false),
715
- await (0, import_provider_utils6.resolve)(this.config.o11yHeaders)
802
+ await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
716
803
  ),
717
804
  body: args,
718
- successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(import_v46.z.any()),
719
- failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
720
- errorSchema: import_v46.z.any(),
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, import_provider_utils6.resolve)(this.config.headers());
826
+ const resolvedHeaders = await (0, import_provider_utils7.resolve)(this.config.headers());
740
827
  try {
741
- const { value: response, responseHeaders } = await (0, import_provider_utils6.postJsonToApi)({
828
+ const { value: response, responseHeaders } = await (0, import_provider_utils7.postJsonToApi)({
742
829
  url: this.getUrl(),
743
- headers: (0, import_provider_utils6.combineHeaders)(
830
+ headers: (0, import_provider_utils7.combineHeaders)(
744
831
  resolvedHeaders,
745
832
  options.headers,
746
833
  this.getModelConfigHeaders(this.modelId, true),
747
- await (0, import_provider_utils6.resolve)(this.config.o11yHeaders)
834
+ await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
748
835
  ),
749
836
  body: args,
750
- successfulResponseHandler: (0, import_provider_utils6.createEventSourceResponseHandler)(import_v46.z.any()),
751
- failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
752
- errorSchema: import_v46.z.any(),
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 import_provider_utils7 = require("@ai-sdk/provider-utils");
831
- var import_v47 = require("zod/v4");
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, import_provider_utils7.resolve)(this.config.headers());
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, import_provider_utils7.postJsonToApi)({
943
+ } = await (0, import_provider_utils8.postJsonToApi)({
857
944
  url: this.getUrl(),
858
- headers: (0, import_provider_utils7.combineHeaders)(
945
+ headers: (0, import_provider_utils8.combineHeaders)(
859
946
  resolvedHeaders,
860
947
  headers != null ? headers : {},
861
948
  this.getModelConfigHeaders(),
862
- await (0, import_provider_utils7.resolve)(this.config.o11yHeaders)
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, import_provider_utils7.createJsonResponseHandler)(
955
+ successfulResponseHandler: (0, import_provider_utils8.createJsonResponseHandler)(
869
956
  gatewayEmbeddingResponseSchema
870
957
  ),
871
- failedResponseHandler: (0, import_provider_utils7.createJsonErrorResponseHandler)({
872
- errorSchema: import_v47.z.any(),
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, 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()
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 import_provider_utils8 = require("@ai-sdk/provider-utils");
911
- var import_v48 = require("zod/v4");
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, import_provider_utils8.resolve)(this.config.headers());
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, import_provider_utils8.postJsonToApi)({
1029
+ } = await (0, import_provider_utils9.postJsonToApi)({
943
1030
  url: this.getUrl(),
944
- headers: (0, import_provider_utils8.combineHeaders)(
1031
+ headers: (0, import_provider_utils9.combineHeaders)(
945
1032
  resolvedHeaders,
946
1033
  headers != null ? headers : {},
947
1034
  this.getModelConfigHeaders(),
948
- await (0, import_provider_utils8.resolve)(this.config.o11yHeaders)
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, import_provider_utils8.createJsonResponseHandler)(
1049
+ successfulResponseHandler: (0, import_provider_utils9.createJsonResponseHandler)(
963
1050
  gatewayImageResponseSchema
964
1051
  ),
965
- failedResponseHandler: (0, import_provider_utils8.createJsonErrorResponseHandler)({
966
- errorSchema: import_v48.z.any(),
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, import_provider_utils8.convertUint8ArrayToBase64)(file.data)
1095
+ data: (0, import_provider_utils9.convertUint8ArrayToBase64)(file.data)
1009
1096
  };
1010
1097
  }
1011
1098
  return file;
1012
1099
  }
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()
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
- import_v48.z.object({
1023
- type: import_v48.z.literal("compatibility"),
1024
- feature: import_v48.z.string(),
1025
- details: import_v48.z.string().optional()
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
- import_v48.z.object({
1028
- type: import_v48.z.literal("other"),
1029
- message: import_v48.z.string()
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 = 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()
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 = import_v48.z.object({
1038
- images: import_v48.z.array(import_v48.z.string()),
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: import_v48.z.array(gatewayImageWarningSchema).optional(),
1041
- providerMetadata: import_v48.z.record(import_v48.z.string(), providerMetadataEntrySchema).optional(),
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 import_provider_utils9 = require("@ai-sdk/provider-utils");
1048
- var import_v49 = require("zod/v4");
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, import_provider_utils9.resolve)(this.config.headers());
1161
+ const resolvedHeaders = await (0, import_provider_utils10.resolve)(this.config.headers());
1075
1162
  try {
1076
- const { responseHeaders, value: responseBody } = await (0, import_provider_utils9.postJsonToApi)({
1163
+ const { responseHeaders, value: responseBody } = await (0, import_provider_utils10.postJsonToApi)({
1077
1164
  url: this.getUrl(),
1078
- headers: (0, import_provider_utils9.combineHeaders)(
1165
+ headers: (0, import_provider_utils10.combineHeaders)(
1079
1166
  resolvedHeaders,
1080
1167
  headers != null ? headers : {},
1081
1168
  this.getModelConfigHeaders(),
1082
- await (0, import_provider_utils9.resolve)(this.config.o11yHeaders),
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, import_provider_utils9.parseJsonEventStream)({
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, import_provider_utils9.createJsonErrorResponseHandler)({
1161
- errorSchema: import_v49.z.any(),
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, import_provider_utils9.convertUint8ArrayToBase64)(file.data)
1282
+ data: (0, import_provider_utils10.convertUint8ArrayToBase64)(file.data)
1196
1283
  };
1197
1284
  }
1198
1285
  return file;
1199
1286
  }
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()
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
- import_v49.z.object({
1210
- type: import_v49.z.literal("base64"),
1211
- data: import_v49.z.string(),
1212
- mediaType: import_v49.z.string()
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 = 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()
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
- import_v49.z.object({
1222
- type: import_v49.z.literal("compatibility"),
1223
- feature: import_v49.z.string(),
1224
- details: import_v49.z.string().optional()
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
- import_v49.z.object({
1227
- type: import_v49.z.literal("other"),
1228
- message: import_v49.z.string()
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 = 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()
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
- 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()
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 import_provider_utils10 = require("@ai-sdk/provider-utils");
1335
+ var import_provider_utils11 = require("@ai-sdk/provider-utils");
1249
1336
  var import_zod = require("zod");
1250
- var parallelSearchInputSchema = (0, import_provider_utils10.lazySchema)(
1251
- () => (0, import_provider_utils10.zodSchema)(
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, import_provider_utils10.lazySchema)(
1287
- () => (0, import_provider_utils10.zodSchema)(
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, import_provider_utils10.createProviderToolFactoryWithOutputSchema)({
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 import_provider_utils11 = require("@ai-sdk/provider-utils");
1413
+ var import_provider_utils12 = require("@ai-sdk/provider-utils");
1327
1414
  var import_zod2 = require("zod");
1328
- var perplexitySearchInputSchema = (0, import_provider_utils11.lazySchema)(
1329
- () => (0, import_provider_utils11.zodSchema)(
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, import_provider_utils11.lazySchema)(
1371
- () => (0, import_provider_utils11.zodSchema)(
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, import_provider_utils11.createProviderToolFactoryWithOutputSchema)({
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 import_provider_utils13 = require("@ai-sdk/provider-utils");
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.24" : "0.0.0-test";
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, import_provider_utils12.withoutTrailingSlash)(options.baseURL)) != null ? _b9 : "https://ai-gateway.vercel.sh/v3/ai";
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, import_provider_utils13.withUserAgentSuffix)(
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, import_provider_utils12.loadOptionalSetting)({
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, import_provider_utils12.loadOptionalSetting)({
1565
+ const environment = (0, import_provider_utils13.loadOptionalSetting)({
1479
1566
  settingValue: void 0,
1480
1567
  environmentVariableName: "VERCEL_ENV"
1481
1568
  });
1482
- const region = (0, import_provider_utils12.loadOptionalSetting)({
1569
+ const region = (0, import_provider_utils13.loadOptionalSetting)({
1483
1570
  settingValue: void 0,
1484
1571
  environmentVariableName: "VERCEL_REGION"
1485
1572
  });
1486
- const projectId = (0, import_provider_utils12.loadOptionalSetting)({
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, import_provider_utils12.loadOptionalSetting)({
1706
+ const apiKey = (0, import_provider_utils13.loadOptionalSetting)({
1607
1707
  settingValue: options.apiKey,
1608
1708
  environmentVariableName: "AI_GATEWAY_API_KEY"
1609
1709
  });