@@ -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]
5175async 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