// stats page — pipeline throughput + per-source/per-status breakdowns // depends on: app.js async function loadStatsPage() { const data = await api("/admin/api/stats"); document.getElementById("sourceTable").classList.remove("content-loading"); document.getElementById("statusTable").classList.remove("content-loading"); document.getElementById("sourceTable").innerHTML = data.bySource .map(r => `${escapeHtml(r.source)}indexed`).join(""); document.getElementById("statusTable").innerHTML = data.byStatus .map(r => `${escapeHtml(r.status)}${r.n.toLocaleString()}`).join(""); document.getElementById("rate-ingested").textContent = (data.ingestedPerHour || 0).toLocaleString(); document.getElementById("rate-content").textContent = (data.contentPerHour || 0).toLocaleString(); document.getElementById("rate-embeddings").textContent = (data.embeddingsPerHour || 0).toLocaleString(); } document.addEventListener("DOMContentLoaded", loadStatsPage);