From 928f3bc845a1227b7882e11cc2cfb0b7b0317635 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 21 Apr 2026 07:50:11 -0600 Subject: [PATCH] Add pricing for Gemini 3.1 Pro Preview Custom Tools Equivalent pricing to Gemini 3.1 Pro Preview. --- src/models.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/models.rs b/src/models.rs index 06ad0a0..34e58be 100644 --- a/src/models.rs +++ b/src/models.rs @@ -1307,6 +1307,10 @@ fn populate_defaults( add_alias!("gemini-3-flash-preview-12-2025", "gemini-3-flash-preview"); add_alias!("gemini-3-flash", "gemini-3-flash-preview"); add_alias!("gemini-3.1-pro-preview", "gemini-3.1-pro-preview"); + add_alias!( + "gemini-3.1-pro-preview-customtools", + "gemini-3.1-pro-preview" + ); add_alias!("gemini-3.1-pro", "gemini-3.1-pro-preview"); add_alias!("gemini-3.1-pro-low", "gemini-3.1-pro-preview"); add_alias!("gemini-3.1-pro-medium", "gemini-3.1-pro-preview"); @@ -1879,6 +1883,21 @@ mod tests { approx_eq(cost, 0.1); } + #[test] + fn gemini_3_1_pro_preview_customtools_alias_maps_to_same_pricing() { + let model_info = + get_model_info("gemini-3.1-pro-preview-customtools").expect("alias should resolve"); + assert!(!model_info.is_estimated); + + let input_cost = calculate_input_cost("gemini-3.1-pro-preview-customtools", 250_000); + let output_cost = calculate_output_cost("gemini-3.1-pro-preview-customtools", 250_000); + let cache_cost = calculate_cache_cost("gemini-3.1-pro-preview-customtools", 0, 250_000); + + approx_eq(input_cost, 1.0); + approx_eq(output_cost, 4.5); + approx_eq(cache_cost, 0.1); + } + #[test] fn gemini_2_5_pro_remains_progressive() { let cost = calculate_input_cost("gemini-2.5-pro", 250_000);