Spaces:
Running
Running
File size: 4,351 Bytes
6e21c1d 957804c 62ab37d 957804c 62ab37d 85a0b47 6e21c1d 957804c 6e21c1d 957804c 0535ef9 6e21c1d 07599f8 6e21c1d 957804c 9fca8b2 6e21c1d 85a0b47 6e21c1d 0ed7000 6e21c1d 4b77e8d 6e21c1d 31f1279 0ed7000 6e21c1d 0ed7000 6e21c1d 34932a2 957804c 62ab37d 0ed7000 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | """Patch frontend ChatInput.tsx: Replace DEFAULT_MODEL_OPTIONS array + fix imports."""
import re
import sys
FILE = "/source/frontend/src/components/Chat/ChatInput.tsx"
with open(FILE, "r", encoding="utf-8") as f:
content = f.read()
# === Step 1: Fix imports ===
content = content.replace(
"import {\n"
" CLAUDE_OPUS_48_MODEL_PATH,\n"
" GPT_55_MODEL_PATH,\n"
" KIMI_K26_MODEL_PATH,\n"
" isClaudePath,\n"
"} from '@/utils/model';",
"import { isClaudePath } from '@/utils/model';"
)
# === Step 2: Replace DEFAULT_MODEL_OPTIONS array using regex ===
pattern = r'const DEFAULT_MODEL_OPTIONS: ModelOption\[\] = \[.*?\];'
match = re.search(pattern, content, re.DOTALL)
if not match:
print("FAIL: Could not find DEFAULT_MODEL_OPTIONS array!")
sys.exit(1)
print(f"OK: Found array at pos {match.start()}-{match.end()}")
new_array = """const DEFAULT_MODEL_OPTIONS: ModelOption[] = [
{
id: 'owl-alpha',
name: 'Owl Alpha',
modelPath: 'openai/openrouter/owl-alpha',
avatarUrl: 'https://huggingface.co/api/avatars/openrouter',
recommended: true,
},
{
id: 'deepseek-v4-pro',
name: 'DeepSeek V4 Pro',
modelPath: 'deepseek-ai/DeepSeek-V4-Pro',
avatarUrl: 'https://huggingface.co/api/avatars/deepseek-ai',
recommended: true,
},
{
id: 'deepseek-v4-flash',
name: 'DeepSeek V4 Flash',
modelPath: 'deepseek-ai/DeepSeek-V4-Flash',
avatarUrl: 'https://huggingface.co/api/avatars/deepseek-ai',
},
{
id: 'gpt-5.5',
name: 'GPT-5.5',
modelPath: 'openai/gpt-5.5:fal-ai',
avatarUrl: 'https://huggingface.co/api/avatars/openai',
},
{
id: 'qwen3-coder-next',
name: 'Qwen3 Coder Next',
modelPath: 'Qwen/Qwen3-Coder-Next',
avatarUrl: 'https://huggingface.co/api/avatars/Qwen',
recommended: true,
},
{
id: 'gemma-3-1b',
name: 'Gemma 3 1B',
modelPath: 'google/gemma-3-1b-it',
avatarUrl: 'https://huggingface.co/api/avatars/google',
recommended: true,
},
{
id: 'gemini-2.0-flash',
name: 'Gemini 2.0 Flash',
modelPath: 'openai/google/gemini-2.0-flash-001',
avatarUrl: 'https://huggingface.co/api/avatars/google',
},
{
id: 'deepseek-v4-flash-or',
name: 'DeepSeek V4 Flash (OR)',
modelPath: 'openai/deepseek/deepseek-v4-flash:free',
avatarUrl: 'https://huggingface.co/api/avatars/deepseek-ai',
},
{
id: 'gemma-4-9b',
name: 'Gemma 4 9B',
modelPath: 'openai/google/gemma-4-9b-it:free',
avatarUrl: 'https://huggingface.co/api/avatars/google',
recommended: true,
},
{
id: 'gemma-4-31b',
name: 'Gemma 4 31B',
modelPath: 'openai/google/gemma-4-31b-it:free',
avatarUrl: 'https://huggingface.co/api/avatars/google',
recommended: true,
},
{
id: 'riverflow-fast',
name: 'Riverflow V2.5 Fast',
modelPath: 'openai/sourceful/riverflow-v2.5-fast:free',
avatarUrl: 'https://huggingface.co/api/avatars/sourceful',
recommended: true,
},
{
id: 'riverflow-pro',
name: 'Riverflow V2.5 Pro',
modelPath: 'openai/sourceful/riverflow-v2.5-pro:free',
avatarUrl: 'https://huggingface.co/api/avatars/sourceful',
recommended: true,
},
{
id: 'nemotron-120b',
name: 'Nemotron 3 Super 120B',
modelPath: 'openai/nvidia/nemotron-3-super-120b-a12b:free',
avatarUrl: 'https://huggingface.co/api/avatars/nvidia',
},
{
id: 'nemotron-3-ultra',
name: 'Nemotron 3 Ultra 550B',
modelPath: 'openai/nvidia/nemotron-3-ultra-550b-a55b:free',
avatarUrl: 'https://huggingface.co/api/avatars/nvidia',
recommended: true,
},
{
id: 'laguna-m',
name: 'Laguna M.1',
modelPath: 'openai/poolside/laguna-m.1:free',
avatarUrl: 'https://huggingface.co/api/avatars/poolside',
recommended: true,
},
{
id: 'laguna-xs',
name: 'Laguna XS.2',
modelPath: 'openai/poolside/laguna-xs.2:free',
avatarUrl: 'https://huggingface.co/api/avatars/poolside',
},
];"""
content = content[:match.start()] + new_array + content[match.end():]
# === Step 3: DEFAULT_FREE_MODEL_OPTION_ID = owl-alpha ===
content = content.replace(
"DEFAULT_FREE_MODEL_OPTION_ID = 'kimi-k2.6'",
"DEFAULT_FREE_MODEL_OPTION_ID = 'owl-alpha'"
)
with open(FILE, "w", encoding="utf-8") as f:
f.write(content)
print("OK: Frontend patched - 16 models, owl-alpha default") |