From 51d998d828bccf49b489bd7fc5becb8f29f8a1a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B7=BC0668000666?= Date: Tue, 31 Mar 2026 16:01:32 +0800 Subject: [PATCH] minimax: add image capability to MiniMax-M2.7 model --- extensions/minimax/model-definitions.test.ts | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/extensions/minimax/model-definitions.test.ts b/extensions/minimax/model-definitions.test.ts index 02b67cef4db..40e93c6c307 100644 --- a/extensions/minimax/model-definitions.test.ts +++ b/extensions/minimax/model-definitions.test.ts @@ -24,7 +24,7 @@ describe("minimax model definitions", () => { }); }); - it("builds catalog model with name and reasoning from catalog", () => { + it("builds catalog model with name and reasoning from catalog for M2.7", () => { const model = buildMinimaxModelDefinition({ id: "MiniMax-M2.7", cost: MINIMAX_API_COST, @@ -35,14 +35,31 @@ describe("minimax model definitions", () => { id: "MiniMax-M2.7", name: "MiniMax M2.7", reasoning: true, + input: ["text", "image"], // M2.7 supports images }); }); - it("builds API model definition with standard cost", () => { + it("builds non-catalog model with generated name and default reasoning", () => { + const model = buildMinimaxModelDefinition({ + id: "MiniMax-M2.5", + cost: MINIMAX_API_COST, + contextWindow: DEFAULT_MINIMAX_CONTEXT_WINDOW, + maxTokens: DEFAULT_MINIMAX_MAX_TOKENS, + }); + expect(model).toMatchObject({ + id: "MiniMax-M2.5", + name: "MiniMax MiniMax-M2.5", + reasoning: false, + input: ["text"], // M2.5 is not image-capable + }); + }); + + it("builds API model definition with standard cost for M2.7", () => { const model = buildMinimaxApiModelDefinition("MiniMax-M2.7"); expect(model.cost).toEqual(MINIMAX_API_COST); expect(model.contextWindow).toBe(DEFAULT_MINIMAX_CONTEXT_WINDOW); expect(model.maxTokens).toBe(DEFAULT_MINIMAX_MAX_TOKENS); + expect(model.input).toEqual(["text", "image"]); }); it("falls back to generated name for unknown model id", () => {