| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| // Local Qwen Models (LM Studio) | |
| export const DEFAULT_QWEN_MODEL = 'qwen3-30b-a3b-dwq-05082025'; | |
| export const DEFAULT_LOCAL_ENDPOINT = 'http://127.0.0.1:1234'; | |
| // Legacy Gemini Models (for fallback compatibility) | |
| export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro'; | |
| export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash'; | |
| export const DEFAULT_GEMINI_EMBEDDING_MODEL = 'gemini-embedding-001'; | |
| // Model capabilities configuration | |
| export const MODEL_CAPABILITIES = { | |
| 'qwen3-30b-a3b': { | |
| contextWindow: 131072, | |
| supportsThinking: true, | |
| supportsTools: true, | |
| isLocal: true, | |
| provider: 'lm-studio' | |
| }, | |
| 'qwen3-30b-a3b-dwq-05082025': { | |
| contextWindow: 131072, | |
| supportsThinking: true, | |
| supportsTools: true, | |
| isLocal: true, | |
| provider: 'lm-studio' | |
| }, | |
| 'gemini-2.5-pro': { | |
| contextWindow: 1048576, | |
| supportsThinking: true, | |
| supportsTools: true, | |
| isLocal: false, | |
| provider: 'google' | |
| } | |
| }; | |
| export function isLocalModel(model: string): boolean { | |
| return MODEL_CAPABILITIES[model as keyof typeof MODEL_CAPABILITIES]?.isLocal ?? false; | |
| } | |
| export function getModelCapabilities(model: string) { | |
| return MODEL_CAPABILITIES[model as keyof typeof MODEL_CAPABILITIES] || { | |
| contextWindow: 4096, | |
| supportsThinking: false, | |
| supportsTools: true, | |
| isLocal: false, | |
| provider: 'unknown' | |
| }; | |
| } | |