Skip to content

Commit 77feae0

Browse files
committed
feat: add default provider switching UI
1 parent aca733c commit 77feae0

3 files changed

Lines changed: 672 additions & 141 deletions

File tree

src-tauri/src/lib.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,30 @@ async fn save_config(state: tauri::State<'_, AppState>, config: config::Config)
4747
config::save_config(&config).map_err(|e| e.to_string())
4848
}
4949

50+
#[tauri::command]
51+
async fn get_default_provider(state: tauri::State<'_, AppState>) -> Result<String, String> {
52+
let s = state.read().await;
53+
Ok(s.config.default_provider.clone())
54+
}
55+
56+
#[tauri::command]
57+
async fn set_default_provider(
58+
state: tauri::State<'_, AppState>,
59+
logs: tauri::State<'_, LogState>,
60+
provider: String,
61+
) -> Result<String, String> {
62+
let valid_providers = ["kiro", "gemini", "qwen", "openai", "claude"];
63+
if !valid_providers.contains(&provider.as_str()) {
64+
return Err(format!("Invalid provider: {}", provider));
65+
}
66+
67+
let mut s = state.write().await;
68+
s.config.default_provider = provider.clone();
69+
config::save_config(&s.config).map_err(|e| e.to_string())?;
70+
logs.write().await.add("info", &format!("默认 Provider 已切换为: {}", provider));
71+
Ok(provider)
72+
}
73+
5074
#[tauri::command]
5175
async fn refresh_kiro_token(state: tauri::State<'_, AppState>, logs: tauri::State<'_, LogState>) -> Result<String, String> {
5276
let mut s = state.write().await;
@@ -689,6 +713,8 @@ pub fn run() {
689713
get_server_status,
690714
get_config,
691715
save_config,
716+
get_default_provider,
717+
set_default_provider,
692718
// Kiro commands
693719
refresh_kiro_token,
694720
reload_credentials,

0 commit comments

Comments
 (0)