vtcode_config/models/model_id/
provider.rs1use crate::models::{Provider, ProviderModelSupport};
2
3use super::ModelId;
4
5impl ModelId {
6 pub fn provider(&self) -> Provider {
8 if self.openrouter_metadata().is_some() {
9 return Provider::OpenRouter;
10 }
11 if let Some(provider) = self.table_provider() {
12 return provider;
13 }
14 match self {
15 ModelId::Custom(provider_key, _) => {
16 use std::str::FromStr;
17 Provider::from_str(provider_key).unwrap_or(Provider::OpenAI)
18 }
19 _ => Provider::OpenRouter,
22 }
23 }
24
25 pub fn supports_reasoning_effort(&self) -> bool {
27 self.provider().supports_reasoning_effort(&self.as_str())
28 }
29
30 pub fn supports_reasoning(&self) -> bool {
32 self.provider().supports_reasoning(&self.as_str())
33 }
34}