Skip to content

Commit 639e27c

Browse files
authored
feat: add Mistral Medium 3.5 with reasoning support (anomalyco#24996)
1 parent 1124ae1 commit 639e27c

2 files changed

Lines changed: 21 additions & 3 deletions

File tree

packages/opencode/src/provider/transform.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -760,9 +760,10 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
760760
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/mistral
761761
// https://docs.mistral.ai/capabilities/reasoning/adjustable
762762
if (!model.capabilities.reasoning) return {}
763-
// Only Mistral Small 4 supports reasoning (mistral-small-2603, mistral-small-latest)
763+
// Only Mistral Small 4 and Medium 3.5 support reasoning
764+
const MISTRAL_REASONING_IDS = ["mistral-small-2603", "mistral-small-latest", "mistral-medium-3.5"]
764765
const mistralId = model.api.id.toLowerCase()
765-
if (!mistralId.includes("mistral-small-2603") && !mistralId.includes("mistral-small-latest")) return {}
766+
if (!MISTRAL_REASONING_IDS.some((id) => mistralId.includes(id))) return {}
766767
return {
767768
high: { reasoningEffort: "high" },
768769
}

packages/opencode/test/provider/transform.test.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2257,7 +2257,7 @@ describe("ProviderTransform.variants", () => {
22572257
expect(result).toEqual({})
22582258
})
22592259

2260-
test("mistral with reasoning returns variants", () => {
2260+
test("mistral models with reasoning support return variants", () => {
22612261
const model = createMockModel({
22622262
id: "mistral/mistral-small-latest",
22632263
providerID: "mistral",
@@ -2274,6 +2274,23 @@ describe("ProviderTransform.variants", () => {
22742274
})
22752275
})
22762276

2277+
test("mistral-medium-3.5 with reasoning returns variants", () => {
2278+
const model = createMockModel({
2279+
id: "mistral/mistral-medium-3.5",
2280+
providerID: "mistral",
2281+
api: {
2282+
id: "mistral-medium-3.5",
2283+
url: "https://api.mistral.com",
2284+
npm: "@ai-sdk/mistral",
2285+
},
2286+
capabilities: { reasoning: true },
2287+
})
2288+
const result = ProviderTransform.variants(model)
2289+
expect(result).toEqual({
2290+
high: { reasoningEffort: "high" },
2291+
})
2292+
})
2293+
22772294
test("mistral without reasoning returns empty object", () => {
22782295
const model = createMockModel({
22792296
id: "mistral/mistral-large",

0 commit comments

Comments
 (0)