From 4efab856d21a32efe06b33040db7b01f90153e11 Mon Sep 17 00:00:00 2001 From: Yunare Maia Date: Mon, 24 Aug 2026 17:39:39 +0000 Subject: [PATCH 1/2] fix(core): include 'low' effort for deepseek-v4-flash The official Thinking Mode guide accepts reasoning_effort low/high/max and states the effort mapping is identical for deepseek-v4-flash and deepseek-v4-pro; the deepseek-v4-pro entry here already pins the full set. The pinned ['high','max'] predates the 0731 refresh of this model. --- packages/core/src/model-metadata.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/model-metadata.ts b/packages/core/src/model-metadata.ts index 5d65b8fc4a..5949b79fad 100644 --- a/packages/core/src/model-metadata.ts +++ b/packages/core/src/model-metadata.ts @@ -432,7 +432,8 @@ const STATIC_MODEL_METADATA: Partial Date: Mon, 24 Aug 2026 18:00:42 +0000 Subject: [PATCH 2/2] test(runtime): cover 'low' effort for deepseek-v4-flash Updates the thinking-variants assertion to the corrected catalog set ['low','high','max'], asserts reasoningEffort passthrough for 'low', and drops 'low' from the unsupported-effort loop. --- .../runtime/src/__tests__/model-factory-thinking.test.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/runtime/src/__tests__/model-factory-thinking.test.ts b/packages/runtime/src/__tests__/model-factory-thinking.test.ts index 793da8bec5..57b9dbe886 100644 --- a/packages/runtime/src/__tests__/model-factory-thinking.test.ts +++ b/packages/runtime/src/__tests__/model-factory-thinking.test.ts @@ -301,18 +301,21 @@ describe('buildProviderOptions: thinking level', () => { ); assert.deepEqual( [...thinkingVariantsForModel('deepseek', 'deepseek-v4-flash')], - ['high', 'max'], + ['low', 'high', 'max'], ); // DeepSeek V4 uses the generic Open Responses adapter, which passes a // provider-native reasoningEffort through verbatim: `max` stays `max` // (DeepSeek's documented mapping sends `xhigh` to high, not max). + assert.deepEqual(buildProviderOptions(conn('deepseek'), 'deepseek-v4-flash', 'low'), { + deepseek: { reasoningEffort: 'low' }, + }); assert.deepEqual(buildProviderOptions(conn('deepseek'), 'deepseek-v4-flash', 'high'), { deepseek: { reasoningEffort: 'high' }, }); assert.deepEqual(buildProviderOptions(conn('deepseek'), 'deepseek-v4-flash', 'max'), { deepseek: { reasoningEffort: 'max' }, }); - for (const unsupported of ['off', 'low', 'medium', 'minimal'] as const) { + for (const unsupported of ['off', 'medium', 'minimal'] as const) { assert.deepEqual( buildProviderOptions(conn('deepseek'), 'deepseek-v4-flash', unsupported), {},