From b9c3b7eeac0f2608b4d527dd577708016c656924 Mon Sep 17 00:00:00 2001 From: Sandipsinh Dilipsinh Rathod <62684960+ssddOnTop@users.noreply.github.com> Date: Fri, 13 Mar 2026 16:40:31 -0400 Subject: [PATCH] feat(provider): add minimax support --- crates/forge_domain/src/provider.rs | 4 ++ crates/forge_repo/src/provider/provider.json | 60 ++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/crates/forge_domain/src/provider.rs b/crates/forge_domain/src/provider.rs index 9a844d1018..94a391e24c 100644 --- a/crates/forge_domain/src/provider.rs +++ b/crates/forge_domain/src/provider.rs @@ -67,6 +67,7 @@ impl ProviderId { pub const FORGE_SERVICES: ProviderId = ProviderId(Cow::Borrowed("forge_services")); pub const IO_INTELLIGENCE: ProviderId = ProviderId(Cow::Borrowed("io_intelligence")); pub const BEDROCK: ProviderId = ProviderId(Cow::Borrowed("bedrock")); + pub const MINIMAX: ProviderId = ProviderId(Cow::Borrowed("minimax")); pub const CODEX: ProviderId = ProviderId(Cow::Borrowed("codex")); /// Returns all built-in provider IDs @@ -95,6 +96,7 @@ impl ProviderId { ProviderId::FORGE_SERVICES, ProviderId::IO_INTELLIGENCE, ProviderId::BEDROCK, + ProviderId::MINIMAX, ProviderId::CODEX, ] } @@ -117,6 +119,7 @@ impl ProviderId { "openai_compatible" => "OpenAICompatible".to_string(), "openai_responses_compatible" => "OpenAIResponsesCompatible".to_string(), "io_intelligence" => "IOIntelligence".to_string(), + "minimax" => "MiniMax".to_string(), "codex" => "Codex".to_string(), _ => { // For other providers, use UpperCamelCase conversion @@ -158,6 +161,7 @@ impl std::str::FromStr for ProviderId { "anthropic_compatible" => ProviderId::ANTHROPIC_COMPATIBLE, "forge_services" => ProviderId::FORGE_SERVICES, "io_intelligence" => ProviderId::IO_INTELLIGENCE, + "minimax" => ProviderId::MINIMAX, "codex" => ProviderId::CODEX, // For custom providers, use Cow::Owned to avoid memory leaks custom => ProviderId(Cow::Owned(custom.to_string())), diff --git a/crates/forge_repo/src/provider/provider.json b/crates/forge_repo/src/provider/provider.json index b7e4c17205..6fb93c0998 100644 --- a/crates/forge_repo/src/provider/provider.json +++ b/crates/forge_repo/src/provider/provider.json @@ -1815,6 +1815,66 @@ ], "auth_methods": ["google_adc"] }, + { + "id": "minimax", + "api_key_vars": "MINIMAX_API_KEY", + "url_param_vars": [], + "response_type": "Anthropic", + "url": "https://api.minimax.io/anthropic/v1/messages", + "models": [ + { + "id": "MiniMax-M2.5", + "name": "MiniMax M2.5", + "description": "Peak performance model optimized for code generation and refactoring with advanced reasoning", + "context_length": 204800, + "tools_supported": true, + "supports_parallel_tool_calls": true, + "supports_reasoning": true, + "input_modalities": ["text"] + }, + { + "id": "MiniMax-M2.5-highspeed", + "name": "MiniMax M2.5 Highspeed", + "description": "Same performance as M2.5 with significantly faster inference (~100 tps)", + "context_length": 204800, + "tools_supported": true, + "supports_parallel_tool_calls": true, + "supports_reasoning": true, + "input_modalities": ["text"] + }, + { + "id": "MiniMax-M2.1", + "name": "MiniMax M2.1", + "description": "230B total parameters with 10B activated per inference, optimized for code generation and refactoring", + "context_length": 204800, + "tools_supported": true, + "supports_parallel_tool_calls": true, + "supports_reasoning": true, + "input_modalities": ["text"] + }, + { + "id": "MiniMax-M2.1-highspeed", + "name": "MiniMax M2.1 Highspeed", + "description": "Same performance as M2.1 with significantly faster inference (~100 tps)", + "context_length": 204800, + "tools_supported": true, + "supports_parallel_tool_calls": true, + "supports_reasoning": true, + "input_modalities": ["text"] + }, + { + "id": "MiniMax-M2", + "name": "MiniMax M2", + "description": "Agentic capabilities with advanced reasoning, function calling, and real-time streaming", + "context_length": 204800, + "tools_supported": true, + "supports_parallel_tool_calls": true, + "supports_reasoning": true, + "input_modalities": ["text"] + } + ], + "auth_methods": ["api_key"] + }, { "id": "codex", "api_key_vars": "CODEX_API_KEY",