@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.mjs CHANGED
@@ -667,16 +667,110 @@ var gatewaySpendReportResponseSchema = lazySchema5(
667
667
  )
668
668
  );
669
669
 
670
+ // src/gateway-generation-info.ts
671
+ import {
672
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler3,
673
+ createJsonResponseHandler as createJsonResponseHandler3,
674
+ getFromApi as getFromApi3,
675
+ lazySchema as lazySchema6,
676
+ resolve as resolve3,
677
+ zodSchema as zodSchema6
678
+ } from "@ai-sdk/provider-utils";
679
+ import { z as z6 } from "zod/v4";
680
+ var GatewayGenerationInfoFetcher = class {
681
+ constructor(config) {
682
+ this.config = config;
683
+ }
684
+ async getGenerationInfo(params) {
685
+ try {
686
+ const baseUrl = new URL(this.config.baseURL);
687
+ const { value } = await getFromApi3({
688
+ url: `${baseUrl.origin}/v1/generation?id=${encodeURIComponent(params.id)}`,
689
+ headers: await resolve3(this.config.headers()),
690
+ successfulResponseHandler: createJsonResponseHandler3(
691
+ gatewayGenerationInfoResponseSchema
692
+ ),
693
+ failedResponseHandler: createJsonErrorResponseHandler3({
694
+ errorSchema: z6.any(),
695
+ errorToMessage: (data) => data
696
+ }),
697
+ fetch: this.config.fetch
698
+ });
699
+ return value;
700
+ } catch (error) {
701
+ throw await asGatewayError(error);
702
+ }
703
+ }
704
+ };
705
+ var gatewayGenerationInfoResponseSchema = lazySchema6(
706
+ () => zodSchema6(
707
+ z6.object({
708
+ data: z6.object({
709
+ id: z6.string(),
710
+ total_cost: z6.number(),
711
+ upstream_inference_cost: z6.number(),
712
+ usage: z6.number(),
713
+ created_at: z6.string(),
714
+ model: z6.string(),
715
+ is_byok: z6.boolean(),
716
+ provider_name: z6.string(),
717
+ streamed: z6.boolean(),
718
+ finish_reason: z6.string(),
719
+ latency: z6.number(),
720
+ generation_time: z6.number(),
721
+ native_tokens_prompt: z6.number(),
722
+ native_tokens_completion: z6.number(),
723
+ native_tokens_reasoning: z6.number(),
724
+ native_tokens_cached: z6.number(),
725
+ native_tokens_cache_creation: z6.number(),
726
+ billable_web_search_calls: z6.number()
727
+ }).transform(
728
+ ({
729
+ total_cost,
730
+ upstream_inference_cost,
731
+ created_at,
732
+ is_byok,
733
+ provider_name,
734
+ finish_reason,
735
+ generation_time,
736
+ native_tokens_prompt,
737
+ native_tokens_completion,
738
+ native_tokens_reasoning,
739
+ native_tokens_cached,
740
+ native_tokens_cache_creation,
741
+ billable_web_search_calls,
742
+ ...rest
743
+ }) => ({
744
+ ...rest,
745
+ totalCost: total_cost,
746
+ upstreamInferenceCost: upstream_inference_cost,
747
+ createdAt: created_at,
748
+ isByok: is_byok,
749
+ providerName: provider_name,
750
+ finishReason: finish_reason,
751
+ generationTime: generation_time,
752
+ promptTokens: native_tokens_prompt,
753
+ completionTokens: native_tokens_completion,
754
+ reasoningTokens: native_tokens_reasoning,
755
+ cachedTokens: native_tokens_cached,
756
+ cacheCreationTokens: native_tokens_cache_creation,
757
+ billableWebSearchCalls: billable_web_search_calls
758
+ })
759
+ )
760
+ }).transform(({ data }) => data)
761
+ )
762
+ );
763
+
670
764
  // src/gateway-language-model.ts
671
765
  import {
672
766
  combineHeaders,
673
767
  createEventSourceResponseHandler,
674
- createJsonErrorResponseHandler as createJsonErrorResponseHandler3,
675
- createJsonResponseHandler as createJsonResponseHandler3,
768
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler4,
769
+ createJsonResponseHandler as createJsonResponseHandler4,
676
770
  postJsonToApi,
677
- resolve as resolve3
771
+ resolve as resolve4
678
772
  } from "@ai-sdk/provider-utils";
