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
+2 -3
View File
@@ -378,9 +378,8 @@ impl LlmConfig {
let credentials_path = optional_env("GEMINI_CREDENTIALS_PATH")?
.map(PathBuf::from)
.unwrap_or_else(|| {
crate::bootstrap::ironclaw_base_dir()
.parent() // ~/.ironclaw -> ~/
.expect("ironclaw_base_dir has no parent")
dirs::home_dir()
.unwrap_or_else(|| PathBuf::from("/tmp"))
.join(".gemini")
.join("oauth_creds.json")
});