disclosure-bureau/web/app/admin/stats/page.tsx

48 lines
1.7 KiB
TypeScript

/**
* /admin/stats — Corpus analytics dashboard.
*/
import Link from "next/link";
import { AuthBar } from "@/components/auth-bar";
import { StatsDashboard } from "@/components/stats-dashboard";
export const dynamic = "force-dynamic";
export default function AdminStatsPage() {
return (
<main className="min-h-screen p-6 md:p-10 max-w-6xl mx-auto">
<div className="flex items-start justify-between gap-4 mb-6">
<Link href="/" className="font-mono text-xs text-[#7fdbff] hover:text-[#00ff9c]">
home
</Link>
<div className="flex items-center gap-2">
<Link
href="/admin/batch"
className="font-mono text-xs px-3 py-1.5 border border-[rgba(0,255,156,0.30)] text-[#00ff9c] hover:bg-[rgba(0,255,156,0.10)] rounded"
>
📈 batch
</Link>
<Link
href="/admin/indexer"
className="font-mono text-xs px-3 py-1.5 border border-[rgba(127,219,255,0.30)] text-[#7fdbff] hover:bg-[rgba(127,219,255,0.10)] rounded"
>
🗄 indexer
</Link>
<AuthBar />
</div>
</div>
<header className="mb-6">
<div className="font-mono text-[10px] text-[#5a6678] tracking-widest uppercase mb-2">
admin · corpus analytics
</div>
<h1 className="font-mono text-2xl text-[#00ff9c] mb-1"> Stats do corpus</h1>
<p className="text-[#8896aa] text-sm">
Quantitativos sobre os 116 documentos, 3.435 páginas e milhares de entidades catalogadas.
Combina dados do filesystem (sempre disponível) com queries em pgvector (quando o indexer rodou).
</p>
</header>
<StatsDashboard />
</main>
);
}