From cfb83a629e5f086a001b83f97e2034bb66a32d00 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Mon, 14 Sep 2026 17:47:01 -0600 Subject: [PATCH] feat: create a config alias for default_reasoning_level (to match some wording and make the config flexible) --- src/client/model.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/client/model.rs b/src/client/model.rs index 1ccae1a..4c1249f 100644 --- a/src/client/model.rs +++ b/src/client/model.rs @@ -360,7 +360,10 @@ pub struct ModelData { pub supports_function_calling: bool, #[serde(default, skip_serializing_if = "Vec::is_empty")] pub reasoning_levels: Vec, - #[serde(skip_serializing_if = "Option::is_none")] + #[serde( + alias = "default_reasoning_level", + skip_serializing_if = "Option::is_none" + )] pub default_reasoning_effort: Option, #[serde(default, skip_serializing_if = "std::ops::Not::not")] pub(crate) no_stream: bool, @@ -520,4 +523,17 @@ mod tests { model.data.reasoning_levels.clear(); assert!(!model.description().contains('🧠')); } + + #[test] + fn model_data_accepts_default_reasoning_level_alias() { + let yaml = r#" +name: gpt-5.6-luna +default_reasoning_level: none +reasoning_levels: [none, low, medium, high] +"#; + + let data: ModelData = serde_yaml::from_str(yaml).unwrap(); + + assert_eq!(data.default_reasoning_effort.as_deref(), Some("none")); + } }