doum_cli/cli/
auto_mode.rs1use super::ask::handle_ask_command;
2use super::suggest::handle_suggest_command;
3use crate::core::select_mode;
4use crate::llm::create_client;
5use crate::system::{get_system_info, load_config};
6use anyhow::Result;
7use cliclack::spinner;
8
9pub async fn handle_auto_command(input: &str) -> Result<()> {
10 let config = load_config()?;
11 let client = create_client(&config.llm)?;
12 let system_info = get_system_info();
13
14 let sp = spinner();
15 sp.start("[AUTO MODE] Selecting mode...");
16
17 let mode_response = select_mode(input, client.as_ref(), &system_info, &config).await?;
18
19 sp.stop("");
20
21 match mode_response.mode.as_str() {
23 "ask" => handle_ask_command(input).await,
24 "suggest" => handle_suggest_command(input).await,
25 unknown => {
26 println!("⚠️ Unknown mode: {}", unknown);
27 println!("💡 Falling back to Ask mode.\n");
28 handle_ask_command(input).await
29 }
30 }
31}