diff --git a/src/models.test.ts b/src/models.test.ts index a91ed8b1..c63310dd 100644 --- a/src/models.test.ts +++ b/src/models.test.ts @@ -277,6 +277,15 @@ describe("capability flags vs blockrun's catalog", () => { expect(BLOCKRUN_MODELS.find((m) => m.id === id)?.vision).toBe(true); } }); + + it("marks MiniMax M3 vision-capable so image_url requests reach it", () => { + // The target metadata lists text+image+video input for MiniMax M3, but the + // model was registered without `vision`, so filterByVision() excluded it + // whenever a request carried an image_url content part. M2.7 is text-only + // upstream and must stay without the flag. + expect(BLOCKRUN_MODELS.find((m) => m.id === "minimax/minimax-m3")?.vision).toBe(true); + expect(BLOCKRUN_MODELS.find((m) => m.id === "minimax/minimax-m2.7")?.vision).toBeUndefined(); + }); }); describe("OPENCLAW_MODELS integrity", () => { diff --git a/src/models.ts b/src/models.ts index 5333d31e..0f102cad 100644 --- a/src/models.ts +++ b/src/models.ts @@ -1358,6 +1358,7 @@ export const BLOCKRUN_MODELS: BlockRunModel[] = [ contextWindow: 1048576, maxOutput: 65536, reasoning: true, + vision: true, agentic: true, toolCalling: true, },