diff --git a/backend/internal/pkg/antigravity/claude_types.go b/backend/internal/pkg/antigravity/claude_types.go index 0f9191dc..1b94dad5 100644 --- a/backend/internal/pkg/antigravity/claude_types.go +++ b/backend/internal/pkg/antigravity/claude_types.go @@ -151,6 +151,8 @@ var claudeModels = []modelDef{ {ID: "claude-opus-4-5-thinking", DisplayName: "Claude Opus 4.5 Thinking", CreatedAt: "2025-11-01T00:00:00Z"}, {ID: "claude-sonnet-4-5", DisplayName: "Claude Sonnet 4.5", CreatedAt: "2025-09-29T00:00:00Z"}, {ID: "claude-sonnet-4-5-thinking", DisplayName: "Claude Sonnet 4.5 Thinking", CreatedAt: "2025-09-29T00:00:00Z"}, + {ID: "claude-opus-4-6", DisplayName: "Claude Opus 4.6", CreatedAt: "2026-02-05T00:00:00Z"}, + {ID: "claude-sonnet-4-6", DisplayName: "Claude Sonnet 4.6", CreatedAt: "2026-02-17T00:00:00Z"}, } // Antigravity 支持的 Gemini 模型 diff --git a/frontend/src/components/account/AccountStatusIndicator.vue b/frontend/src/components/account/AccountStatusIndicator.vue index 8816eb26..37285734 100644 --- a/frontend/src/components/account/AccountStatusIndicator.vue +++ b/frontend/src/components/account/AccountStatusIndicator.vue @@ -166,7 +166,8 @@ const activeModelRateLimits = computed(() => { const formatScopeName = (scope: string): string => { const aliases: Record = { // Claude 系列 - 'claude-opus-4-6-thinking': 'COpus46', + 'claude-opus-4-6': 'COpus46', + 'claude-opus-4-6-thinking': 'COpus46T', 'claude-sonnet-4-6': 'CSon46', 'claude-sonnet-4-5': 'CSon45', 'claude-sonnet-4-5-thinking': 'CSon45T', diff --git a/frontend/src/components/account/AccountUsageCell.vue b/frontend/src/components/account/AccountUsageCell.vue index b47b4115..8399cb4d 100644 --- a/frontend/src/components/account/AccountUsageCell.vue +++ b/frontend/src/components/account/AccountUsageCell.vue @@ -404,7 +404,7 @@ const antigravity3ImageUsageFromAPI = computed(() => getAntigravityUsageFromAPI( const antigravityClaudeUsageFromAPI = computed(() => getAntigravityUsageFromAPI([ 'claude-sonnet-4-5', 'claude-opus-4-5-thinking', - 'claude-sonnet-4-6', 'claude-opus-4-6-thinking', + 'claude-sonnet-4-6', 'claude-opus-4-6', 'claude-opus-4-6-thinking', ]) ) diff --git a/frontend/src/components/account/BulkEditAccountModal.vue b/frontend/src/components/account/BulkEditAccountModal.vue index 1c4395ec..62a1d9a2 100644 --- a/frontend/src/components/account/BulkEditAccountModal.vue +++ b/frontend/src/components/account/BulkEditAccountModal.vue @@ -648,7 +648,7 @@ import { ref, watch, computed } from 'vue' import { useI18n } from 'vue-i18n' import { useAppStore } from '@/stores/app' import { adminAPI } from '@/api/admin' -import type { Proxy, AdminGroup } from '@/types' +import type { Proxy as ProxyConfig, AdminGroup } from '@/types' import BaseDialog from '@/components/common/BaseDialog.vue' import Select from '@/components/common/Select.vue' import ProxySelector from '@/components/common/ProxySelector.vue' @@ -659,7 +659,7 @@ import { buildModelMappingObject as buildModelMappingPayload } from '@/composabl interface Props { show: boolean accountIds: number[] - proxies: Proxy[] + proxies: ProxyConfig[] groups: AdminGroup[] } @@ -757,7 +757,14 @@ const presetMappings = [ { label: 'Opus 4.6', from: 'claude-opus-4-6', - to: 'claude-opus-4-6', + to: 'claude-opus-4-6-thinking', + color: + 'bg-purple-100 text-purple-700 hover:bg-purple-200 dark:bg-purple-900/30 dark:text-purple-400' + }, + { + label: 'Opus 4.6-thinking', + from: 'claude-opus-4-6-thinking', + to: 'claude-opus-4-6-thinking', color: 'bg-purple-100 text-purple-700 hover:bg-purple-200 dark:bg-purple-900/30 dark:text-purple-400' }, diff --git a/frontend/src/components/keys/UseKeyModal.vue b/frontend/src/components/keys/UseKeyModal.vue index 43edafb3..8b07e2ce 100644 --- a/frontend/src/components/keys/UseKeyModal.vue +++ b/frontend/src/components/keys/UseKeyModal.vue @@ -883,25 +883,38 @@ function generateOpenCodeConfig(platform: string, baseUrl: string, apiKey: strin } } const claudeModels = { - 'claude-opus-4-5-thinking': { - name: 'Claude Opus 4.5 Thinking', + 'claude-opus-4-6-thinking': { + name: 'Claude 4.6 Opus (Thinking)', limit: { context: 200000, - output: 64000 + output: 128000 + }, + modalities: { + input: ['text', 'image', 'pdf'], + output: ['text'] + }, + options: { + thinking: { + budgetTokens: 24576, + type: 'enabled' + } } }, - 'claude-sonnet-4-5-thinking': { - name: 'Claude Sonnet 4.5 Thinking', - limit: { - context: 200000, - output: 64000 - } - }, - 'claude-sonnet-4-5': { - name: 'Claude Sonnet 4.5', + 'claude-sonnet-4-6': { + name: 'Claude 4.6 Sonnet', limit: { context: 200000, output: 64000 + }, + modalities: { + input: ['text', 'image', 'pdf'], + output: ['text'] + }, + options: { + thinking: { + budgetTokens: 24576, + type: 'enabled' + } } } } diff --git a/frontend/src/composables/useModelWhitelist.ts b/frontend/src/composables/useModelWhitelist.ts index ddc5661b..c13672b5 100644 --- a/frontend/src/composables/useModelWhitelist.ts +++ b/frontend/src/composables/useModelWhitelist.ts @@ -75,6 +75,7 @@ const soraModels = [ const antigravityModels = [ // Claude 4.5+ 系列 'claude-opus-4-6', + 'claude-opus-4-6-thinking', 'claude-opus-4-5-thinking', 'claude-sonnet-4-6', 'claude-sonnet-4-5', @@ -309,6 +310,7 @@ const antigravityPresetMappings = [ // 精确映射 { label: 'Sonnet 4.6', from: 'claude-sonnet-4-6', to: 'claude-sonnet-4-6', color: 'bg-cyan-100 text-cyan-700 hover:bg-cyan-200 dark:bg-cyan-900/30 dark:text-cyan-400' }, { label: 'Sonnet 4.5', from: 'claude-sonnet-4-5', to: 'claude-sonnet-4-5', color: 'bg-cyan-100 text-cyan-700 hover:bg-cyan-200 dark:bg-cyan-900/30 dark:text-cyan-400' }, + { label: 'Opus 4.6', from: 'claude-opus-4-6', to: 'claude-opus-4-6-thinking', color: 'bg-pink-100 text-pink-700 hover:bg-pink-200 dark:bg-pink-900/30 dark:text-pink-400' }, { label: 'Opus 4.6-thinking', from: 'claude-opus-4-6-thinking', to: 'claude-opus-4-6-thinking', color: 'bg-pink-100 text-pink-700 hover:bg-pink-200 dark:bg-pink-900/30 dark:text-pink-400' } ]