async function renderSmartRouter() { const content = document.getElementById('pageContent'); content.innerHTML = `
Route a Task
Routing Rules
AgentBest ForKeywords
🔧 opencodeCode, DevOps, infra, git, file operationscode, deploy, git, terraform, docker, test, build, script
⚡ HermesMemory, scheduling, messaging, skillsmemory, schedule, cron, reminder, brain, plugin, backup
🧠 Gemini CLIResearch, analysis, study, document, reviewresearch, analyze, search, explain, study, learn, report
`; } async function suggestRouter() { const task = document.getElementById('routerTaskInput').value.trim(); if (!task) { showToast('Describe your task first', 'warning'); return; } const btn = document.querySelector('button[onclick="suggestRouter()"]'); if (btn) { btn.disabled = true; btn.textContent = '⏳ Thinking...'; } try { const data = await api.suggestRouter(task); const result = document.getElementById('routerResult'); const agentIcons = { opencode: '🔧', hermes: '⚡', gemini: '🧠' }; const confidenceColors = { high: 'var(--green)', medium: 'var(--yellow)', low: 'var(--text-muted)' }; result.innerHTML = `
${agentIcons[data.suggested_agent] || '🤖'} ${data.suggested_agent}
Confidence: ${data.confidence} ${data.confidence === 'high' ? '✅' : data.confidence === 'medium' ? '⚠️' : '❓'}
Best Match
${Object.entries(data.scores || {}).map(([agent, score]) => ` ${agentIcons[agent] || '🤖'} ${agent}: ${score} `).join('')}
`; document.getElementById('routerAgentSelect').value = data.suggested_agent || 'auto'; } catch (err) { showToast('Suggestion failed: ' + err.message, 'error'); } finally { if (btn) { btn.disabled = false; btn.textContent = '🤖 Suggest Agent'; } } } async function routeTask() { const task = document.getElementById('routerTaskInput').value.trim(); if (!task) { showToast('Describe your task first', 'warning'); return; } let agent = document.getElementById('routerAgentSelect').value; if (agent === 'auto') { showToast('Click "Suggest Agent" first or pick an agent manually', 'warning'); return; } const btn = document.querySelector('button[onclick="routeTask()"]'); if (btn) { btn.disabled = true; btn.textContent = '⏳ Routing...'; } try { const data = await api.routeTask(task, agent); showToast(`✅ Task routed to ${agent}`, 'success'); const result = document.getElementById('routerResult'); result.innerHTML += `
Task Routed
${data.message}
`; } catch (err) { showToast('Routing failed: ' + err.message, 'error'); } finally { if (btn) { btn.disabled = false; btn.textContent = '🚀 Route Task'; } } }