diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index 54bded7e1d0a0645b8796a1f22f39292c12746b6..3b23ef002e1faa79ec0abac2d5afa38fd6ddf348 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -361,53 +361,52 @@ fn init_language_model_settings(cx: &mut App) { fn update_active_language_model_from_settings(cx: &mut App) { let settings = AgentSettings::get_global(cx); - fn to_selected_model(selection: &LanguageModelSelection) -> language_model::SelectedModel { - language_model::SelectedModel { - provider: LanguageModelProviderId::from(selection.provider.0.clone()), - model: LanguageModelId::from(selection.model.clone()), - } - } - - // Filter out models from providers that are not authenticated - fn is_provider_authenticated( + fn to_selected_model( selection: &LanguageModelSelection, registry: &LanguageModelRegistry, cx: &App, - ) -> bool { + ) -> Option { let provider_id = LanguageModelProviderId::from(selection.provider.0.clone()); - registry + + if registry .provider(&provider_id) .map_or(false, |provider| provider.is_authenticated(cx)) + { + Some(language_model::SelectedModel { + provider: LanguageModelProviderId::from(selection.provider.0.clone()), + model: LanguageModelId::from(selection.model.clone()), + }) + } else { + None + } } + // Filter out models from providers that are not authenticated + fn is_provider_authenticated(selection: &LanguageModelSelection) -> bool {} + let registry = LanguageModelRegistry::global(cx); let registry_ref = registry.read(cx); let default = settings .default_model .as_ref() - .filter(|s| is_provider_authenticated(s, registry_ref, cx)) - .map(to_selected_model); + .map(|s| to_selectad_model(s, registry_ref, cx)); let inline_assistant = settings .inline_assistant_model .as_ref() - .filter(|s| is_provider_authenticated(s, registry_ref, cx)) - .map(to_selected_model); + .map(|s| to_selected_model(s, registry_ref, cx)); let commit_message = settings .commit_message_model .as_ref() - .filter(|s| is_provider_authenticated(s, registry_ref, cx)) - .map(to_selected_model); + .map(|s| to_selected_model(s, registry_ref, cx)); let thread_summary = settings .thread_summary_model .as_ref() - .filter(|s| is_provider_authenticated(s, registry_ref, cx)) - .map(to_selected_model); + .map(|s| to_selected_model(s, registry_ref, cx)); let inline_alternatives = settings .inline_alternatives .iter() - .filter(|s| is_provider_authenticated(s, registry_ref, cx)) - .map(to_selected_model) + .map(|s| to_selected_model(s, registry_ref, cx)) .collect::>(); registry.update(cx, |registry, cx| {