import { useState, useEffect } from 'react'; import type { BackendHealth, GpuInfo, Model } from '../lib/api'; import { getHealth, getModels } from '../lib/api'; export default function Dashboard() { const [backends, setBackends] = useState([]); const [gpu, setGpu] = useState(null); const [models, setModels] = useState([]); const refresh = async () => { const [health, mdls] = await Promise.all([getHealth(), getModels()]); setBackends(health.backends); setGpu(health.gpu); setModels(mdls); }; useEffect(() => { refresh(); const id = setInterval(refresh, 15000); return () => clearInterval(id); }, []); return (

Backends

{backends.map(b => (
{b.id} {b.status}
{b.type}
{b.models.join(', ')}
{b.latency_ms > 0 &&
{b.latency_ms}ms
}
))}
{gpu && ( <>

GPU

)}

Models

{models.map(m => ( ))}
Model Backend Capabilities Status
{m.id} {m.owned_by} {m.capabilities.join(', ')} {m.backend_status}
); } function Stat({ label, value }: { label: string; value: string }) { return (
{label}
{value}
); }