diff --git a/src/renderer/src/config/models/default.ts b/src/renderer/src/config/models/default.ts index 34fc3688c8..c3a40e6ef7 100644 --- a/src/renderer/src/config/models/default.ts +++ b/src/renderer/src/config/models/default.ts @@ -430,6 +430,12 @@ export const SYSTEM_MODELS: Record = } ], anthropic: [ + { + id: 'claude-haiku-4-5-20251001', + provider: 'anthropic', + name: 'Claude Haiku 4.5', + group: 'Claude 4.5' + }, { id: 'claude-sonnet-4-5-20250929', provider: 'anthropic', diff --git a/src/renderer/src/config/models/reasoning.ts b/src/renderer/src/config/models/reasoning.ts index 5c89a77ba3..1ef0303f61 100644 --- a/src/renderer/src/config/models/reasoning.ts +++ b/src/renderer/src/config/models/reasoning.ts @@ -335,7 +335,8 @@ export function isClaudeReasoningModel(model?: Model): boolean { modelId.includes('claude-3-7-sonnet') || modelId.includes('claude-3.7-sonnet') || modelId.includes('claude-sonnet-4') || - modelId.includes('claude-opus-4') + modelId.includes('claude-opus-4') || + modelId.includes('claude-haiku-4') ) } @@ -493,8 +494,9 @@ export const THINKING_TOKEN_MAP: Record = 'qwen3-(?!max).*$': { min: 1024, max: 38_912 }, // Claude models - 'claude-3[.-]7.*sonnet.*$': { min: 1024, max: 64000 }, - 'claude-(:?sonnet|opus)-4.*$': { min: 1024, max: 32000 } + 'claude-3[.-]7.*sonnet.*$': { min: 1024, max: 64_000 }, + 'claude-(:?haiku|sonnet)-4.*$': { min: 1024, max: 64_000 }, + 'claude-opus-4-1.*$': { min: 1024, max: 32_000 } } export const findTokenLimit = (modelId: string): { min: number; max: number } | undefined => { diff --git a/src/renderer/src/config/models/vision.ts b/src/renderer/src/config/models/vision.ts index cd09e6e34b..ceff0a10c3 100644 --- a/src/renderer/src/config/models/vision.ts +++ b/src/renderer/src/config/models/vision.ts @@ -15,6 +15,7 @@ const visionAllowedModels = [ 'gemini-(flash|pro|flash-lite)-latest', 'gemini-exp', 'claude-3', + 'claude-haiku-4', 'claude-sonnet-4', 'claude-opus-4', 'vision', diff --git a/src/renderer/src/config/models/websearch.ts b/src/renderer/src/config/models/websearch.ts index ecdf1bec37..f0614f714f 100644 --- a/src/renderer/src/config/models/websearch.ts +++ b/src/renderer/src/config/models/websearch.ts @@ -7,7 +7,7 @@ import { isAnthropicModel } from './utils' import { isPureGenerateImageModel, isTextToImageModel } from './vision' export const CLAUDE_SUPPORTED_WEBSEARCH_REGEX = new RegExp( - `\\b(?:claude-3(-|\\.)(7|5)-sonnet(?:-[\\w-]+)|claude-3(-|\\.)5-haiku(?:-[\\w-]+)|claude-sonnet-4(?:-[\\w-]+)?|claude-opus-4(?:-[\\w-]+)?)\\b`, + `\\b(?:claude-3(-|\\.)(7|5)-sonnet(?:-[\\w-]+)|claude-3(-|\\.)5-haiku(?:-[\\w-]+)|claude-(haiku|sonnet|opus)-4(?:-[\\w-]+)?)\\b`, 'i' )