orchestral-cli 0.4.1

A runtime for reliable, interactive AI agents.
Documentation
//! CLI configuration resolution shared by the Agent entry point.

mod config;
mod config_storage;

pub(crate) use config::inspect_runtime_config;
pub(crate) use config::prepare_runtime_config_path;
pub(crate) use config::resolve_runtime_config_path;

const GENERATED_CONFIG_DIR: &str = ".orchestral/generated";
const GENERATED_CONFIG_FILE: &str = "default.agent.yaml";
const GENERATED_OVERRIDE_CONFIG_SUFFIX: &str = ".agent.override.yaml";

#[derive(Debug, Clone, Default)]
pub struct ModelOverrides {
    pub backend: Option<String>,
    pub model_profile: Option<String>,
    pub model: Option<String>,
    pub temperature: Option<f32>,
    pub reasoning: Option<orchestral_core::config::ReasoningPreference>,
    pub base_url: Option<String>,
    pub api_key_env: Option<String>,
    pub no_auth: bool,
}

impl ModelOverrides {
    pub fn is_empty(&self) -> bool {
        self.backend.is_none()
            && self.model_profile.is_none()
            && self.model.is_none()
            && self.temperature.is_none()
            && self.reasoning.is_none()
            && self.base_url.is_none()
            && self.api_key_env.is_none()
            && !self.no_auth
    }
}