From 76ce9d6d228c4d09af99878b683fbd186885fa94 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Thu, 11 Jun 2026 08:05:20 +0900 Subject: [PATCH] fix(foundry): expose Claude 4.6 max effort --- extensions/microsoft-foundry/index.test.ts | 20 ++++++++++++++++++++ extensions/microsoft-foundry/provider.ts | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/extensions/microsoft-foundry/index.test.ts b/extensions/microsoft-foundry/index.test.ts index 979d251dce9e..937d7665b112 100644 --- a/extensions/microsoft-foundry/index.test.ts +++ b/extensions/microsoft-foundry/index.test.ts @@ -1443,6 +1443,26 @@ describe("microsoft-foundry plugin", () => { { id: "max" }, ], }); + for (const modelName of ["claude-opus-4-6", "claude-sonnet-4-6"]) { + expect( + provider.resolveThinkingProfile?.({ + provider: "microsoft-foundry", + modelId: `prod-${modelName}`, + params: { canonicalModelId: modelName }, + }), + ).toMatchObject({ + defaultLevel: "adaptive", + levels: [ + { id: "off" }, + { id: "minimal" }, + { id: "low" }, + { id: "medium" }, + { id: "high" }, + { id: "adaptive" }, + { id: "max" }, + ], + }); + } expect( provider.resolveThinkingProfile?.({ provider: "microsoft-foundry", diff --git a/extensions/microsoft-foundry/provider.ts b/extensions/microsoft-foundry/provider.ts index d182ed13b9f0..2bf1e071b9c7 100644 --- a/extensions/microsoft-foundry/provider.ts +++ b/extensions/microsoft-foundry/provider.ts @@ -2,6 +2,7 @@ import type { ProviderNormalizeResolvedModelContext } from "openclaw/plugin-sdk/core"; import { resolveClaudeThinkingProfile, + supportsClaudeNativeMaxEffort, type ModelProviderConfig, type ProviderPlugin, } from "openclaw/plugin-sdk/provider-model-shared"; @@ -190,7 +191,9 @@ export function buildMicrosoftFoundryProvider(): ProviderPlugin { if (!capabilities.reasoning || capabilities.api !== "anthropic-messages") { return undefined; } - const profile = resolveClaudeThinkingProfile(capabilities.modelName); + const profile = resolveClaudeThinkingProfile(capabilities.modelName, undefined, { + includeNativeMax: supportsClaudeNativeMaxEffort({ id: capabilities.modelName }), + }); if (!isFoundryClaudeMythosPreview(capabilities.modelName)) { return profile; }