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