diff --git a/internal/api/handlers_info.go b/internal/api/handlers_info.go index e6ced66..921481a 100644 --- a/internal/api/handlers_info.go +++ b/internal/api/handlers_info.go @@ -530,6 +530,11 @@ func (s *Server) handleProvidersQuota(w http.ResponseWriter, r *http.Request) { } } } + case "mimo": + q.Healthy = p.APIKey != "" + if p.APIKey == "" { + q.Error = "no API key" + } case "claude", "anthropic": // Claude Code n'a pas d'API externe, vérifier l'installation claudePath := "/usr/bin/claude" diff --git a/internal/config/config.go b/internal/config/config.go index cb26ec0..ab693b1 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -269,6 +269,12 @@ func Default() *MuyueConfig { BaseURL: "https://api.minimax.io/v1", Active: true, }, + { + Name: "mimo", + Model: "MiMo-V2.5-Pro", + BaseURL: "https://token-plan-ams.xiaomimimo.com/v1", + Active: false, + }, { Name: "zai", Model: "glm", diff --git a/internal/orchestrator/orchestrator.go b/internal/orchestrator/orchestrator.go index 7c70887..235c41e 100644 --- a/internal/orchestrator/orchestrator.go +++ b/internal/orchestrator/orchestrator.go @@ -476,6 +476,8 @@ func getProviderBaseURL(name string) string { return "https://api.openai.com/v1" case "zai": return "https://api.z.ai/v1" + case "mimo": + return "https://token-plan-ams.xiaomimimo.com/v1" default: return "" } @@ -503,11 +505,19 @@ func (o *Orchestrator) sendWithFallback(reqBody ChatRequest, baseURLOverride str if o.provider != nil { providerOrder = append(providerOrder, o.provider) } + var zaiProvider *config.AIProvider for _, p := range providers { if o.provider == nil || p.Name != o.provider.Name { - providerOrder = append(providerOrder, p) + if p.Name == "zai" { + zaiProvider = p + } else { + providerOrder = append(providerOrder, p) + } } } + if zaiProvider != nil { + providerOrder = append(providerOrder, zaiProvider) + } var lastErr error var triedProviders []string diff --git a/web/src/components/Config.jsx b/web/src/components/Config.jsx index ac38210..1534c7b 100644 --- a/web/src/components/Config.jsx +++ b/web/src/components/Config.jsx @@ -343,7 +343,7 @@ function PanelProviders({ providers, editProvider, providerForm, setProviderForm setValidating(null) } - const displayed = providers.filter(p => p.name === 'minimax' || p.name === 'zai') + const displayed = providers.filter(p => p.name === 'minimax' || p.name === 'mimo') return (