679
- import { z as z6 } from "zod/v4";
773
+ import { z as z7 } from "zod/v4";
680
774
  var GatewayLanguageModel = class {
681
775
  constructor(modelId, config) {
682
776
  this.modelId = modelId;
@@ -697,7 +791,7 @@ var GatewayLanguageModel = class {
697
791
  async doGenerate(options) {
698
792
  const { args, warnings } = await this.getArgs(options);
699
793
  const { abortSignal } = options;
700
- const resolvedHeaders = await resolve3(this.config.headers());
794
+ const resolvedHeaders = await resolve4(this.config.headers());
701
795
  try {
702
796
  const {
703
797
  responseHeaders,
@@ -709,12 +803,12 @@ var GatewayLanguageModel = class {
709
803
  resolvedHeaders,
710
804
  options.headers,
711
805
  this.getModelConfigHeaders(this.modelId, false),
712
- await resolve3(this.config.o11yHeaders)
806
+ await resolve4(this.config.o11yHeaders)
713
807
  ),
714
808
  body: args,
715
- successfulResponseHandler: createJsonResponseHandler3(z6.any()),
716
- failedResponseHandler: createJsonErrorResponseHandler3({
717
- errorSchema: z6.any(),
809
+ successfulResponseHandler: createJsonResponseHandler4(z7.any()),
810
+ failedResponseHandler: createJsonErrorResponseHandler4({
811
+ errorSchema: z7.any(),
718
812
  errorToMessage: (data) => data
719
813
  }),
720
814
  ...abortSignal && { abortSignal },
@@ -733,7 +827,7 @@ var GatewayLanguageModel = class {
733
827
  async doStream(options) {
734
828
  const { args, warnings } = await this.getArgs(options);
735
829
  const { abortSignal } = options;
736
- const resolvedHeaders = await resolve3(this.config.headers());
830
+ const resolvedHeaders = await resolve4(this.config.headers());
737
831
  try {
738
832
  const { value: response, responseHeaders } = await postJsonToApi({
739
833
  url: this.getUrl(),
@@ -741,12 +835,12 @@ var GatewayLanguageModel = class {
741
835
  resolvedHeaders,
742
836
  options.headers,
743
837
  this.getModelConfigHeaders(this.modelId, true),
744
- await resolve3(this.config.o11yHeaders)
838
+ await resolve4(this.config.o11yHeaders)
745
839
  ),
746
840
  body: args,
747
- successfulResponseHandler: createEventSourceResponseHandler(z6.any()),
748
- failedResponseHandler: createJsonErrorResponseHandler3({
749
- errorSchema: z6.any(),
841
+ successfulResponseHandler: createEventSourceResponseHandler(z7.any()),
842
+ failedResponseHandler: createJsonErrorResponseHandler4({
843
+ errorSchema: z7.any(),
750
844
  errorToMessage: (data) => data
751
845
  }),
752
846
  ...abortSignal && { abortSignal },
@@ -826,14 +920,14 @@ var GatewayLanguageModel = class {
826
920
  // src/gateway-embedding-model.ts
827
921
  import {
828
922
  combineHeaders as combineHeaders2,
829
- createJsonErrorResponseHandler as createJsonErrorResponseHandler4,
830
- createJsonResponseHandler as createJsonResponseHandler4,
831
- lazySchema as lazySchema6,
923
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler5,
924
+ createJsonResponseHandler as createJsonResponseHandler5,
925
+ lazySchema as lazySchema7,
832
926
  postJsonToApi as postJsonToApi2,
833
- resolve as resolve4,
834
- zodSchema as zodSchema6
927
+ resolve as resolve5,
928
+ zodSchema as zodSchema7
835
929
  } from "@ai-sdk/provider-utils";
836
- import { z as z7 } from "zod/v4";
930
+ import { z as z8 } from "zod/v4";
837
931
  var GatewayEmbeddingModel = class {
838
932
  constructor(modelId, config) {
839
933
  this.modelId = modelId;
@@ -852,7 +946,7 @@ var GatewayEmbeddingModel = class {
852
946
  providerOptions
853
947
  }) {
854
948
  var _a9;
855
- const resolvedHeaders = await resolve4(this.config.headers());
949
+ const resolvedHeaders = await resolve5(this.config.headers());
856
950
  try {
857
951
  const {
858
952
  responseHeaders,
@@ -864,17 +958,17 @@ var GatewayEmbeddingModel = class {
864
958
  resolvedHeaders,
865
959
  headers != null ? headers : {},
866
960
  this.getModelConfigHeaders(),
867
- await resolve4(this.config.o11yHeaders)
961
+ await resolve5(this.config.o11yHeaders)
868
962
  ),
869
963
  body: {
870
964
  values,
871
965
  ...providerOptions ? { providerOptions } : {}
872
966
  },
873
- successfulResponseHandler: createJsonResponseHandler4(
967
+ successfulResponseHandler: createJsonResponseHandler5(
874
968
  gatewayEmbeddingResponseSchema
875
969
  ),
876
- failedResponseHandler: createJsonErrorResponseHandler4({
877
- errorSchema: z7.any(),
970
+ failedResponseHandler: createJsonErrorResponseHandler5({
971
+ errorSchema: z8.any(),
878
972
  errorToMessage: (data) => data
879
973
  }),
880
974
  ...abortSignal && { abortSignal },
@@ -901,12 +995,12 @@ var GatewayEmbeddingModel = class {
901
995
  };
902
996
  }
903
997
  };
904
- var gatewayEmbeddingResponseSchema = lazySchema6(
905
- () => zodSchema6(
906
- z7.object({
907
- embeddings: z7.array(z7.array(z7.number())),
908
- usage: z7.object({ tokens: z7.number() }).nullish(),
909
- providerMetadata: z7.record(z7.string(), z7.record(z7.string(), z7.unknown())).optional()
998
+ var gatewayEmbeddingResponseSchema = lazySchema7(
999
+ () => zodSchema7(
1000
+ z8.object({
1001
+ embeddings: z8.array(z8.array(z8.number())),
1002
+ usage: z8.object({ tokens: z8.number() }).nullish(),
1003
+ providerMetadata: z8.record(z8.string(), z8.record(z8.string(), z8.unknown())).optional()
910
1004
  })
911
1005
  )
912
1006
  );
@@ -915,12 +1009,12 @@ var gatewayEmbeddingResponseSchema = lazySchema6(
915
1009
  import {
916
1010
  combineHeaders as combineHeaders3,
917
1011
  convertUint8ArrayToBase64,
918
- createJsonResponseHandler as createJsonResponseHandler5,
919
- createJsonErrorResponseHandler as createJsonErrorResponseHandler5,
1012
+ createJsonResponseHandler as createJsonResponseHandler6,
1013
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler6,
920
1014
  postJsonToApi as postJsonToApi3,
921
- resolve as resolve5
1015
+ resolve as resolve6
922
1016
  } from "@ai-sdk/provider-utils";
923
- import { z as z8 } from "zod/v4";
1017
+ import { z as z9 } from "zod/v4";
924
1018
  var GatewayImageModel = class {
925
1019
  constructor(modelId, config) {
926
1020
  this.modelId = modelId;
@@ -945,7 +1039,7 @@ var GatewayImageModel = class {
945
1039
  abortSignal
946
1040
  }) {
947
1041
  var _a9, _b9, _c, _d;
948
- const resolvedHeaders = await resolve5(this.config.headers());
1042
+ const resolvedHeaders = await resolve6(this.config.headers());
949
1043
  try {
950
1044
  const {
951
1045
  responseHeaders,
@@ -957,7 +1051,7 @@ var GatewayImageModel = class {
957
1051
  resolvedHeaders,
958
1052
  headers != null ? headers : {},
959
1053
  this.getModelConfigHeaders(),
960
- await resolve5(this.config.o11yHeaders)
1054
+ await resolve6(this.config.o11yHeaders)
961
1055
  ),
962
1056
  body: {
963
1057
  prompt,
@@ -971,11 +1065,11 @@ var GatewayImageModel = class {
971
1065
  },
972
1066
  ...mask && { mask: maybeEncodeImageFile(mask) }
973
1067
  },
974
- successfulResponseHandler: createJsonResponseHandler5(
1068
+ successfulResponseHandler: createJsonResponseHandler6(
975
1069
  gatewayImageResponseSchema
976
1070
  ),
977
- failedResponseHandler: createJsonErrorResponseHandler5({
978
- errorSchema: z8.any(),
1071
+ failedResponseHandler: createJsonErrorResponseHandler6({
1072
+ errorSchema: z9.any(),
979
1073
  errorToMessage: (data) => data
980
1074
  }),
981
1075
  ...abortSignal && { abortSignal },
@@ -1022,35 +1116,35 @@ function maybeEncodeImageFile(file) {
1022
1116
  }
1023
1117
  return file;
1024
1118
  }
1025
- var providerMetadataEntrySchema = z8.object({
1026
- images: z8.array(z8.unknown()).optional()
1027
- }).catchall(z8.unknown());
1028
- var gatewayImageWarningSchema = z8.discriminatedUnion("type", [
1029
- z8.object({
1030
- type: z8.literal("unsupported"),
1031
- feature: z8.string(),
1032
- details: z8.string().optional()
1119
+ var providerMetadataEntrySchema = z9.object({
1120
+ images: z9.array(z9.unknown()).optional()
1121
+ }).catchall(z9.unknown());
1122
+ var gatewayImageWarningSchema = z9.discriminatedUnion("type", [
1123
+ z9.object({
1124
+ type: z9.literal("unsupported"),
1125
+ feature: z9.string(),
1126
+ details: z9.string().optional()
1033
1127
  }),
1034
- z8.object({
1035
- type: z8.literal("compatibility"),
1036
- feature: z8.string(),
1037
- details: z8.string().optional()
1128
+ z9.object({
1129
+ type: z9.literal("compatibility"),
1130
+ feature: z9.string(),
1131
+ details: z9.string().optional()
1038
1132
  }),
1039
- z8.object({
1040
- type: z8.literal("other"),
1041
- message: z8.string()
1133
+ z9.object({
1134
+ type: z9.literal("other"),
1135
+ message: z9.string()
1042
1136
  })
1043
1137
  ]);
1044
- var gatewayImageUsageSchema = z8.object({
1045
- inputTokens: z8.number().nullish(),
1046
- outputTokens: z8.number().nullish(),
1047
- totalTokens: z8.number().nullish()
1138
+ var gatewayImageUsageSchema = z9.object({
1139
+ inputTokens: z9.number().nullish(),
1140
+ outputTokens: z9.number().nullish(),
1141
+ totalTokens: z9.number().nullish()
1048
1142
  });
1049
- var gatewayImageResponseSchema = z8.object({
1050
- images: z8.array(z8.string()),
1143
+ var gatewayImageResponseSchema = z9.object({
1144
+ images: z9.array(z9.string()),
1051
1145
  // Always base64 strings over the wire
1052
- warnings: z8.array(gatewayImageWarningSchema).optional(),
1053
- providerMetadata: z8.record(z8.string(), providerMetadataEntrySchema).optional(),
1146
+ warnings: z9.array(gatewayImageWarningSchema).optional(),
1147
+ providerMetadata: z9.record(z9.string(), providerMetadataEntrySchema).optional(),
1054
1148
  usage: gatewayImageUsageSchema.optional()
1055
1149
  });
1056
1150
 
@@ -1059,12 +1153,12 @@ import { APICallError as APICallError2 } from "@ai-sdk/provider";
1059
1153
  import {
1060
1154
  combineHeaders as combineHeaders4,
1061
1155
  convertUint8ArrayToBase64 as convertUint8ArrayToBase642,
1062
- createJsonErrorResponseHandler as createJsonErrorResponseHandler6,
1156
+ createJsonErrorResponseHandler as createJsonErrorResponseHandler7,
1063
1157
  parseJsonEventStream,
1064
1158
  postJsonToApi as postJsonToApi4,
1065
- resolve as resolve6
1159
+ resolve as resolve7
1066
1160
  } from "@ai-sdk/provider-utils";
1067
- import { z as z9 } from "zod/v4";
1161
+ import { z as z10 } from "zod/v4";
1068
1162
  var GatewayVideoModel = class {
1069
1163
  constructor(modelId, config) {
1070
1164
  this.modelId = modelId;
@@ -1090,7 +1184,7 @@ var GatewayVideoModel = class {
1090
1184
  abortSignal
1091
1185
  }) {
1092
1186
  var _a9;
1093
- const resolvedHeaders = await resolve6(this.config.headers());
1187
+ const resolvedHeaders = await resolve7(this.config.headers());
1094
1188
  try {
1095
1189
  const { responseHeaders, value: responseBody } = await postJsonToApi4({
1096
1190
  url: this.getUrl(),
@@ -1098,7 +1192,7 @@ var GatewayVideoModel = class {
1098
1192
  resolvedHeaders,
1099
1193
  headers != null ? headers : {},
1100
1194
  this.getModelConfigHeaders(),
1101
- await resolve6(this.config.o11yHeaders),
1195
+ await resolve7(this.config.o11yHeaders),
1102
1196
  { accept: "text/event-stream" }
1103
1197
  ),
1104
1198
  body: {
@@ -1176,8 +1270,8 @@ var GatewayVideoModel = class {
1176
1270
  responseHeaders: Object.fromEntries([...response.headers])
1177
1271
  };
1178
1272
  },
1179
- failedResponseHandler: createJsonErrorResponseHandler6({
1180
- errorSchema: z9.any(),
1273
+ failedResponseHandler: createJsonErrorResponseHandler7({
1274
+ errorSchema: z10.any(),
1181
1275
  errorToMessage: (data) => data
1182
1276
  }),
1183
1277
  ...abortSignal && { abortSignal },
@@ -1216,115 +1310,115 @@ function maybeEncodeVideoFile(file) {
1216
1310
  }
1217
1311
  return file;
1218
1312
  }
1219
- var providerMetadataEntrySchema2 = z9.object({
1220
- videos: z9.array(z9.unknown()).optional()
1221
- }).catchall(z9.unknown());
1222
- var gatewayVideoDataSchema = z9.union([
1223
- z9.object({
1224
- type: z9.literal("url"),
1225
- url: z9.string(),
1226
- mediaType: z9.string()
1313
+ var providerMetadataEntrySchema2 = z10.object({
1314
+ videos: z10.array(z10.unknown()).optional()
1315
+ }).catchall(z10.unknown());
1316
+ var gatewayVideoDataSchema = z10.union([
1317
+ z10.object({
1318
+ type: z10.literal("url"),
1319
+ url: z10.string(),
1320
+ mediaType: z10.string()
1227
1321
  }),
1228
- z9.object({
1229
- type: z9.literal("base64"),
1230
- data: z9.string(),
1231
- mediaType: z9.string()
1322
+ z10.object({
1323
+ type: z10.literal("base64"),
1324
+ data: z10.string(),
1325
+ mediaType: z10.string()
1232
1326
  })
1233
1327
  ]);
1234
- var gatewayVideoWarningSchema = z9.discriminatedUnion("type", [
1235
- z9.object({
1236
- type: z9.literal("unsupported"),
1237
- feature: z9.string(),
1238
- details: z9.string().optional()
1328
+ var gatewayVideoWarningSchema = z10.discriminatedUnion("type", [
1329
+ z10.object({
1330
+ type: z10.literal("unsupported"),
1331
+ feature: z10.string(),
1332
+ details: z10.string().optional()
1239
1333
  }),
1240
- z9.object({
1241
- type: z9.literal("compatibility"),
1242
- feature: z9.string(),
1243
- details: z9.string().optional()
1334
+ z10.object({
1335
+ type: z10.literal("compatibility"),
1336
+ feature: z10.string(),
1337
+ details: z10.string().optional()
1244
1338
  }),
1245
- z9.object({
1246
- type: z9.literal("other"),
1247
- message: z9.string()
1339
+ z10.object({
1340
+ type: z10.literal("other"),
1341
+ message: z10.string()
1248
1342
  })
1249
1343
  ]);
1250
- var gatewayVideoEventSchema = z9.discriminatedUnion("type", [
1251
- z9.object({
1252
- type: z9.literal("result"),
1253
- videos: z9.array(gatewayVideoDataSchema),
1254
- warnings: z9.array(gatewayVideoWarningSchema).optional(),
1255
- providerMetadata: z9.record(z9.string(), providerMetadataEntrySchema2).optional()
1344
+ var gatewayVideoEventSchema = z10.discriminatedUnion("type", [
1345
+ z10.object({
1346
+ type: z10.literal("result"),
1347
+ videos: z10.array(gatewayVideoDataSchema),
1348
+ warnings: z10.array(gatewayVideoWarningSchema).optional(),
1349
+ providerMetadata: z10.record(z10.string(), providerMetadataEntrySchema2).optional()
1256
1350
  }),
1257
- z9.object({
1258
- type: z9.literal("error"),
1259
- message: z9.string(),
1260
- errorType: z9.string(),
1261
- statusCode: z9.number(),
1262
- param: z9.unknown().nullable()
1351
+ z10.object({
1352
+ type: z10.literal("error"),
1353
+ message: z10.string(),
1354
+ errorType: z10.string(),
1355
+ statusCode: z10.number(),
1356
+ param: z10.unknown().nullable()
1263
1357
  })
1264
1358
  ]);
1265
1359
 
1266
1360
  // src/tool/parallel-search.ts
1267
1361
  import {
1268
1362
  createProviderToolFactoryWithOutputSchema,
1269
- lazySchema as lazySchema7,
1270
- zodSchema as zodSchema7
1363
+ lazySchema as lazySchema8,
1364
+ zodSchema as zodSchema8
1271
1365
  } from "@ai-sdk/provider-utils";
1272
- import { z as z10 } from "zod";
1273
- var parallelSearchInputSchema = lazySchema7(
1274
- () => zodSchema7(
1275
- z10.object({
1276
- objective: z10.string().describe(
1366
+ import { z as z11 } from "zod";
1367
+ var parallelSearchInputSchema = lazySchema8(
1368
+ () => zodSchema8(
1369
+ z11.object({
1370
+ objective: z11.string().describe(
1277
1371
  "Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."
1278
1372
  ),
1279
- search_queries: z10.array(z10.string()).optional().describe(
1373
+ search_queries: z11.array(z11.string()).optional().describe(
1280
1374
  "Optional search queries to supplement the objective. Maximum 200 characters per query."
1281
1375
  ),
1282
- mode: z10.enum(["one-shot", "agentic"]).optional().describe(
1376
+ mode: z11.enum(["one-shot", "agentic"]).optional().describe(
1283
1377
  'Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'
1284
1378
  ),
1285
- max_results: z10.number().optional().describe(
1379
+ max_results: z11.number().optional().describe(
1286
1380
  "Maximum number of results to return (1-20). Defaults to 10 if not specified."
1287
1381
  ),
1288
- source_policy: z10.object({
1289
- include_domains: z10.array(z10.string()).optional().describe("List of domains to include in search results."),
1290
- exclude_domains: z10.array(z10.string()).optional().describe("List of domains to exclude from search results."),
1291
- after_date: z10.string().optional().describe(
1382
+ source_policy: z11.object({
1383
+ include_domains: z11.array(z11.string()).optional().describe("List of domains to include in search results."),
1384
+ exclude_domains: z11.array(z11.string()).optional().describe("List of domains to exclude from search results."),
1385
+ after_date: z11.string().optional().describe(
1292
1386
  "Only include results published after this date (ISO 8601 format)."
1293
1387
  )
1294
1388
  }).optional().describe(
1295
1389
  "Source policy for controlling which domains to include/exclude and freshness."
1296
1390
  ),
1297
- excerpts: z10.object({
1298
- max_chars_per_result: z10.number().optional().describe("Maximum characters per result."),
1299
- max_chars_total: z10.number().optional().describe("Maximum total characters across all results.")
1391
+ excerpts: z11.object({
1392
+ max_chars_per_result: z11.number().optional().describe("Maximum characters per result."),
1393
+ max_chars_total: z11.number().optional().describe("Maximum total characters across all results.")
1300
1394
  }).optional().describe("Excerpt configuration for controlling result length."),
1301
- fetch_policy: z10.object({
1302
- max_age_seconds: z10.number().optional().describe(
1395
+ fetch_policy: z11.object({
1396
+ max_age_seconds: z11.number().optional().describe(
1303
1397
  "Maximum age in seconds for cached content. Set to 0 to always fetch fresh content."
1304
1398
  )
1305
1399
  }).optional().describe("Fetch policy for controlling content freshness.")
1306
1400
  })
1307
1401
  )
1308
1402
  );
1309
- var parallelSearchOutputSchema = lazySchema7(
1310
- () => zodSchema7(
1311
- z10.union([
1403
+ var parallelSearchOutputSchema = lazySchema8(
1404
+ () => zodSchema8(
1405
+ z11.union([
1312
1406
  // Success response
1313
- z10.object({
1314
- searchId: z10.string(),
1315
- results: z10.array(
1316
- z10.object({
1317
- url: z10.string(),
1318
- title: z10.string(),
1319
- excerpt: z10.string(),
1320
- publishDate: z10.string().nullable().optional(),
1321
- relevanceScore: z10.number().optional()
1407
+ z11.object({
1408
+ searchId: z11.string(),
1409
+ results: z11.array(
1410
+ z11.object({
1411
+ url: z11.string(),
1412
+ title: z11.string(),
1413
+ excerpt: z11.string(),
1414
+ publishDate: z11.string().nullable().optional(),
1415
+ relevanceScore: z11.number().optional()
1322
1416
  })
1323
1417
  )
1324
1418
  }),
1325
1419
  // Error response
1326
- z10.object({
1327
- error: z10.enum([
1420
+ z11.object({
1421
+ error: z11.enum([
1328
1422
  "api_error",
1329
1423
  "rate_limit",
1330
1424
  "timeout",
@@ -1332,8 +1426,8 @@ var parallelSearchOutputSchema = lazySchema7(
1332
1426
  "configuration_error",
1333
1427
  "unknown"
1334
1428
  ]),
1335
- statusCode: z10.number().optional(),
1336
- message: z10.string()
1429
+ statusCode: z11.number().optional(),
1430
+ message: z11.string()
1337
1431
  })
1338
1432
  ])
1339
1433
  )
@@ -1348,79 +1442,79 @@ var parallelSearch = (config = {}) => parallelSearchToolFactory(config);
1348
1442
  // src/tool/perplexity-search.ts
1349
1443
  import {
1350
1444
  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema2,
1351
- lazySchema as lazySchema8,
1352
- zodSchema as zodSchema8
1445
+ lazySchema as lazySchema9,
1446
+ zodSchema as zodSchema9
1353
1447
  } from "@ai-sdk/provider-utils";
1354
- import { z as z11 } from "zod";
1355
- var perplexitySearchInputSchema = lazySchema8(
1356
- () => zodSchema8(
1357
- z11.object({
1358
- query: z11.union([z11.string(), z11.array(z11.string())]).describe(
1448
+ import { z as z12 } from "zod";
1449
+ var perplexitySearchInputSchema = lazySchema9(
1450
+ () => zodSchema9(
1451
+ z12.object({
1452
+ query: z12.union([z12.string(), z12.array(z12.string())]).describe(
1359
1453
  "Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."
1360
1454
  ),
1361
- max_results: z11.number().optional().describe(
1455
+ max_results: z12.number().optional().describe(
1362
1456
  "Maximum number of search results to return (1-20, default: 10)"
1363
1457
  ),
1364
- max_tokens_per_page: z11.number().optional().describe(
1458
+ max_tokens_per_page: z12.number().optional().describe(
1365
1459
  "Maximum number of tokens to extract per search result page (256-2048, default: 2048)"
1366
1460
  ),
1367
- max_tokens: z11.number().optional().describe(
1461
+ max_tokens: z12.number().optional().describe(
1368
1462
  "Maximum total tokens across all search results (default: 25000, max: 1000000)"
1369
1463
  ),
1370
- country: z11.string().optional().describe(
1464
+ country: z12.string().optional().describe(
1371
1465
  "Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"
1372
1466
  ),
1373
- search_domain_filter: z11.array(z11.string()).optional().describe(
1467
+ search_domain_filter: z12.array(z12.string()).optional().describe(
1374
1468
  "List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"
1375
1469
  ),
1376
- search_language_filter: z11.array(z11.string()).optional().describe(
1470
+ search_language_filter: z12.array(z12.string()).optional().describe(
1377
1471
  "List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"
1378
1472
  ),
1379
- search_after_date: z11.string().optional().describe(
1473
+ search_after_date: z12.string().optional().describe(
1380
1474
  "Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."
1381
1475
  ),
1382
- search_before_date: z11.string().optional().describe(
1476
+ search_before_date: z12.string().optional().describe(
1383
1477
  "Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."
1384
1478
  ),
1385
- last_updated_after_filter: z11.string().optional().describe(
1479
+ last_updated_after_filter: z12.string().optional().describe(
1386
1480
  "Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."
1387
1481
  ),
1388
- last_updated_before_filter: z11.string().optional().describe(
1482
+ last_updated_before_filter: z12.string().optional().describe(
1389
1483
  "Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."
1390
1484
  ),
1391
- search_recency_filter: z11.enum(["day", "week", "month", "year"]).optional().describe(
1485
+ search_recency_filter: z12.enum(["day", "week", "month", "year"]).optional().describe(
1392
1486
  "Filter results by relative time period. Cannot be used with search_after_date or search_before_date."
1393
1487
  )
1394
1488
  })
1395
1489
  )
1396
1490
  );
1397
- var perplexitySearchOutputSchema = lazySchema8(
1398
- () => zodSchema8(
1399
- z11.union([
1491
+ var perplexitySearchOutputSchema = lazySchema9(
1492
+ () => zodSchema9(
1493
+ z12.union([
1400
1494
  // Success response
1401
- z11.object({
1402
- results: z11.array(
1403
- z11.object({
1404
- title: z11.string(),
1405
- url: z11.string(),
1406
- snippet: z11.string(),
1407
- date: z11.string().optional(),
1408
- lastUpdated: z11.string().optional()
1495
+ z12.object({
1496
+ results: z12.array(
1497
+ z12.object({
1498
+ title: z12.string(),
1499
+ url: z12.string(),
1500
+ snippet: z12.string(),
1501
+ date: z12.string().optional(),
1502
+ lastUpdated: z12.string().optional()
1409
1503
  })
1410
1504
  ),
1411
- id: z11.string()
1505
+ id: z12.string()
1412
1506
  }),
1413
1507
  // Error response
1414
- z11.object({
1415
- error: z11.enum([
1508
+ z12.object({
1509
+ error: z12.enum([
1416
1510
  "api_error",
1417
1511
  "rate_limit",
1418
1512
  "timeout",
1419
1513
  "invalid_input",
1420
1514
  "unknown"
1421
1515
  ]),
1422
- statusCode: z11.number().optional(),
1423
- message: z11.string()
1516
+ statusCode: z12.number().optional(),
1517
+ message: z12.string()
1424
1518
  })
1425
1519
  ])
1426
1520
  )
@@ -1465,7 +1559,7 @@ async function getVercelRequestId() {
1465
1559
  import { withUserAgentSuffix } from "@ai-sdk/provider-utils";
1466
1560
 
1467
1561
  // src/version.ts
1468
- var VERSION = true ? "4.0.0-beta.24" : "0.0.0-test";
1562
+ var VERSION = true ? "4.0.0-beta.26" : "0.0.0-test";
1469
1563
 
1470
1564
  // src/gateway-provider.ts
1471
1565
  var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
@@ -1579,6 +1673,18 @@ function createGatewayProvider(options = {}) {
1579
1673
  );
1580
1674
  });
1581
1675
  };
1676
+ const getGenerationInfo = async (params) => {
1677
+ return new GatewayGenerationInfoFetcher({
1678
+ baseURL,
1679
+ headers: getHeaders,
1680
+ fetch: options.fetch
1681
+ }).getGenerationInfo(params).catch(async (error) => {
1682
+ throw await asGatewayError(
1683
+ error,
1684
+ await parseAuthMethod(await getHeaders())
1685
+ );
1686
+ });
1687
+ };
1582
1688
  const provider = function(modelId) {
1583
1689
  if (new.target) {
1584
1690
  throw new Error(
@@ -1591,6 +1697,7 @@ function createGatewayProvider(options = {}) {
1591
1697
  provider.getAvailableModels = getAvailableModels;
1592
1698
  provider.getCredits = getCredits;
1593
1699
  provider.getSpendReport = getSpendReport;
1700
+ provider.getGenerationInfo = getGenerationInfo;
1594
1701
  provider.imageModel = (modelId) => {
1595
1702
  return new GatewayImageModel(modelId, {
1596
1703
  provider: "gateway",