52 lines
3.1 KiB
HTML
52 lines
3.1 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>hyperhive agent — stats</title>
|
|
<link rel="icon" type="image/svg+xml" href="icon">
|
|
<link rel="stylesheet" href="static/colors.css">
|
|
<link rel="stylesheet" href="static/theme.css">
|
|
<link rel="stylesheet" href="static/agent.css">
|
|
</head>
|
|
<body>
|
|
<header class="page-header">
|
|
<a class="page-back" id="back-link" href="./">← live</a>
|
|
<a class="page-back" id="dashboard-link" href="#">dashboard ↗</a>
|
|
<span class="page-title" id="title">◆ … ◆</span>
|
|
</header>
|
|
|
|
<div class="window-tabs" id="window-tabs" role="tablist">
|
|
<button type="button" data-tab="1h">last 1h</button>
|
|
<button type="button" data-tab="4h">last 4h</button>
|
|
<button type="button" data-tab="24h">last 24h</button>
|
|
<button type="button" data-tab="3d">last 3d</button>
|
|
<button type="button" data-tab="7d">last 7d</button>
|
|
<button type="button" data-tab="30d">last 30d</button>
|
|
<button type="button" data-tab="all">all</button>
|
|
</div>
|
|
|
|
<div class="summary" id="summary"></div>
|
|
|
|
<div class="stats-grid">
|
|
<div class="stats-card wide"><h3>turns per bucket</h3><div class="chart-wrap"><canvas id="chart-turns"></canvas></div></div>
|
|
<div class="stats-card wide"><h3>turn duration (ms) — p50 / p95 / avg</h3><div class="chart-wrap"><canvas id="chart-duration"></canvas></div></div>
|
|
<div class="stats-card wide"><h3>context tokens (last inference per turn) — avg / max</h3><div class="chart-wrap"><canvas id="chart-ctx"></canvas></div></div>
|
|
<div class="stats-card wide"><h3>token cost per bucket (sum across inferences)</h3><div class="chart-wrap"><canvas id="chart-cost"></canvas></div></div>
|
|
<div class="stats-card wide"><h3>turns by model per bucket — model drives token cost</h3><div class="chart-wrap"><canvas id="chart-model"></canvas></div></div>
|
|
<div class="stats-card"><h3>top tools</h3><div class="chart-wrap"><canvas id="chart-tools"></canvas></div></div>
|
|
<!-- "favorite tools": most-run shell commands. Hidden until the
|
|
bash_commands capture (hive-bash-daemon) has recorded data, so the
|
|
card never shows a permanently-empty doughnut. -->
|
|
<div class="stats-card" id="card-bash" hidden><h3>favorite tools (bash)</h3><div class="chart-wrap"><canvas id="chart-bash"></canvas></div></div>
|
|
<div class="stats-card"><h3>wake source mix</h3><div class="chart-wrap"><canvas id="chart-wake"></canvas></div></div>
|
|
<div class="stats-card"><h3>result mix</h3><div class="chart-wrap"><canvas id="chart-result"></canvas></div></div>
|
|
<div class="stats-card wide"><h3>result trend per bucket — errors / rate-limits / compactions over time</h3><div class="chart-wrap"><canvas id="chart-result-trend"></canvas></div></div>
|
|
</div>
|
|
|
|
<!-- Chart.js is now bundled into stats.js by esbuild (npm dep
|
|
chart.js@4.4.4), so the page works offline / on operator
|
|
machines without internet egress. No SRI hash to maintain. -->
|
|
<script type="module" src="static/stats.js" defer></script>
|
|
</body>
|
|
</html>
|