import { Link } from "react-router"; import type { Overview as O } from "../api"; import { useFetch, ago, fmtDate } from "../hooks"; import { Badge, Empty, ErrorBox, Loading, Td } from "../components/ui"; import { Breakdown, DailyBars } from "../components/charts"; const TILES: [string, string][] = [["apis", "APIs"], ["endpoints", "Endpoints"], ["packages", "Knowledge packages"], ["executions", "Executions"], ["executions_24h", "Executions (24 h)"], ["datasets", "Datasets"], ["verified_datasets", "Verified datasets"], ["open_debt", "Open debt"], ["critical_debt", "Critical debt"], ["credentials", "Credentials"], ["projects", "Projects"], ["agents", "Agents"]]; const SEV: Record = { critical: "critical", high: "serious", medium: "warn", low: "" }; export default function Overview() { const { data, error, loading } = useFetch("overview"); if (loading) return ; if (error) return ; if (!data) return null; const c = data.counts; return (

Overview

AKOS {data.version}
{TILES.map(([k, l]) =>
{l}
{(c[k] ?? 0).toLocaleString()}
)}

Executions per day (14 d)

Workers & queue

{data.workers.length === 0 ?
No live worker — jobs will not run. Check Operations.
: data.workers.map((w) =>
{w.name} v{w.version}{w.current_job ? `job ${w.current_job.slice(0, 8)}` : "idle"} · seen {ago(w.last_seen)}
)}
queued {data.jobs.queued}running {data.jobs.running}dead {data.jobs.dead}{data.jobs.oldest_queued && oldest queued {ago(data.jobs.oldest_queued)}}

Executions by state (7 d)

({ label: s.state, n: s.n }))} />

API lifecycle

({ label: s.lifecycle, n: s.n }))} />

Package knowledge state

({ label: s.knowledge_state, n: s.n }))} color="var(--s3)" />

Open knowledge debt by severity

{data.debt.length ? data.debt.some((d) => d.severity === s)).map((s) => ({ label: s, n: data.debt.find((d) => d.severity === s)!.n, tone: SEV[s] || "s1" }))} /> : No open debt.}

Open Knowledge Debt →

Recent executions

all →
{data.recent_executions.length === 0 ? No executions yet. Use the MCP tool execute_api or the CLI. : ( {data.recent_executions.map((e) => )}
WhenStateAPIRequestStatusms
{fmtDate(e.created_at)}{e.api_name ?? unregistered}{e.method} {e.url}{e.status_code ?? "—"}{e.duration_ms ?? "—"}
)}
); }