feat(gemini): implement function calling, generationConfig, and update models

- Implement function calling support (functionDeclarations, functionResponse)
- Add functionCall SSE parsing and empty stream retry support
- Add generationConfig (temperature, maxOutputTokens)
- Add thinkingConfig for Gemini 3 and thinking models
- Add toolConfig (functionCallingConfig.mode)
- Fix .expect() panics with .ok_or_else()
- Restrict oauth credentials file permissions to 0600
- Update docs and FEATURE_PARITY.md
- Update wizard to current Gemini 3.1 and 2.5 models
This commit is contained in:
Artem
2026-03-04 23:05:16 +03:00
parent 727283afe3
commit 8452102454
6 changed files with 733 additions and 112 deletions
+5 -4
View File
@@ -1209,10 +1209,11 @@ impl SetupWizard {
}
"gemini_oauth" => {
let default_models: Vec<(String, String)> = vec![
("gemini-3-flash-preview".into(), "Gemini 3 Flash (Preview)".into()),
("gemini-3-pro-preview".into(), "Gemini 3 Pro (Preview)".into()),
("gemini-3.1-pro-preview".into(), "Gemini 3.1 Pro (Preview)".into()),
("gemini-3.1-pro-preview-customtools".into(), "Gemini 3.1 Pro Custom Tools (Preview)".into()),
("gemini-3.1-pro-preview".into(), "Gemini 3.1 Pro (Latest, strongest reasoning)".into()),
("gemini-3-flash-preview".into(), "Gemini 3 Flash (Fast preview with thinking)".into()),
("gemini-2.5-pro".into(), "Gemini 2.5 Pro (Stable, strong reasoning)".into()),
("gemini-2.5-flash".into(), "Gemini 2.5 Flash (Fast, good quality)".into()),
("gemini-2.5-flash-lite".into(), "Gemini 2.5 Flash Lite (Fastest, lightweight)".into()),
];
self.select_from_model_list(&default_models)?;
}