@@ -1337,12 +1337,24 @@ impl<A: API + ConsoleWriter + 'static, F: Fn() -> A + Send + Sync> UI<A, F> {
13371337 . map ( |m| m. as_str ( ) . to_string ( ) )
13381338 . unwrap_or_else ( || markers:: EMPTY . to_string ( ) ) ;
13391339
1340+ let suggest_config = self . api . get_suggest_config ( ) . await . ok ( ) . flatten ( ) ;
1341+ let suggest_provider = suggest_config
1342+ . as_ref ( )
1343+ . map ( |c| c. provider . to_string ( ) )
1344+ . unwrap_or_else ( || markers:: EMPTY . to_string ( ) ) ;
1345+ let suggest_model = suggest_config
1346+ . as_ref ( )
1347+ . map ( |c| c. model . as_str ( ) . to_string ( ) )
1348+ . unwrap_or_else ( || markers:: EMPTY . to_string ( ) ) ;
1349+
13401350 let info = Info :: new ( )
13411351 . add_title ( "CONFIGURATION" )
13421352 . add_key_value ( "Default Model" , model)
13431353 . add_key_value ( "Default Provider" , provider)
13441354 . add_key_value ( "Commit Provider" , commit_provider)
1345- . add_key_value ( "Commit Model" , commit_model) ;
1355+ . add_key_value ( "Commit Model" , commit_model)
1356+ . add_key_value ( "Suggest Provider" , suggest_provider)
1357+ . add_key_value ( "Suggest Model" , suggest_model) ;
13461358
13471359 if porcelain {
13481360 self . writeln (
@@ -3169,6 +3181,18 @@ impl<A: API + ConsoleWriter + 'static, F: Fn() -> A + Send + Sync> UI<A, F> {
31693181 . sub_title ( format ! ( "is now the commit model for provider '{provider}'" ) ) ,
31703182 ) ?;
31713183 }
3184+ ConfigSetField :: Suggest { provider, model } => {
3185+ // Validate provider exists and model belongs to that specific provider
3186+ let validated_model = self . validate_model ( model. as_str ( ) , Some ( & provider) ) . await ?;
3187+ let suggest_config = forge_domain:: SuggestConfig {
3188+ provider : provider. clone ( ) ,
3189+ model : validated_model. clone ( ) ,
3190+ } ;
3191+ self . api . set_suggest_config ( suggest_config) . await ?;
3192+ self . writeln_title ( TitleFormat :: action ( validated_model. as_str ( ) ) . sub_title (
3193+ format ! ( "is now the suggest model for provider '{provider}'" ) ,
3194+ ) ) ?;
3195+ }
31723196 }
31733197
31743198 Ok ( ( ) )
@@ -3208,7 +3232,7 @@ impl<A: API + ConsoleWriter + 'static, F: Fn() -> A + Send + Sync> UI<A, F> {
32083232 Some ( config) => {
32093233 let provider = config
32103234 . provider
3211- . map ( |p| p. to_string ( ) )
3235+ . map ( |p| p. as_ref ( ) . to_string ( ) )
32123236 . unwrap_or_else ( || "Not set" . to_string ( ) ) ;
32133237 let model = config
32143238 . model
@@ -3220,6 +3244,16 @@ impl<A: API + ConsoleWriter + 'static, F: Fn() -> A + Send + Sync> UI<A, F> {
32203244 None => self . writeln ( "Commit: Not set" ) ?,
32213245 }
32223246 }
3247+ ConfigGetField :: Suggest => {
3248+ let suggest_config = self . api . get_suggest_config ( ) . await ?;
3249+ match suggest_config {
3250+ Some ( config) => {
3251+ self . writeln ( config. provider . as_ref ( ) ) ?;
3252+ self . writeln ( config. model . as_str ( ) . to_string ( ) ) ?;
3253+ }
3254+ None => self . writeln ( "Suggest: Not set" ) ?,
3255+ }
3256+ }
32233257 }
32243258
32253259 Ok ( ( ) )
0 commit comments