README / index.html
Bitsage
fix: show stats immediately with current values, live update in background
1176350
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CROVIA · Start Here</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:#05060a;color:#e5e7eb;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;min-height:100vh}
a{color:#818cf8;text-decoration:none;transition:color .15s}
a:hover{color:#a78bfa}
.page{max-width:860px;margin:0 auto;padding:32px 20px}
/* Hero */
.hero{text-align:center;padding:48px 0 36px}
.hero h1{font-size:36px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;background:linear-gradient(135deg,#818cf8,#38bdf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero .tagline{color:#94a3b8;font-size:17px;margin-top:10px;font-weight:400}
.hero .thesis{color:#cbd5e1;font-size:14px;margin-top:16px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.7}
/* Live stats bar */
.stats-bar{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;padding:20px 0;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin:12px 0 32px}
.stat{text-align:center}
.stat .num{font-size:26px;font-weight:800;color:#818cf8}
.stat .lbl{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.1em;margin-top:2px}
/* Section */
.section{margin-bottom:28px}
.section-title{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a78bfa;margin-bottom:14px;padding-bottom:6px;border-bottom:1px solid rgba(167,139,250,.15)}
/* Cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.card{padding:16px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);transition:border-color .2s,background .2s}
.card:hover{border-color:rgba(129,140,248,.25);background:rgba(129,140,248,.04)}
.card .card-title{font-size:14px;font-weight:700;color:#e5e7eb;margin-bottom:4px}
.card .card-desc{font-size:12px;color:#94a3b8;line-height:1.5}
.card .card-tag{display:inline-block;font-size:9px;padding:2px 8px;border-radius:4px;margin-top:8px;font-weight:700;letter-spacing:.06em}
.tag-space{background:rgba(56,189,248,.12);color:#38bdf8}
.tag-dataset{background:rgba(34,197,94,.12);color:#22c55e}
.tag-web{background:rgba(251,191,36,.12);color:#fbbf24}
.tag-registry{background:rgba(167,139,250,.12);color:#a78bfa}
/* Principles */
.principles{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
@media(max-width:600px){.principles{grid-template-columns:1fr}}
.principle{padding:16px;border-radius:10px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}
.principle h4{font-size:13px;font-weight:700;margin-bottom:6px}
.principle p{font-size:12px;color:#94a3b8;line-height:1.6}
.principle-open h4{color:#22c55e}
.principle-pro h4{color:#f59e0b}
/* Footer */
.foot{text-align:center;padding:28px 0 12px;border-top:1px solid rgba(255,255,255,.06);margin-top:32px}
.foot p{font-size:11px;color:#475569}
.foot a{color:#818cf8}
/* Disclaimer */
.disclaimer{text-align:center;margin-top:16px;font-size:10px;color:#475569;font-style:italic}
</style>
</head>
<body>
<div class="page">
<!-- Hero -->
<div class="hero">
<h1>CROVIA</h1>
<div class="tagline">If AI is trained on data, there must be evidence.</div>
<div class="thesis">
Crovia operates the first continuous, cryptographically verifiable registry
of AI training data documentation. We observe. We record. We do not judge.
</div>
</div>
<!-- Live stats (defaults from registry, updated dynamically if CORS allows) -->
<div class="stats-bar">
<div class="stat"><div class="num" id="s-models">141</div><div class="lbl">Models Tracked</div></div>
<div class="stat"><div class="num" id="s-orgs">70</div><div class="lbl">Organizations</div></div>
<div class="stat"><div class="num" id="s-tpa">200</div><div class="lbl">Temporal Proofs</div></div>
<div class="stat"><div class="num" id="s-doc">85.8%</div><div class="lbl">Documentation Rate</div></div>
</div>
<!-- Surfaces -->
<div class="section">
<div class="section-title">Public Evidence Surfaces</div>
<div class="grid">
<a href="https://huggingface.co/spaces/Crovia/omission-oracle" target="_blank" class="card">
<div class="card-title">Registry Observer</div>
<div class="card-desc">Full interactive dashboard. Model lookup, TPA explorer, DDF drift, lineage graph, compliance mapping, and regulatory context.</div>
<span class="card-tag tag-space">HF SPACE</span>
</a>
<a href="https://huggingface.co/spaces/Crovia/cep-terminal" target="_blank" class="card">
<div class="card-title">CEP Terminal</div>
<div class="card-desc">Crovia Evidence Protocol terminal. Inspect, verify, and reproduce cryptographic evidence capsules.</div>
<span class="card-tag tag-space">HF SPACE</span>
</a>
<a href="https://huggingface.co/datasets/Crovia/global-ai-training-omissions" target="_blank" class="card">
<div class="card-title">Global AI Training Omissions</div>
<div class="card-desc">Append-only observation ledger. Every scan, every hash, every absence receipt &mdash; timestamped and immutable.</div>
<span class="card-tag tag-dataset">DATASET</span>
</a>
<a href="https://huggingface.co/datasets/Crovia/cep-capsules" target="_blank" class="card">
<div class="card-title">CEP Reference Capsules</div>
<div class="card-desc">CEP.v1 cryptographic evidence capsules. Reproducible provenance proofs for AI training data.</div>
<span class="card-tag tag-dataset">DATASET</span>
</a>
</div>
</div>
<!-- Registry pages -->
<div class="section">
<div class="section-title">CROVIA Registry</div>
<div class="grid">
<a href="https://registry.croviatrust.com/registry" target="_blank" class="card">
<div class="card-title">Registry Home</div>
<div class="card-desc">Central hub. Live target index, aggregate statistics, observation status.</div>
<span class="card-tag tag-registry">REGISTRY</span>
</a>
<a href="https://registry.croviatrust.com/registry/compliance" target="_blank" class="card">
<div class="card-title">Compliance Mapping</div>
<div class="card-desc">Per-model regulatory gap analysis across 20 NEC# elements and 11 jurisdictions. Includes regulatory context with EU AI Act and GDPR citations.</div>
<span class="card-tag tag-registry">REGISTRY</span>
</a>
<a href="https://registry.croviatrust.com/registry/tpa" target="_blank" class="card">
<div class="card-title">Temporal Proof of Absence</div>
<div class="card-desc">Cryptographic evidence chain. SHA-256 hashes, Merkle roots, append-only temporal proofs of documentation gaps.</div>
<span class="card-tag tag-registry">REGISTRY</span>
</a>
<a href="https://registry.croviatrust.com/registry/lineage" target="_blank" class="card">
<div class="card-title">Lineage Graph</div>
<div class="card-desc">Interactive D3.js visualization of model-organization-dataset relationships. Reveals shared training data dependencies.</div>
<span class="card-tag tag-registry">REGISTRY</span>
</a>
<a href="https://registry.croviatrust.com/registry/omissions" target="_blank" class="card">
<div class="card-title">Omission Ledger</div>
<div class="card-desc">Searchable ledger of documented training data omissions across monitored models.</div>
<span class="card-tag tag-registry">REGISTRY</span>
</a>
<a href="https://registry.croviatrust.com/registry/outreach" target="_blank" class="card">
<div class="card-title">Outreach &amp; Impact</div>
<div class="card-desc">Transparency engagement tracker. Documents communications with model publishers about documentation gaps.</div>
<span class="card-tag tag-registry">REGISTRY</span>
</a>
</div>
</div>
<!-- Principles -->
<div class="section">
<div class="section-title">Architecture</div>
<div class="principles">
<div class="principle principle-open">
<h4>Open Plane</h4>
<p>Everything you see here. Continuous observation of AI model documentation. Cryptographic proof of evidence presence and absence. Verifiable surfaces: timestamps, hashes, Merkle roots, append-only artifacts. No judgment. No accusations.</p>
</div>
<div class="principle principle-pro">
<h4>PRO Plane</h4>
<p>Quantitative regulatory exposure analysis. Per-model, per-jurisdiction financial impact assessment. Evidence-backed compliance intelligence. Settlement infrastructure. Available to qualified organizations.</p>
<p style="margin-top:8px"><a href="mailto:info@croviatrust.com" style="color:#f59e0b;font-weight:700;font-size:11px">Contact: info@croviatrust.com</a></p>
</div>
</div>
</div>
<!-- Footer -->
<div class="foot">
<p><a href="https://croviatrust.com" target="_blank">croviatrust.com</a> &middot; <a href="https://github.com/croviatrust" target="_blank">github.com/croviatrust</a></p>
</div>
<div class="disclaimer">Observation, not judgment. All data derived from public sources. No claim of violation is made or implied.</div>
</div>
<script>
// Populate live stats from registry API
fetch('https://registry.croviatrust.com/registry/data/lineage_graph.json')
.then(r => r.json())
.then(d => {
const nodes = d.nodes || [];
const models = nodes.filter(n => n.type === 'model');
const shadows = nodes.filter(n => n.type === 'shadow');
const orgs = nodes.filter(n => n.type === 'org');
const total = models.length + shadows.length;
const docRate = total > 0 ? (models.length / total * 100).toFixed(1) : '0';
document.getElementById('s-models').textContent = total;
document.getElementById('s-orgs').textContent = orgs.length;
document.getElementById('s-doc').textContent = docRate + '%';
})
.catch(() => {
document.getElementById('s-models').textContent = '141';
document.getElementById('s-orgs').textContent = '70';
document.getElementById('s-doc').textContent = '83.5%';
});
fetch('https://registry.croviatrust.com/registry/data/tpa_latest.json')
.then(r => r.json())
.then(d => {
document.getElementById('s-tpa').textContent = d.total_tpas || d.tpas?.length || '200+';
})
.catch(() => {
document.getElementById('s-tpa').textContent = '200+';
});
</script>
</body>
</html>