diff --git a/crates/core/models.json b/crates/core/models.json index 0e50fd15..e91003b6 100644 --- a/crates/core/models.json +++ b/crates/core/models.json @@ -70,6 +70,18 @@ } } }, + { + "slug": "MiniMax-M2.7", + "display_name": "MiniMax-M2.7", + "channel": "MiniMax", + "provider": "openai_chat_completions", + "description": "MiniMax M2.7 model with 204.8k-token context by MiniMax", + "reasoning_capability": "unsupported", + "context_window": 204800, + "input_modalities": [ + "text" + ] + }, { "slug": "glm-5.2", "display_name": "glm-5.2", diff --git a/crates/core/src/model_catalog.rs b/crates/core/src/model_catalog.rs index f3629272..e78206c8 100644 --- a/crates/core/src/model_catalog.rs +++ b/crates/core/src/model_catalog.rs @@ -153,6 +153,26 @@ mod tests { ); } + #[test] + fn builtin_minimax_catalog_contains_both_target_models() { + let models = load_builtin_models().expect("load builtin models"); + let m3 = models + .iter() + .find(|model| model.slug == "MiniMax-M3") + .expect("MiniMax-M3 model"); + let m27 = models + .iter() + .find(|model| model.slug == "MiniMax-M2.7") + .expect("MiniMax-M2.7 model"); + + assert_eq!(m3.context_window, 1_000_000); + assert_eq!(m27.context_window, 204_800); + assert!(matches!( + m27.reasoning_capability, + ReasoningCapability::Unsupported + )); + } + #[test] fn load_from_config_applies_partial_builtin_override_without_replacing_metadata() { let builtin = load_builtin_models()