use crate::config::Config;
use crate::error::TalkError;
use super::model;
pub struct ModelStatus {
pub model_dir: std::path::PathBuf,
pub present: bool,
}
pub fn resolve(config: &Config) -> Result<ModelStatus, TalkError> {
let cfg = config.providers.kokoro.clone().unwrap_or_default();
let model_dir = cfg.resolved_model_dir()?;
let present = model::is_present(&model_dir);
Ok(ModelStatus { model_dir, present })
}
pub async fn ensure_with_cli_consent(config: &Config) -> Result<(), TalkError> {
let status = resolve(config)?;
if status.present {
return Ok(());
}
model::ensure_with_cli_consent(&status.model_dir).await
}