From 3d183fe0e891886bbd51a3c5b30b301e966cce03 Mon Sep 17 00:00:00 2001 From: Tam Nhu Tran Date: Sat, 7 Mar 2026 15:35:12 +0700 Subject: [PATCH] fix(cliproxy): sync claude 4.6 selector defaults --- src/cliproxy/model-catalog.ts | 15 ++++++++++++++- tests/unit/cliproxy/model-catalog.test.js | 21 +++++++++++++++++++++ ui/src/lib/model-catalogs.ts | 16 ++++++++++++++-- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/cliproxy/model-catalog.ts b/src/cliproxy/model-catalog.ts index 5300ef8d..8194e640 100644 --- a/src/cliproxy/model-catalog.ts +++ b/src/cliproxy/model-catalog.ts @@ -223,7 +223,7 @@ export const MODEL_CATALOG: Partial> = claude: { provider: 'claude', displayName: 'Claude (Anthropic)', - defaultModel: 'claude-sonnet-4-5-20250929', + defaultModel: 'claude-sonnet-4-6', models: [ { id: 'claude-opus-4-6', @@ -238,6 +238,19 @@ export const MODEL_CATALOG: Partial> = }, extendedContext: true, }, + { + id: 'claude-sonnet-4-6', + name: 'Claude Sonnet 4.6', + description: 'Balanced performance and speed', + thinking: { + type: 'budget', + min: 1024, + max: 128000, + zeroAllowed: false, + dynamicAllowed: true, + }, + extendedContext: true, + }, { id: 'claude-opus-4-5-20251101', name: 'Claude Opus 4.5', diff --git a/tests/unit/cliproxy/model-catalog.test.js b/tests/unit/cliproxy/model-catalog.test.js index 87acb22a..ee9f5040 100644 --- a/tests/unit/cliproxy/model-catalog.test.js +++ b/tests/unit/cliproxy/model-catalog.test.js @@ -106,6 +106,27 @@ describe('Model Catalog', () => { }); }); + describe('Claude models', () => { + it('contains Claude provider catalog', () => { + const { MODEL_CATALOG } = modelCatalog; + assert(MODEL_CATALOG.claude, 'Should have Claude provider'); + assert.strictEqual(MODEL_CATALOG.claude.provider, 'claude'); + assert.strictEqual(MODEL_CATALOG.claude.displayName, 'Claude (Anthropic)'); + }); + + it('has correct default model', () => { + const { MODEL_CATALOG } = modelCatalog; + assert.strictEqual(MODEL_CATALOG.claude.defaultModel, 'claude-sonnet-4-6'); + }); + + it('includes Claude Sonnet 4.6', () => { + const { MODEL_CATALOG } = modelCatalog; + const sonnet = MODEL_CATALOG.claude.models.find((m) => m.id === 'claude-sonnet-4-6'); + assert(sonnet, 'Should include Claude Sonnet 4.6'); + assert.strictEqual(sonnet.name, 'Claude Sonnet 4.6'); + }); + }); + describe('Gemini models', () => { it('has correct default model', () => { const { MODEL_CATALOG } = modelCatalog; diff --git a/ui/src/lib/model-catalogs.ts b/ui/src/lib/model-catalogs.ts index 016d0564..0832c111 100644 --- a/ui/src/lib/model-catalogs.ts +++ b/ui/src/lib/model-catalogs.ts @@ -441,7 +441,7 @@ export const MODEL_CATALOGS: Record = { claude: { provider: 'claude', displayName: 'Claude (Anthropic)', - defaultModel: 'claude-sonnet-4-5-20250929', + defaultModel: 'claude-sonnet-4-6', models: [ { id: 'claude-opus-4-6', @@ -451,7 +451,19 @@ export const MODEL_CATALOGS: Record = { presetMapping: { default: 'claude-opus-4-6', opus: 'claude-opus-4-6', - sonnet: 'claude-sonnet-4-5-20250929', + sonnet: 'claude-sonnet-4-6', + haiku: 'claude-haiku-4-5-20251001', + }, + }, + { + id: 'claude-sonnet-4-6', + name: 'Claude Sonnet 4.6', + description: 'Balanced performance and speed', + extendedContext: true, + presetMapping: { + default: 'claude-sonnet-4-6', + opus: 'claude-opus-4-6', + sonnet: 'claude-sonnet-4-6', haiku: 'claude-haiku-4-5-20251001', }, },