"""Patch backend: add new model IDs to AVAILABLE_MODELS + fix title generation.""" import re, os AGENT_FILE = "/app/backend/routes/agent.py" with open(AGENT_FILE, "r") as f: content = f.read() # Add new models to AVAILABLE_MODELS target = "AVAILABLE_MODELS = _available_models()\n" patch = ''' # === PATCH: Add OpenRouter + HF Inference models === import os as _os AVAILABLE_MODELS.extend([ {"id": "openai/deepseek/deepseek-chat-v3-0324", "label": "DeepSeek V3", "provider": "openrouter", "tier": "free", "recommended": True}, {"id": "openai/google/gemini-2.0-flash-001", "label": "Gemini 2.0 Flash", "provider": "openrouter", "tier": "free"}, {"id": "openai/qwen/qwen3-30b-a3b", "label": "Qwen3 30B", "provider": "openrouter", "tier": "free"}, {"id": "Qwen/Qwen3-235B-A22B", "label": "Qwen3 235B", "provider": "huggingface", "tier": "free"}, ]) PREMIUM_MODEL_IDS = set() # No premium gate DEFAULT_FREE_MODEL_ID = "openai/deepseek/deepseek-chat-v3-0324" # === END PATCH === ''' if target in content: content = content.replace(target, target + patch) print("✅ Added models to AVAILABLE_MODELS") # Fix title generation old_title = 'model="openai/openai/gpt-oss-120b:cerebras",\n api_base="https://router.huggingface.co/v1",\n api_key=api_key,' new_title = 'model="openai/deepseek/deepseek-chat-v3-0324",\n api_base=_os.environ.get("OPENAI_API_BASE", "https://openrouter.ai/api/v1"),\n api_key=_os.environ.get("OPENAI_API_KEY", api_key),' if old_title in content: content = content.replace(old_title, new_title) content = content.replace(' reasoning_effort="low",\n', '') print("✅ Title generation patched") import ast ast.parse(content) print("✅ Syntax OK") with open(AGENT_FILE, "w") as f: f.write(content) print("✅ Backend patched")