chore: add minimax

Kujtim Hoxha created

Change summary

internal/providers/configs/minimax.json | 21 +++++++++++++++++++++
internal/providers/providers.go         |  8 ++++++++
pkg/catwalk/provider.go                 |  2 ++
3 files changed, 31 insertions(+)

Detailed changes

internal/providers/configs/minimax.json 🔗

@@ -0,0 +1,21 @@
+{
+  "name": "MiniMax",
+  "id": "minimax",
+  "type": "anthropic",
+  "api_key": "$MINIMAX_API_KEY",
+  "api_endpoint": "https://api.minimax.io/anthropic",
+  "default_large_model_id": "MiniMax-M2",
+  "default_small_model_id": "MiniMax-M2",
+  "models": [
+    {
+      "id": "MiniMax-M2",
+      "name": "MiniMax-M2",
+      "cost_per_1m_in": 0.3,
+      "cost_per_1m_out": 1.2,
+      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 200000,
+      "default_max_tokens": 20000
+    }
+  ]
+}

internal/providers/providers.go 🔗

@@ -57,6 +57,9 @@ var huggingFaceConfig []byte
 //go:embed configs/aihubmix.json
 var aiHubMixConfig []byte
 
+//go:embed configs/minimax.json
+var miniMaxConfig []byte
+
 // ProviderFunc is a function that returns a Provider.
 type ProviderFunc func() catwalk.Provider
 
@@ -77,6 +80,7 @@ var providerRegistry = []ProviderFunc{
 	deepSeekProvider,
 	huggingFaceProvider,
 	aiHubMixProvider,
+	miniMaxProvider,
 }
 
 // GetAll returns all registered providers.
@@ -160,3 +164,7 @@ func huggingFaceProvider() catwalk.Provider {
 func aiHubMixProvider() catwalk.Provider {
 	return loadProviderFromConfig(aiHubMixConfig)
 }
+
+func miniMaxProvider() catwalk.Provider {
+	return loadProviderFromConfig(miniMaxConfig)
+}

pkg/catwalk/provider.go 🔗

@@ -35,6 +35,7 @@ const (
 	InferenceProviderChutes      InferenceProvider = "chutes"
 	InferenceProviderHuggingFace InferenceProvider = "huggingface"
 	InferenceAIHubMix            InferenceProvider = "aihubmix"
+	InferenceProviderMiniMax     InferenceProvider = "minimax"
 )
 
 // Provider represents an AI provider configuration.
@@ -95,6 +96,7 @@ func KnownProviders() []InferenceProvider {
 		InferenceProviderChutes,
 		InferenceProviderHuggingFace,
 		InferenceAIHubMix,
+		InferenceProviderMiniMax,
 	}
 }