From fdf49b2e7966de965424e34c7cbadcaa3bb06ea4 Mon Sep 17 00:00:00 2001 From: ochenstarik-ui Date: Wed, 22 Jul 2026 00:09:17 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20xAI=20Grok=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=B2=20=D0=B0=D0=B3=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D1=8B,=20health=20timeout=2030s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/api/agents.py | 5 +++-- frontend/src/components/agents/AgentGrid.tsx | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/api/agents.py b/backend/api/agents.py index ea4487e..acc59bc 100644 --- a/backend/api/agents.py +++ b/backend/api/agents.py @@ -7,13 +7,14 @@ router = APIRouter(prefix="/api/v1/agents", tags=["agents"]) PROFILES = ["worker-code", "worker-fast", "worker-research", "worker-review"] API_KEY = "sk-a345af809e8a26f0693b9405344edc8adc5b5a96" -HEALTH_URL = "http://localhost:20127/v1/chat/completions" +PROFILES = ["worker-code", "worker-fast", "worker-research", "worker-review", "grok"] MODEL_MAP = { "worker-code": "opencode-go/kimi-k2.7-code", "worker-fast": "opencode-go/kimi-k2.7-code", "worker-research": "opencode-go/kimi-k2.7-code", "worker-review": "opencode-go/kimi-k2.7-code", + "grok": "xai/grok-4", } def _check_provider(model: str) -> str: @@ -21,7 +22,7 @@ def _check_provider(model: str) -> str: import urllib.request, urllib.error body = json.dumps({"model": model, "messages": [{"role": "user", "content": "Hi"}], "max_tokens": 1, "stream": False}).encode() req = urllib.request.Request(HEALTH_URL, data=body, headers={"Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}"}) - urllib.request.urlopen(req, timeout=10) + urllib.request.urlopen(req, timeout=30) return "ok" except urllib.error.HTTPError as e: return f"http_{e.code}" diff --git a/frontend/src/components/agents/AgentGrid.tsx b/frontend/src/components/agents/AgentGrid.tsx index d9bab20..dfae7bd 100644 --- a/frontend/src/components/agents/AgentGrid.tsx +++ b/frontend/src/components/agents/AgentGrid.tsx @@ -26,6 +26,7 @@ export function AgentGrid() { const providerNames: Record = { 'opencode-go': 'OpenCode Go', 'gemini': 'Google Gemini', 'nvidia': 'NVIDIA', 'ollama': 'Ollama', 'cline': 'Cline', + 'xai': 'xAI Grok', } const mapped = Object.entries(raw).map(([id, info]: [string, any], i: number) => { @@ -41,11 +42,11 @@ export function AgentGrid() { runtime: info.model?.split('/')[0] || '?', model: info.model?.split('/').pop() || '?', healthy: info.healthy, - cpu: [31, 60, 18, 72][i] || 50, - activeRuns: [4, 0, 2, 1][i] || 0, + cpu: [31, 60, 18, 72, 45][i] || 50, + activeRuns: [4, 0, 2, 1, 3][i] || 0, tokens_used: activeAccs.length > 0 ? 45800 * activeAccs.length : 10000, tokens_limit: 200000, - budget_used: [12.4, 42.5, 5.2, 28.0][i] || 20, + budget_used: [12.4, 42.5, 5.2, 28.0, 0][i] || 20, budget_limit: 100, provider: providerNames[prov] || prov, account: `${activeAccs.length}/${totalAccs} accounts`,