Sunstead trust scoring project
1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
5<title>Leaderboard · Tangled trust</title>
6<style>
7 body { font:14px/1.5 system-ui,sans-serif; margin:0; background:#f6f8fa; color:#1f2328; }
8 header { padding:16px 24px; background:#fff; border-bottom:1px solid #d0d7de; }
9 h1 { margin:0; font-size:18px; } nav a { margin-right:14px; color:#0969da; text-decoration:none; }
10 main { max-width:760px; margin:24px auto; padding:0 24px; }
11 table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #d0d7de; border-radius:8px; overflow:hidden; }
12 th,td { text-align:left; padding:10px 16px; border-bottom:1px solid #eaeef2; }
13 th { font-size:12px; text-transform:uppercase; color:#656d76; }
14 .rank { color:#656d76; width:40px; } .prob { font-variant-numeric:tabular-nums; font-weight:600; }
15 .pill { padding:2px 8px; border-radius:999px; color:#fff; font-size:11px; }
16 .fast_lane{background:#1a7f37} .normal_queue{background:#9a6700} .needs_human{background:#cf222e}
17</style>
18</head>
19<body>
20<header>
21 <a href="/" style="display:block;margin-bottom:8px"><img src="/static/logo.svg" alt="CyberCred" height="24"></a>
22 <h1>Leaderboard</h1>
23 <nav><a href="/">Triage</a><a href="/dashboard">Dashboard</a><a href="/leaderboard.html">Leaderboard</a><a href="/graph.html">Graph</a></nav>
24</header>
25<main>
26 <table><thead><tr><th class="rank">#</th><th>Contributor</th><th>Trust</th><th>Decision</th></tr></thead>
27 <tbody id="rows"></tbody></table>
28</main>
29<script>
30fetch("/leaderboard").then(r=>r.json()).then(list=>{
31 rows.innerHTML = list.map((r,i)=>`<tr>
32 <td class="rank">${i+1}</td>
33 <td>${r.handle||r.did}</td>
34 <td class="prob">${(r.calibrated_prob*100).toFixed(0)}%</td>
35 <td><span class="pill ${r.decision}">${r.decision.replace("_"," ")}</span></td>
36 </tr>`).join("");
37});
38</script>
39</body>
40</html>