diff --git a/src/agents/models-config.providers.ts b/src/agents/models-config.providers.ts index 393b333e250..84b0c4303e5 100644 --- a/src/agents/models-config.providers.ts +++ b/src/agents/models-config.providers.ts @@ -47,6 +47,33 @@ const MINIMAX_API_COST = { cacheWrite: 10, }; +type ProviderModelConfig = NonNullable[number]; + +function buildMinimaxModel(params: { + id: string; + name: string; + reasoning: boolean; + input: ProviderModelConfig["input"]; +}): ProviderModelConfig { + return { + id: params.id, + name: params.name, + reasoning: params.reasoning, + input: params.input, + cost: MINIMAX_API_COST, + contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, + maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, + }; +} + +function buildMinimaxTextModel(params: { + id: string; + name: string; + reasoning: boolean; +}): ProviderModelConfig { + return buildMinimaxModel({ ...params, input: ["text"] }); +} + const XIAOMI_BASE_URL = "https://api.xiaomimimo.com/anthropic"; export const XIAOMI_DEFAULT_MODEL_ID = "mimo-v2-flash"; const XIAOMI_DEFAULT_CONTEXT_WINDOW = 262144; @@ -389,51 +416,32 @@ function buildMinimaxProvider(): ProviderConfig { baseUrl: MINIMAX_PORTAL_BASE_URL, api: "anthropic-messages", models: [ - { + buildMinimaxTextModel({ id: MINIMAX_DEFAULT_MODEL_ID, name: "MiniMax M2.1", reasoning: false, - input: ["text"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, - { + }), + buildMinimaxTextModel({ id: "MiniMax-M2.1-lightning", name: "MiniMax M2.1 Lightning", reasoning: false, - input: ["text"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, - { + }), + buildMinimaxModel({ id: MINIMAX_DEFAULT_VISION_MODEL_ID, name: "MiniMax VL 01", reasoning: false, input: ["text", "image"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, - { + }), + buildMinimaxTextModel({ id: "MiniMax-M2.5", name: "MiniMax M2.5", reasoning: true, - input: ["text"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, - { + }), + buildMinimaxTextModel({ id: "MiniMax-M2.5-Lightning", name: "MiniMax M2.5 Lightning", reasoning: true, - input: ["text"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, + }), ], }; } @@ -443,24 +451,16 @@ function buildMinimaxPortalProvider(): ProviderConfig { baseUrl: MINIMAX_PORTAL_BASE_URL, api: "anthropic-messages", models: [ - { + buildMinimaxTextModel({ id: MINIMAX_DEFAULT_MODEL_ID, name: "MiniMax M2.1", reasoning: false, - input: ["text"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, - { + }), + buildMinimaxTextModel({ id: "MiniMax-M2.5", name: "MiniMax M2.5", reasoning: true, - input: ["text"], - cost: MINIMAX_API_COST, - contextWindow: MINIMAX_DEFAULT_CONTEXT_WINDOW, - maxTokens: MINIMAX_DEFAULT_MAX_TOKENS, - }, + }), ], }; }