use crate::provider::ProviderRegistry;
use super::model_defaults::default_model_for_provider;
use super::model_preferences::choose_provider_for_tier;
pub(super) async fn resolve_swarm_model(
explicit_model: Option<String>,
model_tier: Option<&str>,
) -> Option<String> {
if let Some(model) = explicit_model.filter(|value| !value.trim().is_empty()) {
return Some(model);
}
let registry = ProviderRegistry::from_vault().await.ok()?;
let providers = registry.list();
if providers.is_empty() {
return None;
}
let provider = choose_provider_for_tier(providers.as_slice(), model_tier);
Some(format!(
"{provider}/{}",
default_model_for_provider(provider, model_tier)
))
}