Server (FastAPI + SQLite) runs Stouffer Z network variance analysis. Egg container uses os.urandom for hardware-entropy 200-bit trials. Gitea Actions workflow auto-builds and publishes both Docker images. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.6 KiB
HTML
52 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<style>
|
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
html, body { width: 48px; height: 48px; overflow: hidden; background: transparent; }
|
|
.dot {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 50%;
|
|
background: #00cc44;
|
|
box-shadow: 0 0 14px 4px rgba(0,204,68,.6);
|
|
position: absolute;
|
|
top: 4px; left: 4px;
|
|
transition: background 2.5s ease, box-shadow 2.5s ease;
|
|
animation: breathe 4s ease-in-out infinite;
|
|
}
|
|
@keyframes breathe {
|
|
0%,100% { transform: scale(1); }
|
|
50% { transform: scale(1.08); }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="dot" id="dot" title="Global Consciousness Index"></div>
|
|
<script>
|
|
function palette(i) {
|
|
if (i > 95) return ['#0055ff','rgba(0,85,255,.6)'];
|
|
if (i > 90) return ['#00ccff','rgba(0,204,255,.6)'];
|
|
if (i > 40) return ['#00cc44','rgba(0,204,68,.6)'];
|
|
if (i > 10) return ['#ffdd00','rgba(255,221,0,.6)'];
|
|
if (i > 5) return ['#ff8800','rgba(255,136,0,.6)'];
|
|
return ['#ff2200','rgba(255,34,0,.6)'];
|
|
}
|
|
const dot = document.getElementById('dot');
|
|
async function update() {
|
|
try {
|
|
const r = await fetch('/api/status');
|
|
const d = await r.json();
|
|
const [color, glow] = palette(d.index);
|
|
dot.style.background = color;
|
|
dot.style.boxShadow = `0 0 14px 4px ${glow}`;
|
|
dot.title = `GCP Index: ${Math.round(d.index)}% (${d.n_eggs} eggs)`;
|
|
} catch {}
|
|
}
|
|
update();
|
|
setInterval(update, 60000);
|
|
</script>
|
|
</body>
|
|
</html>
|