Skip to main content

agent_procs/cli/
down.rs

1use crate::config::{load_config, resolve_session};
2use crate::protocol::Request;
3
4pub async fn execute(cli_session: Option<&str>) -> i32 {
5    let session = match cli_session {
6        Some(s) => s.to_string(),
7        None => {
8            let config_session = load_config(None).ok().and_then(|(_, c)| c.session);
9            resolve_session(None, config_session.as_deref()).to_string()
10        }
11    };
12
13    let code = crate::cli::stop::execute_all(&session).await;
14    if code == 0 {
15        // Shut down the daemon — it will auto-spawn on next use
16        let _ = crate::cli::request(&session, &Request::Shutdown, false).await;
17    }
18    code
19}