@gullabs/google 0.12.0 → 0.13.0

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
@@ -151,11 +151,22 @@ function isGoogleTransportError(rawErr) {
151
151
  }
152
152
  return false;
153
153
  }
154
+ function isGoogleModelNotFound(rawErr) {
155
+ if (!(rawErr instanceof Error)) return false;
156
+ if (rawErr.status !== 404) return false;
157
+ try {
158
+ const parsed = JSON.parse(rawErr.message);
159
+ return parsed.error?.code === 404 && parsed.error.status === "NOT_FOUND";
160
+ } catch {
161
+ return false;
162
+ }
163
+ }
154
164
  function classifyGoogleError(rawErr, extra) {
155
165
  const base = classifyError(rawErr);
156
166
  const reclassifyAsTransport = base.kind === "unknown" && isGoogleTransportError(rawErr);
167
+ const reclassifyAsBadRequest = base.kind === "unknown" && isGoogleModelNotFound(rawErr);
157
168
  return new LlmError(base.message, {
158
- kind: reclassifyAsTransport ? "server" : base.kind,
169
+ kind: reclassifyAsTransport ? "server" : reclassifyAsBadRequest ? "bad_request" : base.kind,
159
170
  retryable: reclassifyAsTransport ? true : base.retryable,
160
171
  ...base.httpStatus !== void 0 ? { httpStatus: base.httpStatus } : {},
161
172
  ...base.retryAfterMs !== void 0 ? { retryAfterMs: base.retryAfterMs } : {},
@@ -193,19 +204,6 @@ var RESERVED_GOOGLE_PROVIDER_OPTION_KEYS = /* @__PURE__ */ new Set([
193
204
  "topP",
194
205
  "_responseJsonSchema"
195
206
  ]);
196
- var GOOGLE_SEARCH_SUPPORTED_MODELS = /* @__PURE__ */ new Set([
197
- "gemini-2.5-flash",
198
- "gemini-2.5-flash-lite",
199
- "gemini-2.5-pro",
200
- "gemini-3-flash-preview",
201
- "gemini-3.1-flash-lite",
202
- "gemini-3.1-pro-preview",
203
- "gemini-3.5-flash"
204
- ]);
205
- var STRUCTURED_OUTPUT_GOOGLE_SEARCH_ALLOWLIST = /* @__PURE__ */ new Set([
206
- "gemini-3.1-pro-preview",
207
- "gemini-3.5-flash"
208
- ]);
209
207
  function isPlainRecord(value) {
210
208
  return typeof value === "object" && value !== null && !Array.isArray(value);
211
209
  }
@@ -273,7 +271,13 @@ function parseGoogleSafetySetting(setting, index, model) {
273
271
  threshold: setting["threshold"]
274
272
  };
275
273
  }
276
- function mapGoogleProviderOptions(googleOpts, model, structuredOutputRequested, descriptorGrounding) {
274
+ function mapGoogleProviderOptions({
275
+ googleOpts,
276
+ model,
277
+ structuredOutputRequested,
278
+ descriptorGrounding,
279
+ structuredOutputWithTools
280
+ }) {
277
281
  if (googleOpts === void 0) {
278
282
  return {};
279
283
  }
@@ -364,15 +368,14 @@ function mapGoogleProviderOptions(googleOpts, model, structuredOutputRequested,
364
368
  );
365
369
  }
366
370
  const tools = googleOpts["tools"].map((tool) => parseGoogleTool(tool, model));
367
- const groundingSupported = descriptorGrounding === true || descriptorGrounding === void 0 && GOOGLE_SEARCH_SUPPORTED_MODELS.has(model);
368
- if (!groundingSupported) {
371
+ if (descriptorGrounding !== true) {
369
372
  throw badGoogleProviderOptions(
370
373
  `providerOptions.google.tools is not supported for model "${model}".`
371
374
  );
372
375
  }
373
- if (structuredOutputRequested && !STRUCTURED_OUTPUT_GOOGLE_SEARCH_ALLOWLIST.has(model)) {
376
+ if (structuredOutputRequested && structuredOutputWithTools !== true) {
374
377
  throw badGoogleProviderOptions(
375
- `Structured output with googleSearch is supported only for models "gemini-3.1-pro-preview" and "gemini-3.5-flash"; got "${model}".`
378
+ `Structured output with googleSearch is not supported for model "${model}".`
376
379
  );
377
380
  }
378
381
  mapped.tools = tools;
@@ -526,6 +529,19 @@ function geminiAdapter(opts) {
526
529
  }
527
530
  const warnings = [];
528
531
  const model = req.model;
532
+ const descriptor = req.modelDescriptor;
533
+ if (descriptor?.model !== model || descriptor.provider !== "google") {
534
+ throw new LlmError(`No matching Google model descriptor for "${model}".`, {
535
+ kind: "bad_request",
536
+ retryable: false
537
+ });
538
+ }
539
+ if (req.transientProviderState !== void 0) {
540
+ throw new LlmError(`Model "${model}" does not admit transientProviderState.`, {
541
+ kind: "bad_request",
542
+ retryable: false
543
+ });
544
+ }
529
545
  const contents = mapMessagesToGeminiContents(req.messages);
530
546
  const genConfig = req.config;
531
547
  const config = {};
@@ -548,9 +564,9 @@ function geminiAdapter(opts) {
548
564
  config.stopSequences = genConfig.stopSequences;
549
565
  }
550
566
  const explicit = genConfig.serviceTier;
551
- const supported = req.modelDescriptor?.capabilities?.serviceTiers;
567
+ const supported = descriptor.capabilities?.serviceTiers;
552
568
  if (explicit !== void 0) {
553
- if (req.modelDescriptor !== void 0 && (supported === void 0 || !supported.includes(explicit))) {
569
+ if (supported === void 0 || !supported.includes(explicit)) {
554
570
  throw new LlmError(
555
571
  `serviceTier "${explicit}" is not supported for model "${model}".`,
556
572
  { kind: "bad_request", retryable: false }
@@ -560,7 +576,13 @@ function geminiAdapter(opts) {
560
576
  }
561
577
  const reasoning = genConfig.reasoning;
562
578
  if (reasoning !== void 0) {
563
- const reasoningApi = req.modelDescriptor?.capabilities?.reasoningApi;
579
+ const reasoningApi = descriptor.capabilities?.reasoningApi;
580
+ if (reasoning.effort === "max") {
581
+ throw new LlmError(
582
+ `reasoning.effort "max" is not supported for model "${model}".`,
583
+ { kind: "bad_request", retryable: false }
584
+ );
585
+ }
564
586
  if (reasoning.effort !== void 0 && reasoning.budgetTokens !== void 0) {
565
587
  throw new LlmError(
566
588
  `Provide either reasoning.effort or reasoning.budgetTokens, not both, for model "${model}".`,
@@ -568,6 +590,12 @@ function geminiAdapter(opts) {
568
590
  );
569
591
  }
570
592
  if (reasoningApi === "budget") {
593
+ if (reasoning.effort === "none" && descriptor.capabilities?.admittedReasoningEfforts?.includes("none") !== true) {
594
+ throw new LlmError(
595
+ `reasoning.effort "none" is not supported for model "${model}".`,
596
+ { kind: "bad_request", retryable: false }
597
+ );
598
+ }
571
599
  if (reasoning.effort === "xhigh") {
572
600
  throw new LlmError(
573
601
  `reasoning.effort "xhigh" is not supported for model "${model}".`,
@@ -586,10 +614,18 @@ function geminiAdapter(opts) {
586
614
  { kind: "bad_request", retryable: false }
587
615
  );
588
616
  }
617
+ const admitted = descriptor.capabilities?.admittedReasoningEfforts;
618
+ const admitsNone = admitted?.includes("none") === true;
589
619
  let thinkingLevel;
590
620
  if (reasoning.effort !== void 0) {
591
621
  switch (reasoning.effort) {
592
622
  case "none":
623
+ if (!admitsNone) {
624
+ throw new LlmError(
625
+ `reasoning.effort "none" is not supported for model "${model}"; thinkingLevel MINIMAL is not emitted.`,
626
+ { kind: "bad_request", retryable: false }
627
+ );
628
+ }
593
629
  thinkingLevel = "MINIMAL";
594
630
  break;
595
631
  case "low":
@@ -603,7 +639,7 @@ function geminiAdapter(opts) {
603
639
  break;
604
640
  case "xhigh":
605
641
  throw new LlmError(
606
- `reasoning.effort "xhigh" is not supported for model "${model}".`,
642
+ `reasoning.effort "${reasoning.effort}" is not supported for model "${model}".`,
607
643
  { kind: "bad_request", retryable: false }
608
644
  );
609
645
  default:
@@ -623,18 +659,19 @@ function geminiAdapter(opts) {
623
659
  }
624
660
  const structuredOutputRequested = req.outputJsonSchema !== void 0;
625
661
  if (structuredOutputRequested) {
626
- const nativeStructuredOutput = req.modelDescriptor?.capabilities?.nativeStructuredOutput !== false;
662
+ const nativeStructuredOutput = descriptor.capabilities?.nativeStructuredOutput !== false;
627
663
  if (nativeStructuredOutput) {
628
664
  config.responseMimeType = "application/json";
629
665
  config.responseSchema = req.outputJsonSchema;
630
666
  }
631
667
  }
632
- const googleProviderConfig = mapGoogleProviderOptions(
633
- genConfig.providerOptions?.["google"],
668
+ const googleProviderConfig = mapGoogleProviderOptions({
669
+ googleOpts: genConfig.providerOptions?.["google"],
634
670
  model,
635
671
  structuredOutputRequested,
636
- req.modelDescriptor?.capabilities?.grounding
637
- );
672
+ descriptorGrounding: descriptor.capabilities?.grounding,
673
+ structuredOutputWithTools: descriptor.capabilities?.structuredOutputWithTools
674
+ });
638
675
  if (googleProviderConfig.cachedContent !== void 0) {
639
676
  config.cachedContent = googleProviderConfig.cachedContent;
640
677
  }
@@ -763,30 +800,46 @@ function geminiAdapter(opts) {
763
800
  } finally {
764
801
  clearTierTimeout();
765
802
  }
803
+ const echoedTier = response.usageMetadata?.serviceTier;
804
+ if (typeof echoedTier === "string" && echoedTier.length > 0) {
805
+ if (config.serviceTier !== void 0 && echoedTier !== config.serviceTier) {
806
+ warnings.push({
807
+ type: "other",
808
+ message: `google: requested serviceTier "${config.serviceTier}" but provider served "${echoedTier}"; billing uses the served tier.`
809
+ });
810
+ }
811
+ servedServiceTier = echoedTier;
812
+ }
766
813
  const hasBlockReason = response.promptFeedback?.blockReason !== void 0;
767
814
  const hasCandidates = response.candidates !== void 0 && response.candidates.length > 0;
768
815
  if (hasBlockReason || !hasCandidates) {
769
816
  const reason = response.promptFeedback?.blockReason ?? "NO_CANDIDATES";
770
- throw new LlmError(`Gemini response blocked: ${reason}`, {
771
- kind: "content_filter",
772
- retryable: false,
773
- provider: "google"
817
+ throw new LlmError(`Gemini response has no usable candidate: ${reason}`, {
818
+ kind: hasBlockReason ? "content_filter" : "server",
819
+ retryable: !hasBlockReason,
820
+ provider: "google",
821
+ ...response.usageMetadata !== void 0 ? { usage: mapUsage(response.usageMetadata) } : {},
822
+ ...servedServiceTier !== void 0 ? { servedServiceTier } : {}
774
823
  });
775
824
  }
776
825
  const candidates = response.candidates;
777
826
  if (candidates === void 0 || candidates.length === 0) {
778
- throw new LlmError("Gemini response blocked: NO_CANDIDATES", {
779
- kind: "content_filter",
780
- retryable: false,
781
- provider: "google"
827
+ throw new LlmError("Gemini response has no usable candidate: NO_CANDIDATES", {
828
+ kind: "server",
829
+ retryable: true,
830
+ provider: "google",
831
+ ...response.usageMetadata !== void 0 ? { usage: mapUsage(response.usageMetadata) } : {},
832
+ ...servedServiceTier !== void 0 ? { servedServiceTier } : {}
782
833
  });
783
834
  }
784
835
  const candidate = candidates[0];
785
836
  if (candidate === void 0) {
786
- throw new LlmError("Gemini response blocked: NO_CANDIDATES", {
787
- kind: "content_filter",
788
- retryable: false,
789
- provider: "google"
837
+ throw new LlmError("Gemini response has no usable candidate: NO_CANDIDATES", {
838
+ kind: "server",
839
+ retryable: true,
840
+ provider: "google",
841
+ ...response.usageMetadata !== void 0 ? { usage: mapUsage(response.usageMetadata) } : {},
842
+ ...servedServiceTier !== void 0 ? { servedServiceTier } : {}
790
843
  });
791
844
  }
792
845
  const parts = candidate.content?.parts ?? [];
@@ -917,89 +970,121 @@ function geminiAdapter(opts) {
917
970
  }
918
971
 
919
972
  // src/pricing.ts
920
- var pricingVersion = "gemini-2026-08-12";
921
- var TIER_FACTOR = Object.freeze({
922
- standard: 1,
923
- flex: 0.5,
924
- batch: 0.5
925
- });
973
+ var pricingVersion = "gemini-2026-09-25";
974
+ var GEMINI_PRICED_TIERS = ["standard", "flex", "batch"];
975
+ function tiers(standard, flex, batch) {
976
+ return Object.freeze({ standard, flex, batch });
977
+ }
926
978
  var GEMINI_PRICING = Object.freeze({
927
- // ── Gemini 2.5 Pro ── $1.25/$10 (≤200k), $2.50/$15 (>200k); cached $0.125/$0.25
928
- "gemini-2.5-pro": {
929
- inputPerM: 125e4,
930
- cachedPerM: 125e3,
931
- outputPerM: 1e7,
932
- gt200k: {
933
- inputPerM: 25e5,
934
- cachedPerM: 25e4,
935
- outputPerM: 15e6
979
+ // Gemini 2.5 Pro. Flex/batch cached equals standard on both context bands.
980
+ "gemini-2.5-pro": tiers(
981
+ {
982
+ inputPerM: 125e4,
983
+ cachedPerM: 125e3,
984
+ outputPerM: 1e7,
985
+ gt200k: { inputPerM: 25e5, cachedPerM: 25e4, outputPerM: 15e6 }
986
+ },
987
+ {
988
+ inputPerM: 625e3,
989
+ cachedPerM: 125e3,
990
+ outputPerM: 5e6,
991
+ gt200k: { inputPerM: 125e4, cachedPerM: 25e4, outputPerM: 75e5 }
992
+ },
993
+ {
994
+ inputPerM: 625e3,
995
+ cachedPerM: 125e3,
996
+ outputPerM: 5e6,
997
+ gt200k: { inputPerM: 125e4, cachedPerM: 25e4, outputPerM: 75e5 }
936
998
  }
937
- },
938
- // ── Gemini 2.5 Flash ── input $0.30 (text), output $2.50, cached $0.03
939
- "gemini-2.5-flash": {
940
- inputPerM: 3e5,
941
- cachedPerM: 3e4,
942
- outputPerM: 25e5
943
- },
944
- // ── Gemini 2.5 Flash-Lite ── input $0.10 (text), output $0.40, cached $0.01
945
- "gemini-2.5-flash-lite": {
946
- inputPerM: 1e5,
947
- cachedPerM: 1e4,
948
- outputPerM: 4e5
949
- },
950
- // ── Gemini 3.5 Flash ── input $1.50, output $9.00, cached $0.15
951
- "gemini-3.5-flash": {
952
- inputPerM: 15e5,
953
- cachedPerM: 15e4,
954
- outputPerM: 9e6
955
- },
956
- // ── Gemini 3.1 Flash-Lite ── input $0.25 (text), output $1.50, cached $0.025
957
- "gemini-3.1-flash-lite": {
958
- inputPerM: 25e4,
959
- cachedPerM: 25e3,
960
- outputPerM: 15e5
961
- },
962
- // ── Gemini 3.1 Pro (preview) ── $2.00/$12 (≤200k), $4.00/$18 (>200k); cached $0.20/$0.40
963
- "gemini-3.1-pro-preview": {
964
- inputPerM: 2e6,
965
- cachedPerM: 2e5,
966
- outputPerM: 12e6,
967
- gt200k: {
968
- inputPerM: 4e6,
969
- cachedPerM: 4e5,
970
- outputPerM: 18e6
999
+ ),
1000
+ // Gemini 2.5 Flash. Flex/batch cached stays $0.03.
1001
+ "gemini-2.5-flash": tiers(
1002
+ { inputPerM: 3e5, cachedPerM: 3e4, outputPerM: 25e5 },
1003
+ { inputPerM: 15e4, cachedPerM: 3e4, outputPerM: 125e4 },
1004
+ { inputPerM: 15e4, cachedPerM: 3e4, outputPerM: 125e4 }
1005
+ ),
1006
+ // Gemini 2.5 Flash-Lite. Flex/batch cached stays $0.01.
1007
+ "gemini-2.5-flash-lite": tiers(
1008
+ { inputPerM: 1e5, cachedPerM: 1e4, outputPerM: 4e5 },
1009
+ { inputPerM: 5e4, cachedPerM: 1e4, outputPerM: 2e5 },
1010
+ { inputPerM: 5e4, cachedPerM: 1e4, outputPerM: 2e5 }
1011
+ ),
1012
+ // Gemini 3.1 Flash-Lite. Flex/batch cached is the published $0.0125.
1013
+ "gemini-3.1-flash-lite": tiers(
1014
+ { inputPerM: 25e4, cachedPerM: 25e3, outputPerM: 15e5 },
1015
+ { inputPerM: 125e3, cachedPerM: 12500, outputPerM: 75e4 },
1016
+ { inputPerM: 125e3, cachedPerM: 12500, outputPerM: 75e4 }
1017
+ ),
1018
+ // Gemini 3.8 / 3.7 / 3.6 Flash intro rates (2026-09-25). Flex/batch cached
1019
+ // is half of the intro cached rate. Re-snapshot on 2027-01-01.
1020
+ "gemini-3.8-flash": tiers(
1021
+ { inputPerM: 75e4, cachedPerM: 75e3, outputPerM: 375e4 },
1022
+ { inputPerM: 375e3, cachedPerM: 37500, outputPerM: 1875e3 },
1023
+ { inputPerM: 375e3, cachedPerM: 37500, outputPerM: 1875e3 }
1024
+ ),
1025
+ "gemini-3.7-flash": tiers(
1026
+ { inputPerM: 75e4, cachedPerM: 75e3, outputPerM: 375e4 },
1027
+ { inputPerM: 375e3, cachedPerM: 37500, outputPerM: 1875e3 },
1028
+ { inputPerM: 375e3, cachedPerM: 37500, outputPerM: 1875e3 }
1029
+ ),
1030
+ "gemini-3.6-flash": tiers(
1031
+ { inputPerM: 75e4, cachedPerM: 75e3, outputPerM: 375e4 },
1032
+ { inputPerM: 375e3, cachedPerM: 37500, outputPerM: 1875e3 },
1033
+ { inputPerM: 375e3, cachedPerM: 37500, outputPerM: 1875e3 }
1034
+ ),
1035
+ // Gemini 3.5 Flash-Lite. Flex/batch cached is the published $0.02, not half of $0.03.
1036
+ "gemini-3.5-flash-lite": tiers(
1037
+ { inputPerM: 3e5, cachedPerM: 3e4, outputPerM: 25e5 },
1038
+ { inputPerM: 15e4, cachedPerM: 2e4, outputPerM: 125e4 },
1039
+ { inputPerM: 15e4, cachedPerM: 2e4, outputPerM: 125e4 }
1040
+ ),
1041
+ // Gemini 3.1 Pro Preview. Flex/batch cached equals standard on both bands.
1042
+ "gemini-3.1-pro-preview": tiers(
1043
+ {
1044
+ inputPerM: 2e6,
1045
+ cachedPerM: 2e5,
1046
+ outputPerM: 12e6,
1047
+ gt200k: { inputPerM: 4e6, cachedPerM: 4e5, outputPerM: 18e6 }
1048
+ },
1049
+ {
1050
+ inputPerM: 1e6,
1051
+ cachedPerM: 2e5,
1052
+ outputPerM: 6e6,
1053
+ gt200k: { inputPerM: 2e6, cachedPerM: 4e5, outputPerM: 9e6 }
1054
+ },
1055
+ {
1056
+ inputPerM: 1e6,
1057
+ cachedPerM: 2e5,
1058
+ outputPerM: 6e6,
1059
+ gt200k: { inputPerM: 2e6, cachedPerM: 4e5, outputPerM: 9e6 }
971
1060
  }
972
- },
973
- // ── Gemini 3 Flash (preview) ── input $0.50, output $3.00, cached $0.05 (90% discount)
974
- "gemini-3-flash-preview": {
975
- inputPerM: 5e5,
976
- cachedPerM: 5e4,
977
- outputPerM: 3e6
978
- }
1061
+ )
979
1062
  });
1063
+ function isPricedGeminiTier(tier) {
1064
+ return GEMINI_PRICED_TIERS.includes(tier);
1065
+ }
1066
+ function lookupGeminiTierRates(model, tier) {
1067
+ const entry = Object.hasOwn(GEMINI_PRICING, model) ? GEMINI_PRICING[model] : void 0;
1068
+ if (entry === void 0) return void 0;
1069
+ if (tier !== void 0 && !isPricedGeminiTier(tier)) return void 0;
1070
+ return entry;
1071
+ }
1072
+ function resolveGeminiRates(model, tier) {
1073
+ const entry = lookupGeminiTierRates(model, tier);
1074
+ if (entry === void 0) return void 0;
1075
+ const key = tier ?? "standard";
1076
+ return entry[key];
1077
+ }
980
1078
 
981
1079
  // src/cost.ts
982
- function lookupRates(model) {
983
- const exact = GEMINI_PRICING[model];
984
- if (exact !== void 0) return exact;
985
- let bestKey = "";
986
- let bestRates;
987
- for (const key of Object.keys(GEMINI_PRICING)) {
988
- if (model.startsWith(key) && key.length > bestKey.length) {
989
- bestKey = key;
990
- bestRates = GEMINI_PRICING[key];
991
- }
992
- }
993
- return bestRates;
994
- }
995
1080
  function geminiPricingSource() {
996
1081
  return {
997
1082
  version: pricingVersion,
998
1083
  price(model, usage, tier) {
999
- return computeCost(model, usage, tier, lookupRates, TIER_FACTOR, pricingVersion);
1084
+ return computeCost(model, usage, tier, resolveGeminiRates, pricingVersion);
1000
1085
  },
1001
1086
  hasModel(model) {
1002
- return lookupRates(model) !== void 0;
1087
+ return resolveGeminiRates(model, void 0) !== void 0;
1003
1088
  },
1004
1089
  listModels() {
1005
1090
  return Object.keys(GEMINI_PRICING);
@@ -1702,25 +1787,25 @@ var Gemini25FlashLiteConfigSchema = z.union([
1702
1787
  description: "Strict generateContent config for model gemini-2.5-flash-lite. Budget reasoning, tunable sampling, flex/standard tiers, structured output, grounding, priced.",
1703
1788
  examples: [{ serviceTier: "flex", temperature: 0.7, reasoning: { budgetTokens: 0 } }]
1704
1789
  });
1705
- var Gemini35FlashConfigSchema = z.union([
1790
+ var Gemini31FlashLiteConfigSchema = z.union([
1706
1791
  z.strictObject({
1707
1792
  maxOutputTokens: z.number().int().positive().optional().meta({
1708
1793
  title: "Max Output Tokens",
1709
- description: "Maximum output token cap for gemini-3.5-flash."
1794
+ description: "Maximum output token cap for gemini-3.1-flash-lite."
1710
1795
  }),
1711
1796
  stopSequences: z.array(z.string()).max(5).optional().meta({
1712
1797
  title: "Stop Sequences",
1713
- description: "Up to five stop sequences for gemini-3.5-flash."
1798
+ description: "Up to five stop sequences for gemini-3.1-flash-lite."
1714
1799
  }),
1715
1800
  serviceTier: z.literal("flex").meta({
1716
1801
  title: "Service Tier",
1717
- description: "Explicit flex tier for gemini-3.5-flash."
1802
+ description: "Explicit flex tier for gemini-3.1-flash-lite."
1718
1803
  }),
1719
1804
  reasoning: z.union([
1720
1805
  z.strictObject({
1721
1806
  effort: z.enum(["none", "low", "medium", "high"]).meta({
1722
1807
  title: "Reasoning Effort",
1723
- description: "Reasoning effort for gemini-3.5-flash; none maps to minimal thinking."
1808
+ description: "Reasoning effort for gemini-3.1-flash-lite; none maps to minimal thinking."
1724
1809
  }),
1725
1810
  includeThoughts: z.boolean().optional().meta({
1726
1811
  title: "Include Thoughts",
@@ -1735,7 +1820,7 @@ var Gemini35FlashConfigSchema = z.union([
1735
1820
  })
1736
1821
  ]).optional().meta({
1737
1822
  title: "Reasoning",
1738
- description: "Gemini 3.5 Flash thinkingLevel configuration."
1823
+ description: "Gemini 3.1 Flash-Lite thinkingLevel configuration."
1739
1824
  }),
1740
1825
  timeoutMs: z.number().int().positive().optional().meta({
1741
1826
  title: "Timeout",
@@ -1771,7 +1856,7 @@ var Gemini35FlashConfigSchema = z.union([
1771
1856
  })
1772
1857
  ).min(1).optional().meta({
1773
1858
  title: "Tools",
1774
- description: "Allowlisted Google tools for gemini-3.5-flash."
1859
+ description: "Allowlisted Google tools for gemini-3.1-flash-lite."
1775
1860
  }),
1776
1861
  httpOptions: z.strictObject({
1777
1862
  timeout: z.number().int().positive().optional().meta({
@@ -1788,31 +1873,31 @@ var Gemini35FlashConfigSchema = z.union([
1788
1873
  })
1789
1874
  }).optional().meta({
1790
1875
  title: "Google Provider Options",
1791
- description: "Allowlisted Google provider options for gemini-3.5-flash."
1876
+ description: "Allowlisted Google provider options for gemini-3.1-flash-lite."
1792
1877
  })
1793
1878
  }).optional().meta({
1794
1879
  title: "Provider Options",
1795
- description: "Provider-specific options accepted for gemini-3.5-flash."
1880
+ description: "Provider-specific options accepted for gemini-3.1-flash-lite."
1796
1881
  })
1797
1882
  }),
1798
1883
  z.strictObject({
1799
1884
  maxOutputTokens: z.number().int().positive().optional().meta({
1800
1885
  title: "Max Output Tokens",
1801
- description: "Maximum output token cap for gemini-3.5-flash."
1886
+ description: "Maximum output token cap for gemini-3.1-flash-lite."
1802
1887
  }),
1803
1888
  stopSequences: z.array(z.string()).max(5).optional().meta({
1804
1889
  title: "Stop Sequences",
1805
- description: "Up to five stop sequences for gemini-3.5-flash."
1890
+ description: "Up to five stop sequences for gemini-3.1-flash-lite."
1806
1891
  }),
1807
1892
  serviceTier: z.literal("standard").optional().meta({
1808
1893
  title: "Service Tier",
1809
- description: "Standard tier or omitted tier for gemini-3.5-flash."
1894
+ description: "Standard tier or omitted tier for gemini-3.1-flash-lite."
1810
1895
  }),
1811
1896
  reasoning: z.union([
1812
1897
  z.strictObject({
1813
1898
  effort: z.enum(["none", "low", "medium", "high"]).meta({
1814
1899
  title: "Reasoning Effort",
1815
- description: "Reasoning effort for gemini-3.5-flash; none maps to minimal thinking."
1900
+ description: "Reasoning effort for gemini-3.1-flash-lite; none maps to minimal thinking."
1816
1901
  }),
1817
1902
  includeThoughts: z.boolean().optional().meta({
1818
1903
  title: "Include Thoughts",
@@ -1827,7 +1912,7 @@ var Gemini35FlashConfigSchema = z.union([
1827
1912
  })
1828
1913
  ]).optional().meta({
1829
1914
  title: "Reasoning",
1830
- description: "Gemini 3.5 Flash thinkingLevel configuration."
1915
+ description: "Gemini 3.1 Flash-Lite thinkingLevel configuration."
1831
1916
  }),
1832
1917
  timeoutMs: z.number().int().positive().optional().meta({
1833
1918
  title: "Timeout",
@@ -1863,7 +1948,7 @@ var Gemini35FlashConfigSchema = z.union([
1863
1948
  })
1864
1949
  ).min(1).optional().meta({
1865
1950
  title: "Tools",
1866
- description: "Allowlisted Google tools for gemini-3.5-flash."
1951
+ description: "Allowlisted Google tools for gemini-3.1-flash-lite."
1867
1952
  }),
1868
1953
  httpOptions: z.strictObject({
1869
1954
  timeout: z.number().int().positive().optional().meta({
@@ -1876,37 +1961,37 @@ var Gemini35FlashConfigSchema = z.union([
1876
1961
  })
1877
1962
  }).optional().meta({
1878
1963
  title: "Google Provider Options",
1879
- description: "Allowlisted Google provider options for gemini-3.5-flash."
1964
+ description: "Allowlisted Google provider options for gemini-3.1-flash-lite."
1880
1965
  })
1881
1966
  }).optional().meta({
1882
1967
  title: "Provider Options",
1883
- description: "Provider-specific options accepted for gemini-3.5-flash."
1968
+ description: "Provider-specific options accepted for gemini-3.1-flash-lite."
1884
1969
  })
1885
1970
  })
1886
1971
  ]).meta({
1887
- title: "Gemini35FlashConfig",
1888
- description: "Strict generateContent config for model gemini-3.5-flash. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
1889
- examples: [{ serviceTier: "flex", reasoning: { effort: "high" } }]
1972
+ title: "Gemini31FlashLiteConfig",
1973
+ description: "Strict generateContent config for model gemini-3.1-flash-lite. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
1974
+ examples: [{ serviceTier: "flex", reasoning: { effort: "medium" } }]
1890
1975
  });
1891
- var Gemini31FlashLiteConfigSchema = z.union([
1976
+ var Gemini31ProPreviewConfigSchema = z.union([
1892
1977
  z.strictObject({
1893
1978
  maxOutputTokens: z.number().int().positive().optional().meta({
1894
1979
  title: "Max Output Tokens",
1895
- description: "Maximum output token cap for gemini-3.1-flash-lite."
1980
+ description: "Maximum output token cap for gemini-3.1-pro-preview."
1896
1981
  }),
1897
1982
  stopSequences: z.array(z.string()).max(5).optional().meta({
1898
1983
  title: "Stop Sequences",
1899
- description: "Up to five stop sequences for gemini-3.1-flash-lite."
1984
+ description: "Up to five stop sequences for gemini-3.1-pro-preview."
1900
1985
  }),
1901
1986
  serviceTier: z.literal("flex").meta({
1902
1987
  title: "Service Tier",
1903
- description: "Explicit flex tier for gemini-3.1-flash-lite."
1988
+ description: "Explicit flex tier for gemini-3.1-pro-preview."
1904
1989
  }),
1905
1990
  reasoning: z.union([
1906
1991
  z.strictObject({
1907
- effort: z.enum(["none", "low", "medium", "high"]).meta({
1992
+ effort: z.enum(["low", "medium", "high"]).meta({
1908
1993
  title: "Reasoning Effort",
1909
- description: "Reasoning effort for gemini-3.1-flash-lite; none maps to minimal thinking."
1994
+ description: "Reasoning effort for gemini-3.1-pro-preview. Thinking off is not supported."
1910
1995
  }),
1911
1996
  includeThoughts: z.boolean().optional().meta({
1912
1997
  title: "Include Thoughts",
@@ -1921,7 +2006,7 @@ var Gemini31FlashLiteConfigSchema = z.union([
1921
2006
  })
1922
2007
  ]).optional().meta({
1923
2008
  title: "Reasoning",
1924
- description: "Gemini 3.1 Flash-Lite thinkingLevel configuration."
2009
+ description: "Gemini 3.1 Pro Preview thinkingLevel configuration."
1925
2010
  }),
1926
2011
  timeoutMs: z.number().int().positive().optional().meta({
1927
2012
  title: "Timeout",
@@ -1957,7 +2042,7 @@ var Gemini31FlashLiteConfigSchema = z.union([
1957
2042
  })
1958
2043
  ).min(1).optional().meta({
1959
2044
  title: "Tools",
1960
- description: "Allowlisted Google tools for gemini-3.1-flash-lite."
2045
+ description: "Allowlisted Google tools for gemini-3.1-pro-preview."
1961
2046
  }),
1962
2047
  httpOptions: z.strictObject({
1963
2048
  timeout: z.number().int().positive().optional().meta({
@@ -1974,31 +2059,31 @@ var Gemini31FlashLiteConfigSchema = z.union([
1974
2059
  })
1975
2060
  }).optional().meta({
1976
2061
  title: "Google Provider Options",
1977
- description: "Allowlisted Google provider options for gemini-3.1-flash-lite."
2062
+ description: "Allowlisted Google provider options for gemini-3.1-pro-preview."
1978
2063
  })
1979
2064
  }).optional().meta({
1980
2065
  title: "Provider Options",
1981
- description: "Provider-specific options accepted for gemini-3.1-flash-lite."
2066
+ description: "Provider-specific options accepted for gemini-3.1-pro-preview."
1982
2067
  })
1983
2068
  }),
1984
2069
  z.strictObject({
1985
2070
  maxOutputTokens: z.number().int().positive().optional().meta({
1986
2071
  title: "Max Output Tokens",
1987
- description: "Maximum output token cap for gemini-3.1-flash-lite."
2072
+ description: "Maximum output token cap for gemini-3.1-pro-preview."
1988
2073
  }),
1989
2074
  stopSequences: z.array(z.string()).max(5).optional().meta({
1990
2075
  title: "Stop Sequences",
1991
- description: "Up to five stop sequences for gemini-3.1-flash-lite."
2076
+ description: "Up to five stop sequences for gemini-3.1-pro-preview."
1992
2077
  }),
1993
2078
  serviceTier: z.literal("standard").optional().meta({
1994
2079
  title: "Service Tier",
1995
- description: "Standard tier or omitted tier for gemini-3.1-flash-lite."
2080
+ description: "Standard tier or omitted tier for gemini-3.1-pro-preview."
1996
2081
  }),
1997
2082
  reasoning: z.union([
1998
2083
  z.strictObject({
1999
- effort: z.enum(["none", "low", "medium", "high"]).meta({
2084
+ effort: z.enum(["low", "medium", "high"]).meta({
2000
2085
  title: "Reasoning Effort",
2001
- description: "Reasoning effort for gemini-3.1-flash-lite; none maps to minimal thinking."
2086
+ description: "Reasoning effort for gemini-3.1-pro-preview. Thinking off is not supported."
2002
2087
  }),
2003
2088
  includeThoughts: z.boolean().optional().meta({
2004
2089
  title: "Include Thoughts",
@@ -2013,7 +2098,7 @@ var Gemini31FlashLiteConfigSchema = z.union([
2013
2098
  })
2014
2099
  ]).optional().meta({
2015
2100
  title: "Reasoning",
2016
- description: "Gemini 3.1 Flash-Lite thinkingLevel configuration."
2101
+ description: "Gemini 3.1 Pro Preview thinkingLevel configuration."
2017
2102
  }),
2018
2103
  timeoutMs: z.number().int().positive().optional().meta({
2019
2104
  title: "Timeout",
@@ -2049,7 +2134,7 @@ var Gemini31FlashLiteConfigSchema = z.union([
2049
2134
  })
2050
2135
  ).min(1).optional().meta({
2051
2136
  title: "Tools",
2052
- description: "Allowlisted Google tools for gemini-3.1-flash-lite."
2137
+ description: "Allowlisted Google tools for gemini-3.1-pro-preview."
2053
2138
  }),
2054
2139
  httpOptions: z.strictObject({
2055
2140
  timeout: z.number().int().positive().optional().meta({
@@ -2062,37 +2147,37 @@ var Gemini31FlashLiteConfigSchema = z.union([
2062
2147
  })
2063
2148
  }).optional().meta({
2064
2149
  title: "Google Provider Options",
2065
- description: "Allowlisted Google provider options for gemini-3.1-flash-lite."
2150
+ description: "Allowlisted Google provider options for gemini-3.1-pro-preview."
2066
2151
  })
2067
2152
  }).optional().meta({
2068
2153
  title: "Provider Options",
2069
- description: "Provider-specific options accepted for gemini-3.1-flash-lite."
2154
+ description: "Provider-specific options accepted for gemini-3.1-pro-preview."
2070
2155
  })
2071
2156
  })
2072
2157
  ]).meta({
2073
- title: "Gemini31FlashLiteConfig",
2074
- description: "Strict generateContent config for model gemini-3.1-flash-lite. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2075
- examples: [{ serviceTier: "flex", reasoning: { effort: "medium" } }]
2158
+ title: "Gemini31ProPreviewConfig",
2159
+ description: "Strict generateContent config for model gemini-3.1-pro-preview. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2160
+ examples: [{ serviceTier: "flex", reasoning: { effort: "high" } }]
2076
2161
  });
2077
- var Gemini31ProPreviewConfigSchema = z.union([
2162
+ var Gemini35FlashLiteConfigSchema = z.union([
2078
2163
  z.strictObject({
2079
2164
  maxOutputTokens: z.number().int().positive().optional().meta({
2080
2165
  title: "Max Output Tokens",
2081
- description: "Maximum output token cap for gemini-3.1-pro-preview."
2166
+ description: "Maximum output token cap for gemini-3.5-flash-lite."
2082
2167
  }),
2083
2168
  stopSequences: z.array(z.string()).max(5).optional().meta({
2084
2169
  title: "Stop Sequences",
2085
- description: "Up to five stop sequences for gemini-3.1-pro-preview."
2170
+ description: "Up to five stop sequences for gemini-3.5-flash-lite."
2086
2171
  }),
2087
2172
  serviceTier: z.literal("flex").meta({
2088
2173
  title: "Service Tier",
2089
- description: "Explicit flex tier for gemini-3.1-pro-preview."
2174
+ description: "Explicit flex tier for gemini-3.5-flash-lite."
2090
2175
  }),
2091
2176
  reasoning: z.union([
2092
2177
  z.strictObject({
2093
- effort: z.enum(["low", "medium", "high"]).meta({
2178
+ effort: z.enum(["none", "low", "medium", "high"]).meta({
2094
2179
  title: "Reasoning Effort",
2095
- description: "Reasoning effort for gemini-3.1-pro-preview. Thinking off is not supported."
2180
+ description: "Reasoning effort for gemini-3.5-flash-lite; none maps to minimal thinking."
2096
2181
  }),
2097
2182
  includeThoughts: z.boolean().optional().meta({
2098
2183
  title: "Include Thoughts",
@@ -2107,7 +2192,7 @@ var Gemini31ProPreviewConfigSchema = z.union([
2107
2192
  })
2108
2193
  ]).optional().meta({
2109
2194
  title: "Reasoning",
2110
- description: "Gemini 3.1 Pro Preview thinkingLevel configuration."
2195
+ description: "Gemini 3.5 Flash-Lite thinkingLevel configuration."
2111
2196
  }),
2112
2197
  timeoutMs: z.number().int().positive().optional().meta({
2113
2198
  title: "Timeout",
@@ -2143,7 +2228,7 @@ var Gemini31ProPreviewConfigSchema = z.union([
2143
2228
  })
2144
2229
  ).min(1).optional().meta({
2145
2230
  title: "Tools",
2146
- description: "Allowlisted Google tools for gemini-3.1-pro-preview."
2231
+ description: "Allowlisted Google tools for gemini-3.5-flash-lite."
2147
2232
  }),
2148
2233
  httpOptions: z.strictObject({
2149
2234
  timeout: z.number().int().positive().optional().meta({
@@ -2160,31 +2245,31 @@ var Gemini31ProPreviewConfigSchema = z.union([
2160
2245
  })
2161
2246
  }).optional().meta({
2162
2247
  title: "Google Provider Options",
2163
- description: "Allowlisted Google provider options for gemini-3.1-pro-preview."
2248
+ description: "Allowlisted Google provider options for gemini-3.5-flash-lite."
2164
2249
  })
2165
2250
  }).optional().meta({
2166
2251
  title: "Provider Options",
2167
- description: "Provider-specific options accepted for gemini-3.1-pro-preview."
2252
+ description: "Provider-specific options accepted for gemini-3.5-flash-lite."
2168
2253
  })
2169
2254
  }),
2170
2255
  z.strictObject({
2171
2256
  maxOutputTokens: z.number().int().positive().optional().meta({
2172
2257
  title: "Max Output Tokens",
2173
- description: "Maximum output token cap for gemini-3.1-pro-preview."
2258
+ description: "Maximum output token cap for gemini-3.5-flash-lite."
2174
2259
  }),
2175
2260
  stopSequences: z.array(z.string()).max(5).optional().meta({
2176
2261
  title: "Stop Sequences",
2177
- description: "Up to five stop sequences for gemini-3.1-pro-preview."
2262
+ description: "Up to five stop sequences for gemini-3.5-flash-lite."
2178
2263
  }),
2179
2264
  serviceTier: z.literal("standard").optional().meta({
2180
2265
  title: "Service Tier",
2181
- description: "Standard tier or omitted tier for gemini-3.1-pro-preview."
2266
+ description: "Standard tier or omitted tier for gemini-3.5-flash-lite."
2182
2267
  }),
2183
2268
  reasoning: z.union([
2184
2269
  z.strictObject({
2185
- effort: z.enum(["low", "medium", "high"]).meta({
2270
+ effort: z.enum(["none", "low", "medium", "high"]).meta({
2186
2271
  title: "Reasoning Effort",
2187
- description: "Reasoning effort for gemini-3.1-pro-preview. Thinking off is not supported."
2272
+ description: "Reasoning effort for gemini-3.5-flash-lite; none maps to minimal thinking."
2188
2273
  }),
2189
2274
  includeThoughts: z.boolean().optional().meta({
2190
2275
  title: "Include Thoughts",
@@ -2199,7 +2284,7 @@ var Gemini31ProPreviewConfigSchema = z.union([
2199
2284
  })
2200
2285
  ]).optional().meta({
2201
2286
  title: "Reasoning",
2202
- description: "Gemini 3.1 Pro Preview thinkingLevel configuration."
2287
+ description: "Gemini 3.5 Flash-Lite thinkingLevel configuration."
2203
2288
  }),
2204
2289
  timeoutMs: z.number().int().positive().optional().meta({
2205
2290
  title: "Timeout",
@@ -2235,7 +2320,7 @@ var Gemini31ProPreviewConfigSchema = z.union([
2235
2320
  })
2236
2321
  ).min(1).optional().meta({
2237
2322
  title: "Tools",
2238
- description: "Allowlisted Google tools for gemini-3.1-pro-preview."
2323
+ description: "Allowlisted Google tools for gemini-3.5-flash-lite."
2239
2324
  }),
2240
2325
  httpOptions: z.strictObject({
2241
2326
  timeout: z.number().int().positive().optional().meta({
@@ -2248,37 +2333,37 @@ var Gemini31ProPreviewConfigSchema = z.union([
2248
2333
  })
2249
2334
  }).optional().meta({
2250
2335
  title: "Google Provider Options",
2251
- description: "Allowlisted Google provider options for gemini-3.1-pro-preview."
2336
+ description: "Allowlisted Google provider options for gemini-3.5-flash-lite."
2252
2337
  })
2253
2338
  }).optional().meta({
2254
2339
  title: "Provider Options",
2255
- description: "Provider-specific options accepted for gemini-3.1-pro-preview."
2340
+ description: "Provider-specific options accepted for gemini-3.5-flash-lite."
2256
2341
  })
2257
2342
  })
2258
2343
  ]).meta({
2259
- title: "Gemini31ProPreviewConfig",
2260
- description: "Strict generateContent config for model gemini-3.1-pro-preview. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2261
- examples: [{ serviceTier: "flex", reasoning: { effort: "high" } }]
2344
+ title: "Gemini35FlashLiteConfig",
2345
+ description: "Strict generateContent config for model gemini-3.5-flash-lite. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2346
+ examples: [{ serviceTier: "flex", reasoning: { effort: "medium" } }]
2262
2347
  });
2263
- var Gemini3FlashPreviewConfigSchema = z.union([
2348
+ var Gemini36FlashConfigSchema = z.union([
2264
2349
  z.strictObject({
2265
2350
  maxOutputTokens: z.number().int().positive().optional().meta({
2266
2351
  title: "Max Output Tokens",
2267
- description: "Maximum output token cap for gemini-3-flash-preview."
2352
+ description: "Maximum output token cap for gemini-3.6-flash."
2268
2353
  }),
2269
2354
  stopSequences: z.array(z.string()).max(5).optional().meta({
2270
2355
  title: "Stop Sequences",
2271
- description: "Up to five stop sequences for gemini-3-flash-preview."
2356
+ description: "Up to five stop sequences for gemini-3.6-flash."
2272
2357
  }),
2273
2358
  serviceTier: z.literal("flex").meta({
2274
2359
  title: "Service Tier",
2275
- description: "Explicit flex tier for gemini-3-flash-preview."
2360
+ description: "Explicit flex tier for gemini-3.6-flash."
2276
2361
  }),
2277
2362
  reasoning: z.union([
2278
2363
  z.strictObject({
2279
2364
  effort: z.enum(["none", "low", "medium", "high"]).meta({
2280
2365
  title: "Reasoning Effort",
2281
- description: "Reasoning effort for gemini-3-flash-preview; none maps to minimal thinking."
2366
+ description: "Reasoning effort for gemini-3.6-flash; none maps to minimal thinking."
2282
2367
  }),
2283
2368
  includeThoughts: z.boolean().optional().meta({
2284
2369
  title: "Include Thoughts",
@@ -2293,7 +2378,7 @@ var Gemini3FlashPreviewConfigSchema = z.union([
2293
2378
  })
2294
2379
  ]).optional().meta({
2295
2380
  title: "Reasoning",
2296
- description: "Gemini 3 Flash Preview thinkingLevel configuration."
2381
+ description: "Gemini 3.6 Flash thinkingLevel configuration."
2297
2382
  }),
2298
2383
  timeoutMs: z.number().int().positive().optional().meta({
2299
2384
  title: "Timeout",
@@ -2329,7 +2414,7 @@ var Gemini3FlashPreviewConfigSchema = z.union([
2329
2414
  })
2330
2415
  ).min(1).optional().meta({
2331
2416
  title: "Tools",
2332
- description: "Allowlisted Google tools for gemini-3-flash-preview."
2417
+ description: "Allowlisted Google tools for gemini-3.6-flash."
2333
2418
  }),
2334
2419
  httpOptions: z.strictObject({
2335
2420
  timeout: z.number().int().positive().optional().meta({
@@ -2346,31 +2431,31 @@ var Gemini3FlashPreviewConfigSchema = z.union([
2346
2431
  })
2347
2432
  }).optional().meta({
2348
2433
  title: "Google Provider Options",
2349
- description: "Allowlisted Google provider options for gemini-3-flash-preview."
2434
+ description: "Allowlisted Google provider options for gemini-3.6-flash."
2350
2435
  })
2351
2436
  }).optional().meta({
2352
2437
  title: "Provider Options",
2353
- description: "Provider-specific options accepted for gemini-3-flash-preview."
2438
+ description: "Provider-specific options accepted for gemini-3.6-flash."
2354
2439
  })
2355
2440
  }),
2356
2441
  z.strictObject({
2357
2442
  maxOutputTokens: z.number().int().positive().optional().meta({
2358
2443
  title: "Max Output Tokens",
2359
- description: "Maximum output token cap for gemini-3-flash-preview."
2444
+ description: "Maximum output token cap for gemini-3.6-flash."
2360
2445
  }),
2361
2446
  stopSequences: z.array(z.string()).max(5).optional().meta({
2362
2447
  title: "Stop Sequences",
2363
- description: "Up to five stop sequences for gemini-3-flash-preview."
2448
+ description: "Up to five stop sequences for gemini-3.6-flash."
2364
2449
  }),
2365
2450
  serviceTier: z.literal("standard").optional().meta({
2366
2451
  title: "Service Tier",
2367
- description: "Standard tier or omitted tier for gemini-3-flash-preview."
2452
+ description: "Standard tier or omitted tier for gemini-3.6-flash."
2368
2453
  }),
2369
2454
  reasoning: z.union([
2370
2455
  z.strictObject({
2371
2456
  effort: z.enum(["none", "low", "medium", "high"]).meta({
2372
2457
  title: "Reasoning Effort",
2373
- description: "Reasoning effort for gemini-3-flash-preview; none maps to minimal thinking."
2458
+ description: "Reasoning effort for gemini-3.6-flash; none maps to minimal thinking."
2374
2459
  }),
2375
2460
  includeThoughts: z.boolean().optional().meta({
2376
2461
  title: "Include Thoughts",
@@ -2385,7 +2470,7 @@ var Gemini3FlashPreviewConfigSchema = z.union([
2385
2470
  })
2386
2471
  ]).optional().meta({
2387
2472
  title: "Reasoning",
2388
- description: "Gemini 3 Flash Preview thinkingLevel configuration."
2473
+ description: "Gemini 3.6 Flash thinkingLevel configuration."
2389
2474
  }),
2390
2475
  timeoutMs: z.number().int().positive().optional().meta({
2391
2476
  title: "Timeout",
@@ -2421,7 +2506,7 @@ var Gemini3FlashPreviewConfigSchema = z.union([
2421
2506
  })
2422
2507
  ).min(1).optional().meta({
2423
2508
  title: "Tools",
2424
- description: "Allowlisted Google tools for gemini-3-flash-preview."
2509
+ description: "Allowlisted Google tools for gemini-3.6-flash."
2425
2510
  }),
2426
2511
  httpOptions: z.strictObject({
2427
2512
  timeout: z.number().int().positive().optional().meta({
@@ -2434,115 +2519,487 @@ var Gemini3FlashPreviewConfigSchema = z.union([
2434
2519
  })
2435
2520
  }).optional().meta({
2436
2521
  title: "Google Provider Options",
2437
- description: "Allowlisted Google provider options for gemini-3-flash-preview."
2522
+ description: "Allowlisted Google provider options for gemini-3.6-flash."
2438
2523
  })
2439
2524
  }).optional().meta({
2440
2525
  title: "Provider Options",
2441
- description: "Provider-specific options accepted for gemini-3-flash-preview."
2526
+ description: "Provider-specific options accepted for gemini-3.6-flash."
2442
2527
  })
2443
2528
  })
2444
2529
  ]).meta({
2445
- title: "Gemini3FlashPreviewConfig",
2446
- description: "Strict generateContent config for model gemini-3-flash-preview. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2530
+ title: "Gemini36FlashConfig",
2531
+ description: "Strict generateContent config for model gemini-3.6-flash. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2447
2532
  examples: [{ serviceTier: "flex", reasoning: { effort: "medium" } }]
2448
2533
  });
2449
- var Gemma431bItConfigSchema = z.strictObject({
2450
- temperature: z.number().min(0).max(2).optional().meta({
2451
- title: "Temperature",
2452
- description: "Sampling temperature for gemma-4-31b-it.",
2453
- examples: [0.7]
2454
- }),
2455
- topP: z.number().min(0).max(1).optional().meta({
2456
- title: "Top P",
2457
- description: "Nucleus sampling probability for gemma-4-31b-it."
2458
- }),
2459
- topK: z.number().int().positive().optional().meta({
2460
- title: "Top K",
2461
- description: "Top-k sampling limit for gemma-4-31b-it."
2462
- }),
2463
- maxOutputTokens: z.number().int().positive().optional().meta({
2464
- title: "Max Output Tokens",
2465
- description: "Maximum output token cap for gemma-4-31b-it."
2466
- }),
2467
- stopSequences: z.array(z.string()).max(5).optional().meta({
2468
- title: "Stop Sequences",
2469
- description: "Up to five stop sequences for gemma-4-31b-it."
2470
- }),
2471
- reasoning: z.union([
2472
- z.strictObject({
2473
- effort: z.enum(["none", "high"]).meta({
2474
- title: "Reasoning Effort",
2475
- description: "Reasoning effort for gemma-4-31b-it."
2476
- }),
2477
- includeThoughts: z.boolean().optional().meta({
2478
- title: "Include Thoughts",
2479
- description: "Return provider thought summaries when supported."
2480
- })
2534
+ var Gemini37FlashConfigSchema = z.union([
2535
+ z.strictObject({
2536
+ maxOutputTokens: z.number().int().positive().optional().meta({
2537
+ title: "Max Output Tokens",
2538
+ description: "Maximum output token cap for gemini-3.7-flash."
2481
2539
  }),
2482
- z.strictObject({
2483
- includeThoughts: z.boolean().meta({
2484
- title: "Include Thoughts",
2485
- description: "Return provider thought summaries when supported."
2486
- })
2487
- })
2488
- ]).optional().meta({
2489
- title: "Reasoning",
2490
- description: "Gemma 4 31B IT thinkingLevel configuration."
2491
- }),
2492
- timeoutMs: z.number().int().positive().optional().meta({
2493
- title: "Timeout",
2494
- description: "Logical request timeout in milliseconds."
2495
- }),
2496
- providerOptions: z.strictObject({
2497
- google: z.strictObject({
2498
- cachedContent: z.string().min(1).optional().meta({
2499
- title: "Cached Content",
2500
- description: "Google cached content resource name."
2501
- }),
2502
- safetySettings: z.array(
2503
- z.strictObject({
2504
- category: z.string().min(1).meta({
2505
- title: "Safety Category",
2506
- description: "Google safety category identifier."
2507
- }),
2508
- threshold: z.string().min(1).meta({
2509
- title: "Safety Threshold",
2510
- description: "Google safety threshold identifier."
2511
- })
2512
- })
2513
- ).optional().meta({
2514
- title: "Safety Settings",
2515
- description: "Allowlisted Google safety settings."
2516
- }),
2517
- tools: z.array(
2518
- z.strictObject({
2519
- googleSearch: z.strictObject({}).meta({
2520
- title: "Google Search",
2521
- description: "Google Search grounding tool."
2522
- })
2540
+ stopSequences: z.array(z.string()).max(5).optional().meta({
2541
+ title: "Stop Sequences",
2542
+ description: "Up to five stop sequences for gemini-3.7-flash."
2543
+ }),
2544
+ serviceTier: z.literal("flex").meta({
2545
+ title: "Service Tier",
2546
+ description: "Explicit flex tier for gemini-3.7-flash."
2547
+ }),
2548
+ reasoning: z.union([
2549
+ z.strictObject({
2550
+ effort: z.enum(["low", "medium", "high"]).meta({
2551
+ title: "Reasoning Effort",
2552
+ description: "Reasoning effort for gemini-3.7-flash. none is not admitted; thinkingLevel MINIMAL is never emitted."
2553
+ }),
2554
+ includeThoughts: z.boolean().optional().meta({
2555
+ title: "Include Thoughts",
2556
+ description: "Return provider thought summaries when supported."
2523
2557
  })
2524
- ).min(1).optional().meta({
2525
- title: "Tools",
2526
- description: "Allowlisted Google tools for gemma-4-31b-it."
2527
2558
  }),
2528
- httpOptions: z.strictObject({
2529
- timeout: z.number().int().positive().optional().meta({
2530
- title: "HTTP Timeout",
2531
- description: "Per-request Google transport timeout in milliseconds."
2559
+ z.strictObject({
2560
+ includeThoughts: z.boolean().meta({
2561
+ title: "Include Thoughts",
2562
+ description: "Return provider thought summaries when supported."
2532
2563
  })
2533
- }).optional().meta({
2534
- title: "HTTP Options",
2535
- description: "Allowlisted Google transport options."
2536
2564
  })
2537
- }).optional().meta({
2538
- title: "Google Provider Options",
2539
- description: "Allowlisted Google provider options for gemma-4-31b-it."
2540
- })
2541
- }).optional().meta({
2542
- title: "Provider Options",
2543
- description: "Provider-specific options accepted for gemma-4-31b-it."
2544
- })
2545
- }).meta({
2565
+ ]).optional().meta({
2566
+ title: "Reasoning",
2567
+ description: "Gemini 3.7 Flash thinkingLevel configuration."
2568
+ }),
2569
+ timeoutMs: z.number().int().positive().optional().meta({
2570
+ title: "Timeout",
2571
+ description: "Logical request timeout in milliseconds."
2572
+ }),
2573
+ providerOptions: z.strictObject({
2574
+ google: z.strictObject({
2575
+ cachedContent: z.string().min(1).optional().meta({
2576
+ title: "Cached Content",
2577
+ description: "Google cached content resource name."
2578
+ }),
2579
+ safetySettings: z.array(
2580
+ z.strictObject({
2581
+ category: z.string().min(1).meta({
2582
+ title: "Safety Category",
2583
+ description: "Google safety category identifier."
2584
+ }),
2585
+ threshold: z.string().min(1).meta({
2586
+ title: "Safety Threshold",
2587
+ description: "Google safety threshold identifier."
2588
+ })
2589
+ })
2590
+ ).optional().meta({
2591
+ title: "Safety Settings",
2592
+ description: "Allowlisted Google safety settings."
2593
+ }),
2594
+ tools: z.array(
2595
+ z.strictObject({
2596
+ googleSearch: z.strictObject({}).meta({
2597
+ title: "Google Search",
2598
+ description: "Google Search grounding tool."
2599
+ })
2600
+ })
2601
+ ).min(1).optional().meta({
2602
+ title: "Tools",
2603
+ description: "Allowlisted Google tools for gemini-3.7-flash."
2604
+ }),
2605
+ httpOptions: z.strictObject({
2606
+ timeout: z.number().int().positive().optional().meta({
2607
+ title: "HTTP Timeout",
2608
+ description: "Per-request Google transport timeout in milliseconds."
2609
+ })
2610
+ }).optional().meta({
2611
+ title: "HTTP Options",
2612
+ description: "Allowlisted Google transport options."
2613
+ }),
2614
+ flexFallback: z.boolean().optional().meta({
2615
+ title: "Flex Fallback",
2616
+ description: "Allow provider fallback from flex when flex was explicitly selected."
2617
+ })
2618
+ }).optional().meta({
2619
+ title: "Google Provider Options",
2620
+ description: "Allowlisted Google provider options for gemini-3.7-flash."
2621
+ })
2622
+ }).optional().meta({
2623
+ title: "Provider Options",
2624
+ description: "Provider-specific options accepted for gemini-3.7-flash."
2625
+ })
2626
+ }),
2627
+ z.strictObject({
2628
+ maxOutputTokens: z.number().int().positive().optional().meta({
2629
+ title: "Max Output Tokens",
2630
+ description: "Maximum output token cap for gemini-3.7-flash."
2631
+ }),
2632
+ stopSequences: z.array(z.string()).max(5).optional().meta({
2633
+ title: "Stop Sequences",
2634
+ description: "Up to five stop sequences for gemini-3.7-flash."
2635
+ }),
2636
+ serviceTier: z.literal("standard").optional().meta({
2637
+ title: "Service Tier",
2638
+ description: "Standard tier or omitted tier for gemini-3.7-flash."
2639
+ }),
2640
+ reasoning: z.union([
2641
+ z.strictObject({
2642
+ effort: z.enum(["low", "medium", "high"]).meta({
2643
+ title: "Reasoning Effort",
2644
+ description: "Reasoning effort for gemini-3.7-flash. none is not admitted; thinkingLevel MINIMAL is never emitted."
2645
+ }),
2646
+ includeThoughts: z.boolean().optional().meta({
2647
+ title: "Include Thoughts",
2648
+ description: "Return provider thought summaries when supported."
2649
+ })
2650
+ }),
2651
+ z.strictObject({
2652
+ includeThoughts: z.boolean().meta({
2653
+ title: "Include Thoughts",
2654
+ description: "Return provider thought summaries when supported."
2655
+ })
2656
+ })
2657
+ ]).optional().meta({
2658
+ title: "Reasoning",
2659
+ description: "Gemini 3.7 Flash thinkingLevel configuration."
2660
+ }),
2661
+ timeoutMs: z.number().int().positive().optional().meta({
2662
+ title: "Timeout",
2663
+ description: "Logical request timeout in milliseconds."
2664
+ }),
2665
+ providerOptions: z.strictObject({
2666
+ google: z.strictObject({
2667
+ cachedContent: z.string().min(1).optional().meta({
2668
+ title: "Cached Content",
2669
+ description: "Google cached content resource name."
2670
+ }),
2671
+ safetySettings: z.array(
2672
+ z.strictObject({
2673
+ category: z.string().min(1).meta({
2674
+ title: "Safety Category",
2675
+ description: "Google safety category identifier."
2676
+ }),
2677
+ threshold: z.string().min(1).meta({
2678
+ title: "Safety Threshold",
2679
+ description: "Google safety threshold identifier."
2680
+ })
2681
+ })
2682
+ ).optional().meta({
2683
+ title: "Safety Settings",
2684
+ description: "Allowlisted Google safety settings."
2685
+ }),
2686
+ tools: z.array(
2687
+ z.strictObject({
2688
+ googleSearch: z.strictObject({}).meta({
2689
+ title: "Google Search",
2690
+ description: "Google Search grounding tool."
2691
+ })
2692
+ })
2693
+ ).min(1).optional().meta({
2694
+ title: "Tools",
2695
+ description: "Allowlisted Google tools for gemini-3.7-flash."
2696
+ }),
2697
+ httpOptions: z.strictObject({
2698
+ timeout: z.number().int().positive().optional().meta({
2699
+ title: "HTTP Timeout",
2700
+ description: "Per-request Google transport timeout in milliseconds."
2701
+ })
2702
+ }).optional().meta({
2703
+ title: "HTTP Options",
2704
+ description: "Allowlisted Google transport options."
2705
+ })
2706
+ }).optional().meta({
2707
+ title: "Google Provider Options",
2708
+ description: "Allowlisted Google provider options for gemini-3.7-flash."
2709
+ })
2710
+ }).optional().meta({
2711
+ title: "Provider Options",
2712
+ description: "Provider-specific options accepted for gemini-3.7-flash."
2713
+ })
2714
+ })
2715
+ ]).meta({
2716
+ title: "Gemini37FlashConfig",
2717
+ description: "Strict generateContent config for model gemini-3.7-flash. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2718
+ examples: [{ serviceTier: "flex", reasoning: { effort: "medium" } }]
2719
+ });
2720
+ var Gemini38FlashConfigSchema = z.union([
2721
+ z.strictObject({
2722
+ maxOutputTokens: z.number().int().positive().optional().meta({
2723
+ title: "Max Output Tokens",
2724
+ description: "Maximum output token cap for gemini-3.8-flash."
2725
+ }),
2726
+ stopSequences: z.array(z.string()).max(5).optional().meta({
2727
+ title: "Stop Sequences",
2728
+ description: "Up to five stop sequences for gemini-3.8-flash."
2729
+ }),
2730
+ serviceTier: z.literal("flex").meta({
2731
+ title: "Service Tier",
2732
+ description: "Explicit flex tier for gemini-3.8-flash."
2733
+ }),
2734
+ reasoning: z.union([
2735
+ z.strictObject({
2736
+ effort: z.enum(["low", "medium", "high"]).meta({
2737
+ title: "Reasoning Effort",
2738
+ description: "Reasoning effort for gemini-3.8-flash. none is not admitted; thinkingLevel MINIMAL is never emitted."
2739
+ }),
2740
+ includeThoughts: z.boolean().optional().meta({
2741
+ title: "Include Thoughts",
2742
+ description: "Return provider thought summaries when supported."
2743
+ })
2744
+ }),
2745
+ z.strictObject({
2746
+ includeThoughts: z.boolean().meta({
2747
+ title: "Include Thoughts",
2748
+ description: "Return provider thought summaries when supported."
2749
+ })
2750
+ })
2751
+ ]).optional().meta({
2752
+ title: "Reasoning",
2753
+ description: "Gemini 3.8 Flash thinkingLevel configuration."
2754
+ }),
2755
+ timeoutMs: z.number().int().positive().optional().meta({
2756
+ title: "Timeout",
2757
+ description: "Logical request timeout in milliseconds."
2758
+ }),
2759
+ providerOptions: z.strictObject({
2760
+ google: z.strictObject({
2761
+ cachedContent: z.string().min(1).optional().meta({
2762
+ title: "Cached Content",
2763
+ description: "Google cached content resource name."
2764
+ }),
2765
+ safetySettings: z.array(
2766
+ z.strictObject({
2767
+ category: z.string().min(1).meta({
2768
+ title: "Safety Category",
2769
+ description: "Google safety category identifier."
2770
+ }),
2771
+ threshold: z.string().min(1).meta({
2772
+ title: "Safety Threshold",
2773
+ description: "Google safety threshold identifier."
2774
+ })
2775
+ })
2776
+ ).optional().meta({
2777
+ title: "Safety Settings",
2778
+ description: "Allowlisted Google safety settings."
2779
+ }),
2780
+ tools: z.array(
2781
+ z.strictObject({
2782
+ googleSearch: z.strictObject({}).meta({
2783
+ title: "Google Search",
2784
+ description: "Google Search grounding tool."
2785
+ })
2786
+ })
2787
+ ).min(1).optional().meta({
2788
+ title: "Tools",
2789
+ description: "Allowlisted Google tools for gemini-3.8-flash."
2790
+ }),
2791
+ httpOptions: z.strictObject({
2792
+ timeout: z.number().int().positive().optional().meta({
2793
+ title: "HTTP Timeout",
2794
+ description: "Per-request Google transport timeout in milliseconds."
2795
+ })
2796
+ }).optional().meta({
2797
+ title: "HTTP Options",
2798
+ description: "Allowlisted Google transport options."
2799
+ }),
2800
+ flexFallback: z.boolean().optional().meta({
2801
+ title: "Flex Fallback",
2802
+ description: "Allow provider fallback from flex when flex was explicitly selected."
2803
+ })
2804
+ }).optional().meta({
2805
+ title: "Google Provider Options",
2806
+ description: "Allowlisted Google provider options for gemini-3.8-flash."
2807
+ })
2808
+ }).optional().meta({
2809
+ title: "Provider Options",
2810
+ description: "Provider-specific options accepted for gemini-3.8-flash."
2811
+ })
2812
+ }),
2813
+ z.strictObject({
2814
+ maxOutputTokens: z.number().int().positive().optional().meta({
2815
+ title: "Max Output Tokens",
2816
+ description: "Maximum output token cap for gemini-3.8-flash."
2817
+ }),
2818
+ stopSequences: z.array(z.string()).max(5).optional().meta({
2819
+ title: "Stop Sequences",
2820
+ description: "Up to five stop sequences for gemini-3.8-flash."
2821
+ }),
2822
+ serviceTier: z.literal("standard").optional().meta({
2823
+ title: "Service Tier",
2824
+ description: "Standard tier or omitted tier for gemini-3.8-flash."
2825
+ }),
2826
+ reasoning: z.union([
2827
+ z.strictObject({
2828
+ effort: z.enum(["low", "medium", "high"]).meta({
2829
+ title: "Reasoning Effort",
2830
+ description: "Reasoning effort for gemini-3.8-flash. none is not admitted; thinkingLevel MINIMAL is never emitted."
2831
+ }),
2832
+ includeThoughts: z.boolean().optional().meta({
2833
+ title: "Include Thoughts",
2834
+ description: "Return provider thought summaries when supported."
2835
+ })
2836
+ }),
2837
+ z.strictObject({
2838
+ includeThoughts: z.boolean().meta({
2839
+ title: "Include Thoughts",
2840
+ description: "Return provider thought summaries when supported."
2841
+ })
2842
+ })
2843
+ ]).optional().meta({
2844
+ title: "Reasoning",
2845
+ description: "Gemini 3.8 Flash thinkingLevel configuration."
2846
+ }),
2847
+ timeoutMs: z.number().int().positive().optional().meta({
2848
+ title: "Timeout",
2849
+ description: "Logical request timeout in milliseconds."
2850
+ }),
2851
+ providerOptions: z.strictObject({
2852
+ google: z.strictObject({
2853
+ cachedContent: z.string().min(1).optional().meta({
2854
+ title: "Cached Content",
2855
+ description: "Google cached content resource name."
2856
+ }),
2857
+ safetySettings: z.array(
2858
+ z.strictObject({
2859
+ category: z.string().min(1).meta({
2860
+ title: "Safety Category",
2861
+ description: "Google safety category identifier."
2862
+ }),
2863
+ threshold: z.string().min(1).meta({
2864
+ title: "Safety Threshold",
2865
+ description: "Google safety threshold identifier."
2866
+ })
2867
+ })
2868
+ ).optional().meta({
2869
+ title: "Safety Settings",
2870
+ description: "Allowlisted Google safety settings."
2871
+ }),
2872
+ tools: z.array(
2873
+ z.strictObject({
2874
+ googleSearch: z.strictObject({}).meta({
2875
+ title: "Google Search",
2876
+ description: "Google Search grounding tool."
2877
+ })
2878
+ })
2879
+ ).min(1).optional().meta({
2880
+ title: "Tools",
2881
+ description: "Allowlisted Google tools for gemini-3.8-flash."
2882
+ }),
2883
+ httpOptions: z.strictObject({
2884
+ timeout: z.number().int().positive().optional().meta({
2885
+ title: "HTTP Timeout",
2886
+ description: "Per-request Google transport timeout in milliseconds."
2887
+ })
2888
+ }).optional().meta({
2889
+ title: "HTTP Options",
2890
+ description: "Allowlisted Google transport options."
2891
+ })
2892
+ }).optional().meta({
2893
+ title: "Google Provider Options",
2894
+ description: "Allowlisted Google provider options for gemini-3.8-flash."
2895
+ })
2896
+ }).optional().meta({
2897
+ title: "Provider Options",
2898
+ description: "Provider-specific options accepted for gemini-3.8-flash."
2899
+ })
2900
+ })
2901
+ ]).meta({
2902
+ title: "Gemini38FlashConfig",
2903
+ description: "Strict generateContent config for model gemini-3.8-flash. Level reasoning, fixed sampling, flex/standard tiers, structured output, grounding, priced.",
2904
+ examples: [{ serviceTier: "flex", reasoning: { effort: "medium" } }]
2905
+ });
2906
+ var Gemma431bItConfigSchema = z.strictObject({
2907
+ temperature: z.number().min(0).max(2).optional().meta({
2908
+ title: "Temperature",
2909
+ description: "Sampling temperature for gemma-4-31b-it.",
2910
+ examples: [0.7]
2911
+ }),
2912
+ topP: z.number().min(0).max(1).optional().meta({
2913
+ title: "Top P",
2914
+ description: "Nucleus sampling probability for gemma-4-31b-it."
2915
+ }),
2916
+ topK: z.number().int().positive().optional().meta({
2917
+ title: "Top K",
2918
+ description: "Top-k sampling limit for gemma-4-31b-it."
2919
+ }),
2920
+ maxOutputTokens: z.number().int().positive().optional().meta({
2921
+ title: "Max Output Tokens",
2922
+ description: "Maximum output token cap for gemma-4-31b-it."
2923
+ }),
2924
+ stopSequences: z.array(z.string()).max(5).optional().meta({
2925
+ title: "Stop Sequences",
2926
+ description: "Up to five stop sequences for gemma-4-31b-it."
2927
+ }),
2928
+ reasoning: z.union([
2929
+ z.strictObject({
2930
+ effort: z.enum(["none", "high"]).meta({
2931
+ title: "Reasoning Effort",
2932
+ description: "Reasoning effort for gemma-4-31b-it."
2933
+ }),
2934
+ includeThoughts: z.boolean().optional().meta({
2935
+ title: "Include Thoughts",
2936
+ description: "Return provider thought summaries when supported."
2937
+ })
2938
+ }),
2939
+ z.strictObject({
2940
+ includeThoughts: z.boolean().meta({
2941
+ title: "Include Thoughts",
2942
+ description: "Return provider thought summaries when supported."
2943
+ })
2944
+ })
2945
+ ]).optional().meta({
2946
+ title: "Reasoning",
2947
+ description: "Gemma 4 31B IT thinkingLevel configuration."
2948
+ }),
2949
+ timeoutMs: z.number().int().positive().optional().meta({
2950
+ title: "Timeout",
2951
+ description: "Logical request timeout in milliseconds."
2952
+ }),
2953
+ providerOptions: z.strictObject({
2954
+ google: z.strictObject({
2955
+ cachedContent: z.string().min(1).optional().meta({
2956
+ title: "Cached Content",
2957
+ description: "Google cached content resource name."
2958
+ }),
2959
+ safetySettings: z.array(
2960
+ z.strictObject({
2961
+ category: z.string().min(1).meta({
2962
+ title: "Safety Category",
2963
+ description: "Google safety category identifier."
2964
+ }),
2965
+ threshold: z.string().min(1).meta({
2966
+ title: "Safety Threshold",
2967
+ description: "Google safety threshold identifier."
2968
+ })
2969
+ })
2970
+ ).optional().meta({
2971
+ title: "Safety Settings",
2972
+ description: "Allowlisted Google safety settings."
2973
+ }),
2974
+ tools: z.array(
2975
+ z.strictObject({
2976
+ googleSearch: z.strictObject({}).meta({
2977
+ title: "Google Search",
2978
+ description: "Google Search grounding tool."
2979
+ })
2980
+ })
2981
+ ).min(1).optional().meta({
2982
+ title: "Tools",
2983
+ description: "Allowlisted Google tools for gemma-4-31b-it."
2984
+ }),
2985
+ httpOptions: z.strictObject({
2986
+ timeout: z.number().int().positive().optional().meta({
2987
+ title: "HTTP Timeout",
2988
+ description: "Per-request Google transport timeout in milliseconds."
2989
+ })
2990
+ }).optional().meta({
2991
+ title: "HTTP Options",
2992
+ description: "Allowlisted Google transport options."
2993
+ })
2994
+ }).optional().meta({
2995
+ title: "Google Provider Options",
2996
+ description: "Allowlisted Google provider options for gemma-4-31b-it."
2997
+ })
2998
+ }).optional().meta({
2999
+ title: "Provider Options",
3000
+ description: "Provider-specific options accepted for gemma-4-31b-it."
3001
+ })
3002
+ }).meta({
2546
3003
  title: "Gemma431bItConfig",
2547
3004
  description: "Strict generateContent config for model gemma-4-31b-it. Level reasoning, tunable sampling, no service tier, structured output, grounding, intentionally unpriced.",
2548
3005
  examples: [{ temperature: 0.7, reasoning: { effort: "high" } }]
@@ -2648,23 +3105,12 @@ var Gemma426bA4bItConfigSchema = z.strictObject({
2648
3105
  description: "Strict generateContent config for model gemma-4-26b-a4b-it. Level reasoning, tunable sampling, no service tier, structured output, grounding, intentionally unpriced.",
2649
3106
  examples: [{ temperature: 0.7, reasoning: { effort: "none" } }]
2650
3107
  });
2651
- var GEMINI_25_PRO_REASONING_EFFORTS = [
2652
- "low",
2653
- "medium",
2654
- "high"
2655
- ];
2656
- var GEMINI_LEVEL_REASONING_EFFORTS = [
2657
- "none",
2658
- "low",
2659
- "medium",
2660
- "high"
2661
- ];
2662
- var GEMINI_LEVEL_PRO_PREVIEW_REASONING_EFFORTS = [
3108
+ var GEMINI_STANDARD_REASONING_EFFORTS = [
2663
3109
  "low",
2664
3110
  "medium",
2665
3111
  "high"
2666
3112
  ];
2667
- var GEMINI_25_FLASH_REASONING_EFFORTS = [
3113
+ var GEMINI_LEVEL_WITH_NONE_REASONING_EFFORTS = [
2668
3114
  "none",
2669
3115
  "low",
2670
3116
  "medium",
@@ -2685,7 +3131,7 @@ var geminiModelDescriptors = [
2685
3131
  nativeStructuredOutput: true,
2686
3132
  vision: true,
2687
3133
  reasoningApi: "budget",
2688
- admittedReasoningEfforts: GEMINI_25_PRO_REASONING_EFFORTS,
3134
+ admittedReasoningEfforts: GEMINI_STANDARD_REASONING_EFFORTS,
2689
3135
  sampling: "tunable",
2690
3136
  caching: { explicit: true, minTokens: 2048 },
2691
3137
  grounding: true,
@@ -2706,7 +3152,7 @@ var geminiModelDescriptors = [
2706
3152
  nativeStructuredOutput: true,
2707
3153
  vision: true,
2708
3154
  reasoningApi: "budget",
2709
- admittedReasoningEfforts: GEMINI_25_FLASH_REASONING_EFFORTS,
3155
+ admittedReasoningEfforts: GEMINI_LEVEL_WITH_NONE_REASONING_EFFORTS,
2710
3156
  sampling: "tunable",
2711
3157
  caching: { explicit: true, minTokens: 2048 },
2712
3158
  grounding: true,
@@ -2727,7 +3173,7 @@ var geminiModelDescriptors = [
2727
3173
  nativeStructuredOutput: true,
2728
3174
  vision: true,
2729
3175
  reasoningApi: "budget",
2730
- admittedReasoningEfforts: GEMINI_25_FLASH_REASONING_EFFORTS,
3176
+ admittedReasoningEfforts: GEMINI_LEVEL_WITH_NONE_REASONING_EFFORTS,
2731
3177
  sampling: "tunable",
2732
3178
  caching: { explicit: true, minTokens: 2048 },
2733
3179
  grounding: true,
@@ -2739,88 +3185,136 @@ var geminiModelDescriptors = [
2739
3185
  validateConfig: zodToStandardSchema(Gemini25FlashLiteConfigSchema)
2740
3186
  },
2741
3187
  {
2742
- model: "gemini-3.5-flash",
3188
+ model: "gemini-3.1-flash-lite",
2743
3189
  provider: "google",
2744
- pricingFamily: "gemini-3.5-flash",
3190
+ pricingFamily: "gemini-3.1-flash-lite",
2745
3191
  capabilities: {
2746
3192
  reasoning: true,
2747
3193
  structuredOutput: true,
2748
3194
  nativeStructuredOutput: true,
2749
3195
  vision: true,
2750
3196
  reasoningApi: "level",
2751
- admittedReasoningEfforts: GEMINI_LEVEL_REASONING_EFFORTS,
3197
+ admittedReasoningEfforts: GEMINI_LEVEL_WITH_NONE_REASONING_EFFORTS,
2752
3198
  sampling: "fixed",
2753
- caching: { explicit: true, minTokens: 2048 },
3199
+ caching: { explicit: true, minTokens: 1024 },
2754
3200
  grounding: true,
2755
3201
  functionCalling: true,
3202
+ structuredOutputWithTools: true,
2756
3203
  serviceTiers: ["flex", "standard"]
2757
3204
  },
2758
- configSchema: Gemini35FlashConfigSchema,
2759
- configJsonSchema: toConfigJsonSchema(Gemini35FlashConfigSchema),
2760
- validateConfig: zodToStandardSchema(Gemini35FlashConfigSchema)
3205
+ configSchema: Gemini31FlashLiteConfigSchema,
3206
+ configJsonSchema: toConfigJsonSchema(Gemini31FlashLiteConfigSchema),
3207
+ validateConfig: zodToStandardSchema(Gemini31FlashLiteConfigSchema)
2761
3208
  },
2762
3209
  {
2763
- model: "gemini-3.1-flash-lite",
3210
+ model: "gemini-3.1-pro-preview",
2764
3211
  provider: "google",
2765
- pricingFamily: "gemini-3.1-flash-lite",
3212
+ pricingFamily: "gemini-3.1-pro-preview",
2766
3213
  capabilities: {
2767
3214
  reasoning: true,
2768
3215
  structuredOutput: true,
2769
3216
  nativeStructuredOutput: true,
2770
3217
  vision: true,
2771
3218
  reasoningApi: "level",
2772
- admittedReasoningEfforts: GEMINI_LEVEL_REASONING_EFFORTS,
3219
+ admittedReasoningEfforts: GEMINI_STANDARD_REASONING_EFFORTS,
2773
3220
  sampling: "fixed",
2774
- caching: { explicit: true, minTokens: 2048 },
3221
+ caching: { explicit: true, minTokens: 1024 },
2775
3222
  grounding: true,
2776
3223
  functionCalling: true,
3224
+ structuredOutputWithTools: true,
2777
3225
  serviceTiers: ["flex", "standard"]
2778
3226
  },
2779
- configSchema: Gemini31FlashLiteConfigSchema,
2780
- configJsonSchema: toConfigJsonSchema(Gemini31FlashLiteConfigSchema),
2781
- validateConfig: zodToStandardSchema(Gemini31FlashLiteConfigSchema)
3227
+ configSchema: Gemini31ProPreviewConfigSchema,
3228
+ configJsonSchema: toConfigJsonSchema(Gemini31ProPreviewConfigSchema),
3229
+ validateConfig: zodToStandardSchema(Gemini31ProPreviewConfigSchema)
2782
3230
  },
2783
3231
  {
2784
- model: "gemini-3.1-pro-preview",
3232
+ model: "gemini-3.8-flash",
2785
3233
  provider: "google",
2786
- pricingFamily: "gemini-3.1-pro-preview",
3234
+ pricingFamily: "gemini-3.8-flash",
2787
3235
  capabilities: {
2788
3236
  reasoning: true,
2789
3237
  structuredOutput: true,
2790
3238
  nativeStructuredOutput: true,
2791
3239
  vision: true,
2792
3240
  reasoningApi: "level",
2793
- admittedReasoningEfforts: GEMINI_LEVEL_PRO_PREVIEW_REASONING_EFFORTS,
3241
+ admittedReasoningEfforts: GEMINI_STANDARD_REASONING_EFFORTS,
2794
3242
  sampling: "fixed",
2795
- caching: { explicit: true, minTokens: 2048 },
3243
+ caching: { explicit: true, minTokens: 1024 },
2796
3244
  grounding: true,
2797
3245
  functionCalling: true,
3246
+ structuredOutputWithTools: true,
2798
3247
  serviceTiers: ["flex", "standard"]
2799
3248
  },
2800
- configSchema: Gemini31ProPreviewConfigSchema,
2801
- configJsonSchema: toConfigJsonSchema(Gemini31ProPreviewConfigSchema),
2802
- validateConfig: zodToStandardSchema(Gemini31ProPreviewConfigSchema)
3249
+ configSchema: Gemini38FlashConfigSchema,
3250
+ configJsonSchema: toConfigJsonSchema(Gemini38FlashConfigSchema),
3251
+ validateConfig: zodToStandardSchema(Gemini38FlashConfigSchema)
2803
3252
  },
2804
3253
  {
2805
- model: "gemini-3-flash-preview",
3254
+ model: "gemini-3.7-flash",
2806
3255
  provider: "google",
2807
- pricingFamily: "gemini-3-flash-preview",
3256
+ pricingFamily: "gemini-3.7-flash",
2808
3257
  capabilities: {
2809
3258
  reasoning: true,
2810
3259
  structuredOutput: true,
2811
3260
  nativeStructuredOutput: true,
2812
3261
  vision: true,
2813
3262
  reasoningApi: "level",
2814
- admittedReasoningEfforts: GEMINI_LEVEL_REASONING_EFFORTS,
3263
+ admittedReasoningEfforts: GEMINI_STANDARD_REASONING_EFFORTS,
2815
3264
  sampling: "fixed",
2816
- caching: { explicit: true, minTokens: 2048 },
3265
+ caching: { explicit: true, minTokens: 1024 },
3266
+ grounding: true,
3267
+ functionCalling: true,
3268
+ structuredOutputWithTools: true,
3269
+ serviceTiers: ["flex", "standard"]
3270
+ },
3271
+ configSchema: Gemini37FlashConfigSchema,
3272
+ configJsonSchema: toConfigJsonSchema(Gemini37FlashConfigSchema),
3273
+ validateConfig: zodToStandardSchema(Gemini37FlashConfigSchema)
3274
+ },
3275
+ {
3276
+ model: "gemini-3.6-flash",
3277
+ provider: "google",
3278
+ pricingFamily: "gemini-3.6-flash",
3279
+ capabilities: {
3280
+ reasoning: true,
3281
+ structuredOutput: true,
3282
+ nativeStructuredOutput: true,
3283
+ vision: true,
3284
+ reasoningApi: "level",
3285
+ admittedReasoningEfforts: GEMINI_LEVEL_WITH_NONE_REASONING_EFFORTS,
3286
+ sampling: "fixed",
3287
+ caching: { explicit: true, minTokens: 1024 },
3288
+ grounding: true,
3289
+ functionCalling: true,
3290
+ structuredOutputWithTools: true,
3291
+ serviceTiers: ["flex", "standard"]
3292
+ },
3293
+ configSchema: Gemini36FlashConfigSchema,
3294
+ configJsonSchema: toConfigJsonSchema(Gemini36FlashConfigSchema),
3295
+ validateConfig: zodToStandardSchema(Gemini36FlashConfigSchema)
3296
+ },
3297
+ {
3298
+ model: "gemini-3.5-flash-lite",
3299
+ provider: "google",
3300
+ pricingFamily: "gemini-3.5-flash-lite",
3301
+ capabilities: {
3302
+ reasoning: true,
3303
+ structuredOutput: true,
3304
+ nativeStructuredOutput: true,
3305
+ vision: true,
3306
+ reasoningApi: "level",
3307
+ admittedReasoningEfforts: GEMINI_LEVEL_WITH_NONE_REASONING_EFFORTS,
3308
+ sampling: "fixed",
3309
+ caching: { explicit: true, minTokens: 1024 },
2817
3310
  grounding: true,
2818
3311
  functionCalling: true,
3312
+ structuredOutputWithTools: true,
2819
3313
  serviceTiers: ["flex", "standard"]
2820
3314
  },
2821
- configSchema: Gemini3FlashPreviewConfigSchema,
2822
- configJsonSchema: toConfigJsonSchema(Gemini3FlashPreviewConfigSchema),
2823
- validateConfig: zodToStandardSchema(Gemini3FlashPreviewConfigSchema)
3315
+ configSchema: Gemini35FlashLiteConfigSchema,
3316
+ configJsonSchema: toConfigJsonSchema(Gemini35FlashLiteConfigSchema),
3317
+ validateConfig: zodToStandardSchema(Gemini35FlashLiteConfigSchema)
2824
3318
  }
2825
3319
  ];
2826
3320
  var gemmaModelDescriptors = [
@@ -3561,6 +4055,6 @@ function geminiContentToMessages(input) {
3561
4055
  return { ...system !== void 0 ? { system } : {}, messages };
3562
4056
  }
3563
4057
 
3564
- export { FLEX_DEFAULT_TIMEOUT_MS, GEMINI_PRICING, GoogleCacheStore, GoogleFileStore, STANDARD_DEFAULT_TIMEOUT_MS, TIER_FACTOR, TRANSPORT_TIMEOUT_BUFFER_MS, buildGoogleClient, defaultGeminiRegistry, geminiAdapter, geminiContentToMessages, geminiModelDescriptors, geminiPricingSource, gemmaModelDescriptors, googleProvider, isGeminiCapacityError, pricingVersion, requireApiKey };
4058
+ export { FLEX_DEFAULT_TIMEOUT_MS, GEMINI_PRICED_TIERS, GEMINI_PRICING, GoogleCacheStore, GoogleFileStore, STANDARD_DEFAULT_TIMEOUT_MS, TRANSPORT_TIMEOUT_BUFFER_MS, buildGoogleClient, defaultGeminiRegistry, geminiAdapter, geminiContentToMessages, geminiModelDescriptors, geminiPricingSource, gemmaModelDescriptors, googleProvider, isGeminiCapacityError, pricingVersion, requireApiKey, resolveGeminiRates };
3565
4059
  //# sourceMappingURL=index.js.map
3566
4060
  //# sourceMappingURL=index.js.map