'use client'; import Link from 'next/link'; import { ArrowLeft, Gauge, ShieldAlert, ServerCog } from 'lucide-react'; import { Badge, Button } from '@/components/ui/Primitives'; import { HermesShell, MetricCard, SectionCard } from '@/components/hermes-shell'; import { getHermesAgents } from '@/lib/hermes'; export default function HermesAgentsPage() { const agents = getHermesAgents(); const healthy = agents.filter((agent) => agent.status === 'healthy').length; const degraded = agents.filter((agent) => agent.status === 'degraded').length; const offline = agents.filter((agent) => agent.status === 'offline').length; return ( Back to mission control} >
} /> } /> } />
{agents.map((agent) => (

{agent.name}

{agent.type} ยท {agent.callsToday} calls today

{agent.status}
Last success: {agent.lastSuccessAt ? new Date(agent.lastSuccessAt).toLocaleString() : 'โ€”'}
Last failure: {agent.lastFailureAt ? new Date(agent.lastFailureAt).toLocaleString() : 'โ€”'}
Failure rate: {(agent.failureRate * 100).toFixed(1)}%
Latency: {agent.averageLatencyMs ?? 'โ€”'}ms
{agent.configIssue ?
{agent.configIssue}
: null}
))}
{['Hermes core', 'GitHub integration', 'Local VM runner', 'CLI runner', 'Scheduler / cron', 'Deployment tools', 'Monitoring tools', 'Notification tools', 'Model / LLM provider', 'Secrets / config health', 'OpenClaw integration placeholder', 'Telemetry ingest'].map((item) => (
{item}
))}
); }