async function renderDashboard() { const content = document.getElementById('pageContent'); content.innerHTML = `
Agent Status
Recent Activity
`; try { const [status, skills, audit] = await Promise.all([ api.getStatus(), api.getSkills(), api.getAudit(10) ]); const agents = status.agents || []; const skillsCount = status.skills_count || 0; const entries = audit.entries || []; const online = agents.filter(a => a.status === 'online').length; document.getElementById('dashStats').innerHTML = `
${skillsCount}
Skills Installed
↑ ready to execute
${online === agents.length ? '✓' : online > 0 ? '⚠' : '✕'}
${online}/${agents.length}
Agents Online
${online === agents.length ? 'all operational' : `${agents.length - online} offline`}
📋
${entries.length}
Recent Events
last ${entries.length} activities
${(skills || []).filter(s => s.scores && s.scores.length > 0).length}
Skills w/ Eval Scores
performance tracked
`; document.getElementById('agentList').innerHTML = `
${agents.map(a => { const sc = statusColor(a.status); return `
${a.name}
${a.status}
`; }).join('')}
`; document.getElementById('recentActivity').innerHTML = entries.length === 0 ? '
📭
No activity yet
' : `
${entries.slice(0, 8).map(e => `
${e.action}${e.skill ? `: ${e.skill}` : ''}
${e.agent ? `via ${e.agent}` : ''} ${e.run_id ? `#${e.run_id}` : ''}
${timeAgo(e.timestamp)}
`).join('')}
`; } catch (err) { document.getElementById('dashStats').innerHTML = `
Connection Error
${escapeHtml(err.message)}
`; } } async function runQuickSkill() { showModal('Quick Run Skill', `
`, ` `); try { const skills = await api.getSkills(); const select = document.getElementById('qrSkill'); skills.forEach(s => { const opt = document.createElement('option'); opt.value = s.name; opt.textContent = s.name.replace(/-/g, ' '); select.appendChild(opt); }); } catch {} } async function executeQuickRun() { const name = document.getElementById('qrSkill').value; const input = document.getElementById('qrInput').value; if (!name) { showToast('Please select a skill', 'warning'); return; } try { const r = await api.runSkill(name, input); closeModal(); showToast(`"${name}" dispatched to ${r.agent} #${r.run_id}`, 'success'); } catch (err) { showToast(`Error: ${err.message}`, 'error'); } }