summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/provider/transform.ts5
-rw-r--r--packages/opencode/test/provider/transform.test.ts19
2 files changed, 21 insertions, 3 deletions
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index a8f2fcf30..b52c94cc0 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -760,9 +760,10 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/mistral
// https://docs.mistral.ai/capabilities/reasoning/adjustable
if (!model.capabilities.reasoning) return {}
- // Only Mistral Small 4 supports reasoning (mistral-small-2603, mistral-small-latest)
+ // Only Mistral Small 4 and Medium 3.5 support reasoning
+ const MISTRAL_REASONING_IDS = ["mistral-small-2603", "mistral-small-latest", "mistral-medium-3.5"]
const mistralId = model.api.id.toLowerCase()
- if (!mistralId.includes("mistral-small-2603") && !mistralId.includes("mistral-small-latest")) return {}
+ if (!MISTRAL_REASONING_IDS.some((id) => mistralId.includes(id))) return {}
return {
high: { reasoningEffort: "high" },
}
diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts
index c4831fa82..a12165b4f 100644
--- a/packages/opencode/test/provider/transform.test.ts
+++ b/packages/opencode/test/provider/transform.test.ts
@@ -2257,7 +2257,7 @@ describe("ProviderTransform.variants", () => {
expect(result).toEqual({})
})
- test("mistral with reasoning returns variants", () => {
+ test("mistral models with reasoning support return variants", () => {
const model = createMockModel({
id: "mistral/mistral-small-latest",
providerID: "mistral",
@@ -2274,6 +2274,23 @@ describe("ProviderTransform.variants", () => {
})
})
+ test("mistral-medium-3.5 with reasoning returns variants", () => {
+ const model = createMockModel({
+ id: "mistral/mistral-medium-3.5",
+ providerID: "mistral",
+ api: {
+ id: "mistral-medium-3.5",
+ url: "https://api.mistral.com",
+ npm: "@ai-sdk/mistral",
+ },
+ capabilities: { reasoning: true },
+ })
+ const result = ProviderTransform.variants(model)
+ expect(result).toEqual({
+ high: { reasoningEffort: "high" },
+ })
+ })
+
test("mistral without reasoning returns empty object", () => {
const model = createMockModel({
id: "mistral/mistral-large",