diff --git a/crates/goose-acp/tests/common_tests/mod.rs b/crates/goose-acp/tests/common_tests/mod.rs index e5b3a305108e..c5471d2eb0c7 100644 --- a/crates/goose-acp/tests/common_tests/mod.rs +++ b/crates/goose-acp/tests/common_tests/mod.rs @@ -142,7 +142,6 @@ pub async fn run_model_list() { "gpt-5-codex", "gpt-5", "gpt-5-2025-08-07", - "gpt-5-chat-latest", "gpt-5-mini", "gpt-5-mini-2025-08-07", TEST_MODEL, @@ -172,16 +171,10 @@ pub async fn run_model_list() { "gpt-4o-2024-05-13", "gpt-4o-2024-08-06", "gpt-4o-2024-11-20", - "text-embedding-3-large", - "text-embedding-3-small", "gpt-4", "gpt-4-0613", "gpt-4-turbo", "gpt-4-turbo-2024-04-09", - "gpt-3.5-turbo", - "gpt-3.5-turbo-0125", - "gpt-3.5-turbo-1106", - "text-embedding-ada-002", ] .iter() .map(|id| ModelInfo::new(ModelId::new(*id), *id)) diff --git a/crates/goose/src/providers/base.rs b/crates/goose/src/providers/base.rs index 05447494bcd0..b253afea9c38 100644 --- a/crates/goose/src/providers/base.rs +++ b/crates/goose/src/providers/base.rs @@ -481,6 +481,10 @@ pub trait Provider: Send + Sync { return None; } + if !canonical_model.tool_call && !self.get_model_config().toolshim { + return None; + } + let release_date = canonical_model.release_date.clone(); Some((model.clone(), release_date)) diff --git a/crates/goose/src/providers/openrouter.rs b/crates/goose/src/providers/openrouter.rs index 52466c6a34b5..9ce10f1000c6 100644 --- a/crates/goose/src/providers/openrouter.rs +++ b/crates/goose/src/providers/openrouter.rs @@ -311,7 +311,6 @@ impl Provider for OpenRouterProvider { Ok((message, ProviderUsage::new(response_model, usage))) } - /// Fetch supported models from OpenRouter API (only models with tool support) async fn fetch_supported_models(&self) -> Result, ProviderError> { let response = self .api_client @@ -350,32 +349,8 @@ impl Provider for OpenRouterProvider { let mut models: Vec = data .iter() .filter_map(|model| { - // Get the model ID let id = model.get("id").and_then(|v| v.as_str())?; - - // Check if the model supports tools - let supported_params = - match model.get("supported_parameters").and_then(|v| v.as_array()) { - Some(params) => params, - None => { - // If supported_parameters is missing, skip this model (assume no tool support) - tracing::debug!( - "Model '{}' missing supported_parameters field, skipping", - id - ); - return None; - } - }; - - let has_tool_support = supported_params - .iter() - .any(|param| param.as_str() == Some("tools")); - - if has_tool_support { - Some(id.to_string()) - } else { - None - } + Some(id.to_string()) }) .collect();