Skip to main content

zagens_runtime/cli/
auto_route_cli.rs

1//! CLI auto-model routing (`model = auto`).
2
3use crate::agent_surface::ReasoningEffort;
4use crate::auto_route::{AutoRouteSelection, resolve_auto_route_with_flash};
5use crate::config::Config;
6
7#[derive(Debug, Clone)]
8pub struct CliAutoRoute {
9    pub model: String,
10    pub reasoning_effort: Option<ReasoningEffort>,
11    pub auto_model: bool,
12}
13
14pub async fn resolve_cli_auto_route(config: &Config, model: &str, prompt: &str) -> CliAutoRoute {
15    if model.trim().eq_ignore_ascii_case("auto") {
16        let selection: AutoRouteSelection =
17            resolve_auto_route_with_flash(config, prompt, "", "auto", "auto").await;
18        CliAutoRoute {
19            model: selection.model,
20            reasoning_effort: selection.reasoning_effort,
21            auto_model: true,
22        }
23    } else {
24        CliAutoRoute {
25            model: model.to_string(),
26            reasoning_effort: None,
27            auto_model: false,
28        }
29    }
30}