use crate::Provider;
use crate::model_profile::capabilities::capabilities_for;
pub fn supports_temperature(model: &str) -> bool {
capabilities_for(Provider::OpenAI, model).is_some_and(|caps| caps.supports_temperature)
}
pub fn supports_reasoning(model: &str) -> bool {
capabilities_for(Provider::OpenAI, model).is_some_and(|caps| caps.supports_reasoning)
}
#[cfg(test)]
#[allow(clippy::unwrap_used, clippy::expect_used)]
mod tests {
use super::*;
#[test]
fn supports_temperature_uses_catalog_rows() {
assert!(!supports_temperature("gpt-5.4"));
assert!(!supports_temperature("gpt-5.3-codex"));
}
#[test]
fn supports_reasoning_uses_catalog_rows() {
assert!(supports_reasoning("gpt-5.4"));
assert!(supports_reasoning("gpt-5.3-codex"));
}
#[test]
fn unknown_models_are_conservative() {
assert!(!supports_temperature("gpt-5.9-future"));
assert!(!supports_temperature("gpt-4-future"));
assert!(!supports_reasoning("gpt-5.9-future"));
assert!(!supports_reasoning("future-codex"));
}
}