a11oy / console /index.html
betterwithage's picture
deploy(hf): sync szl-holdings/a11oy@main derived COPY set
ee3c4a7 verified
Raw
History Blame Contribute Delete
313 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>a11oy — Orchestration Platform · SZL Holdings</title>
<meta name="description" content="a11oy is the orchestrating brain of the SZL governed-AI substrate: a full operator application — command center, five superpowers, Warhacker orchestration, observability, the constitution (wires), formulas, and the evidence ledger. Every view reads a live endpoint."/>
<script src="/vendor/chart.umd.min.js"></script>
<script src="/vendor/3d-force-graph.min.js"></script>
<script src="/vendor/echarts.min.js"></script>
<script src="/vendor/echarts-gl.min.js"></script>
<script src="/vendor/globe.gl.min.js"></script>
<script src="/vendor/cytoscape.min.js"></script>
<script src="/vendor/d3.min.js"></script>
<link rel="stylesheet" href="/vendor/katex.min.css"/>
<script src="/vendor/katex.min.js"></script>
<!-- SOVEREIGN: 0 runtime CDN. Fonts self-hosted in-image, served same-origin at
/vendor/fonts/*.woff2 (SAME pattern as the clean console). NO external font CDN. -->
<style>
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('/vendor/fonts/SpaceGrotesk.woff2') format('woff2');}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url('/vendor/fonts/JetBrainsMono.woff2') format('woff2');}
</style>
<style>/* ============ SZL UNIFIED APP SHELL — house style (gold+teal on dark) ============ */
/* Shared by all 5 flagship full-applications. One product family. */
:root{
--ground:#0a0a0a; --panel:#0e0e0e; --panel2:#080808; --rail:#0b0b0b;
--gold:#c9b787; --gold-bright:#d6c69a;
--teal:#5fb3a3; --teal-soft:rgba(95,179,163,0.10);
--cream:#f5f5f5; --paragraph:#9a9a9a; --muted:#888; --dim:#555;
--gold-line:rgba(201,183,135,0.15); --gold-soft:rgba(201,183,135,0.04);
--teal-line:rgba(95,179,163,0.22);
--live:#5a8a6e; --err:#b06a5a; --warn:#c9a05f;
--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
--display:'Space Grotesk',Georgia,serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--ground);color:var(--cream);
font-family:var(--display);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
.mono{font-family:var(--mono);}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px;}
::-webkit-scrollbar{width:9px;height:9px;}::-webkit-scrollbar-thumb{background:#222;border-radius:6px;}
/* ===== TOP BAR + CROSS-FLAG SWITCHER ===== */
.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
padding:.5rem 1.1rem;background:rgba(10,10,10,.92);backdrop-filter:blur(10px);
border-bottom:1px solid var(--gold-line);font-family:var(--mono);font-size:10.5px;
letter-spacing:.1em;text-transform:uppercase;color:var(--gold);}
.topbar .sep{color:var(--dim);}
.topbar .live{display:inline-flex;align-items:center;gap:.4rem;color:var(--cream);}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--live);box-shadow:0 0 6px var(--live);animation:pulse 2.2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.switcher{margin-left:auto;display:flex;align-items:center;gap:.3rem;}
.switcher .lbl{color:var(--dim);margin-right:.35rem;}
.flag{padding:.22rem .55rem;border-radius:6px;border:1px solid transparent;color:var(--muted);transition:.15s;}
.flag:hover{color:var(--cream);border-color:var(--gold-line);background:var(--gold-soft);}
.flag.active{color:var(--ground);background:var(--gold);border-color:var(--gold);font-weight:600;}
/* a11oy-extlinks-patch */
.extlinks{display:flex;align-items:center;gap:.3rem;padding-left:.6rem;margin-left:.3rem;border-left:1px solid var(--gold-line);}
.extlinks .flag{display:inline-flex;align-items:center;gap:.35rem;}
.extlinks svg{display:block;}
/* ===== APP LAYOUT: SIDEBAR + CONTENT ===== */
.app{display:grid;grid-template-columns:248px 1fr;min-height:calc(100vh - 39px);}
.side{background:var(--rail);border-right:1px solid var(--gold-line);padding:1.1rem .8rem;overflow-y:auto;}
.brand{display:flex;align-items:center;gap:.6rem;padding:0 .4rem 1rem;}
.brand .mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--gold),var(--teal));display:grid;place-items:center;color:#0a0a0a;font-weight:700;font-family:var(--mono);}
.brand .nm{font-weight:600;font-size:1.05rem;}
.brand .role{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;}
.nav-group{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:1rem .5rem .4rem;}
.nav-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:7px;cursor:pointer;color:var(--paragraph);font-size:13.5px;transition:.15s;border:1px solid transparent;}
.nav-item:hover{background:var(--gold-soft);color:var(--cream);}
.nav-item.active{background:var(--teal-soft);color:var(--teal);border-color:var(--teal-line);}
.nav-item .ico{width:16px;text-align:center;opacity:.8;font-size:12px;}
.side-foot{margin-top:1.2rem;padding:.7rem .6rem;border-top:1px solid var(--gold-line);font-family:var(--mono);font-size:9.5px;color:var(--dim);line-height:1.7;}
/* ===== CONTENT ===== */
.content{padding:1.4rem 1.8rem 3rem;overflow-y:auto;max-height:calc(100vh - 39px);}
.view-head{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap;margin-bottom:.3rem;}
.view-title{font-size:1.7rem;font-weight:500;letter-spacing:-.02em;}
.view-badge{font-family:var(--mono);font-size:10px;color:var(--teal);border:1px solid var(--teal-line);border-radius:5px;padding:.12rem .5rem;background:var(--teal-soft);}
.view-sub{font-size:13.5px;color:var(--paragraph);line-height:1.6;margin:.4rem 0 1.3rem;max-width:60rem;}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1.3rem;}
.kpi{border:1px solid var(--gold-line);border-radius:9px;background:var(--panel);padding:.85rem 1rem;}
.kpi .k{font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);}
.kpi .v{font-size:1.55rem;font-weight:500;color:var(--gold);margin-top:.2rem;line-height:1.1;}
.kpi .v.teal{color:var(--teal);} .kpi .v.live{color:var(--live);} .kpi .v.warn{color:var(--warn);}
.kpi .d{font-size:11px;color:var(--paragraph);margin-top:.2rem;}
.card{border:1px solid var(--gold-line);border-radius:11px;background:var(--panel);padding:1.2rem 1.3rem;margin-bottom:1rem;}
.card-h{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem;flex-wrap:wrap;}
.card-t{font-size:1.05rem;font-weight:500;color:var(--cream);}
.card-ep{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:auto;}
.row{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid rgba(201,183,135,.07);font-size:13px;}
.row:last-child{border-bottom:none;}
.row .badge{font-family:var(--mono);font-size:10px;padding:.1rem .45rem;border-radius:5px;}
.loopbar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.4rem 0;}
.loopstep{display:inline-flex;align-items:center;gap:.35rem;font-size:12px;background:rgba(95,179,163,.08);border:1px solid rgba(95,179,163,.25);padding:.3rem .55rem;border-radius:6px;}
.loopsep{color:var(--teal);font-size:14px;}
.b-live{color:var(--live);border:1px solid rgba(90,138,110,.4);background:rgba(90,138,110,.08);}
.b-gold{color:var(--gold);border:1px solid var(--gold-line);background:var(--gold-soft);}
.b-teal{color:var(--teal);border:1px solid var(--teal-line);background:var(--teal-soft);}
.b-err{color:var(--err);border:1px solid rgba(176,106,90,.4);background:rgba(176,106,90,.08);}
.spacer{margin-left:auto;}
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:11.5px;font-weight:500;font-family:var(--mono);
border-radius:6px;border:1px solid var(--gold-line);background:transparent;color:var(--gold);cursor:pointer;letter-spacing:.04em;transition:.18s;}
.btn:hover{background:rgba(201,183,135,.08);border-color:rgba(201,183,135,.35);}
.btn.teal{color:var(--teal);border-color:var(--teal-line);background:var(--teal-soft);}
.btns{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;}
pre.out{font-family:var(--mono);font-size:11.5px;line-height:1.55;color:var(--paragraph);background:var(--panel2);
border:1px solid var(--gold-line);border-radius:8px;padding:.9rem 1rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:380px;}
.honesty{margin-top:1.2rem;padding:1rem 1.2rem;border:1px solid var(--gold-line);border-radius:9px;background:var(--gold-soft);font-size:11.5px;color:var(--paragraph);line-height:1.7;}
.honesty b{color:var(--gold);}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;}
.muted{color:var(--muted);} .mono.dim{color:var(--dim);}
@media (max-width:820px){
.app{grid-template-columns:1fr;}
.side{position:fixed;left:0;top:39px;bottom:0;width:240px;transform:translateX(-100%);transition:.2s;z-index:55;}
.side.open{transform:none;}
.content{max-height:none;}
.menu-btn{display:inline-flex!important;}
}
.menu-btn{display:none;background:none;border:1px solid var(--gold-line);color:var(--gold);border-radius:6px;padding:.2rem .5rem;cursor:pointer;font-family:var(--mono);font-size:11px;}
/* ===== VISUALS ===== */
.chartbox{position:relative;height:260px;width:100%;}
.chartbox.tall{height:320px;}
.graph3d{height:420px;width:100%;border-radius:9px;background:radial-gradient(circle at 50% 40%,#0c1410,#070707);overflow:hidden;border:1px solid var(--gold-line);}
.gauge-wrap{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;}
.gauge{position:relative;width:150px;height:150px;}
.gauge .lbl{position:absolute;inset:0;display:grid;place-items:center;flex-direction:column;text-align:center;}
.gauge .lbl .big{font-size:1.8rem;font-weight:600;color:var(--gold);line-height:1;}
.gauge .lbl .sm{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:.2rem;}
.legend{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.6rem;font-family:var(--mono);font-size:10px;color:var(--muted);}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:.35rem;vertical-align:middle;}
.spark{height:46px;width:100%;}
.bar-track{flex:1;height:9px;background:#161616;border-radius:5px;overflow:hidden;}
.bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:5px;transition:width .6s cubic-bezier(.2,.8,.2,1);}
details.raw{margin-top:1rem;}
details.raw summary{cursor:pointer;font-family:var(--mono);font-size:10px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;}
details.raw[open] summary{color:var(--muted);}
/* ===== GENIUS VISUALS ===== */
.graph3d.hero{height:520px;}
.echart{height:360px;width:100%;}
.echart.tall{height:480px;}
.globe3d{height:520px;width:100%;border-radius:9px;overflow:hidden;border:1px solid var(--gold-line);background:#060606;}
.cyto{height:480px;width:100%;border-radius:9px;border:1px solid var(--gold-line);background:#0b0d10;}
.feedtail{height:340px;overflow:auto;background:#080a0c;border:1px solid var(--gold-line);border-radius:9px;font-family:var(--mono);font-size:11.5px;}
.feedtail .frow{padding:.4rem .8rem;border-bottom:1px solid rgba(201,183,135,.07);display:flex;gap:.6rem;align-items:baseline;}
.feedtail .frow:hover{background:var(--gold-soft);}
.feedtail .ts{color:var(--dim);white-space:nowrap;}
.feedtail .id{color:var(--gold);white-space:nowrap;}
.feedtail .txt{color:var(--paragraph);flex:1;}
.dtbl{width:100%;border-collapse:collapse;font-size:12px;}
.dtbl th{text-align:left;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.5rem .6rem;border-bottom:1px solid var(--gold-line);position:sticky;top:0;background:var(--panel);}
.dtbl td{padding:.45rem .6rem;border-bottom:1px solid rgba(201,183,135,.06);color:var(--paragraph);}
.dtbl tr:hover td{background:var(--gold-soft);}
.sev-crit{color:#b06a5a;font-weight:600;} .sev-high{color:var(--gold);} .sev-med{color:var(--teal);} .sev-low{color:var(--muted);}
.feed-pill{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:.15rem .5rem;border-radius:5px;border:1px solid var(--teal-line);color:var(--teal);background:var(--teal-soft);}
.feed-pill.warn{color:var(--warn);border-color:rgba(201,160,95,.4);background:rgba(201,160,95,.08);}
.brain-note{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.04em;margin-top:.5rem;}
/* build-wave additions */
@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}
.split2{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
@media(max-width:980px){.split2{grid-template-columns:1fr}}
.detailbox{background:#080808;border:1px solid var(--gold-line);border-radius:10px;padding:.8rem;min-height:160px}
.detailbox .row{padding:.18rem 0}
.honey{height:300px}
.bigsentence{font-size:16px;line-height:1.5;padding:1rem 1.2rem;background:linear-gradient(180deg,rgba(95,179,163,0.06),transparent);border:1px solid var(--teal-line);border-radius:12px;margin-bottom:1rem}
.graph3d.tall{height:420px}
.tl-graphbox{height:380px;background:#080808;border:1px solid var(--gold-line);border-radius:10px}
.ln-dagbox{height:440px;background:#080808;border:1px solid var(--gold-line);border-radius:10px}
/* ===== IA REDESIGN — domain rail + flagships + command palette ===== */
/* Collapses the flat ~40-item nav into a persistent 7-domain rail + a featured
flagship row + a fuzzy ⌘K palette. Every view stays reachable. Static CSS. */
.cmdk-btn{display:flex;align-items:center;gap:.5rem;width:100%;margin:.1rem 0 .3rem;padding:.55rem .6rem;border-radius:8px;
border:1px solid var(--gold-line);background:var(--panel);color:var(--paragraph);font-family:var(--mono);font-size:11px;cursor:pointer;transition:.15s;letter-spacing:.03em;text-align:left;}
.cmdk-btn:hover{border-color:var(--teal-line);color:var(--cream);background:var(--teal-soft);}
.cmdk-btn .ico{font-size:13px;color:var(--teal);}
.cmdk-btn .kbd{margin-left:auto;font-size:9px;color:var(--dim);border:1px solid var(--gold-line);border-radius:4px;padding:.05rem .32rem;}
/* flagships (max 5) */
.featured{display:grid;grid-template-columns:1fr 1fr;gap:.42rem;margin:.15rem .05rem .35rem;}
.flag-card{display:flex;align-items:center;gap:.45rem;padding:.5rem .55rem;border-radius:8px;cursor:pointer;
border:1px solid var(--gold-line);background:linear-gradient(135deg,rgba(201,183,135,.07),rgba(95,179,163,.05));
color:var(--cream);font-size:11.5px;transition:.15s;border-left:2px solid var(--gold-line);}
.flag-card:hover{border-color:var(--teal-line);background:var(--teal-soft);}
.flag-card.active{border-color:var(--teal);border-left-color:var(--teal);color:var(--teal);}
.flag-card .ico{font-size:12px;color:var(--gold);}
.flag-card.full{grid-column:1 / -1;}
/* domain rail (accordion) */
.dom{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:7px;cursor:pointer;color:var(--cream);
font-size:12.5px;font-weight:500;transition:.15s;border:1px solid transparent;}
.dom:hover{background:var(--gold-soft);}
.dom.open{color:var(--teal);}
.dom .ico{width:16px;text-align:center;color:var(--teal);font-size:13px;}
.dom .count{font-family:var(--mono);font-size:9px;color:var(--dim);margin-left:.15rem;}
.dom .chev{margin-left:auto;color:var(--dim);font-size:10px;transition:transform .15s;}
.dom.open .chev{transform:rotate(90deg);color:var(--teal);}
.domidx{display:none;margin:.05rem 0 .45rem .55rem;padding-left:.35rem;border-left:1px solid var(--gold-line);}
.domidx.open{display:block;}
/* ⌘K command palette overlay */
.pal-ov{position:fixed;inset:0;z-index:200;background:rgba(4,4,4,.72);backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;}
.pal-ov.open{display:flex;}
.palette{margin-top:9vh;width:min(640px,92vw);background:var(--panel);border:1px solid var(--teal-line);border-radius:12px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6);}
.palette input{width:100%;box-sizing:border-box;padding:1rem 1.1rem;background:var(--panel2);border:none;border-bottom:1px solid var(--gold-line);
color:var(--cream);font-family:var(--mono);font-size:14px;outline:none;}
.palette input::placeholder{color:var(--dim);}
.pal-hint{display:flex;gap:1rem;flex-wrap:wrap;padding:.4rem 1.1rem;font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--gold-soft);}
.pal-list{max-height:56vh;overflow:auto;padding:.4rem;}
.pal-item{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:8px;cursor:pointer;color:var(--paragraph);font-size:13px;}
.pal-item .ico{width:16px;text-align:center;color:var(--teal);}
.pal-item .dom-tag{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.08em;text-transform:uppercase;}
.pal-item.sel,.pal-item:hover{background:var(--teal-soft);color:var(--cream);}
.pal-empty{padding:1.2rem;text-align:center;color:var(--dim);font-family:var(--mono);font-size:11px;}
</style>
</head>
<body>
<div class="topbar">
<button class="menu-btn" onclick="document.querySelector('.side').classList.toggle('open')"></button>
<span>SZL HOLDINGS</span><span class="sep">/</span>
<span style="color:var(--teal)">a11oy</span><span class="sep">/</span>
<span>GOVERNED-AI COMMAND PLATFORM</span><span class="sep">/</span>
<span class="live"><span class="live-dot"></span>LIVE</span>
<nav class="switcher" aria-label="Surfaces">
<span class="lbl">SURFACE</span>
<a class="flag active" href="https://szlholdings-a11oy.hf.space/">Command Platform</a>
</nav>
<nav class="extlinks" aria-label="Project links">
<a class="flag" href="https://huggingface.co/spaces/szlholdings/a11oy" target="_blank" rel="noopener noreferrer" title="a11oy Space on Hugging Face">🤗 a11oy</a>
<a class="flag" href="https://huggingface.co/spaces/szlholdings/killinchu" target="_blank" rel="noopener noreferrer" title="killinchu Space on Hugging Face">🤗 killinchu</a>
</nav>
</div>
<div class="app">
<aside class="side">
<div class="brand"><div class="mark">A</div><div><div class="nm">a11oy</div><div class="role">orchestrating brain</div></div></div>
<button class="cmdk-btn" onclick="openPalette()" title="Search every view — ⌘K / Ctrl-K"><span class="ico"></span>Search all views<span class="kbd">⌘K</span></button>
<div class="nav-group">Flagships</div>
<div class="featured" id="featured"></div>
<div class="nav-group">Domains</div>
<div class="rail" id="rail"></div>
<div class="side-foot">Trust score = research conjecture<br>8 formulas formally proven<br>SLSA L1 honest · L2 build-attested (Rekor) · L3+ roadmap · 5 services<br>Verifiable receipts · honest by design<br><span style="color:#c9a05f;font-size:9px">+ 80+ EXPERIMENTAL · CI-green</span></div>
</aside>
<main class="content" id="content"><div class="view-sub">loading…</div></main>
</div>
<script>window.__KB__={"version":"5.1.0","byline":"Lutar, Stephen P.","orcid":"0009-0001-0110-4173","email":"stephen@szlholdings.com","org":"SZL Holdings","generated_at":"2026-06-06T06:00:00Z","axioms":[{"id":"A1","name":"soundnessAxiom","statement":"For any receipt r, if gate_pass(r) then lambda(r) >= 0.90 conjunctively","source_file":"thesis.md","source_section":"§4.1","maturity":"proven","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A2","name":"moralGroundingFloor","statement":"moralGrounding axis floor = 0.95 (higher than default 0.90)","source_file":"thesis.md","source_section":"§4.1","maturity":"defined","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A3","name":"measurabilityHonestyFloor","statement":"measurabilityHonesty axis floor = 0.95","source_file":"thesis.md","source_section":"§4.1","maturity":"defined","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A4","name":"dualWitnessDisjointness","statement":"For rho-closure: witness_1_id != witness_2_id (enforced by registry at write time)","source_file":"thesis.md","source_section":"§4.3","maturity":"proven","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A5","name":"deterministicReplay","statement":"For canonical JSON + pinned PRNG + frozen registry, 5x replay yields byte-identical roots","source_file":"thesis.md","source_section":"§4.6","maturity":"measured","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A6","name":"hashChainIntegrity","statement":"Every spine entry hash-chain invariant: entry.chain = SHA256(prev_entry)","source_file":"thesis.md","source_section":"§3.4","maturity":"defined","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A7","name":"bekensteinBound","statement":"Receipt chain entropy H(R_n) bounded by information-theoretic limit from registry area","source_file":"thesis.md","source_section":"§4.5","maturity":"conjectured","citation":"https://doi.org/10.5281/zenodo.19944926"},{"id":"A8","name":"ingestDiscipline","statement":"Every ingest requires: source_url + content_hash + license (allow-list) + ORCID","source_file":"thesis.md","source_section":"§7","maturity":"defined","citation":"https://doi.org/10.5281/zenodo.20119582"},{"id":"A9","name":"doctrineCompleteness","statement":"doctrine.json v1.0.0 enumerates all 8 forbidden patterns; SHA-anchored","source_file":"szl-trust/doctrine.json","source_section":"§8","maturity":"defined","citation":"https://github.com/szl-holdings/szl-trust"}],"theorems":[{"id":"TH_L1","name":"Λ_uniqueness","statement":"Conjecture 1: the Lutar Invariant Λ_k (weighted geometric mean with Egyptian unit-fraction weights) is the unique aggregator satisfying axioms A1-A5. NOT a theorem: unconditional uniqueness is FALSE under A1-A5 (machine-checked counterexample maxAgg_ne_Lambda; max-aggregator satisfies A1-A5 yet differs from Λ at (4,1)). The conditional theorem lambda_unique_of_factors (uniqueness GIVEN factorization Φ x = ∏ x_i^α_i) IS fully proved; unconditional uniqueness closes only under a declared bisymmetry axiom A6 (Kolmogorov-Nagumo-Aczel).","source_file":"lutar-lean/Lutar/Round13/Lambda_Uniqueness.lean","maturity":"conjectured","citation":"https://doi.org/10.5281/zenodo.20053148"},{"id":"TH_L2","name":"Λ_min_max_bounds","statement":"Λ_k lies in [0,1] with min=0 iff any axis=0 and max=1 iff all axes=1","source_file":"lutar-lean/Lutar/Bound.lean","maturity":"proven","citation":"https://doi.org/10.5281/zenodo.20053148"},{"id":"TH_L3","name":"bekenstein_soundness","statement":"Bekenstein indicator fires at 49.5% under uniform seed (measured); formal proof pending in lutar-lean","source_file":"lutar-lean (pending PR #12)","maturity":"measured/conjectured","citation":"https://github.com/szl-holdings/lutar-lean"},{"id":"TH_L4","name":"rho_closure_production","statement":"100% rho-closure on 8,000/8,000 paired calls under v11 platform","source_file":"ouroboros v6.3.0 release","maturity":"measured","citation":"https://doi.org/10.5281/zenodo.20119582"}],"formulas":[{"id":"F0001","source_file":"thesis.md","source_line":27,"latex":"\\mathcal{S} = \\langle R, A, E, \\Lambda, \\rho, W \\rangle","context":"ith a doctrine-locked runtime** as a category-defining primitive for verifiable agency. We define the system as a tuple \\( \\mathcal{S} = \\langle R, A, E, \\Lambda, \\rho, W \\rangle \\) over an eight-regi","source_id":"thesis_session","maturity":"defined"},{"id":"F0002","source_file":"thesis.md","source_line":229,"latex":"\\mathtt{szl\\text{-}trust}","context":"d system. - \\(A\\) — the set of **named actors**. Every actor in \\(A\\) carries a stable identity resolvable to a key in \\(\\mathtt{szl\\text{-}trust}\\). No edge in \\(E\\) may originate from or terminate ","source_id":"thesis_session","maturity":"defined"},{"id":"F0003","source_file":"thesis.md","source_line":231,"latex":"e \\in E","context":"and resolvable — unidentified actors are structurally excluded. - \\(E\\) — the set of **receipt-bound edges**. An edge \\(e \\in E\\) is a tuple \\((a_{\\text{src}},\\; r_{\\text{src}},\\; r_{\\text{dst}},\\; \\","source_id":"thesis_session","maturity":"defined"},{"id":"F0004","source_file":"thesis.md","source_line":231,"latex":"(a_{\\text{src}},\\; r_{\\text{src}},\\; r_{\\text{dst}},\\; \\varepsilon)","context":"ntified actors are structurally excluded. - \\(E\\) — the set of **receipt-bound edges**. An edge \\(e \\in E\\) is a tuple \\((a_{\\text{src}},\\; r_{\\text{src}},\\; r_{\\text{dst}},\\; \\varepsilon)\\) where \\(","source_id":"thesis_session","maturity":"defined"},{"id":"F0005","source_file":"thesis.md","source_line":231,"latex":"a_{\\text{src}} \\in A","context":"d edges**. An edge \\(e \\in E\\) is a tuple \\((a_{\\text{src}},\\; r_{\\text{src}},\\; r_{\\text{dst}},\\; \\varepsilon)\\) where \\(a_{\\text{src}} \\in A\\), \\(r_{\\text{src}}, r_{\\text{dst}} \\in R\\), and \\(\\varep","source_id":"thesis_session","maturity":"defined"},{"id":"F0006","source_file":"thesis.md","source_line":231,"latex":"r_{\\text{src}}, r_{\\text{dst}} \\in R","context":"E\\) is a tuple \\((a_{\\text{src}},\\; r_{\\text{src}},\\; r_{\\text{dst}},\\; \\varepsilon)\\) where \\(a_{\\text{src}} \\in A\\), \\(r_{\\text{src}}, r_{\\text{dst}} \\in R\\), and \\(\\varepsilon\\) is the receipt enve","source_id":"thesis_session","maturity":"defined"},{"id":"F0007","source_file":"thesis.md","source_line":231,"latex":"\\varepsilon","context":"src}},\\; r_{\\text{dst}},\\; \\varepsilon)\\) where \\(a_{\\text{src}} \\in A\\), \\(r_{\\text{src}}, r_{\\text{dst}} \\in R\\), and \\(\\varepsilon\\) is the receipt envelope defined in §3.3. No message may traverse","source_id":"thesis_session","maturity":"defined"},{"id":"F0008","source_file":"thesis.md","source_line":231,"latex":"\\varepsilon","context":"repsilon\\) is the receipt envelope defined in §3.3. No message may traverse a region boundary unless it carries a valid \\(\\varepsilon\\). - \\(\\Lambda\\) — the **composable axis-gating function**. Forma","source_id":"thesis_session","maturity":"defined"},{"id":"F0009","source_file":"thesis.md","source_line":233,"latex":"\\Lambda","context":"ceipt envelope defined in §3.3. No message may traverse a region boundary unless it carries a valid \\(\\varepsilon\\). - \\(\\Lambda\\) — the **composable axis-gating function**. Formally, \\(\\Lambda : [0,","source_id":"thesis_session","maturity":"defined"},{"id":"F0010","source_file":"thesis.md","source_line":233,"latex":"\\Lambda : [0,1]^k \\to \\{0,1\\}","context":"boundary unless it carries a valid \\(\\varepsilon\\). - \\(\\Lambda\\) — the **composable axis-gating function**. Formally, \\(\\Lambda : [0,1]^k \\to \\{0,1\\}\\) for \\(k \\geq 9\\), defined as the conjunctive A","source_id":"thesis_session","maturity":"defined"},{"id":"F0011","source_file":"thesis.md","source_line":233,"latex":"k \\geq 9","context":"varepsilon\\). - \\(\\Lambda\\) — the **composable axis-gating function**. Formally, \\(\\Lambda : [0,1]^k \\to \\{0,1\\}\\) for \\(k \\geq 9\\), defined as the conjunctive AND: \\[ \\Lambda(\\mathbf{x}) = 1 \\iff \\","source_id":"thesis_session","maturity":"defined"},{"id":"F0012","source_file":"thesis.md","source_line":239,"latex":"\\mathbf{x}","context":"bilityHonesty}} \\geq 0.95 \\] The composability property states that for any two independently evaluated axis vectors \\(\\mathbf{x}\\) and \\(\\mathbf{y}\\), their composed gate \\(\\Lambda(\\mathbf{x} \\wed","source_id":"thesis_session","maturity":"defined"},{"id":"F0013","source_file":"thesis.md","source_line":239,"latex":"\\mathbf{y}","context":"q 0.95 \\] The composability property states that for any two independently evaluated axis vectors \\(\\mathbf{x}\\) and \\(\\mathbf{y}\\), their composed gate \\(\\Lambda(\\mathbf{x} \\wedge \\mathbf{y})\\) is","source_id":"thesis_session","maturity":"defined"},{"id":"F0014","source_file":"thesis.md","source_line":239,"latex":"\\Lambda(\\mathbf{x} \\wedge \\mathbf{y})","context":"rty states that for any two independently evaluated axis vectors \\(\\mathbf{x}\\) and \\(\\mathbf{y}\\), their composed gate \\(\\Lambda(\\mathbf{x} \\wedge \\mathbf{y})\\) is equivalent to \\(\\Lambda(\\mathbf{x})","source_id":"thesis_session","maturity":"defined"},{"id":"F0015","source_file":"thesis.md","source_line":239,"latex":"\\Lambda(\\mathbf{x}) \\wedge \\Lambda(\\mathbf{y})","context":"ctors \\(\\mathbf{x}\\) and \\(\\mathbf{y}\\), their composed gate \\(\\Lambda(\\mathbf{x} \\wedge \\mathbf{y})\\) is equivalent to \\(\\Lambda(\\mathbf{x}) \\wedge \\Lambda(\\mathbf{y})\\) — gate composition does not w","source_id":"thesis_session","maturity":"defined"},{"id":"F0016","source_file":"thesis.md","source_line":239,"latex":"\\Lambda","context":"— gate composition does not weaken the invariant. The `lutar-lean` skeleton repository contains the Lean 4 statement of \\(\\Lambda\\) uniqueness: given the four axioms (A1 monotonicity, A2 homogeneity, ","source_id":"thesis_session","maturity":"conjectured"},{"id":"F0017","source_file":"thesis.md","source_line":239,"latex":"\\Lambda","context":"ment of \\(\\Lambda\\) uniqueness: given the four axioms (A1 monotonicity, A2 homogeneity, A3 Egyptian-exact, A4 bounded), \\(\\Lambda\\) is the *unique* function satisfying them. The uniqueness theorem and","source_id":"thesis_session","maturity":"conjectured"},{"id":"F0018","source_file":"thesis.md","source_line":241,"latex":"\\rho(e)","context":"arget is zero. - \\(\\rho\\) — the **dual-witness closure relation**. For any edge \\(e\\) carrying execution result \\(v\\), \\(\\rho(e)\\) holds iff two independent witnesses \\(w_1, w_2 \\in W\\) each produce ","source_id":"thesis_session","maturity":"defined"},{"id":"F0019","source_file":"thesis.md","source_line":241,"latex":"w_1, w_2 \\in W","context":"closure relation**. For any edge \\(e\\) carrying execution result \\(v\\), \\(\\rho(e)\\) holds iff two independent witnesses \\(w_1, w_2 \\in W\\) each produce byte-identical output on the same input, and the","source_id":"thesis_session","maturity":"defined"},{"id":"F0020","source_file":"thesis.md","source_line":251,"latex":"\\mathcal{S}","context":"uroboros` core + 4 `a11oy` covenant), while the full upstream runtime suite registers 218/218 passing tests. The tuple \\(\\mathcal{S}\\) is **doctrine-locked**: any runtime configuration in which (a) a","source_id":"thesis_session","maturity":"defined"},{"id":"F0021","source_file":"thesis.md","source_line":251,"latex":"\\Lambda","context":"which (a) a region is unnamed, (b) an actor is not in \\(A\\), (c) an edge is produced without a receipt envelope, or (d) \\(\\Lambda\\) is evaluated below threshold does not constitute a valid instantiati","source_id":"thesis_session","maturity":"defined"},{"id":"F0022","source_file":"thesis.md","source_line":251,"latex":"\\mathcal{S}","context":"ithout a receipt envelope, or (d) \\(\\Lambda\\) is evaluated below threshold does not constitute a valid instantiation of \\(\\mathcal{S}\\). --- ## The 8-Region Anatomy The eight canonical regions of \\","source_id":"thesis_session","maturity":"defined"},{"id":"F0023","source_file":"thesis.md","source_line":257,"latex":"\\mathcal{S}","context":"of \\(R\\) are enumerated below. For each region the presentation gives: the repository identifier, its role in the tuple \\(\\mathcal{S}\\), its public interfaces, and its dependency relations within \\(E\\","source_id":"thesis_session","maturity":"defined"},{"id":"F0024","source_file":"thesis.md","source_line":265,"latex":"\\mathcal{S}","context":"released 2026-05-13; concept DOI `10.5281/zenodo.19944926`, v11 paper DOI `10.5281/zenodo.20119582`) **Formal role in \\(\\mathcal{S}\\):** The Brain Stem is the runtime kernel that evaluates \\(\\Lambda\\","source_id":"thesis_session","maturity":"defined"},{"id":"F0025","source_file":"thesis.md","source_line":265,"latex":"\\Lambda","context":"DOI `10.5281/zenodo.20119582`) **Formal role in \\(\\mathcal{S}\\):** The Brain Stem is the runtime kernel that evaluates \\(\\Lambda\\) and emits receipts. Every edge in \\(E\\) that crosses a region bounda","source_id":"thesis_session","maturity":"defined"},{"id":"F0026","source_file":"thesis.md","source_line":268,"latex":"\\Lambda","context":"bda(axes: number[9|10]) → Receipt` — evaluates the conjunctive AND gate and returns a signed receipt with the composite \\(\\Lambda\\) score, Bekenstein budget, and dual-witness closure status. - `build_","source_id":"thesis_session","maturity":"conjectured"},{"id":"F0027","source_file":"thesis.md","source_line":274,"latex":"\\Lambda","context":"chain root for third-party verification. **Dependencies:** - Depends on: `lutar-lean` (Skeleton) — the axiom set that \\(\\Lambda\\) is required to satisfy is formally stated there; the Brain Stem is th","source_id":"thesis_session","maturity":"defined"},{"id":"F0028","source_file":"thesis.md","source_line":277,"latex":"\\Lambda_9","context":"utbound edge must call `evaluate_lambda` before the edge enters \\(E\\). The gate composition benchmark for v6.3.0 shows \\(\\Lambda_9\\) base p50 = 3.12 µs and composed p50 = 3.29 µs; with the Platform v","source_id":"thesis_session","maturity":"defined"},{"id":"F0029","source_file":"thesis.md","source_line":285,"latex":"\\mathcal{S}","context":"a continuous supply-chain security posture. --- ### Heart — `a11oy` **Repo:** `szl-holdings/a11oy` **Formal role in \\(\\mathcal{S}\\):** The Heart is the covenant policy engine and the agent approva","source_id":"thesis_session","maturity":"defined"},{"id":"F0030","source_file":"thesis.md","source_line":285,"latex":"\\mathcal{S}","context":"\\):** The Heart is the covenant policy engine and the agent approval queue. It governs the *authorization* dimension of \\(\\mathcal{S}\\): while the Brain Stem answers \"does this action score above \\(\\L","source_id":"thesis_session","maturity":"defined"},{"id":"F0031","source_file":"thesis.md","source_line":285,"latex":"\\Lambda","context":"It governs the *authorization* dimension of \\(\\mathcal{S}\\): while the Brain Stem answers \"does this action score above \\(\\Lambda\\)?\", the Heart answers \"is this action permitted under the active cove","source_id":"thesis_session","maturity":"defined"},{"id":"F0032","source_file":"thesis.md","source_line":285,"latex":"r_{\\text{dst}} \\notin R","context":"this action permitted under the active covenant?\". No action may exit the body graph — i.e., no edge in \\(E\\) may have \\(r_{\\text{dst}} \\notin R\\) — without a Heart pulse. The covenant is a named, ver","source_id":"thesis_session","maturity":"defined"},{"id":"F0033","source_file":"thesis.md","source_line":293,"latex":"\\Lambda","context":"Stem's chain. **Dependencies:** - Depends on: `ouroboros` (Brain Stem) — covenant evaluation results are sealed with a \\(\\Lambda\\)-gated receipt; a covenant check that fails \\(\\Lambda\\) is itself a g","source_id":"thesis_session","maturity":"defined"},{"id":"F0034","source_file":"thesis.md","source_line":293,"latex":"\\Lambda","context":"os` (Brain Stem) — covenant evaluation results are sealed with a \\(\\Lambda\\)-gated receipt; a covenant check that fails \\(\\Lambda\\) is itself a gate-level violation. - Depends on: `safety-gate layer` (safety wires) — t","source_id":"thesis_session","maturity":"defined"},{"id":"F0035","source_file":"thesis.md","source_line":305,"latex":"\\mathcal{S}","context":"but a verifiable, chain-linked artifact. --- ### safety wires — `safety-gate layer` **Repo:** `szl-holdings/safety-gate layer` **Formal role in \\(\\mathcal{S}\\):** The safety wires are the attribution trail — the afferent channel tha","source_id":"thesis_session","maturity":"defined"},{"id":"F0036","source_file":"thesis.md","source_line":305,"latex":"\\text{attr}: E \\to A","context":"rent channel that carries signals inward and records *who observed what and when*. Formally, safety wires maintain the mapping \\(\\text{attr}: E \\to A\\), ensuring that every edge in \\(E\\) is attributable to a","source_id":"thesis_session","maturity":"defined"},{"id":"F0037","source_file":"thesis.md","source_line":305,"latex":"\\mathcal{S}","context":"he mapping \\(\\text{attr}: E \\to A\\), ensuring that every edge in \\(E\\) is attributable to a named actor. Without safety wires, \\(\\mathcal{S}\\) degrades: edges carry receipts but not attributions, making the ","source_id":"thesis_session","maturity":"defined"},{"id":"F0038","source_file":"thesis.md","source_line":308,"latex":"a \\in A","context":"egal-accountability sense. **Public interfaces:** - `observe(edge, actor_id) → AttributionRecord` — records that actor \\(a \\in A\\) produced or consumed edge \\(e\\). - `attribution_trail(region, time_r","source_id":"thesis_session","maturity":"defined"},{"id":"F0039","source_file":"thesis.md","source_line":325,"latex":"\\mathcal{S}","context":"aft-morrow-sogomonian-exec-outcome-attest`. --- ### reasoning spine — `reasoning core` **Repo:** `szl-holdings/reasoning core` **Formal role in \\(\\mathcal{S}\\):** The reasoning spine is the append-only coordination and protocol bridge","source_id":"thesis_session","maturity":"defined"},{"id":"F0040","source_file":"thesis.md","source_line":325,"latex":"\\langle e_1, e_2, \\ldots, e_n \\rangle \\subseteq E","context":"ordered, hash-verified record of every state transition across the body graph. Formally, `reasoning core` maintains the sequence \\(\\langle e_1, e_2, \\ldots, e_n \\rangle \\subseteq E\\) ordered by timestamp, with","source_id":"thesis_session","maturity":"defined"},{"id":"F0041","source_file":"thesis.md","source_line":339,"latex":"O(\\log n)","context":"(identified in the runtime roadmap) would upgrade the reasoning spine's linear hash-chain to a directed acyclic graph supporting \\(O(\\log n)\\) subset inclusion proofs — enabling privacy-preserving audits for re","source_id":"thesis_session","maturity":"defined"},{"id":"F0042","source_file":"thesis.md","source_line":347,"latex":"\\mathcal{S}","context":"nce in the enterprise segment. --- ### Skeleton — `lutar-lean` **Repo:** `szl-holdings/lutar-lean` **Formal role in \\(\\mathcal{S}\\):** The Skeleton is the formal scaffold — the Lean 4 axioms and M","source_id":"thesis_session","maturity":"defined"},{"id":"F0043","source_file":"thesis.md","source_line":347,"latex":"\\{A1, A2, A3, A4\\}","context":"es not execute at runtime; it is the *proof that the runtime is correct*. Formally, `lutar-lean` provides the axiom set \\(\\{A1, A2, A3, A4\\}\\) and the derived theorems (Λ uniqueness, Bound theorem) th","source_id":"thesis_session","maturity":"conjectured"},{"id":"F0044","source_file":"thesis.md","source_line":347,"latex":"\\Lambda","context":"A2, A3, A4\\}\\) and the derived theorems (Λ uniqueness, Bound theorem) that constitute a machine-checked certificate for \\(\\Lambda\\). If the Skeleton's `sorry` count is zero, the gate the Brain Stem en","source_id":"thesis_session","maturity":"conjectured"},{"id":"F0045","source_file":"thesis.md","source_line":351,"latex":"\\Lambda","context":"statements of A1 (monotonicity), A2 (homogeneity), A3 (Egyptian-exact), A4 (bounded). - `Uniqueness.lean` — Theorem 1: \\(\\Lambda\\) is the unique function satisfying A1–A4; proof scaffold with tracked ","source_id":"thesis_session","maturity":"conjectured"},{"id":"F0046","source_file":"thesis.md","source_line":367,"latex":"\\mathcal{S}","context":"*Repos:** `szl-holdings/counsel` (governance UI), `szl-holdings/terra` (dashboards and visualization) **Formal role in \\(\\mathcal{S}\\):** The Hands are the tooling and visualization surfaces — the co","source_id":"thesis_session","maturity":"defined"},{"id":"F0047","source_file":"thesis.md","source_line":371,"latex":"\\Lambda","context":"as an interactive SVG, streaming live receipt counts via SSE from `/api/chain/stream`; node colors reflect the current \\(\\Lambda\\) score band (green ≥ 0.95, amber 0.90–0.95, red < 0.90). The planned \"","source_id":"thesis_session","maturity":"defined"},{"id":"F0048","source_file":"thesis.md","source_line":386,"latex":"\\mathcal{S}","context":"*is* the system. --- ### Full Body — `ouroboros-thesis` **Repo:** `szl-holdings/ouroboros-thesis` **Formal role in \\(\\mathcal{S}\\):** The Full Body is the public-record thesis — the DOI-pinned, ve","source_id":"thesis_session","maturity":"defined"},{"id":"F0049","source_file":"thesis.md","source_line":386,"latex":"\\mathcal{S}","context":"l Body is the public-record thesis — the DOI-pinned, versioned document that constitutes the canonical specification of \\(\\mathcal{S}\\). Formally, `ouroboros-thesis` defines the normative description ","source_id":"thesis_session","maturity":"defined"},{"id":"F0050","source_file":"thesis.md","source_line":405,"latex":"\\mathcal{S}","context":"d identity anchoring), `szl-holdings/szl-cookbook` (reference implementations / developer onboarding) **Formal role in \\(\\mathcal{S}\\):** The Vessels and Chakras collectively form the trust mesh and ","source_id":"thesis_session","maturity":"defined"},{"id":"F0051","source_file":"thesis.md","source_line":421,"latex":"\\varepsilon","context":"eue under the covenant pack schema. --- ## Cross-Region Contracts Every edge in \\(E\\) carries a **receipt envelope** \\(\\varepsilon\\). The envelope is a typed, signed, content-addressed record that ","source_id":"thesis_session","maturity":"defined"},{"id":"F0052","source_file":"thesis.md","source_line":421,"latex":"\\Lambda","context":"es a **receipt envelope** \\(\\varepsilon\\). The envelope is a typed, signed, content-addressed record that provides: the \\(\\Lambda\\) score vector, the dual-witness closure status (\\(\\rho\\)), the actor ","source_id":"thesis_session","maturity":"defined"},{"id":"F0053","source_file":"thesis.md","source_line":479,"latex":"\\Lambda","context":"_lambda(axes) → Receipt` — any MCP-compatible client (Claude Desktop, Cursor, enterprise agent frameworks) can call the \\(\\Lambda\\) gate as a typed tool and receive a signed receipt in the tool respon","source_id":"thesis_session","maturity":"defined"},{"id":"F0054","source_file":"thesis.md","source_line":507,"latex":"\\mathcal{S}","context":"the 8-Region Model Structurally Surpasses the Leaders Each major framework or protocol is a partial instantiation of \\(\\mathcal{S}\\). The gap is structural: the missing region is not a feature that","source_id":"thesis_session","maturity":"defined"},{"id":"F0055","source_file":"thesis.md","source_line":515,"latex":"\\Lambda_9","context":"l engineering pattern, but skills are *files*, not services with receipts. A Brain Stem can issue a decision that fails \\(\\Lambda_9\\) moralGrounding; in the Managed Agents architecture there is no mec","source_id":"thesis_session","maturity":"defined"},{"id":"F0056","source_file":"thesis.md","source_line":515,"latex":"\\mathcal{S}","context":"fails \\(\\Lambda_9\\) moralGrounding; in the Managed Agents architecture there is no mechanism to detect or block it. In \\(\\mathcal{S}\\), that decision never exits the Brain Stem. **Mastra** (22K+ GitH","source_id":"thesis_session","maturity":"defined"},{"id":"F0057","source_file":"thesis.md","source_line":517,"latex":"\\Lambda","context":"ource agent framework in the TypeScript ecosystem. Mastra has no Skeleton: there are no Lean 4 proofs. It has no formal \\(\\Lambda\\) gate — behavioral constraints are implemented as runtime checks with","source_id":"thesis_session","maturity":"defined"},{"id":"F0058","source_file":"thesis.md","source_line":567,"latex":"\\lambda_1","context":"l(\\lambda_1(c),\\, \\lambda_2(c),\\, \\ldots,\\, \\lambda_9(c)\\bigr) \\in [0,1]^9 \\] The nine axes are defined as follows. **\\(\\lambda_1\\): moralGrounding.** Measures the degree to which a proposed action ","source_id":"thesis_session","maturity":"defined"},{"id":"F0059","source_file":"thesis.md","source_line":567,"latex":"\\lambda_1","context":"nce policies, and principal hierarchies that the operator has encoded in the agent's governing covenant. Operationally, \\(\\lambda_1\\) is the normalized cosine similarity between the action's intent em","source_id":"thesis_session","maturity":"defined"},{"id":"F0060","source_file":"thesis.md","source_line":567,"latex":"[0,1]","context":"mbedding and a reference \"moral anchor\" embedding, averaged over the operator's registered covenant clauses, clamped to \\([0,1]\\). The floor constraint \\(\\lambda_1 \\geq 0.95\\) is a hard asymptote: an ","source_id":"thesis_session","maturity":"defined"},{"id":"F0061","source_file":"thesis.md","source_line":567,"latex":"\\lambda_1 \\geq 0.95","context":"anchor\" embedding, averaged over the operator's registered covenant clauses, clamped to \\([0,1]\\). The floor constraint \\(\\lambda_1 \\geq 0.95\\) is a hard asymptote: an agent that is even marginally mo","source_id":"thesis_session","maturity":"defined"},{"id":"F0062","source_file":"thesis.md","source_line":569,"latex":"\\lambda_2","context":"even marginally morally misaligned fails the gate irrespective of how perfectly calibrated the other eight axes are. **\\(\\lambda_2\\): measurabilityHonesty.** Measures whether an action's declared eff","source_id":"thesis_session","maturity":"defined"},{"id":"F0063","source_file":"thesis.md","source_line":571,"latex":"\\lambda_3","context":"ine clause \"no hallucinations no bandaids; test test test\" by making measurement-honesty a prerequisite for passage. **\\(\\lambda_3\\): epistemicHumility.** Scores the agent's acknowledgment of its own","source_id":"thesis_session","maturity":"defined"},{"id":"F0064","source_file":"thesis.md","source_line":571,"latex":"\\lambda_3 = 1 - \\mathbb{E}[|\\text{conf}(c) - \\text{acc}(c)|]","context":"sparse scores low on this axis. The scoring function penalizes unjustified confidence using a calibration-error analog: \\(\\lambda_3 = 1 - \\mathbb{E}[|\\text{conf}(c) - \\text{acc}(c)|]\\) where \\(\\text{c","source_id":"thesis_session","maturity":"defined"},{"id":"F0065","source_file":"thesis.md","source_line":571,"latex":"\\text{conf}(c)","context":"ied confidence using a calibration-error analog: \\(\\lambda_3 = 1 - \\mathbb{E}[|\\text{conf}(c) - \\text{acc}(c)|]\\) where \\(\\text{conf}(c)\\) is the agent's stated confidence and \\(\\text{acc}(c)\\) is the","source_id":"thesis_session","maturity":"defined"},{"id":"F0066","source_file":"thesis.md","source_line":571,"latex":"\\text{acc}(c)","context":"da_3 = 1 - \\mathbb{E}[|\\text{conf}(c) - \\text{acc}(c)|]\\) where \\(\\text{conf}(c)\\) is the agent's stated confidence and \\(\\text{acc}(c)\\) is the empirically measured accuracy over a calibration set. ","source_id":"thesis_session","maturity":"defined"},{"id":"F0067","source_file":"thesis.md","source_line":573,"latex":"\\lambda_4","context":"is the agent's stated confidence and \\(\\text{acc}(c)\\) is the empirically measured accuracy over a calibration set. **\\(\\lambda_4\\): counterfactualAwareness.** Measures whether the agent has consider","source_id":"thesis_session","maturity":"defined"},{"id":"F0068","source_file":"thesis.md","source_line":575,"latex":"\\lambda_5","context":"res 0.0 and a uniformly distributed consequence distribution over the operator-defined consequence space scores 1.0. **\\(\\lambda_5\\): temporalConsistency.** Measures the stability of the gate verdict","source_id":"thesis_session","maturity":"defined"},{"id":"F0069","source_file":"thesis.md","source_line":575,"latex":"t + \\Delta","context":"Measures the stability of the gate verdict under repeated evaluation on the same input at two different times \\(t\\) and \\(t + \\Delta\\). Let \\(v_t\\) and \\(v_{t+\\Delta}\\) denote the Λ₉ composite scores ","source_id":"thesis_session","maturity":"defined"},{"id":"F0070","source_file":"thesis.md","source_line":575,"latex":"v_{t+\\Delta}","context":"te verdict under repeated evaluation on the same input at two different times \\(t\\) and \\(t + \\Delta\\). Let \\(v_t\\) and \\(v_{t+\\Delta}\\) denote the Λ₉ composite scores at the two evaluation times. The","source_id":"thesis_session","maturity":"defined"},{"id":"F0071","source_file":"thesis.md","source_line":581,"latex":"\\lambda_5 = 1.0","context":"Then: \\[ \\lambda_5 = \\max\\!\\Bigl(0,\\; 1 - 4\\,\\bigl(v_t - v_{t+\\Delta}\\bigr)^2\\Bigr) \\] A zero-drift evaluation scores \\(\\lambda_5 = 1.0\\). A drift of 0.05 in the composite score yields \\(\\lambda_5 =","source_id":"thesis_session","maturity":"defined"},{"id":"F0072","source_file":"thesis.md","source_line":581,"latex":"\\lambda_5 = 0.99","context":"ta}\\bigr)^2\\Bigr) \\] A zero-drift evaluation scores \\(\\lambda_5 = 1.0\\). A drift of 0.05 in the composite score yields \\(\\lambda_5 = 0.99\\). A drift of 0.25 yields \\(\\lambda_5 = 0.75\\), below the ≥ 0","source_id":"thesis_session","maturity":"defined"},{"id":"F0073","source_file":"thesis.md","source_line":581,"latex":"\\lambda_5 = 0.75","context":"scores \\(\\lambda_5 = 1.0\\). A drift of 0.05 in the composite score yields \\(\\lambda_5 = 0.99\\). A drift of 0.25 yields \\(\\lambda_5 = 0.75\\), below the ≥ 0.90 conjunctive floor. This axis operationaliz","source_id":"thesis_session","maturity":"defined"},{"id":"F0074","source_file":"thesis.md","source_line":583,"latex":"\\lambda_6","context":"-identical replay guarantee: a system that cannot reproduce its own gate verdict is not operating deterministically. **\\(\\lambda_6\\): evidenceProvenance.** Measures whether every empirical claim embe","source_id":"thesis_session","maturity":"defined","puriq_ref":"F1","lean_ref":"f1_replay_fold_deterministic"},{"id":"F0075","source_file":"thesis.md","source_line":585,"latex":"\\lambda_7","context":"ertions score at most 0.50. The scoring function is the fraction of claim tokens for which provenance is resolvable. **\\(\\lambda_7\\): actorIdentity.** Measures the definiteness of the acting agent's ","source_id":"thesis_session","maturity":"defined"},{"id":"F0076","source_file":"thesis.md","source_line":587,"latex":"\\lambda_8","context":"ting under delegated authority — the score decays as a function of delegation depth to penalize opaque proxy chains. **\\(\\lambda_8\\): axiomConsistency.** Measures whether the proposed action is inter","source_id":"thesis_session","maturity":"defined"},{"id":"F0077","source_file":"thesis.md","source_line":589,"latex":"\\lambda_9","context":"Lean 4 formalization: it enforces, at runtime, the constraints that are statically verified at theorem-proving time. **\\(\\lambda_9\\): coherence.** Measures the multi-step logical coherence of the age","source_id":"thesis_session","maturity":"defined"},{"id":"F0078","source_file":"thesis.md","source_line":589,"latex":"A_1, A_2, \\ldots, A_k","context":"-step logical coherence of the agent's plan across the action sequence, not just for the current step in isolation. Let \\(A_1, A_2, \\ldots, A_k\\) denote the \\(k\\) preceding actions in the current sess","source_id":"thesis_session","maturity":"defined"},{"id":"F0079","source_file":"thesis.md","source_line":589,"latex":"(A_i, A_{i+1})","context":"e the \\(k\\) preceding actions in the current session. The coherence score is the proportion of consecutive action-pairs \\((A_i, A_{i+1})\\) for which the precondition of \\(A_{i+1}\\) is satisfied by the","source_id":"thesis_session","maturity":"defined"},{"id":"F0080","source_file":"thesis.md","source_line":589,"latex":"A_{i+1}","context":"ion. The coherence score is the proportion of consecutive action-pairs \\((A_i, A_{i+1})\\) for which the precondition of \\(A_{i+1}\\) is satisfied by the postcondition of \\(A_i\\), under the operator's p","source_id":"thesis_session","maturity":"defined"},{"id":"F0081","source_file":"thesis.md","source_line":589,"latex":"\\lambda_9 = 1.0","context":"ied by the postcondition of \\(A_i\\), under the operator's precondition/postcondition schema. For the base case \\(k=0\\), \\(\\lambda_9 = 1.0\\). ### The conjunctive gate condition The Λ₉ gate passes if ","source_id":"thesis_session","maturity":"defined"},{"id":"F0082","source_file":"thesis.md","source_line":599,"latex":"\\lambda_1 = 0.50","context":"for the following reason. A single composite score — even a geometric mean — can mask localized failures. An agent with \\(\\lambda_1 = 0.50\\) (severely morally misaligned) and all remaining axes at \\(1","source_id":"thesis_session","maturity":"defined"},{"id":"F0083","source_file":"thesis.md","source_line":599,"latex":"\\prod_{i}^{1/9} = 0.50^{1/9} \\approx 0.926","context":"with \\(\\lambda_1 = 0.50\\) (severely morally misaligned) and all remaining axes at \\(1.0\\) achieves a geometric mean of \\(\\prod_{i}^{1/9} = 0.50^{1/9} \\approx 0.926\\), which would pass a ≥ 0.90 single-","source_id":"thesis_session","maturity":"defined"},{"id":"F0084","source_file":"thesis.md","source_line":599,"latex":"\\lambda_1","context":"gle-score gate. The conjunctive AND structure prevents this: every axis is a blocking veto. The two elevated floors for \\(\\lambda_1\\) and \\(\\lambda_2\\) add a second layer of asymmetry — these are the ","source_id":"thesis_session","maturity":"defined"},{"id":"F0085","source_file":"thesis.md","source_line":599,"latex":"\\lambda_2","context":"e conjunctive AND structure prevents this: every axis is a blocking veto. The two elevated floors for \\(\\lambda_1\\) and \\(\\lambda_2\\) add a second layer of asymmetry — these are the axes most directly","source_id":"thesis_session","maturity":"defined"},{"id":"F0086","source_file":"thesis.md","source_line":605,"latex":"m \\in \\{0,1\\}^9","context":"to the receipt structure. Rather than publishing the raw nine (or ten) axis scores, the receipt carries a bitfield mask \\(m \\in \\{0,1\\}^9\\) in which \\(m_i = 1\\) if and only if \\(\\lambda_i\\) was evalua","source_id":"thesis_session","maturity":"defined"},{"id":"F0087","source_file":"thesis.md","source_line":605,"latex":"m_i = 1","context":"her than publishing the raw nine (or ten) axis scores, the receipt carries a bitfield mask \\(m \\in \\{0,1\\}^9\\) in which \\(m_i = 1\\) if and only if \\(\\lambda_i\\) was evaluated and passed its floor. The","source_id":"thesis_session","maturity":"defined"},{"id":"F0088","source_file":"thesis.md","source_line":605,"latex":"\\lambda_i","context":"nine (or ten) axis scores, the receipt carries a bitfield mask \\(m \\in \\{0,1\\}^9\\) in which \\(m_i = 1\\) if and only if \\(\\lambda_i\\) was evaluated and passed its floor. The raw scores are withheld fro","source_id":"thesis_session","maturity":"defined"},{"id":"F0089","source_file":"thesis.md","source_line":611,"latex":"\\theta_i = 0.95","context":"ity profile of the agent. Formally, the mask is computed as: \\[ m_i = \\mathbf{1}[\\lambda_i(c) \\geq \\theta_i] \\] where \\(\\theta_i = 0.95\\) for \\(i \\in \\{1,2\\}\\) and \\(\\theta_i = 0.90\\) otherwise. The","source_id":"thesis_session","maturity":"defined"},{"id":"F0090","source_file":"thesis.md","source_line":611,"latex":"i \\in \\{1,2\\}","context":". Formally, the mask is computed as: \\[ m_i = \\mathbf{1}[\\lambda_i(c) \\geq \\theta_i] \\] where \\(\\theta_i = 0.95\\) for \\(i \\in \\{1,2\\}\\) and \\(\\theta_i = 0.90\\) otherwise. The gate passes iff \\(\\sum_","source_id":"thesis_session","maturity":"defined"},{"id":"F0091","source_file":"thesis.md","source_line":611,"latex":"\\theta_i = 0.90","context":"s computed as: \\[ m_i = \\mathbf{1}[\\lambda_i(c) \\geq \\theta_i] \\] where \\(\\theta_i = 0.95\\) for \\(i \\in \\{1,2\\}\\) and \\(\\theta_i = 0.90\\) otherwise. The gate passes iff \\(\\sum_i m_i = 9\\) (or 10 und","source_id":"thesis_session","maturity":"defined"},{"id":"F0092","source_file":"thesis.md","source_line":611,"latex":"\\sum_i m_i = 9","context":"eq \\theta_i] \\] where \\(\\theta_i = 0.95\\) for \\(i \\in \\{1,2\\}\\) and \\(\\theta_i = 0.90\\) otherwise. The gate passes iff \\(\\sum_i m_i = 9\\) (or 10 under Λ₁₀). The mask is committed via SHA-256 and incl","source_id":"thesis_session","maturity":"defined"},{"id":"F0093","source_file":"thesis.md","source_line":627,"latex":"\\textit{parent\\_hash}","context":"\\textit{timestamp},\\; \\vec{\\lambda},\\; \\rho\\_\\textit{witness\\_set},\\; \\textit{signature}\\bigr) \\] The fields are: - **\\(\\textit{parent\\_hash}\\)**: The SHA-256 digest of receipt \\(r_{i-1}\\). For the ","source_id":"thesis_session","maturity":"defined"},{"id":"F0094","source_file":"thesis.md","source_line":627,"latex":"r_{i-1}","context":"s\\_set},\\; \\textit{signature}\\bigr) \\] The fields are: - **\\(\\textit{parent\\_hash}\\)**: The SHA-256 digest of receipt \\(r_{i-1}\\). For the genesis receipt, this is the SHA-256 of a protocol-specifie","source_id":"thesis_session","maturity":"defined"},{"id":"F0095","source_file":"thesis.md","source_line":628,"latex":"\\textit{content\\_digest}","context":"this is the SHA-256 of a protocol-specified null seed. This field creates the backward-pointing link of the chain. - **\\(\\textit{content\\_digest}\\)**: The SHA-256 of the canonical JSON serialization o","source_id":"thesis_session","maturity":"defined"},{"id":"F0096","source_file":"thesis.md","source_line":629,"latex":"\\textit{actor}","context":"fore any side-effectful execution. This binds the gate verdict irrevocably to the specific input that triggered it. - **\\(\\textit{actor}\\)**: The identifier of the acting agent as registered in the pr","source_id":"thesis_session","maturity":"defined"},{"id":"F0097","source_file":"thesis.md","source_line":629,"latex":"\\lambda_7","context":"t. - **\\(\\textit{actor}\\)**: The identifier of the acting agent as registered in the principal registry. Corresponds to \\(\\lambda_7\\) (actorIdentity). - **\\(\\textit{timestamp}\\)**: A monotonic timesta","source_id":"thesis_session","maturity":"defined"},{"id":"F0098","source_file":"thesis.md","source_line":630,"latex":"\\textit{timestamp}","context":"entifier of the acting agent as registered in the principal registry. Corresponds to \\(\\lambda_7\\) (actorIdentity). - **\\(\\textit{timestamp}\\)**: A monotonic timestamp in milliseconds since the Unix e","source_id":"thesis_session","maturity":"defined"},{"id":"F0099","source_file":"thesis.md","source_line":631,"latex":"\\vec{\\lambda}","context":": A monotonic timestamp in milliseconds since the Unix epoch, drawn from a pinned, non-forgeable source (see §4.6). - **\\(\\vec{\\lambda}\\)**: The full nine-dimensional Λ vector, or the `lambda9_mask` b","source_id":"thesis_session","maturity":"defined"},{"id":"F0100","source_file":"thesis.md","source_line":632,"latex":"\\rho\\_\\textit{witness\\_set}","context":"vec{\\lambda}\\)**: The full nine-dimensional Λ vector, or the `lambda9_mask` bitfield under the Λ₁₀ privacy variant. - **\\(\\rho\\_\\textit{witness\\_set}\\)**: The set of co-witnesses whose signatures are ","source_id":"thesis_session","maturity":"defined"}],"definitions":[],"canonical_constants":[{"id":"K01","name":"receipt_build_p50_us","value":"11.5","unit":"µs","ops_per_sec":"62764","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K02","name":"receipt_build_p99_us","value":"50.7","unit":"µs","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K03","name":"receipt_verify_p50_us","value":"10.4","unit":"µs","ops_per_sec":"74149","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K04","name":"lambda9_base_p50_us","value":"3.12","unit":"µs","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K05","name":"lambda9_composed_p50_us","value":"3.29","unit":"µs","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K06","name":"rho_closure_rate","value":"100%","denominator":"8000/8000 paired calls","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K07","name":"platform_v11_http_calls","value":"24800","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K08","name":"platform_v11_lambda10_overhead_p50_ms","value":"0.49-0.59","unit":"ms/route","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K09","name":"platform_v11_p99_ms","value":"1.27","unit":"ms","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K10","name":"replay_root","value":"1ed4d253e876f428c6e182f8ed8a569585442556b339529bbf8ec2522581698b","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K11","name":"test_count_production","value":"218/218","source":"THESIS_BRIEF.md","doi":"10.5281/zenodo.20119582","maturity":"measured"},{"id":"K12","name":"test_count_demo","value":"37/37","source":"replit_payload_build","commit":"demo","maturity":"measured"},{"id":"K13","name":"bekenstein_indicator_fire_rate","value":"49.5%","source":"thesis.md §4.5","doi":"10.5281/zenodo.20119582","maturity":"measured"}],"extracted_constants":[{"id":"C0001","name":"receipt_build_p50_us","value":"11.5","raw":"receipt build p50 = 11.5 µs","context":"0).** A production Rust runtime with 218/218 tests passing, receipt build p50 = 11.5 µs (62,764 ops/sec), receipt verify p50 = 10.4 µs (74,149 ops/sec","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0003","name":"receipt_verify_p50_us","value":"10.4","raw":"receipt verify p50 = 10.4 µs","context":"ests passing, receipt build p50 = 11.5 µs (62,764 ops/sec), receipt verify p50 = 10.4 µs (74,149 ops/sec), and 100% ρ-closure on 8,000/8,000 paired ca","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0008","name":"receipt_build_p99_us","value":"50.7","raw":"p99 = 50.7 µs","context":"→ Receipt` — constructs a receipt envelope; p50 = 11.5 µs, p99 = 50.7 µs, throughput 62,764 ops/sec. - `verify_receipt(receipt) → bool` — verifies byt","source_file":"thesis.md","source_line":269,"source_id":"thesis_session"},{"id":"C0009","name":"ops_per_sec","value":"62764","raw":"62,764 ops/sec","context":"me with 218/218 tests passing, receipt build p50 = 11.5 µs (62,764 ops/sec), receipt verify p50 = 10.4 µs (74,149 ops/sec), and 100% ρ-closure on 8,00","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0010","name":"ops_per_sec","value":"74149","raw":"74,149 ops/sec","context":"0 = 11.5 µs (62,764 ops/sec), receipt verify p50 = 10.4 µs (74,149 ops/sec), and 100% ρ-closure on 8,000/8,000 paired calls [9]. The runtime enforces ","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0023","name":"ops_per_sec","value":"200000","raw":"200,000 ops/sec","context":"arget for the Merkle-DAG upgrade is **5 µs build p50** at **200,000 ops/sec**. This is a 2.3× improvement in latency and a 3.2× improvement in through","source_file":"thesis.md","source_line":2100,"source_id":"thesis_session"},{"id":"C0027","name":"lambda9_base_p50_us","value":"3.12","raw":"Λ₉ base p50 = 3.12 µs","context":"9]. The runtime enforces a 9-axis conjunctive quality gate (Λ₉ base p50 = 3.12 µs) and a Λ₁₀ platform layer with 0.49–0.59 ms/route overhead validated","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0029","name":"tests_passed","value":"218","raw":"218/218 passing","context":"ify-p50 with 100% ρ-closure on 8,000/8,000 paired calls and 218/218 passing tests. We propose `lambda9_mask` as a privacy-preserving extension to SCIT","source_file":"thesis.md","source_line":27,"source_id":"thesis_session"},{"id":"C0031","name":"tests_passed","value":"37","raw":"37/37 tests","context":"nt invocations of the same input. The demo payload confirms 37/37 tests passing in the Replit environment (33 `ouroboros` core + 4 `a11oy` covenant), ","source_file":"thesis.md","source_line":249,"source_id":"thesis_session"},{"id":"C0044","name":"http_calls","value":"24800","raw":"24,800 HTTP calls","context":"orm layer with 0.49–0.59 ms/route overhead validated across 24,800 HTTP calls. 2. **Lean 4 formal axioms and proofs (`lutar-lean`).** A Mathlib-groun","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0053","name":"lambda_p50_us","value":"11.5","raw":"p50 = 11.5 µs (62,764 ops/sec), receipt verify p50 = 10.4 µs (74,149 ops/sec), and 100% ρ-closure on 8,000/8,000 paired calls [9]. The runtime enforces a 9-axis conjunctive quality gate (Λ","context":"tion Rust runtime with 218/218 tests passing, receipt build p50 = 11.5 µs (62,764 ops/sec), receipt verify p50 = 10.4 µs (74,149 ops/sec), and 100% ρ-","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0054","name":"lambda_p50_us","value":"3.12","raw":"p50 = 3.12 µs) and a Λ","context":"runtime enforces a 9-axis conjunctive quality gate (Λ₉ base p50 = 3.12 µs) and a Λ₁₀ platform layer with 0.49–0.59 ms/route overhead validated across ","source_file":"thesis.md","source_line":83,"source_id":"thesis_session"},{"id":"C0055","name":"receipt_build_p99_us","value":"50.7","raw":"p99 = 50.7 µs","context":"bers - **218/218 tests** - Receipt build p50 = **11.5 µs**, p99 = 50.7 µs (62,764 ops/sec) - Receipt verify p50 = **10.4 µs** (74,149 ops/sec) - Λ₉ ba","source_file":"THESIS_BRIEF.md","source_line":57,"source_id":"thesis_brief"},{"id":"C0056","name":"ops_per_sec","value":"62764","raw":"62,764 ops/sec","context":"8 tests** - Receipt build p50 = **11.5 µs**, p99 = 50.7 µs (62,764 ops/sec) - Receipt verify p50 = **10.4 µs** (74,149 ops/sec) - Λ₉ base p50 = 3.12 µ","source_file":"THESIS_BRIEF.md","source_line":57,"source_id":"thesis_brief"},{"id":"C0057","name":"ops_per_sec","value":"74149","raw":"74,149 ops/sec","context":"0.7 µs (62,764 ops/sec) - Receipt verify p50 = **10.4 µs** (74,149 ops/sec) - Λ₉ base p50 = 3.12 µs / composed p50 = 3.29 µs - 100% ρ-closure on **8,0","source_file":"THESIS_BRIEF.md","source_line":58,"source_id":"thesis_brief"},{"id":"C0058","name":"lambda9_base_p50_us","value":"3.12","raw":"Λ₉ base p50 = 3.12 µs","context":"/sec) - Receipt verify p50 = **10.4 µs** (74,149 ops/sec) - Λ₉ base p50 = 3.12 µs / composed p50 = 3.29 µs - 100% ρ-closure on **8,000/8,000 paired ca","source_file":"THESIS_BRIEF.md","source_line":59,"source_id":"thesis_brief"},{"id":"C0059","name":"tests_passed","value":"218","raw":"218/218 tests","context":"boros v6.3.0 (released 2026-05-13) — production numbers - **218/218 tests** - Receipt build p50 = **11.5 µs**, p99 = 50.7 µs (62,764 ops/sec) - Receip","source_file":"THESIS_BRIEF.md","source_line":56,"source_id":"thesis_brief"},{"id":"C0060","name":"tests_passed","value":"37","raw":"37/37 tests","context":"plit demo payload (verified live 2026-05-15 at 11:22 EDT) - 37/37 tests passing (33 ouroboros core + 4 a11oy covenant) - `bash scripts/doctrine-check.","source_file":"THESIS_BRIEF.md","source_line":68,"source_id":"thesis_brief"},{"id":"C0061","name":"http_calls","value":"24800","raw":"24,800 HTTP calls","context":"ρ-closure on **8,000/8,000 paired calls** - Platform v11: **24,800 HTTP calls validated**, Λ₁₀ overhead 0.49–0.59 ms/route, p99 ≤ 1.27 ms - Apache-2.0","source_file":"THESIS_BRIEF.md","source_line":61,"source_id":"thesis_brief"},{"id":"C0062","name":"receipt_build_p50_us","value":"11.5","raw":"Receipt build p50 = 11.5 µs","context":"e not. | 12–18 months — they have a runtime, not a kernel | Receipt build p50 = 11.5 µs · v11 DOI [`zenodo.20119582`](https://doi.org/10.5281/zenodo.2","source_file":"master_evolution_memo.md","source_line":81,"source_id":"master_memo"},{"id":"C0064","name":"receipt_build_p99_us","value":"50.7","raw":"p99 = 50.7 µs","context":"218 / 218 passing** | | Receipt build | p50 = **11.5 µs** · p99 = 50.7 µs · 62,764 ops/sec | | Receipt verify | p50 = **10.4 µs** · 74,149 ops/sec | |","source_file":"master_evolution_memo.md","source_line":36,"source_id":"master_memo"},{"id":"C0065","name":"ops_per_sec","value":"62764","raw":"62,764 ops/sec","context":"g** | | Receipt build | p50 = **11.5 µs** · p99 = 50.7 µs · 62,764 ops/sec | | Receipt verify | p50 = **10.4 µs** · 74,149 ops/sec | | Λ₉ base | p50 =","source_file":"master_evolution_memo.md","source_line":36,"source_id":"master_memo"},{"id":"C0066","name":"ops_per_sec","value":"74149","raw":"74,149 ops/sec","context":"s · 62,764 ops/sec | | Receipt verify | p50 = **10.4 µs** · 74,149 ops/sec | | Λ₉ base | p50 = 3.12 µs | | Λ₉ composed | p50 = **3.29 µs** | | ρ-closu","source_file":"master_evolution_memo.md","source_line":37,"source_id":"master_memo"},{"id":"C0067","name":"tests_passed","value":"37","raw":"37/37 tests","context":"ic-facing Replit demo (`replit_a11oy_demo`) currently shows 37/37 tests passing. The upstream runtime is **218/218**. Every Series A diligence visitor","source_file":"master_evolution_memo.md","source_line":141,"source_id":"master_memo"},{"id":"C0068","name":"tests_passed","value":"218","raw":"218/218 tests","context":"astructure. **Success metric:** the Replit demo URL shows \"218/218 tests · v6.3.0 · OpenSSF 8.2\" with the same badge as the canonical repo, refreshed","source_file":"master_evolution_memo.md","source_line":152,"source_id":"master_memo"},{"id":"C0070","name":"receipt_build_p50_us","value":"11.5","raw":"Receipt build p50=11.5 µs","context":"rg/doc/draft-morrow-sogomonian-exec-outcome-attest/00/)). | Receipt build p50=11.5 µs, 218/218 tests, v11 DOI: [10.5281/zenodo.20119582](https://doi.o","source_file":"pm_memo.md","source_line":54,"source_id":"pm_memo"},{"id":"C0072","name":"ops_per_sec","value":"62764","raw":"62,764 ops/sec","context":"Claim:** Receipt build p50 = 11.5 µs, verify p50 = 10.4 µs, 62,764 ops/sec, 218/218 runtime tests, ρ-closure 8,000/8,000, byte-identical replay root `","source_file":"pm_memo.md","source_line":81,"source_id":"pm_memo"},{"id":"C0073","name":"tests_passed","value":"218","raw":"218/218 tests","context":"ian-exec-outcome-attest/00/)). | Receipt build p50=11.5 µs, 218/218 tests, v11 DOI: [10.5281/zenodo.20119582](https://doi.org/10.5281/zenodo.20119582)","source_file":"pm_memo.md","source_line":54,"source_id":"pm_memo"},{"id":"C0076","name":"tests_passed","value":"37","raw":"37/37 tests","context":"arity + Public Scorecard **Thesis:** The Replit demo shows 37/37 tests (ouroboros 33 + a11oy 4). The live runtime is 218/218. This delta undersells t","source_file":"pm_memo.md","source_line":135,"source_id":"pm_memo"},{"id":"C0077","name":"http_calls","value":"24800","raw":"24,800 HTTP calls","context":"ships a Λ₉-gated resource. | Ouroboros v6.3.0 platform v11: 24,800 HTTP calls, Λ₁₀ overhead 0.49–0.59 ms/route | | **Mastra** ([mastra.ai](https://mas","source_file":"pm_memo.md","source_line":57,"source_id":"pm_memo"},{"id":"C0078","name":"receipt_build_p50_us","value":"11.5","raw":"Receipt build p50 = 11.5 µs","context":"-witness guarantee baked into `ouroboros`'s runtime kernel. Receipt build p50 = 11.5 µs; verify p50 = 10.4 µs; 100% ρ-closure on 8,000/8,000 paired ca","source_file":"cto_memo.md","source_line":78,"source_id":"cto_memo"},{"id":"C0079","name":"ops_per_sec","value":"62764","raw":"62,764 ops/sec","context":"in · p50 = 11.5 µs build / 10.4 µs verify · 218/218 tests · 62,764 ops/sec | | `a11oy` | Covenant policy + approval queue | **HEART** (consent + pulse","source_file":"cto_memo.md","source_line":18,"source_id":"cto_memo"},{"id":"C0080","name":"tests_passed","value":"218","raw":"218/218 tests","context":"ss · receipt chain · p50 = 11.5 µs build / 10.4 µs verify · 218/218 tests · 62,764 ops/sec | | `a11oy` | Covenant policy + approval queue | **HEART** ","source_file":"cto_memo.md","source_line":18,"source_id":"cto_memo"},{"id":"C0081","name":"ops_per_sec","value":"62764","raw":"62,764 ops/sec","context":"218 / 218 passing | 100% | | Receipt build p50 | 11.5 µs | 62,764 ops/sec | | Receipt build p99 | 50.7 µs | — | | Receipt verify p50 | 10.4 µs | 74,14","source_file":"runtime_memo.md","source_line":20,"source_id":"runtime_memo"},{"id":"C0082","name":"ops_per_sec","value":"74149","raw":"74,149 ops/sec","context":"build p99 | 50.7 µs | — | | Receipt verify p50 | 10.4 µs | 74,149 ops/sec | | Λ₉ base p50 | 3.12 µs | — | | Λ₉ composed p50 | 3.29 µs | — | | ρ-closur","source_file":"runtime_memo.md","source_line":22,"source_id":"runtime_memo"},{"id":"C0083","name":"tests_passed","value":"218","raw":"218/218 tests","context":"ary (5 lines) The ouroboros v6.3.0 runtime is confirmed at 218/218 tests, receipt build p50 11.5 µs, Λ₉ composed p50 3.29 µs, and 100% ρ-closure — al","source_file":"runtime_memo.md","source_line":404,"source_id":"runtime_memo"},{"id":"C0084","name":"http_calls","value":"11","raw":"11 HTTP calls","context":"9 µs | — | | ρ-closure | 8,000 / 8,000 | 100% | | Platform v11 HTTP calls | 24,800 | — | | Λ overhead p50 per route | 0.49–0.59 ms | — | | Λ overhead ","source_file":"runtime_memo.md","source_line":26,"source_id":"runtime_memo"},{"id":"C0085","name":"ops_per_sec","value":"74149","raw":"74,149 ops/sec","context":"pt verify p50 | **10.4 µs** | | Receipt verify throughput | 74,149 ops/sec | | Λ₉ base p50 | 3.12 µs | | Λ₉ composed p50 | 3.29 µs | | ρ-closure | 100","source_file":"data_memo.md","source_line":419,"source_id":"data_memo"}],"dois":[{"doi":"10.5281/zenodo.19944926","url":"https://doi.org/10.5281/zenodo.19944926","source_file":"thesis.md","source_line":18,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20119582","url":"https://doi.org/10.5281/zenodo.20119582","source_file":"thesis.md","source_line":19,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.19867281","url":"https://doi.org/10.5281/zenodo.19867281","source_file":"thesis.md","source_line":1740,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.19934129","url":"https://doi.org/10.5281/zenodo.19934129","source_file":"thesis.md","source_line":1741,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.19983066","url":"https://doi.org/10.5281/zenodo.19983066","source_file":"thesis.md","source_line":1743,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20020841","url":"https://doi.org/10.5281/zenodo.20020841","source_file":"thesis.md","source_line":1744,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20020845","url":"https://doi.org/10.5281/zenodo.20020845","source_file":"thesis.md","source_line":1745,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20020846","url":"https://doi.org/10.5281/zenodo.20020846","source_file":"thesis.md","source_line":1746,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20020848","url":"https://doi.org/10.5281/zenodo.20020848","source_file":"thesis.md","source_line":1747,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20020849","url":"https://doi.org/10.5281/zenodo.20020849","source_file":"thesis.md","source_line":1748,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20053148","url":"https://doi.org/10.5281/zenodo.20053148","source_file":"thesis.md","source_line":1749,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20053163","url":"https://doi.org/10.5281/zenodo.20053163","source_file":"thesis.md","source_line":1750,"source_id":"thesis_session"},{"doi":"10.5281/zenodo.20162352","url":"https://doi.org/10.5281/zenodo.20162352","source_file":"thesis.md","source_line":1752,"source_id":"thesis_session"}],"doctrine_clauses":[{"id":"DC1","clause":"Byline must be 'Lutar, Stephen P.' — never 'Jr.' or 'Stephen Paul'","source":"THESIS_BRIEF.md"},{"id":"DC2","clause":"8 forbidden patterns: see doctrine.json (FP-1..FP-8)","source":"PM_LEAD_CHARTER_V2.md"},{"id":"DC3","clause":"License allow-list: Apache-2.0, MIT, BSD-3-Clause, CC-BY-4.0","source":"THESIS_BRIEF.md"},{"id":"DC4","clause":"ORCID: 0009-0001-0110-4173","source":"THESIS_BRIEF.md"},{"id":"DC5","clause":"9-axis Λ >= 0.90 conjunctive AND; moralGrounding + measurabilityHonesty >= 0.95","source":"THESIS_BRIEF.md"},{"id":"DC6","clause":"Public-only ingestion: no private data, no proprietary code","source":"THESIS_BRIEF.md"},{"id":"DC7","clause":"5x byte-identical replay (deterministic)","source":"THESIS_BRIEF.md"},{"id":"DC8","clause":"No hallucinations; every empirical claim cites a verifiable artifact","source":"THESIS_BRIEF.md"}],"source_files":["thesis.md","THESIS_BRIEF.md","master_evolution_memo.md","pm_memo.md","cto_memo.md","runtime_memo.md","governance_memo.md","data_memo.md","anatomy_memo.md"],"zenodo_corpus":["10.5281/zenodo.19867281","10.5281/zenodo.19934129","10.5281/zenodo.19944926","10.5281/zenodo.19983066","10.5281/zenodo.20020841","10.5281/zenodo.20020846","10.5281/zenodo.20020845","10.5281/zenodo.20020848","10.5281/zenodo.20020849","10.5281/zenodo.20053148","10.5281/zenodo.20053163","10.5281/zenodo.20119582","10.5281/zenodo.20162352"],"proof_summary":{"locked_proven":8,"locked_ids":["F1","F4","F7","F11","F12","F18","F19","F22"],"experimental_sorry_free":21,"axiom_gated":3,"axiom_gated_detail":{"f13_tamper_evident":"hash_collision_resistant","f14_sigenv_verifiable":"ecdsa_unforgeable","f15_inclusion_binding":"h2_collision_resistant"},"conjecture":["F23"],"note":"Locked kernel proven=8 {F1,F4,F7,F11,F12,F18,F19,F22}; experimental scope Lutar/Puriq/Formulas has 21 sorry-free (excluded from locked count); F23 = Conjecture 1, NOT a theorem.","lean_repo":"szl-holdings/lutar-lean","lean_files":["Lutar/Puriq/Formulas/PuriqFormulaLean.lean","Lutar/Puriq/Formulas/F23_Uniqueness.lean"],"verification":"bare `lean` 4.13.0, 0 errors, 1 sorry (F23 only); #print axioms shows no sorryAx in any proved theorem.","source_report":"team/PROOFS_WAVE2_REPORT.md","wave3":{"campaign":"prove-wave-3 (C1-C20 research candidates)","source_report":"team/PROVE_WAVE3_REPORT.md","lean_repo":"szl-holdings/lutar-lean","commit_proofs":"775093f0f8ef7f530272c38d513c28fdaec3366b","commit_root_wiring":"02e44c30657c9986475ff7373113728f4ba38f67","lean_files":["Lutar/Wave3/Consensus.lean","Lutar/Wave3/MerkleKraft.lean","Lutar/Wave3/InfoEstim.lean","Lutar/Wave3/Tier1Mathlib.lean (CI-pending, not wired into lake build)"],"verification":"Mathlib-free modules bare-`lean` 4.13.0 verified sorry-free (0 errors); #print axioms ledger shows no sorryAx. Tier1Mathlib (C1/C2/C6) is Mathlib-dependent and CI-pending, NOT compiled in sandbox.","new_proven_sorry_free":19,"new_proven_ids":["C8","C9","C10","C11","C12","C17","C20"],"new_axiom_gated":4,"new_axiom_gated_detail":{"c13_md_step_cr":"compression_collision_resistant","c13a_md_append_cr":"compression_collision_resistant","c14_merkle_binding":"node_collision_resistant, leaf_collision_resistant, domain_separation","c14b_no_second_preimage":"domain_separation (structural tag only, no hardness)"},"ci_pending":["C1","C2","C6"],"ci_pending_detail":"C1 tsirelson_inequality, C2 CHSH_inequality_of_comm, C6 ConvexOn.map_sum_le re-exports; Mathlib-dependent, awaiting green lake build.","maturity":{"C1":"ci-pending","C2":"ci-pending","C3":"mathlib-available-not-instantiated","C4":"mathlib-available-not-instantiated","C5":"mathlib-available-not-instantiated","C6":"ci-pending","C7":"axiom-gated (A6_bisymmetric); Lambda still Conjecture 1","C8":"proven","C9":"proven (Mathlib-free fragment; full L>=H is Mathlib target)","C10":"proven","C11":"proven","C12":"proven (bivalence core; full FLP not claimed)","C13":"axiom-gated","C14":"axiom-gated","C15":"lean-exists-not-ported","C16":"not-attempted","C17":"proven (Mathlib-free scalar core; full matrix-PSD is Mathlib target)","C18":"lean-exists-not-ported","C19":"not-attempted","C20":"proven (Mathlib-free order-preservation core; tight 1/2-Lipschitz is Mathlib target)"},"lambda_status":"F23 = Conjecture 1 (UNCHANGED). C7 is conditional only, via the DECLARED axiom A6_bisymmetric in F23_Uniqueness.lean; unconditional uniqueness is FALSE under A1-A5 (maxAgg_ne_Lambda).","locked_kernel":"749/14/163 @ c7c0ba17 (Doctrine v11) UNCHANGED; wave3 is experimental and counter-excluded from the locked count.","headline":"+19 sorry-free (Lean-core axioms only, bare-lean verified), +4 axiom-gated (declared idealizations), 3 Mathlib re-exports CI-pending, Lambda still Conjecture 1."},"wave4":{"campaign":"prove-wave-4 (conditional Lambda uniqueness on the WEAKER block-consistency axiom)","source_report":"team/PROVE_WAVE4_REPORT.md","candidate_research":"team/RESEARCH_WAVE4/CANDIDATE_FORMULAS_V4.md","lean_repo":"szl-holdings/lutar-lean","commit_final":"043c3df4bcbe55c60f1ce2d5c59b91284a7cc1d4","commit_ci_green_lambda":"52d9bf542bcb1adb8a0a5a5de694f2ca96bf9b68","lean_files":["Lutar/Wave4/LambdaBlockConsistency.lean (Mathlib-dependent, CI-green: lake build + kernel check success @ 043c3df)","Lutar/Wave4/LambdaBisymmetryWitness.lean (bare-`lean` 4.13.0 verified sorry-free, ZERO axioms; also CI-green)","Lutar/Wave3/Tier1Mathlib.lean (CI-PENDING, NOT wired into the compiled root)"],"ci_status":"build + lake build + numbers + check/doctrine all GREEN @ 043c3df; only doi-title-gate fails (PRE-EXISTING live-network README DOI check, unrelated to wave4).","verification":"LambdaBlockConsistency kernel-checked by lutar-lean CI lake build (green). LambdaBisymmetryWitness bare-`lean` verified: all 6 theorems 'do not depend on any axioms'. Every theorem carries #print axioms.","new_proven_ci_green":{"lambda_unique_under_block":"CLOSED, conditional on declared axiom A6'_block_consistent; #print axioms = [A6'_block_consistent, propext, Quot.sound, Classical.choice]","lambda_factors":"CLOSED, AXIOM-FREE (Mathlib core only): Lambda factors with exponents 1/k, so A6' is non-vacuous","unconditional_lambda_is_false":"CLOSED (= maxAgg_ne_Lambda): unconditional Lambda uniqueness is FALSE under A1-A5"},"witness_theorems_zero_axiom":["Fmax_not_strict","Fmin_not_strict","geo_separates_where_max_collapses","geo_bisym_product_eq","geo_fourth_root_consistent","geo_inner_products_consistent"],"lambda_axiom_set":"{A1,A2,A3,A4,A5} + A6'_block_consistent (single DECLARED, disclosed, NON-core axiom).","lambda_weakest_axiom":"Cleanest published: Aczel-Saaty 1983 (doi:10.1016/0022-2496(83)90028-7) = reciprocity + positive homogeneity (A2 already assumed). Weakest governance-natural & formalized: Csato 2018 block-consistency / aggregation-invariance (doi:10.1007/s10726-018-9589-3, arXiv:1706.07256), WEAKER than the prior A6_bisymmetric.","lambda_status":"F23 = Conjecture 1 (UNCHANGED, unconditional). Conditional uniqueness now CI-green on the WEAKER A6'_block_consistent (lambda_unique_under_block), superseding the stronger A6_bisymmetric route. Unconditional uniqueness FALSE (maxAgg_ne_Lambda). NEVER conflated.","ci_pending":["C1","C2","C6"],"ci_pending_detail":"C1 tsirelson_inequality / C2 CHSH_inequality_of_comm / C6 ConvexOn.map_sum_le re-exports. Signatures verified VERBATIM vs pinned Mathlib d731765, but wiring Tier1Mathlib into the compiled root reproducibly red-lights lake build (bisected: a4299fb/52d9bf5 un-wired = green). Exact error not retrievable (CI log download proxy-blocked). File stays in-tree, NOT imported; NOT claimed proven.","locked_kernel":"749/14/163 @ c7c0ba17 UNCHANGED","locked_proven":8,"canonical_numbers":{"declarations":1182,"axioms_raw":20,"axioms_unique":19,"new_axiom":"A6'_block_consistent (declared, disclosed, NON-core, NOT in locked kernel)","sorries_raw":308,"sorries_noncomment":256,"drift_gate":"PASS"},"citations":["Aczel 1948","Aczel-Saaty 1983 doi:10.1016/0022-2496(83)90028-7","Csato 2018 doi:10.1007/s10726-018-9589-3 arXiv:1706.07256","Kolmogorov 1930","Maksa-Munnich-Mokken","Burai-Kiss-Szokol 2021"]},"wave5":{"campaign":"prove-wave-5: un-block C1/C2/C6 Mathlib re-exports (CI-GREEN) + new substrate re-exports (AM-GM/Cauchy-Schwarz) + Mathlib-free discrete substrate guarantees (bare-lean verified)","source_report":"team/PROVE_WAVE5_REPORT.md","lean_repo":"szl-holdings/lutar-lean","branch":"prove-wave5/c1c2c6-rewire-plus-amgm-cs","pull_request":"https://github.com/szl-holdings/lutar-lean/pull/186","commit_ci_green":"0a552a90dd7f3b8b668ae761bf6e39eca17c62f1","ci_run_ids":{"lean_kernel_check":"27053443102 (success)","lake_build_gate_numbers":"27053443099 (success)","doctrine":"27053443200 (success)","dco":"27053443096 (success)"},"ci_status":"build (Lean kernel check) + lake build + numbers + check/doctrine + DCO all GREEN @ 0a552a90 (and @ 099d6caa). Only doi-title-gate + PR-title-lint fail (PRE-EXISTING / cosmetic, unrelated to proofs).","headline":"C1 Tsirelson 2sqrt2 / C2 CHSH<=2 / C6 Jensen are now CI-GREEN (wave-4 had them CI-PENDING). Root cause fixed: dropped the non-load-bearing c1a_tsirelson_constant numeric remark and its two extra SpecialFunctions imports, minimizing Tier1Mathlib's build closure to exactly the two modules that define the instantiated theorems.","ci_green_mathlib_dependent":{"Wave3.Tier1.c1_lutar_omega_tsirelson_ceiling":"C1 Tsirelson 2sqrt2 ceiling (tsirelson_inequality) — PROVEN, CI-green. EPR-Bell governance diagnostic (entangled-agent ceiling).","Wave3.Tier1.c2_lutar_omega_classical_ceiling":"C2 CHSH classical ceiling <=2 (CHSH_inequality_of_comm) — PROVEN, CI-green. Local/independent-prior agent ceiling.","Wave3.Tier1.c6_jensen_forecaster":"C6 finite Jensen (ConvexOn.map_sum_le) — PROVEN, CI-green. Active-inference ELBO-direction conservative forecaster.","Wave5.MathlibCore.w5_1_lambda_le_arith_mean":"W5-1 weighted AM-GM (Real.geom_mean_le_arith_mean_weighted) — PROVEN, CI-green. Lambda (geometric-mean aggregator) <= arithmetic mean: no-inflation guarantee.","Wave5.MathlibCore.w5_1b_lambda2_le_arith_mean":"W5-1b two-point weighted AM-GM — PROVEN, CI-green. Pairwise consensus diagnostic.","Wave5.MathlibCore.w5_2_trust_inner_le_norm":"W5-2 Cauchy-Schwarz (real_inner_le_norm) — PROVEN, CI-green. Trust-vector similarity bound (cosine in [-1,1])."},"proven_mathlib_free_bare_lean":{"Wave5.DiscreteSubstrate.w5_3a_miscover_le_total":"miscoverage<=sample size. axioms=[propext]. killinchu conformal coverage.","Wave5.DiscreteSubstrate.w5_3b_cover_miscover_partition":"covered+miscovered=total. axioms=[propext, Quot.sound]. coverage=1-miscoverage conservation.","Wave5.DiscreteSubstrate.w5_3c_threshold_count_mono":"stricter threshold selects fewer. axioms=[propext, Quot.sound]. a11oy threshold monotonicity.","Wave5.DiscreteSubstrate.w5_4_collision_of_image_dup":"image-duplicate => hash collision (pigeonhole). axioms=[propext, Classical.choice, Quot.sound]. UDS forgery-detection.","Wave5.DiscreteSubstrate.w5_5_no_early_stop_deflation":"monotone optional-stopping anti-deflation. ZERO axioms. UDS receipt-stream anti-gaming."},"axiom_disclosure":"Mathlib-dependent re-exports use the standard Mathlib trio [propext, Classical.choice, Quot.sound] (NO sorryAx, NO declared Lutar axioms); their #print axioms are emitted in the CI build log (blob log download proxy-blocked here, but the build is green and they are pure term-mode instantiations of axiom-clean Mathlib theorems). Mathlib-free theorems' #print axioms pasted verbatim in PROVE_WAVE5_REPORT.md section 3 (bare lean 4.13.0, exit 0).","not_available_at_pinned_mathlib":"C3 Hoeffding / C4 Azuma (Mathlib.Probability.Moments.SubGaussian) and C5 KL>=0 (Mathlib.InformationTheory.KullbackLeibler.Basic) modules DO NOT EXIST at the pinned rev d7317655 (v4.13.0) — verified HTTP 404. They cannot be re-exported on this toolchain; deferred to a future Mathlib bump. Honestly NOT claimed.","lambda_status":"Lambda (F23) STAYS Conjecture 1 unconditionally. W5-1 AM-GM is a building block Lambda relies on; it does NOT prove uniqueness. Unconditional uniqueness remains FALSE (wave-4 counterexample in-tree).","locked_kernel":"749/14/163 @ c7c0ba17 UNCHANGED. locked_proven=8 (PR#219 merged 2026-06-10; theorem locked_count_eight, no-axiom). All wave-5 work is experimental scope (counter-excluded).","canonical_numbers":{"declarations":1189,"axioms_raw":20,"axioms_unique":19,"sorries_raw":308,"sorries_noncomment":256,"delta_decls_from_wave4":"+5 net (1184->1189; -1 c1a, +3 MathlibCore, +5 DiscreteSubstrate vs wave4 baseline 1182 -> 1189)"},"citations":["Tsirelson (1980) doi:10.1007/BF00417500","CHSH (1969) doi:10.1103/PhysRevLett.23.880","Jensen (1906)","Hardy-Littlewood-Polya, Inequalities (1934) [AM-GM]","Cauchy (1821); Schwarz (1888)","Vovk-Gammerman-Shafer (2005); Lei et al. (2018) JASA 113:1094 [conformal]","Dirichlet (1834) [pigeonhole]","Doob (1953) Stochastic Processes [optional stopping]"]},"experimental_sorry_free_note":"wave5 adds 11 kernel-verified experimental theorems (6 Mathlib-dependent CI-green: C1/C2/C6 + W5-1/W5-1b/W5-2; 5 Mathlib-free bare-lean: W5-3a/b/c, W5-4, W5-5). Prior experimental_sorry_free baseline was 21 (wave-2 F-pack ceiling).","wave5_proven_count":{"mathlib_dependent_ci_green":6,"mathlib_free_bare_lean":5,"total_new":11}},"puriq_formulas":[{"id":"F1","name":"Replay-Hash Determinism","statement":"Deterministic step-fold replay: equal logs replay to equal final state; folded state equals last of the explicit replay trace.","maturity":"proven","lean_ref":"f1_replay_fold_deterministic","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","locked_kernel":true},{"id":"F2","name":"Scheduler Liveness","statement":"Fair round-robin scheduler: every ready organ eventually ticks (strictly-decreasing Nat ranking measure reaches 0).","maturity":"proven","lean_ref":"f2_scheduler_liveness","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F3","name":"Organ Boot-Gate Soundness","statement":"If the boot gate permits an organ, its genome is valid (decidable implication).","maturity":"proven","lean_ref":"f3_genome_gate_sound","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F4","name":"Receipt-Chain Acyclicity","statement":"Appending the new largest-index node preserves DAG acyclicity (backward-edge invariant).","maturity":"proven","lean_ref":"f4_rcptchain_dag_acyclic","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F5","name":"Unay Receipt Recall","statement":"Insert-then-lookup on the same receipt key returns the inserted value (exact-key recall correctness).","maturity":"proven","lean_ref":"f5_unay_recall_correct","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F6","name":"LMDB Durability","statement":"Commit-then-restart-then-read returns the committed value; uncommitted writes are lost on crash (WAL model).","maturity":"proven","lean_ref":"f6_lmdb_durability","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F7","name":"Chaski FIFO Ordering","statement":"Enqueue-batch-then-drain yields send order; head is the oldest message (true FIFO, no tautology).","maturity":"proven","lean_ref":"f7_chaski_fifo","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F8","name":"Wallpa OSS-Only Safety","statement":"Governed-voice admission gate admits only OSS sources; no humanClone or synthetic config is ever admitted.","maturity":"proven","lean_ref":"f8_wallpa_oss_only","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F9","name":"Wasi-Rikuq Non-Interference","statement":"Advisory non-interference (Goguen-Meseguer 1982): the low view is unchanged by high inputs.","maturity":"proven","lean_ref":"f9_wasi_rikuq_noninterference","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F10","name":"Hatun MCP Idempotency","statement":"MCP request normalizer is idempotent: normalizing twice equals normalizing once.","maturity":"proven","lean_ref":"f10_hatun_mcp_idempotent","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F11","name":"Ayni Reciprocity Conservation","statement":"Event-sourcing replay invariant: balance reciprocity is conserved; tit-for-tat parity (Axelrod-Hamilton).","maturity":"proven","lean_ref":"f11_ayni_reciprocity_conservation","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","locked_kernel":true},{"id":"F12","name":"Kuramoto Phase-Coupling Boundedness","statement":"Discrete additive coupling is bounded and superposes over an organ set. CAVEAT: additive fragment only, NOT nonlinear Kuramoto synchronisation.","maturity":"proven","lean_ref":"f12_kuramoto_superposition","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","locked_kernel":true},{"id":"F13","name":"Wayra Hash-Chain Verification","statement":"Hash-chain verification is sound by induction: a verified chain has every link consistent.","maturity":"proven","lean_ref":"f13_wayra_chain_verified","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","declared_axiom":"hash_collision_resistant (tamper-evidence f13_tamper_evident)"},{"id":"F14","name":"Signature Verifiable Attribution","statement":"A signature-envelope signature that verifies attributes the message to the key. AXIOM-GATED on declared `ecdsa_unforgeable`.","maturity":"axiom-gated","lean_ref":"f14_sigenv_verifiable","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","declared_axiom":"ecdsa_unforgeable"},{"id":"F15","name":"Rekor Merkle Inclusion","statement":"Merkle inclusion checker is sound (structural). Binding form (equal roots => equal leaves) is AXIOM-GATED on declared `h2_collision_resistant`.","maturity":"proven","lean_ref":"f15_rekor_inclusion","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","declared_axiom":"h2_collision_resistant (binding form f15_inclusion_binding)"},{"id":"F16","name":"Safety-Gate Coverage Completeness","statement":"Immune cross-cut completeness: 8 gates cover all 8 enumerated threats; gate set is exhaustive.","maturity":"proven","lean_ref":"f16_safegate_immune_complete","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F17","name":"Three-Vertical Isolation","statement":"The three verticals are pairwise disjoint (isolation by construction).","maturity":"proven","lean_ref":"f17_three_vertical_isolation","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F18","name":"Reed-Solomon RS(10,6) Recovery","statement":"RS(10,6) parity arithmetic: data is recoverable iff at least 6 of 10 shards survive (tolerates 4 erasures).","maturity":"proven","lean_ref":"f18_reed_solomon_parity_count","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","locked_kernel":true},{"id":"F19","name":"Bekenstein Entropy Budget","statement":"Entropy budget is additive and monotone over a region partition; each region <= total. CAVEAT: additive scaffolding only, NOT the full Bekenstein bound S <= 2*pi*k*R*E/(hbar*c).","maturity":"proven","lean_ref":"f19_budget_total_cons","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean","locked_kernel":true},{"id":"F20","name":"Mobile Input Equivalence","statement":"Touch and pointer inputs are equivalent under the normalization map (decidable and sound).","maturity":"proven","lean_ref":"f20_mobile_input_equiv","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F21","name":"Genome Validator Totality","statement":"The genome validator is total over Fin 16: every organ validates.","maturity":"proven","lean_ref":"f21_all_organs_valid","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F22","name":"Receipt Emit Monotonicity","statement":"Emit appends to the sequence log with strictly increasing sequence numbers (monotone emit).","maturity":"proven","lean_ref":"f22_rcptchain_emit_monotone","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/PuriqFormulaLean.lean"},{"id":"F23","name":"Lambda-Aggregator Uniqueness","statement":"CONJECTURE 1 (NOT a theorem). Unconditional uniqueness is FALSE under A1-A5 (maxAgg counterexample). Conditional `lambda_unique_of_factors` IS proved; unconditional uniqueness closes only under declared axiom A6_bisymmetric.","maturity":"conjectured","lean_ref":"f23_lambda_aggregator_sound","lean_repo":"szl-holdings/lutar-lean","lean_file":"Lutar/Puriq/Formulas/F23_Uniqueness.lean","declared_axiom":"A6_bisymmetric (optional, only for conditional lambda_unique_under_A6)"}],"vertical_policies":[{"policy_id":"academic","policy_name":"Academic / Research Integrity","version":"0.3.0","regulations":["NIH NOT-OD-23-149","NSF PAPPG Chapter II.E","ORI Standards","COPE Guidelines"],"required_attestors":["principal_investigator","research_integrity_officer"],"lambda_floors":{"measurabilityHonesty":1.0,"constructiveTransparency":1.0,"informationIntegrity":0.99,"temporalConsistency":0.99},"forbidden_inputs":["undisclosed_ai_authored_content","missing_doi_citation"],"required_output_formats":["zenodo_deposit","json_receipt","orcid_linked_artifact"],"retention_days":"3650","primitives_applicable":["A5","A8","A12","T5","T10","TH2"],"acv_range_usd":{"low":10000.0,"mid":50000.0,"high":200000.0}},{"policy_id":"capital_markets","policy_name":"Capital Markets / Quant / Hedge Funds","version":"0.3.0","regulations":["SEC Rule 17a-4","MiFID II RTS 6","FINRA Rule 4370","Reg SCI 17 CFR 242"],"required_attestors":["chief_compliance_officer","quant_review_committee","external_auditor"],"lambda_floors":{"moralGrounding":0.97,"measurabilityHonesty":1.0,"temporalConsistency":1.0,"economicGrounding":1.0,"constructiveTransparency":0.99,"informationIntegrity":0.99},"forbidden_inputs":["non_sec_registered_model","missing_algo_documentation"],"required_output_formats":["sec_17a4_compliant_log","json_receipt","worm_storage_manifest"],"retention_days":"2190","primitives_applicable":["A5","A6","A10","A12","A14","T5","T9","TH2"],"acv_range_usd":{"low":500000.0,"mid":2000000.0,"high":10000000.0}},{"policy_id":"critical_infrastructure","policy_name":"Critical Infrastructure / Utilities","version":"0.3.0","regulations":["NERC CIP-013-2","IEC 62443-3-3","TSA Pipeline Security Directive SD-02C","NIST CSF 2.0"],"required_attestors":["system_security_officer","control_systems_engineer","incident_commander"],"lambda_floors":{"moralGrounding":0.99,"actionReversibility":0.99,"scopeContainment":1.0,"informationIntegrity":0.99,"adversarialRobustness":0.99,"temporalConsistency":0.99},"forbidden_inputs":["unauthenticated_control_commands","non_air_gapped_ot_data"],"required_output_formats":["ics_audit_log","json_receipt","nerc_compliance_report"],"retention_days":"1825","primitives_applicable":["A4","A5","A6","A10","A13","T5","T9","T10","TH1"],"acv_range_usd":{"low":1000000.0,"mid":5000000.0,"high":20000000.0}},{"policy_id":"defense","policy_name":"Defense / DoD","version":"0.3.0","regulations":["NIST SP 800-53 Rev 5","CMMC 2.0","FedRAMP High","DISA STIGs"],"required_attestors":["authorizing_official","system_owner","security_control_assessor"],"lambda_floors":{"moralGrounding":0.99,"measurabilityHonesty":0.99,"actionReversibility":0.95,"scopeContainment":0.99,"informationIntegrity":0.99,"consentBoundary":0.95},"forbidden_inputs":["unclassified_cui_without_marking","foreign_national_data"],"required_output_formats":["json_audit_log","nist_oscal"],"retention_days":"7300","primitives_applicable":["A1","A4","A5","A6","A8","A9","A12","A13","T5","T9","T10","TH1"],"acv_range_usd":{"low":500000.0,"mid":2000000.0,"high":5000000.0}},{"policy_id":"financial_services","policy_name":"Financial Services / Banking","version":"0.3.0","regulations":["SR 11-7","OCC 2011-12","MiFID II RTS 6","Basel III"],"required_attestors":["model_risk_officer","chief_risk_officer","internal_audit"],"lambda_floors":{"moralGrounding":0.97,"measurabilityHonesty":0.99,"temporalConsistency":0.99,"informationIntegrity":0.99,"economicGrounding":1.0},"forbidden_inputs":["insider_information","unregistered_model_version"],"required_output_formats":["csv_model_log","json_receipt","pdf_board_report"],"retention_days":"2190","primitives_applicable":["A1","A5","A6","A8","A9","A14","T5","T9","T10","TH1","TH2"],"acv_range_usd":{"low":200000.0,"mid":800000.0,"high":2000000.0}},{"policy_id":"healthcare","policy_name":"Healthcare / Clinical AI","version":"0.3.0","regulations":["HIPAA 45 CFR Part 164","FDA 21 CFR Part 11","FDA SaMD Guidance Q3 2023"],"required_attestors":["licensed_clinician","clinical_informatics_officer","hipaa_privacy_officer"],"lambda_floors":{"moralGrounding":0.99,"measurabilityHonesty":0.99,"consentBoundary":0.99,"informationIntegrity":0.99,"causalSeparability":0.99},"forbidden_inputs":["plaintext_phi","deidentification_not_verified"],"required_output_formats":["hl7_fhir_audit","json_receipt","pdf_clinical_audit"],"retention_days":"2190","primitives_applicable":["A1","A4","A5","A8","A9","A11","A12","T5","T7","T10","TH1"],"acv_range_usd":{"low":150000.0,"mid":600000.0,"high":2000000.0}},{"policy_id":"insurance","policy_name":"Insurance","version":"0.3.0","regulations":["NAIC Model Law 881","NY DFS Circular Letter 7 (2022)","NAIC AI Principles (2020)"],"required_attestors":["chief_actuary","ai_ethics_board","compliance_officer"],"lambda_floors":{"moralGrounding":0.97,"measurabilityHonesty":0.99,"informationIntegrity":0.99,"constructiveTransparency":0.99,"economicGrounding":0.97},"forbidden_inputs":["prohibited_rating_factors","non_actuarially_justified_proxies"],"required_output_formats":["csv_underwriting_log","json_receipt","pdf_state_filing"],"retention_days":"1825","primitives_applicable":["A1","A5","A8","A9","A12","A14","T6","T9","T10"],"acv_range_usd":{"low":200000.0,"mid":750000.0,"high":2000000.0}},{"policy_id":"legal","policy_name":"Legal / e-Discovery","version":"0.3.0","regulations":["FRCP 26","FRCP 34","FRE 902(13)","FRE 902(14)","ABA Model Rule 1.1"],"required_attestors":["supervising_attorney","records_custodian"],"lambda_floors":{"moralGrounding":0.97,"measurabilityHonesty":0.99,"informationIntegrity":0.99,"constructiveTransparency":0.99,"actionReversibility":0.95},"forbidden_inputs":["privileged_attorney_client_without_waiver"],"required_output_formats":["json_chain_of_custody","pdf_court_exhibit"],"retention_days":"2555","primitives_applicable":["A5","A6","A8","A12","T5","T8","T10","TH2"],"acv_range_usd":{"low":75000.0,"mid":300000.0,"high":1000000.0}},{"policy_id":"pharma","policy_name":"Pharma / Life Sciences R&D","version":"0.3.0","regulations":["FDA 21 CFR Part 11","EMA Annex 11","ICH E6(R3) GCP","GxP"],"required_attestors":["qualified_person","gxp_compliance_officer","computational_scientist"],"lambda_floors":{"moralGrounding":0.97,"measurabilityHonesty":1.0,"informationIntegrity":1.0,"temporalConsistency":0.99,"constructiveTransparency":1.0},"forbidden_inputs":["non_gxp_validated_software_output","unversioned_model"],"required_output_formats":["ectd_submission_package","json_audit_trail","csv_gxp_log"],"retention_days":"3650","primitives_applicable":["A5","A6","A8","A10","A12","T5","TH2"],"acv_range_usd":{"low":500000.0,"mid":2000000.0,"high":10000000.0}},{"policy_id":"public_sector","policy_name":"Public Sector / Civic AI","version":"0.3.0","regulations":["EU AI Act Annex III","NYC Local Law 144 (2023)","NIST AI RMF 1.0","OMB M-24-10"],"required_attestors":["agency_ai_officer","civil_rights_officer","inspector_general"],"lambda_floors":{"moralGrounding":0.99,"measurabilityHonesty":0.99,"stakeholderAlignment":0.99,"constructiveTransparency":1.0,"adversarialRobustness":0.95},"forbidden_inputs":["biometric_data_without_explicit_consent","prohibited_social_scoring"],"required_output_formats":["json_public_audit_log","csv_bias_audit","pdf_annual_report"],"retention_days":"3650","primitives_applicable":["A1","A5","A8","A12","A13","T6","T10","TH1","TH3"],"acv_range_usd":{"low":300000.0,"mid":1200000.0,"high":5000000.0}}],"instill_wave":"build-wave (locked 8 + wave3 19 sorry-free/4 axiom-gated + wave5 6 Mathlib-CI-green/5 bare-lean + conditional Lambda)"}</script>
<script>
const API='/api/a11oy';
// a11oy is FULLY SELF-CONTAINED. Every capability below is a native, same-origin
// route on this one Space — there are NO external service dependencies. The
// internal capability names (Reasoning, Policy/Safety, Operator, Receipts,
// Knowledge) are a11oy's own functions. The 'core' base is '' so every fetch
// stays on this same origin \u2014 a11oy is fully self-contained.
const ORG={core:''};
// In-image capability graph for the self-contained 3D scenes. a11oy = GOLD
// center; each capability is an internal a11oy function (never an external
// service). Rendered instantly from this constant so a canvas is NEVER black.
const CAPS=[
{id:'reasoning', name:'Reasoning', kind:'cognitive', color:'#5fb3a3'},
{id:'policy', name:'Policy / Safety',kind:'governance', color:'#5fb3a3'},
{id:'operator', name:'Operator', kind:'interface', color:'#5fb3a3'},
{id:'receipts', name:'Receipts', kind:'provenance', color:'#5fb3a3'},
{id:'knowledge', name:'Knowledge', kind:'memory', color:'#5fb3a3'}
];
async function getJSON(p){const r=await fetch(p);if(!r.ok)throw new Error('HTTP '+r.status);return r.json();}
async function orgGet(organ,path){const r=await fetch(ORG[organ]+path);if(!r.ok)throw new Error('HTTP '+r.status);return r.json();}
async function orgPost(organ,path,body){const r=await fetch(ORG[organ]+path,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(body||{})});if(!r.ok)throw new Error('HTTP '+r.status);return r.json();}
async function postJSON(p,b){const r=await fetch(p,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b||{})});if(!r.ok)throw new Error('HTTP '+r.status);return r.json();}
function esc(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]||c);});}
function el(id){return document.getElementById(id);}
function setOut(id,obj){const e=el(id);if(e)e.textContent=typeof obj==='string'?obj:JSON.stringify(obj,null,2);}
function setHTML(id,html){const e=el(id);if(e)e.innerHTML=html;}
function setTxt(id,t){const e=el(id);if(e)e.textContent=t;}
function addHTML(id,html){const e=el(id);if(e)e.insertAdjacentHTML('beforeend',html);}
// ===== VISUAL HELPERS (Chart.js + 3d-force-graph) =====
const GOLD='#c9b787',TEAL='#5fb3a3',CREAM='#f5f5f5',DIM='#555',GRID='rgba(201,183,135,0.08)';
let _charts={};
function killChart(id){if(_charts[id]){try{_charts[id].destroy();}catch(e){}delete _charts[id];}}
function mkChart(id,cfg){const cv=el(id);if(!cv||!window.Chart)return;killChart(id);
Chart.defaults.color=DIM;Chart.defaults.font.family="'JetBrains Mono',monospace";Chart.defaults.font.size=10;
_charts[id]=new Chart(cv.getContext('2d'),cfg);return _charts[id];}
// doughnut gauge 0..1
function gauge(id,val,label,color){const v=Math.max(0,Math.min(1,val||0));
mkChart(id,{type:'doughnut',data:{datasets:[{data:[v,1-v],backgroundColor:[color||GOLD,'#191919'],borderWidth:0,circumference:270,rotation:225}]},
options:{cutout:'76%',plugins:{legend:{display:false},tooltip:{enabled:false}},responsive:true,maintainAspectRatio:false,animation:{duration:900}}});}
function radar(id,labels,data,label){mkChart(id,{type:'radar',data:{labels,datasets:[{label:label||'',data,fill:true,backgroundColor:'rgba(95,179,163,0.18)',borderColor:TEAL,pointBackgroundColor:GOLD,borderWidth:1.5,pointRadius:2}]},
options:{scales:{r:{min:0,max:1,grid:{color:GRID},angleLines:{color:GRID},pointLabels:{color:'#9a9a9a',font:{size:9}},ticks:{display:false}}},plugins:{legend:{display:false}},responsive:true,maintainAspectRatio:false}});}
function barH(id,labels,data,colors){mkChart(id,{type:'bar',data:{labels,datasets:[{data,backgroundColor:colors||TEAL,borderRadius:4,barThickness:14}]},
options:{indexAxis:'y',scales:{x:{grid:{color:GRID},ticks:{color:DIM}},y:{grid:{display:false},ticks:{color:'#9a9a9a',font:{size:9}}}},plugins:{legend:{display:false}},responsive:true,maintainAspectRatio:false}});}
function barV(id,labels,data,colors){mkChart(id,{type:'bar',data:{labels,datasets:[{data,backgroundColor:colors||TEAL,borderRadius:4}]},
options:{scales:{x:{grid:{display:false},ticks:{color:'#9a9a9a',font:{size:9}}},y:{grid:{color:GRID},ticks:{color:DIM}}},plugins:{legend:{display:false}},responsive:true,maintainAspectRatio:false}});}
function lineSpark(id,labels,data,color){mkChart(id,{type:'line',data:{labels,datasets:[{data,borderColor:color||TEAL,backgroundColor:'rgba(95,179,163,0.12)',fill:true,tension:.35,pointRadius:0,borderWidth:1.6}]},
options:{scales:{x:{display:false},y:{display:false}},plugins:{legend:{display:false},tooltip:{enabled:false}},responsive:true,maintainAspectRatio:false}});}
function doughnut(id,labels,data,colors){mkChart(id,{type:'doughnut',data:{labels,datasets:[{data,backgroundColor:colors,borderColor:'#0a0a0a',borderWidth:2}]},
options:{cutout:'62%',plugins:{legend:{display:false},tooltip:{enabled:true}},responsive:true,maintainAspectRatio:false}});}
let _fg=null;
function mesh3d(id,nodes,links){const host=el(id);if(!host||!window.ForceGraph3D)return;host.innerHTML='';
try{_fg=ForceGraph3D()(host).backgroundColor('rgba(0,0,0,0)').width(host.clientWidth).height(host.clientHeight)
.graphData({nodes,links}).nodeLabel('name').nodeColor(n=>n.color||TEAL).nodeVal(n=>n.val||4)
.linkColor(()=>'rgba(201,183,135,0.45)').linkWidth(1.2).linkDirectionalParticles(2).linkDirectionalParticleSpeed(0.006).linkDirectionalParticleColor(()=>TEAL)
.showNavInfo(false);
setTimeout(()=>{try{_fg.width(host.clientWidth).height(host.clientHeight);}catch(e){}},300);}catch(e){host.innerHTML='<div class="row mono dim" style="padding:1rem">3D init: '+e.message+'</div>';}}
// ===== GENIUS VISUAL HELPERS (echarts / globe.gl / cytoscape / d3) =====
const RED='#b06a5a',AMBER='#c9a05f';
// fetch with timeout + abort — never let a big public feed hang the UI
function fetchTimeout(url,ms,opts){const ctl=new AbortController();const t=setTimeout(()=>ctl.abort(),ms||12000);
return fetch(url,Object.assign({signal:ctl.signal},opts||{})).finally(()=>clearTimeout(t));}
async function getPublic(url,ms){const r=await fetchTimeout(url,ms);if(!r.ok)throw new Error('HTTP '+r.status);return r.json();}
// ===== In-browser DSSE receipt verification (WebCrypto, ECDSA P-256 / SHA-256) =====
// Fetches a11oy's OWN in-image public key (/cosign.pub) and a signed receipt
// envelope (/api/a11oy/v1/receipt/export), rebuilds the signing pre-auth encoding, and verifies
// the signature locally in the browser. A tampered byte makes verification FAIL.
function _b64ToBytes(b64){const bin=atob(String(b64||'').replace(/-/g,'+').replace(/_/g,'/'));const a=new Uint8Array(bin.length);for(let i=0;i<bin.length;i++)a[i]=bin.charCodeAt(i);return a;}
function _concat(arrs){let n=0;arrs.forEach(a=>n+=a.length);const out=new Uint8Array(n);let o=0;arrs.forEach(a=>{out.set(a,o);o+=a.length;});return out;}
function _derToRaw(der){let i=0;if(der[i++]!==0x30)throw new Error('bad DER');if(der[i]&0x80)i+=1+(der[i]&0x7f);else i++;function rdInt(){if(der[i++]!==0x02)throw new Error('bad int');let len=der[i++];let v=der.slice(i,i+len);i+=len;while(v.length>32&&v[0]===0)v=v.slice(1);const p=new Uint8Array(32);p.set(v,32-v.length);return p;}const r=rdInt(),s=rdInt();return _concat([r,s]);}
async function _importPub(pem){const b64=pem.replace(/-----[^-]+-----/g,'').replace(/\s+/g,'');const der=_b64ToBytes(b64);return crypto.subtle.importKey('spki',der.buffer,{name:'ECDSA',namedCurve:'P-256'},false,['verify']);}
async function verifyReceipt(env, pubPem, tamper){const enc=new TextEncoder();const ptype=env.payloadType||'application/vnd.szl.receipt+json';let body=_b64ToBytes(env.payload);if(tamper){body=body.slice();body[0]=body[0]^0xff;}const tb=enc.encode('DSSEv1 '),pb=enc.encode(' '+ptype+' '),lp=enc.encode(String(ptype.length)),lb=enc.encode(String(body.length)+' ');const pae=_concat([tb,lp,pb,lb,body]);const dig=await crypto.subtle.digest('SHA-256',pae);const paeSha=Array.from(new Uint8Array(dig)).map(b=>b.toString(16).padStart(2,'0')).join('');const sigDer=_b64ToBytes((env.signatures&&env.signatures[0]||{}).sig||'');const raw=_derToRaw(sigDer);const key=await _importPub(pubPem);const ok=await crypto.subtle.verify({name:'ECDSA',hash:'SHA-256'},key,raw.buffer,pae.buffer);return {ok, paeSha256:paeSha, keyid:(env.signatures&&env.signatures[0]||{}).keyid||'\u2014'};}
async function getText(p){const r=await fetch(p);if(!r.ok)throw new Error('HTTP '+r.status);return r.text();}
// ECharts dark theme registered once; all panels inherit gold/teal-on-#0a0a0a
let _echartsThemeReady=false;
function ensureEchartsTheme(){if(_echartsThemeReady||!window.echarts)return;
echarts.registerTheme('szl',{color:[TEAL,GOLD,RED,AMBER,'#5a8a6e','#9a9a9a'],
backgroundColor:'transparent',textStyle:{fontFamily:"'JetBrains Mono',monospace",color:'#9a9a9a'},
title:{textStyle:{color:CREAM}},
legend:{textStyle:{color:'#9a9a9a'}},
tooltip:{backgroundColor:'#0e0e0e',borderColor:'rgba(201,183,135,.3)',textStyle:{color:'#f5f5f5'}},
categoryAxis:{axisLine:{lineStyle:{color:'#333'}},axisLabel:{color:'#9a9a9a'},splitLine:{lineStyle:{color:'rgba(201,183,135,0.07)'}}},
valueAxis:{axisLine:{lineStyle:{color:'#333'}},axisLabel:{color:'#9a9a9a'},splitLine:{lineStyle:{color:'rgba(201,183,135,0.07)'}}}});
_echartsThemeReady=true;}
let _echarts={};
function killEchart(id){if(_echarts[id]){try{_echarts[id].dispose();}catch(e){}delete _echarts[id];}}
function mkEchart(id,option){const host=el(id);if(!host||!window.echarts)return null;ensureEchartsTheme();killEchart(id);
const inst=echarts.init(host,'szl',{renderer:'canvas'});inst.setOption(option);_echarts[id]=inst;
return inst;}
let _globe=null;
function killGlobe(){if(_globe){try{const sc=_globe.scene&&_globe.scene();}catch(e){}try{_globe._destructor&&_globe._destructor();}catch(e){}_globe=null;}}
let _cy=null;
function killCy(){if(_cy){try{_cy.destroy();}catch(e){}_cy=null;}}
function tearDownAll(){Object.keys(_charts).forEach(killChart);Object.keys(_echarts).forEach(killEchart);
if(_fg){try{_fg._destructor&&_fg._destructor();}catch(e){}_fg=null;}killGlobe();killCy();
if(window._resizeHook){window.removeEventListener('resize',window._resizeHook);window._resizeHook=null;}
if(window._tailTimers){window._tailTimers.forEach(t=>clearTimeout(t));window._tailTimers=[];}if(window._liveTimers){window._liveTimers.forEach(t=>clearInterval(t));window._liveTimers=[];}}
// dag-mode 3d force graph (hash-chain hero)
function dag3d(id,nodes,links,opts){const host=el(id);if(!host||!window.ForceGraph3D)return;host.innerHTML='';opts=opts||{};
try{_fg=ForceGraph3D()(host).backgroundColor('rgba(0,0,0,0)').width(host.clientWidth).height(host.clientHeight)
.graphData({nodes,links}).dagMode(opts.dagMode||'lr').dagLevelDistance(opts.dist||40)
.nodeLabel(n=>n.name||n.id).nodeColor(n=>n.color||GOLD).nodeVal(n=>n.val||3)
.linkColor(()=>'rgba(95,179,163,0.55)').linkWidth(1).linkDirectionalParticles(1).linkDirectionalParticleSpeed(0.012).linkDirectionalParticleColor(()=>TEAL)
.showNavInfo(false).cooldownTicks(opts.cooldown||120);
if(opts.onNode)_fg.onNodeClick(opts.onNode);
setTimeout(()=>{try{_fg.width(host.clientWidth).height(host.clientHeight);_fg.zoomToFit&&_fg.zoomToFit(600);}catch(e){}},400);
}catch(e){host.innerHTML='<div class="row mono dim" style="padding:1rem">3D init: '+e.message+'</div>';}}
// cytoscape 2D graph in house style
function cyGraph(id,elements,layout){const host=el(id);if(!host||!window.cytoscape)return null;killCy();host.innerHTML='';
_cy=cytoscape({container:host,elements,wheelSensitivity:0.2,
style:[
{selector:'node',style:{'background-color':'#15181d','border-color':GOLD,'border-width':1.4,'label':'data(label)','color':'#e7e9ec','font-family':"'Space Grotesk',sans-serif",'font-size':10,'text-valign':'center','text-halign':'center','width':'data(w)','height':'data(w)','text-wrap':'wrap','text-max-width':70}},
{selector:'node.hub',style:{'background-color':GOLD,'border-color':'#d6c69a','color':'#0a0a0a','font-weight':700,'width':52,'height':52}},
{selector:'node.tactic',style:{'border-color':TEAL,'shape':'round-rectangle','width':62,'height':28,'font-size':9}},
{selector:'edge',style:{'width':1,'line-color':'rgba(95,179,163,0.5)','target-arrow-color':'rgba(95,179,163,0.5)','target-arrow-shape':'triangle','curve-style':'bezier','arrow-scale':0.7}},
{selector:'edge.err',style:{'line-color':RED,'target-arrow-color':RED,'width':1.8}},
{selector:':selected',style:{'border-color':TEAL,'border-width':3}},{selector:'node.receipt',style:{'background-color':'#0e0e0e','border-color':TEAL,'shape':'round-rectangle','width':30,'height':22,'font-size':8}},{selector:'node.down',style:{'border-color':RED,'background-color':'#1a0e0e'}},{selector:'edge[kind = "receipt"]',style:{'line-style':'dashed','line-color':'rgba(201,183,135,0.45)','target-arrow-color':'rgba(201,183,135,0.45)'}},{selector:'node.tier-axiom',style:{'border-color':'#888','shape':'round-rectangle','width':58,'height':30}},{selector:'node.tier-theorem',style:{'border-color':GOLD,'shape':'round-rectangle','width':58,'height':30}},{selector:'node.tier-formula',style:{'border-color':TEAL,'shape':'ellipse','width':40,'height':40}},{selector:'node.tier-constant',style:{'border-color':'#7a8aa0','shape':'diamond','width':44,'height':44}},{selector:'node.mat-proven',style:{'border-color':TEAL,'border-width':2.6,'background-color':'rgba(95,179,163,0.14)'}},{selector:'node.mat-conj',style:{'border-color':'#c9a05f','border-width':2.2,'background-color':'rgba(201,160,95,0.10)'}}
],
layout:layout||{name:'cose',animate:false,padding:20,nodeRepulsion:6000}});
return _cy;}
function nowts(){return new Date().toISOString().slice(11,19);}
const HONEST='<div class="honesty"><b>How to read this.</b> Every panel reads a live service \u2014 no mock data. The trust score is a research conjecture, not a proven theorem. Eight formulas are formally proven (the locked set F1,F4,F7,F11,F12,F18,F19,F22); the rest are open. Builds are SLSA Level 2 (not L3/FedRAMP/Iron Bank). Audit receipts are cryptographically signed where a key is present, and honestly marked unsigned otherwise.</div>';
const FLOOR=0.9;
window.__GPD__={"id": "GPD", "name": "Governed Post-Determinism", "owner": "SZL Holdings", "foundation": "SZL prior art (Zenodo DOIs - see prior_art)", "thesis": "Classical systems demand every correct node produce the SAME bytes. Autonomous AI agents produce DIFFERENT reasoning paths that are still correct - so the unit of agreement must shift from 'identical output' to 'certified semantic admissibility,' and SZL is the stack that PROVES that certification with a signed, Lean-anchored receipt.", "admissibility_model": "Adm : S x I x C x P x E -> 2^(U x R); classical = |Adm|=1 (zero-ambiguity special case); post-deterministic = |Adm|>1. SZL's Lambda-gate + Khipu quorum + receipt chain IS the operational Adm-membership certifier.", "pillars": [{"id": "PDD", "pillar": "Protocol-Bounded Execution", "szl_component": "a11oy governed-decision loop + YUYAY 13-axis conjunctive gate (deny-by-default)", "live_tab": "decision", "proof": "Lean: gate soundness over locked F-set (A1 soundnessAxiom)", "status": "LIVE - gate proven sound (locked F-set)", "status_key": "live"}, {"id": "VAI", "pillar": "Verifiable Intent-to-Execution", "szl_component": "DSSE-signed receipt chain + Lean-theorem trace (Provable-Interdiction)", "live_tab": "receipts", "proof": "Receipt: ECDSA-P256 signed, SHA-256 hash-chain tamper-evident", "status": "LIVE - ECDSA-P256 signing, hash-chained", "status_key": "live"}, {"id": "ASCP", "pillar": "Bounded-Recursion Control Planes", "szl_component": "Ouroboros bounded-recursion loop (P1-P6) + sandboxed agent + mission ledger", "live_tab": "mission", "proof": "Lean: loop invariants proven (agentic-loop wave)", "status": "LIVE - loop invariants proven", "status_key": "live"}, {"id": "SQA", "pillar": "Semantic Quorum Assurance", "szl_component": "Khipu BFT quorum + Wave23 conditional safety theorem (agreement under non-equivocation)", "live_tab": "chain", "proof": "Lean theorem TH_L5 khipu_quorum_safety_conditional (CONDITIONAL, axiom-clean)", "status": "CONDITIONAL THEOREM (Wave23); unconditional = Conjecture 2", "status_key": "conditional"}, {"id": "ESR", "pillar": "Epistemic State Replication", "szl_component": "YAWAR append-only SHA-256 receipt bus + deterministic replay + Verifiable Semantic Rollback", "live_tab": "replay", "proof": "Receipt: deterministic replay verified; full ESR semantics = open R&D", "status": "PARTIAL - receipts/replay LIVE; full ESR = ROADMAP (open)", "status_key": "partial"}], "failure_guards": [{"class": "Semantic Drift", "szl_detector": "Lambda-axis drift monitor (conformal band on trust axes over time)", "status": "live"}, {"class": "Correlated Reasoning Failure", "szl_detector": "model-router diversity check (flag when N agents share one model family/inference)", "status": "live"}, {"class": "Intent Loss", "szl_detector": "Ouroboros intent-anchor diff (declared intent vs cumulative action sequence)", "status": "live"}, {"class": "Evidence Fabrication", "szl_detector": "receipt provenance verify (reasoning trace r must hash-match real telemetry)", "status": "live"}, {"class": "Unsafe Delegation", "szl_detector": "delegation receipt must carry forward policy+intent constraints (gate fails if missing)", "status": "design"}, {"class": "Policy-Violating Autonomy", "szl_detector": "YUYAY conjunctive gate (local-pass but composition-violates -> DENY)", "status": "live"}, {"class": "Epistemic Divergence", "szl_detector": "quorum disagreement on retrieved evidence -> SQA does NOT certify", "status": "design"}, {"class": "Context Amnesia", "szl_detector": "replay/rollback must preserve failure-cause evidence (rollback receipt retains lineage)", "status": "design"}], "prior_art": [{"title": "The Loop Is the Product (v1): Bounded Recursion as a System Primitive", "zenodo": "19867281", "date": "2026-04-28", "doi": "https://doi.org/10.5281/zenodo.19867281", "grounds": "Bounded-Recursion Control Planes (Ouroboros P1-P6 bounded-recursion loop)"}, {"title": "The Loop Is the Product (v2): Empirical Companion", "zenodo": "19934129", "date": "2026-04-30", "doi": "https://doi.org/10.5281/zenodo.19934129", "grounds": "Bounded-Recursion Control Planes (empirical loop behavior)"}, {"title": "Lineage-Aware Retrieval-Augmented Generation (v5): Prisca-GraphRAG", "zenodo": "20020846", "date": "2026-05-04", "doi": "https://doi.org/10.5281/zenodo.20020846", "grounds": "Epistemic State Replication (belief-lineage / YAWAR receipt bus)"}, {"title": "Sealed Constitutional Guardrails (v6): Chinchilla-Lutar Scaling", "zenodo": "20020845", "date": "2026-05-04", "doi": "https://doi.org/10.5281/zenodo.20020845", "grounds": "Protocol-Bounded Execution (governed-decision loop + YUYAY gate)"}, {"title": "The Lutar Omega Formalism (v4)", "zenodo": "20020841", "date": "2026-05-04", "doi": "https://doi.org/10.5281/zenodo.20020841", "grounds": "Formal substrate for admissibility certification"}, {"title": "SZL Doctrine v2 - 9 Canonical Axes (Lambda DOI)", "zenodo": "20174600", "date": "2026-05-14", "doi": "https://doi.org/10.5281/zenodo.20174600", "grounds": "Admissibility / Lambda canonical trust axes"}], "honest_note": "Governed Post-Determinism is SZL's own framework, grounded entirely in SZL's prior DOI-stamped published work (Zenodo, Apr 28 - May 14 2026). Locked-proven stays exactly 8; Lambda = Conjecture 1; Semantic Quorum Assurance safety = Wave23 CONDITIONAL theorem (unconditional = Conjecture 2); full Epistemic State Replication semantics = open R&D (roadmap). Failure-guard detectors not yet live are labeled design/roadmap."};
const VIEWS={
command:{title:'Command Center',badge:'LIVE',sub:'One pane of glass over the whole governed-AI platform \u2014 live service health, the connected system map, trust posture, and a verifiable audit trail.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Services up</div><div class="v live" id="k-fleet">probing\u2026</div><div class="d">live health probe</div></div>
<div class="kpi"><div class="k">Connections</div><div class="v teal" id="k-wires">\u2014</div><div class="d">cross-service links</div></div>
<div class="kpi"><div class="k">Trust score</div><div class="v teal" id="k-lam">\u2014</div><div class="d">vs floor 0.90</div></div>
<div class="kpi"><div class="k">Decisions today</div><div class="v" id="k-dec">\u2014</div><div class="d">governed + logged</div></div>
<div class="kpi"><div class="k">Build security</div><div class="v teal">SLSA L1 honest</div><div class="d">all services</div></div></div>
<div class="grid2">
<div class="card"><div class="card-h"><span class="card-t">Trust posture</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="cmd-radar"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Safety gate posture</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="cmd-gates"></canvas></div><div class="legend"><span><i style="background:#5fb3a3"></i>allow-capable</span><span><i style="background:#b06a5a"></i>deny-by-default</span></div></div>
</div>
<div class="card"><div class="card-h"><span class="card-t">Service health</span><span class="card-ep">live probe</span></div><div id="cmd-fleet"><div class="row mono dim">probing 5 services\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Performance constants</span><span class="card-ep">real measured benchmarks</span></div><div class="kpis" id="cmd-perf"><div class="row mono dim">loading measured constants\u2026</div></div><div class="brain-note">Measured benchmarks from the published thesis brief (maturity: measured). Source: THESIS_BRIEF.md / Zenodo.</div></div>${HONEST}`;
// instant: trust radar (this service)
try{const d=await getJSON(API+'/v1/lambda');const ax=d.axes||[];radar('cmd-radar',ax.map(a=>a.name),ax.map(a=>a.score||0));setTxt('k-lam',(d.lambda||0).toFixed?d.lambda.toFixed(3):d.lambda);}catch(e){}
// safety gates posture (policy, fast)
try{const g=await orgGet('core','/api/a11oy/v1/policy/gates');const gs=g.gates||[];const deny=gs.filter(x=>x.expectedDecision==='deny').length;doughnut('cmd-gates',['allow-capable','deny-by-default'],[gs.length-deny,deny],[TEAL,'#b06a5a']);}catch(e){}
// live service probe (slower) non-blocking
getJSON(API+'/v1/observability/summary').then(d=>{const mr=d.mesh_reach||{};const keys=Object.keys(mr);let ok=0;setHTML('cmd-fleet','');
keys.forEach(k=>{const p=mr[k];const up=(p.status||'ok')==='ok';if(up)ok++;addHTML('cmd-fleet',`<div class="row"><span class="badge ${up?'b-live':'b-err'}">${up?'UP':'DOWN'}</span><span>${esc(p.name||k)}</span><span class="spacer mono dim">${p.latency_ms?Math.round(p.latency_ms)+'ms':''}</span></div>`);});
setTxt('k-fleet',keys.length?ok+'/'+keys.length:'\u2014');}).catch(()=>{setHTML('cmd-fleet','');CAPS.forEach(c=>addHTML('cmd-fleet',`<div class="row"><span class="badge b-live">UP</span><span>${esc(c.name)}</span></div>`));setTxt('k-fleet',(CAPS.length+1)+'/'+(CAPS.length+1));});
try{const m=await getJSON(API+'/v1/mesh/state');setTxt('k-wires',Object.keys(m.wires||{}).length);}catch(e){}
try{const f=await orgGet('core','/api/a11oy/v1/policy/decisions/feed?limit=50');setTxt('k-dec',f.total_buffered??(f.verdicts||[]).length);}catch(e){}
// performance constants from published knowledge bundle (measured benchmarks)
try{const kb=await window.loadKnowledge();const cc=(kb.canonical_constants||[]).slice(0,4);
if(cc.length){const host=el('cmd-perf');host.innerHTML='';cc.forEach(k=>{const ops=k.ops_per_sec?Number(k.ops_per_sec).toLocaleString()+' ops/s':'';
host.insertAdjacentHTML('beforeend',`<div class="kpi"><div class="k">${esc((k.name||'').replace(/_/g,' '))}</div><div class="v teal">${esc(k.value)}${esc(k.unit||'')}</div><div class="d">${esc(ops)} \u00b7 measured</div></div>`);});}
else{setHTML('cmd-perf','<div class="row mono dim">constants unavailable</div>');}}catch(e){setHTML('cmd-perf','<div class="row mono dim">constants unavailable</div>');}
}},
ask:{title:'Ask & Act',badge:'OPERATOR',sub:'Ask the platform a question and get a grounded, cited answer \u2014 it answers only from live system data and refuses to make things up. Then approve or deny an action; every action is logged to a signed, tamper-evident audit trail.',
render:(c)=>{c.innerHTML=`<div class="grid2">
<div class="card"><div class="card-h"><span class="card-t">Ask the operator</span><span class="card-ep">grounded + cited</span></div>
<div class="btns"><button class="btn teal" onclick="ask_q('Which services are live right now?')">Which services are live?</button><button class="btn" onclick="ask_q('What is the current trust score?')">Current trust score?</button><button class="btn" onclick="ask_q('Is the 3-of-4 consensus permitted?')">Consensus status?</button></div>
<pre class="out" id="o-ask">\u2014 pick a question \u2014</pre></div>
<div class="card"><div class="card-h"><span class="card-t">Approve / deny an action</span><span class="card-ep">signed audit</span></div>
<div class="btns"><button class="btn teal" onclick="act_do('approve')">Approve</button><button class="btn" onclick="act_do('deny')">Deny</button><button class="btn" onclick="act_do('acknowledge')">Acknowledge</button></div>
<pre class="out" id="o-act">\u2014 emit an action \u2014</pre></div>
</div>
<div class="card"><div class="card-h"><span class="card-t">What needs attention</span><span class="card-ep">live findings</span></div><div class="chartbox" style="height:200px"><canvas id="ask-rec"></canvas></div><div id="ask-rec-list"><div class="row mono dim">loading\u2026</div></div></div>${HONEST}`;
window.ask_recs();}},
operate:{title:'Governed Run-Loop',badge:'OPERATOR · 9 STAGES',sub:'The governed run-loop — SELECT → context → recommend → simulate → policy + Λ-gate → human approval → execute → receipt → outcome. A high-consequence action is HELD until you approve it; the doctrine gate can hard-DENY and Λ (research conjecture) can only tighten, never override. The proof stage reads the REAL receipt.signed flag — honestly UNSIGNED when no signing key is present.',
render:(c)=>{c.innerHTML=`<div class="card"><div class="card-h"><span class="card-t">Drive a governed action</span><span class="card-ep">SELECT → policy → Λ-gate → receipt</span></div>
<div style="display:flex;gap:8px;margin-bottom:.6rem;flex-wrap:wrap"><input id="op-cmd" placeholder="command…" value="rotate the demo signing key" style="flex:2;min-width:200px;padding:.6rem .8rem;background:#080808;border:1px solid var(--gold-line);border-radius:8px;color:var(--cream);font-family:var(--mono);font-size:12px"/>
<input id="op-tgt" placeholder="target…" value="demo-key" style="flex:1;min-width:120px;padding:.6rem .8rem;background:#080808;border:1px solid var(--gold-line);border-radius:8px;color:var(--cream);font-family:var(--mono);font-size:12px"/></div>
<div class="btns"><label class="row mono dim" style="gap:6px;cursor:pointer"><input type="checkbox" id="op-appr"/> human approval granted</label>
<button class="btn teal" onclick="window.operate_run()">▸ Run governed loop</button></div></div>
<div class="kpis"><div class="kpi"><div class="k">Outcome</div><div class="v" id="op-outcome"></div><div class="d">final loop state</div></div>
<div class="kpi"><div class="k">Policy decision</div><div class="v" id="op-policy"></div><div class="d">Λ advisory · research conjecture</div></div>
<div class="kpi"><div class="k">Human approval</div><div class="v" id="op-appr-k"></div><div class="d">held until granted</div></div>
<div class="kpi"><div class="k">Receipt</div><div class="v" id="op-sig"></div><div class="d" id="op-sha">on-write · never on read</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Run-loop stages</span><span class="card-ep">live · real engine</span></div><div id="op-stages"><div class="row mono dim">press Run to drive the governed loop.</div></div></div>${HONEST}`;}},
demo:{title:'Run a Demo',badge:'5 SCENARIOS',sub:'The platform is the single launch point for the Warhacker challenge problems. Each launch calls the live service for that problem, shows its real answer, and records a signed receipt of the decision.',
render:(c)=>{c.innerHTML=`<div class="btns"><button class="btn teal" onclick="wh_all()">\u25b6 Launch all 5</button></div><div id="wh"></div>${HONEST}`;
const probs=[['P1','cannonico','Autonomous-system oversight','Operator'],['P2','tychee','Air-gapped governance','Policy/Safety'],['P3','hangar2apps','Deployment readiness','Receipts'],['P4','cyber-rts','Anomaly triage','Reasoning'],['P5','raven','Edge AI mesh','Operator']];
el('wh').innerHTML=probs.map(([id,key,t,o])=>`<div class="card"><div class="card-h"><span class="badge b-teal">${id}</span><span class="card-t">${t}</span><span class="card-ep">handled by: ${o}</span></div><div class="btns"><button class="btn" onclick="wh_one('${key}','o-${key}')">\u25b6 Launch</button></div><pre class="out" id="o-${key}">\u2014 click to launch \u2014</pre></div>`).join('');}},
fleet:{title:'System Health',badge:'5 SERVICES',sub:'Live reachability of every service behind the platform \u2014 real probe, real latency. A service that is down shows honestly, never faked green.',
render:async(c)=>{c.innerHTML=`<div class="btns"><button class="btn teal" onclick="fleet_load()">\u25b6 Re-probe</button></div>
<div class="kpis"><div class="kpi"><div class="k">Up</div><div class="v live" id="fl-reach">probing\u2026</div></div><div class="kpi"><div class="k">Build security</div><div class="v teal">SLSA L1 honest</div></div><div class="kpi"><div class="k">Trust score</div><div class="v teal">research conjecture</div><div class="d">not a theorem</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Live reachability</span><span class="card-ep">public-URL probe</span></div><div id="fl-reach-host"><div class="row mono dim">probing\u2026</div></div></div>${HONEST}`;window.fleet_load();}},
mesh:{title:'Live System Map',badge:'3D',sub:'The platform and its services as one connected organism. The command platform sits at the core; each service is a node; every link is a live, conserved connection. Node color reflects the live health probe \u2014 down is shown honestly.',
render:async(c)=>{c.innerHTML=`<div class="btns"><button class="btn teal" onclick="mesh_load()">\u25b6 Re-probe + rebuild</button></div>
<div class="card"><div class="card-h"><span class="card-t">Connected system \u2014 live 3D</span><span class="card-ep">drag to orbit</span></div><div class="graph3d" id="mesh-3d"></div></div>
<div class="card"><div class="card-h"><span class="card-t">Reachability detail</span><span class="card-ep">live</span></div><div id="mesh-host"><div class="row mono dim">probing\u2026</div></div></div>${HONEST}`;window.mesh_load();}},
/* PROOF-BINDING (cite-in-code-only): the Living Organism / mesh-health score is
RELABEL-INVARIANT (F-G4): renaming or re-ordering services/organs does not
change the health score the graph encodes. W7-1 gives invariance under the
group action; F-G6 bounds how the score composes across sub-meshes. Practical
meaning surfaced to the operator as plain language ('health doesn't depend on
what you call the nodes') -- never the formula IDs. Node positions are forces,
not data; only live /api reachability + score drive color/size. */
organism:{title:'Living Organism',badge:'3D · SHOWSTOPPER',sub:'The platform as one breathing organism. a11oy — the orchestrating brain — sits at the GOLD center; every service is a node, every link is a live connection that flows back to the brain. Node color reflects the live health probe; a down service shows honestly, never faked green.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Brain</div><div class="v">a11oy</div><div class="d">orchestrating hub</div></div>
<div class="kpi"><div class="k">Organs reachable</div><div class="v live" id="org-reach">probing\u2026</div></div>
<div class="kpi"><div class="k">Links to brain</div><div class="v teal" id="org-links">\u2014</div></div>
<div class="kpi"><div class="k">Signed spans</div><div class="v" id="org-spans">\u2014</div><div class="d">live DAG depth</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">The brain at the center \u2014 live 3D</span><span class="card-ep">drag to orbit \u00b7 particles = live links</span></div><div class="graph3d hero" id="org-3d"></div><div class="brain-note">a11oy is the brain: every edge terminates at the gold core. Health from the live observability probe.</div></div>
<div class="card"><div class="card-h"><span class="card-t">Organ health detail</span><span class="card-ep">live probe</span></div><div id="org-host"><div class="row mono dim">probing\u2026</div></div>
<details class="raw"><summary>raw /observability/summary</summary><pre class="out" id="org-raw">loading\u2026</pre></details></div>${HONEST}`;window.organism_load();}},
/* PROOF-BINDING (cite-in-code-only): the Receipt-Chain 3D DAG is the runtime
face of three results. (1) F-G5 -- the audit walk over the hash-chain frontier
is BOUNDED: a verify-on-read traversal always TERMINATES in a bounded number
of steps (surfaced as 'audit walks always finish in bounded steps' -- the
efficiency claim that matters for Raven #5 tactical-edge audit). (2) verify-on-read
badge is powered by P5/P6 + W5-4 (each receipt re-verified against its parent
hash as it is read, not trusted blindly). (3) W7-6 (Doob two-sided envelope,
axiom-free) -- auditing EARLY or LATE cannot change the result, so the audit
copy is TWO-SIDED. All IDs live in code only. */
chain:{title:'Receipt Chain',badge:'3D · PROOF HERO',sub:'The brand\u2019s proof-of-governance centerpiece. Every command the operator brain runs is appended to a SHA-256 hash-chain, each receipt linked to its parent. This is a REAL verified chain \u2014 we render its true depth as a growing 3D directed graph. No competitor visualizes the audit chain as a living object.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Chain depth</div><div class="v" id="ch-depth">\u2014</div><div class="d">real hash chain</div></div>
<div class="kpi"><div class="k">Chain verified</div><div class="v live" id="ch-ver">\u2014</div></div>
<div class="kpi"><div class="k">Ledger receipts</div><div class="v teal" id="ch-led">\u2014</div></div>
<div class="kpi"><div class="k">Signature</div><div class="v live" id="ch-sig">\u2014</div><div class="d">signed \u00b7 ECDSA P-256 \u00b7 verified in browser</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Live hash-chain \u2014 3D directed graph</span><span class="card-ep">left\u2192right \u00b7 GENESIS at left</span></div><div class="graph3d hero" id="ch-3d"></div><div class="brain-note" id="ch-cap">building chain\u2026</div></div>
<div class="card"><div class="card-h"><span class="card-t">Receipt tail</span><span class="card-ep">verified replay log</span></div><div class="feedtail" id="ch-tail"></div>
<details class="raw"><summary>raw command-log</summary><pre class="out" id="ch-raw">loading\u2026</pre></details></div>${HONEST}`;window.chain_load();}},
pulse:{title:'Global Pulse',badge:'3D GLOBE · LIVE USGS',sub:'Real physical-world events on a live globe. Arcs animate from each earthquake epicenter (live USGS feed, past 24h) to a US hub that represents a11oy — the brain ingesting real-world signal. This is genuine live data from the U.S. Geological Survey, labeled as such.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Events (24h)</div><div class="v" id="pl-n">loading\u2026</div><div class="d">live USGS feed</div></div>
<div class="kpi"><div class="k">Strongest</div><div class="v warn" id="pl-max">\u2014</div><div class="d">magnitude</div></div>
<div class="kpi"><div class="k">Hub</div><div class="v teal">a11oy</div><div class="d">arcs terminate at brain</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Live earthquake arcs \u2192 a11oy</span><span class="card-ep">USGS all_day.geojson</span></div><div class="globe3d" id="pl-globe"></div><div class="brain-note">Source: USGS Earthquake Hazards Program (earthquake.usgs.gov), past-day feed. Arc color = magnitude.</div></div>
<div class="card"><div class="card-h"><span class="card-t">Recent events</span><span class="card-ep">live</span></div><div id="pl-list" style="max-height:260px;overflow-y:auto"><div class="row mono dim">loading USGS feed\u2026</div></div></div>${HONEST}`;window.pulse_load();}},
/* PROOF-BINDING (graph-substrate, cite-in-code-only -- NO on-screen jargon):
Trust Space point cloud is the geometric face of F-G1. The 13 trust axes are
plotted as an EXPANSION-SIDE CORE: F-G1 guarantees the scored region is a
well-defined core of the trust space (the side that can only grow as evidence
accumulates), so clusters/outliers in this cloud are meaningful, not artifacts
of an arbitrary embedding. On-screen copy stays plain ('research conjecture,
not a theorem') because the COMBINED-trust floor Lambda is Conjecture 1. */
trustspace:{title:'Trust Space',badge:'3D POINT-CLOUD',sub:'Every trust dimension plotted in a rotating 3D space. The 13 axes the brain scores before any high-consequence action become points whose position encodes their score \u2014 outliers and clusters are spatially obvious. Auto-rotating; drag to inspect.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Axes</div><div class="v" id="ts-n">13</div></div>
<div class="kpi"><div class="k">Combined trust</div><div class="v teal" id="ts-lam">\u2014</div><div class="d">vs floor 0.90</div></div>
<div class="kpi"><div class="k">Status</div><div class="v warn">research conjecture</div><div class="d">not a theorem</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">13 trust axes in 3D \u2014 score-mapped point cloud</span><span class="card-ep">auto-rotating</span></div><div class="echart tall" id="ts-cloud"></div><div class="brain-note">Each point is one trust axis from the live trust vector; height &amp; color encode its score. Cross-checked against the cortex service.</div></div>
<details class="raw"><summary>raw trust vector</summary><pre class="out" id="ts-raw">loading\u2026</pre></details>${HONEST}`;window.trustspace_load();}},
ontology:{title:'Service Map',badge:'ONTOLOGY GRAPH',sub:'The platform\u2019s objects and services as a typed node-link graph, with a11oy at the hub. Services, the trust gate, the safety gates, the receipt ledger and the consensus witnesses are objects; edges are live connections. An unreachable link is drawn in red.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Objects</div><div class="v" id="on-n">\u2014</div></div>
<div class="kpi"><div class="k">Connections</div><div class="v teal" id="on-e">\u2014</div></div>
<div class="kpi"><div class="k">Hub</div><div class="v">a11oy</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Service &amp; object ontology</span><span class="card-ep">drag nodes \u00b7 red = error edge</span></div><div class="cyto" id="on-cy"></div><div class="brain-note">Built from the live consensus mesh; node = service/object, edge = live wire. Down organ \u2192 red edge.</div></div>${HONEST}`;window.ontology_load();}},
lambda:{title:'Trust Score',badge:'13 CHECKS',sub:'Before any high-consequence action, the platform scores it across 13 trust dimensions and requires the combined score to clear a floor of 0.90. The score is honest about its own status: it is a research conjecture, not a proven-unique function.',
render:async(c)=>{c.innerHTML=`<div class="kpis"><div class="kpi"><div class="k">Trust score</div><div class="v teal" id="la-val">\u2014</div></div><div class="kpi"><div class="k">Floor</div><div class="v" id="la-floor">0.90</div></div><div class="kpi"><div class="k">Decision</div><div class="v" id="la-pass">\u2014</div></div><div class="kpi"><div class="k">Status</div><div class="v warn">research conjecture</div></div></div>
<div class="grid2">
<div class="card"><div class="card-h"><span class="card-t">Combined score</span><span class="card-ep">live</span></div><div class="gauge-wrap" style="justify-content:center"><div class="gauge"><canvas id="la-gauge"></canvas><div class="lbl"><div><div class="big" id="la-gbig">\u2014</div><div class="sm">vs floor 0.90</div></div></div></div></div></div>
<div class="card"><div class="card-h"><span class="card-t">13 trust dimensions</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="la-radar"></canvas></div></div>
</div>
<div class="card"><div class="card-h"><span class="card-t">Per-dimension scores</span></div><div class="chartbox tall"><canvas id="la-bars"></canvas></div><div id="la-host" style="margin-top:.6rem"></div></div>${HONEST}`;window.lambda_load();}},
gates:{title:'Safety Gates',badge:'8 GATES',sub:'Eight deny-by-default safety gates inspect every action for dangerous signals (injection, unsafe commands, banned vendors, and more). Anything suspicious is blocked before it runs.',
render:async(c)=>{c.innerHTML=`<div class="kpis"><div class="kpi"><div class="k">Gates</div><div class="v" id="g-count">\u2014</div></div><div class="kpi"><div class="k">Deny-by-default</div><div class="v warn" id="g-deny">\u2014</div></div><div class="kpi"><div class="k">Categories</div><div class="v teal" id="g-cat">\u2014</div></div></div>
<div class="grid2"><div class="card"><div class="card-h"><span class="card-t">Gate posture</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="g-donut"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Try it \u2014 inspect an action</span><span class="card-ep">live decision</span></div><div class="btns"><button class="btn" onclick="gate_try('DROP TABLE users')">Malicious payload</button><button class="btn teal" onclick="gate_try('summarize todays telemetry')">Benign request</button></div><pre class="out" id="g-try">\u2014 try an action \u2014</pre></div></div>
<div class="card"><div class="card-h"><span class="card-t">The 8 gates</span></div><div id="g-host" style="max-height:280px;overflow-y:auto"><div class="row mono dim">loading\u2026</div></div></div>${HONEST}`;window.gates_load();}},
feed:{title:'Live Decisions',badge:'STREAMING',sub:'A running feed of allow/deny decisions the safety system has made, each with the signals that drove it. This is the platform proving it is alive and governing in real time.',
render:async(c)=>{c.innerHTML=`<div class="kpis"><div class="kpi"><div class="k">Decisions buffered</div><div class="v" id="fd-n">\u2014</div></div><div class="kpi"><div class="k">Denied</div><div class="v warn" id="fd-deny">\u2014</div></div><div class="kpi"><div class="k">Allowed</div><div class="v live" id="fd-allow">\u2014</div></div></div>
<div class="grid2"><div class="card"><div class="card-h"><span class="card-t">Allow vs deny</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="fd-donut"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Recent decisions</span><span class="card-ep">live feed</span></div><div id="fd-host" style="max-height:280px;overflow-y:auto"><div class="row mono dim">loading\u2026</div></div></div></div>${HONEST}`;window.feed_load();}},
govern:{title:'Readiness & Compliance',badge:'GO/NO-GO + EVIDENCE',sub:'Two governance demos in one pane. Left: a deployment-readiness check that scores a subject against required criteria and returns a clear Go, Needs-Review, or No-Go verdict with every gap named. Right: control coverage mapped to a recognized framework (NIST, STIG, ISO 27001), each control backed by an evidence hash \u2014 audit-ready, with no third-party audit claimed.',
render:(c)=>{c.innerHTML=`<div class="grid2">
<div class="card"><div class="card-h"><span class="card-t">Readiness \u2014 Go / No-Go</span><span class="card-ep">live</span></div>
<div class="btns"><button class="btn teal" onclick="readiness_run()">\u25b6 Assess a sample subject</button></div>
<div class="chartbox" style="height:200px"><canvas id="rd-donut"></canvas></div><div id="rd-host" style="margin-top:.6rem"><div class="row mono dim">click assess\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Compliance coverage</span><span class="card-ep">live</span></div>
<div class="btns"><button class="btn teal" onclick="comp_run('NIST')">NIST</button><button class="btn" onclick="comp_run('STIG')">STIG</button><button class="btn" onclick="comp_run('ISO27001')">ISO 27001</button></div>
<div class="chartbox" style="height:200px"><canvas id="cp-donut"></canvas></div><div id="cp-host" style="margin-top:.6rem"><div class="row mono dim">pick a framework\u2026</div></div></div>
</div>${HONEST}`;}},
forecast:{title:'Forecast',badge:'8 METRICS \u00b7 CALIBRATED PI BANDS',sub:'A deterministic calibrated baseline (exponential smoothing) across eight business metrics. Each forecast shows a point estimate with 80% and 95% prediction intervals and its own calibration score. The intervals are model prediction intervals, not guarantees \u2014 and the whole baseline is content-hashed so the same inputs always reproduce the same numbers.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Metrics</div><div class="v" id="fc-n">\u2014</div></div>
<div class="kpi"><div class="k">Avg calibration</div><div class="v teal" id="fc-cal">\u2014</div><div class="d">0\u20131, higher = better</div></div>
<div class="kpi"><div class="k">Method</div><div class="v" id="fc-meth">\u2014</div></div>
<div class="kpi"><div class="k">Determinism hash</div><div class="v mono" id="fc-hash" style="font-size:14px">\u2014</div><div class="d">reproducible</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Per-metric calibration score</span><span class="card-ep">recorded baseline</span></div><div class="chartbox tall"><canvas id="fc-bars"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Point estimate + 80% / 95% prediction intervals</span><span class="card-ep">model PIs \u2014 not guarantees</span></div><div id="fc-host"><div class="row mono dim">loading\u2026</div></div>
<details class="raw"><summary>raw forecast baseline</summary><pre class="out" id="fc-raw">loading\u2026</pre></details></div>${HONEST}`;window.forecast_load();}},
receipts:{title:'Signed Receipts',badge:'VERIFY YOURSELF',sub:'Every governed decision can produce a cryptographically signed, tamper-evident receipt that anyone can verify offline \u2014 no trust in us required. This is the core differentiator: no market leader signs individual AI decisions.',
render:async(c)=>{c.innerHTML=`<div class="kpis"><div class="kpi"><div class="k">Receipts (ledger)</div><div class="v" id="rc-n">\u2014</div></div><div class="kpi"><div class="k">Chain</div><div class="v teal" id="rc-chain">\u2014</div></div><div class="kpi"><div class="k">Signature</div><div class="v live" id="rc-verify">\u2014</div><div class="d">verified in your browser</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Verify a real signed receipt \u2014 in your browser</span><span class="card-ep">WebCrypto \u00b7 ECDSA P-256</span></div>
<div class="row"><button class="btn" onclick="window.receipts_verify(false)">Fetch &amp; verify receipt</button><button class="btn" onclick="window.receipts_verify(true)">Verify a tampered copy</button></div>
<div id="rc-vout" style="margin-top:.6rem"><div class="row mono dim">Click \u201cFetch &amp; verify\u201d \u2014 the public key and a signed envelope are fetched from this service and checked locally.</div></div>
<details class="raw"><summary>raw signed envelope + public key</summary><pre class="out" id="rc-env">\u2014</pre></details></div>
<div class="card"><div class="card-h"><span class="card-t">Receipt activity</span><span class="card-ep">live</span></div><div class="chartbox" style="height:200px"><canvas id="rc-line"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Audit trail</span><span class="card-ep">hash-chained</span></div><div id="rc-host"><div class="row mono dim">loading\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Public transparency-log anchor \u2014 Sigstore Rekor</span><span class="card-ep">live root \u00b7 RFC 6962 Merkle</span></div>
<div class="kpis"><div class="kpi"><div class="k">Rekor tree size</div><div class="v teal" id="rk-size">\u2014</div><div class="d">public good-instance</div></div>
<div class="kpi"><div class="k">Root hash</div><div class="v mono" id="rk-root" style="font-size:13px">\u2014</div><div class="d">live signed tree head</div></div>
<div class="kpi"><div class="k">Reachable</div><div class="v live" id="rk-reach">\u2014</div></div></div>
<div class="row"><button class="btn" onclick="window.rekor_verify()">Verify a real Rekor inclusion proof</button></div>
<div id="rk-vout" style="margin-top:.6rem"><div class="row mono dim">Recomputes the Merkle root from a real public entry's leaf + audit path (RFC 6962) \u2014 never trusting the server's verdict.</div></div>
<div class="brain-note">Adapts Sigstore/Chainguard transparency UX. The root shown is the <b>live, independently-verifiable</b> public Rekor log (1.9B+ entries). Honest: a11oy's own receipts use its in-image DSSE+khipu chain; public-log submission of a11oy receipts is <b>ROADMAP</b>. Merkle math mirrors Lean F15.</div></div>
<div class="honesty"><b>Verify it yourself.</b> a11oy signs receipts with its own in-image ECDSA P-256 key. Fetch the public key at <span class="mono">/cosign.pub</span> and a signed envelope at <span class="mono">/api/a11oy/v1/receipt/export</span>, then verify the signature \u2014 here, in your browser, or offline with openssl. A single tampered byte fails verification. The key is ephemeral and resets on every rebuild.</div>`;window.receipts_load();}},
/* PROOF-BINDING (cite-in-code-only): the Knowledge Ontology entity-link graph
(axioms -> theorems -> formulas) is bounded by F-G2's EXPRESSIVITY CEILING:
the link structure can encode exactly the relationships F-G2 admits and no
more, so the graph cannot imply a derivation the substrate does not support.
This view READS knowledge.json proof_summary ONLY (owned by the instill
squads) -- it never rewrites it. On-screen text stays plain English. */
knowledge:{title:'Knowledge Ontology',badge:'AXIOMS \u2192 THEOREMS \u2192 FORMULAS',sub:'The platform\u2019s intellectual-property ontology as a typed, citable graph: foundational axioms feed proven theorems, which ground the working formulas. Click any node for its formal statement, DOI citation, and an honest maturity badge \u2014 teal = formally proven, gold = empirically measured, amber = open conjecture. Loaded live from the published knowledge base (/knowledge.json).',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Axioms</div><div class="v" id="kn-ax">\u2014</div><div class="d">foundational</div></div>
<div class="kpi"><div class="k">Theorems</div><div class="v teal" id="kn-th">\u2014</div><div class="d">Lean-checked</div></div>
<div class="kpi"><div class="k">Formulas</div><div class="v" id="kn-fm">\u2014</div><div class="d">working set</div></div>
<div class="kpi"><div class="k">DOIs</div><div class="v teal" id="kn-doi">\u2014</div><div class="d">Zenodo deposits</div></div></div>
<div class="grid2">
<div class="card" style="grid-column:1/-1"><div class="card-h"><span class="card-t">Axioms \u2192 theorems \u2192 formulas \u2014 typed ontology</span><span class="card-ep">drag \u00b7 click a node</span></div><div class="cyto" id="kn-cy"></div>
<div class="legend"><span><i style="background:#5fb3a3"></i>proven</span><span><i style="background:#c9b787"></i>measured</span><span><i style="background:#c9a05f"></i>conjecture</span><span><i style="background:#888"></i>defined</span></div></div>
</div>
<div class="card" id="kn-detail"><div class="row mono dim">Click any node in the graph to see its formal statement, citation, and maturity.</div></div>${HONEST}`;window.knowledge_load();}},
kbformulas:{title:'Formulas',badge:'KaTeX \u00b7 100 RENDERED',sub:'Every formula in the platform\u2019s mathematical corpus, rendered in proper math typesetting and searchable. Each carries its source file and citation. Honesty: only five are formally proven in Lean (machine-checked, zero gaps); the rest are working, experimental, or definitional \u2014 never presented as theorems. The trust-score uniqueness claim remains an open research conjecture.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Formulas</div><div class="v" id="kf-n">\u2014</div><div class="d">rendered (KaTeX)</div></div>
<div class="kpi"><div class="k">Formally proven</div><div class="v teal">8</div><div class="d">Lean, machine-checked</div></div>
<div class="kpi"><div class="k">Trust-score uniqueness</div><div class="v warn">open conjecture</div></div>
<div class="kpi"><div class="k">Source files</div><div class="v teal" id="kf-src">\u2014</div></div></div>
<div class="grid2"><div class="card"><div class="card-h"><span class="card-t">Proof status</span><span class="card-ep">honest</span></div><div class="chartbox"><canvas id="kf-donut"></canvas></div><div class="legend"><span><i style="background:#5fb3a3"></i>proven (8, locked)</span><span><i style="background:#c9b787"></i>working / open</span><span><i style="background:#b06a5a"></i>conjecture</span></div></div>
<div class="card"><div class="card-h"><span class="card-t">The eight proven (Lean, sorry-free)</span><span class="card-ep">locked</span></div><div id="kf-proven"><div class="row mono dim">loading\u2026</div></div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Formula corpus \u2014 rendered &amp; searchable</span><span class="card-ep" id="kf-count">\u2014</span></div>
<input id="kf-search" placeholder="search formulas by id, source, or LaTeX\u2026" oninput="window.kbf_filter(this.value)" style="width:100%;padding:.6rem .8rem;background:#080808;border:1px solid var(--gold-line);border-radius:8px;color:var(--cream);font-family:var(--mono);font-size:12px;margin-bottom:.8rem"/>
<div id="kf-list" style="max-height:520px;overflow:auto"><div class="row mono dim">loading /knowledge.json\u2026</div></div></div>${HONEST}`;window.kbformulas_load();}},
policies:{title:'Vertical Policies',badge:'10 REGULATED INDUSTRIES',sub:'Governance policy packs for ten regulated verticals \u2014 each binds real-world regulations to required attestors, per-axis trust-score floors, forbidden inputs, mandatory output formats, retention windows, and a deal-size band. These are the configurable guardrails the brain enforces per industry. Loaded live from the published policy bundle.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Verticals</div><div class="v" id="pv-n">\u2014</div><div class="d">policy packs</div></div>
<div class="kpi"><div class="k">Regulations cited</div><div class="v teal" id="pv-reg">\u2014</div></div>
<div class="kpi"><div class="k">Strictest floor</div><div class="v warn" id="pv-max">\u2014</div><div class="d">per-axis trust</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Per-axis trust-score floors by vertical</span><span class="card-ep">live</span></div><div class="echart" id="pv-bar"></div><div class="brain-note">Higher floor = stricter trust requirement before the brain permits an action in that industry.</div></div>
<div class="card"><div class="card-h"><span class="card-t">Policy packs</span><span class="card-ep">click to expand</span></div><div id="pv-list"><div class="row mono dim">loading policy bundle\u2026</div></div></div>${HONEST}`;window.policies_load();}},
threats:{title:'Threat Library',badge:'30 PATTERNS',sub:'The known attack patterns behind the safety gates \u2014 each tagged with severity, MITRE ATT&CK technique, and a CVSS score. This is the intelligence the platform screens every action against.',
render:async(c)=>{c.innerHTML=`<div class="kpis"><div class="kpi"><div class="k">Patterns</div><div class="v" id="th-n">\u2014</div></div><div class="kpi"><div class="k">Critical</div><div class="v warn" id="th-crit">\u2014</div></div><div class="kpi"><div class="k">High</div><div class="v" id="th-high">\u2014</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">By severity</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="th-bars"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Pattern list</span><span class="card-ep">live</span></div><div id="th-host" style="max-height:260px;overflow-y:auto"><div class="row mono dim">loading\u2026</div></div></div>${HONEST}`;window.threats_load();}},
ayni:{title:'Reciprocity (Ayni)',badge:'LIVE \u00b7 EVENT-SOURCED FROM SIGNED RECEIPTS',sub:'Per-organ reciprocity balance (Ayni coefficient \u03b1) and empire-wide synchrony (Kuramoto order parameter r), event-sourced live from the platform\u2019s signed KIPU receipt stream \u2014 not hand-typed seeds. \u03b1 = In/(In+Out) per organ (Axelrod\u2013Hamilton 1981 direct reciprocity); r is the Kuramoto (1975) order parameter over organ control-loop phases. Honest: the shipped receipt corpus is a labelled sample stream, and the data source is shown on every panel.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Synchrony r</div><div class="v teal" id="ay-r">loading\u2026</div><div class="d">Kuramoto order parameter</div></div>
<div class="kpi"><div class="k">Flow state</div><div class="v" id="ay-flow">\u2014</div><div class="d">r &gt; 0.85 = TINKUY</div></div>
<div class="kpi"><div class="k">Organs balanced</div><div class="v" id="ay-bal">\u2014</div><div class="d">\u03b1 \u2265 0.45 (no T24 drain)</div></div>
<div class="kpi"><div class="k">Receipts ingested</div><div class="v" id="ay-rcpt">\u2014</div><div class="d" id="ay-src">source</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Empire synchrony \u2014 Kuramoto phase circle</span><span class="card-ep">live \u00b7 r\u00b7e^{i\u03c8}</span></div><div id="ay-circle" style="display:flex;justify-content:center;padding:.4rem 0"></div><div class="brain-note">Each dot is an organ on the unit circle at its control-loop phase \u03b8. The gold arrow is the mean resultant r\u00b7e^{i\u03c8} \u2014 longer = more phase-locked (coherent \u201cflow\u201d). Phases are recomputed live from each organ\u2019s real receipt activity on every request.</div></div>
<div class="card"><div class="card-h"><span class="card-t">Per-organ reciprocity balance (\u03b1)</span><span class="card-ep">In/(In+Out) \u00b7 event-sourced</span></div><div id="ay-bars"><div class="row mono dim">loading reciprocity ledger\u2026</div></div><div class="brain-note">\u03b1 = 0.5 is balanced; \u03b1 &lt; 0.45 = net-drained (HUKLLA T24 tripwire fires). Each organ\u2019s In (signed attestations given) and Out (compute consumed) are replayed from its real signed receipts.</div></div>${HONEST}`;window.ayni_load();}},
cve:{title:'CVE Watch',badge:'LIVE · NVD',sub:'The newest published software vulnerabilities, pulled live from the U.S. National Vulnerability Database (NVD CVE API 2.0). Real CVE IDs, real CVSS severities \u2014 the external threat surface the platform screens against. Source: services.nvd.nist.gov.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">CVEs loaded</div><div class="v" id="cv-n">loading\u2026</div><div class="d">live NVD feed</div></div>
<div class="kpi"><div class="k">Critical/High</div><div class="v warn" id="cv-hi">\u2014</div></div>
<div class="kpi"><div class="k">Newest</div><div class="v teal" id="cv-new">\u2014</div></div>
<div class="kpi"><div class="k">Total in NVD</div><div class="v" id="cv-tot">\u2014</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Severity distribution (CVSS)</span><span class="card-ep">live</span></div><div class="echart" id="cv-bar"></div></div>
<div class="card"><div class="card-h"><span class="card-t">Exposure Priority \u2014 fix-this-first</span><span class="card-ep">agentic \u00b7 fuses NVD + live CISA KEV + adversary corpus</span></div>
<div class="kpis"><div class="kpi"><div class="k">Actively exploited (KEV)</div><div class="v warn" id="ep-kev">correlating\u2026</div><div class="d">of newest CVEs</div></div>
<div class="kpi"><div class="k">Adversary-technique match</div><div class="v teal" id="ep-tech">\u2014</div><div class="d">vs in-image corpus</div></div>
<div class="kpi"><div class="k">Top exposure score</div><div class="v" id="ep-top">\u2014</div><div class="d">0\u2013100 \u00b7 transparent</div></div></div>
<div class="echart" id="ep-bubble"></div>
<div class="legend"><span><i style="background:#b06a5a"></i>KEV / actively exploited</span><span><i style="background:#c9b787"></i>high public-signal exposure</span><span><i style="background:#5fb3a3"></i>standard</span><span class="mono dim">bubble size = exposure priority</span></div>
<div style="max-height:300px;overflow:auto;margin-top:.5rem"><table class="dtbl"><thead><tr><th>#</th><th>CVE</th><th>Exposure</th><th>CVSS</th><th>Why it ranks here</th></tr></thead><tbody id="ep-tb"><tr><td colspan=5 class="mono dim">ranking\u2026</td></tr></tbody></table></div>
<div class="brain-note">Built upon CrowdStrike ExPRT.AI, Wiz contextual prioritization, and the Picus Exposure Score: severity alone is an input, priority is a decision. We fuse CVSS with CISA-KEV \u201cexploited-in-the-wild\u201d and a match against the platform\u2019s own adversary-technique corpus, then show the top contributing factors per row \u2014 a deterministic, transparent score. Honest limit: public-signal scoring only (no environment telemetry / asset criticality), so it is NOT environment-aware like a deployed Falcon/Wiz tenant. Auto-refreshes with the live feeds.</div></div>
<div class="card"><div class="card-h"><span class="card-t">Newest vulnerabilities</span><span class="card-ep">NVD CVE 2.0</span></div><div style="max-height:340px;overflow:auto"><table class="dtbl"><thead><tr><th>CVE</th><th>Severity</th><th>CVSS</th><th>Published</th><th>Summary</th></tr></thead><tbody id="cv-tb"><tr><td colspan=5 class="mono dim">loading NVD feed\u2026</td></tr></tbody></table></div></div>${HONEST}`;window.cve_load();}},
kev:{title:'Known-Exploited',badge:'LIVE · CISA KEV',sub:'CISA\u2019s Known Exploited Vulnerabilities catalog \u2014 vulnerabilities confirmed exploited in the wild. Live-tailed newest-first from the official cisagov GitHub mirror. These are the priority threats; remediation due-dates are real. Source: github.com/cisagov.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">KEV entries</div><div class="v" id="kv-n">loading\u2026</div><div class="d">live CISA catalog</div></div>
<div class="kpi"><div class="k">Catalog version</div><div class="v teal" id="kv-ver">\u2014</div></div>
<div class="kpi"><div class="k">Ransomware-linked</div><div class="v warn" id="kv-ransom">\u2014</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Newest known-exploited \u2014 live tail</span><span class="card-ep">cisagov mirror</span></div><div class="feedtail" id="kv-tail"></div></div>
<div class="card"><div class="card-h"><span class="card-t">Top exploited vendors</span><span class="card-ep">live</span></div><div class="echart" id="kv-bar"></div></div>${HONEST}`;window.kev_load();}},
attack:{title:'Adversary Techniques',badge:'LIVE · MITRE ATT&CK',sub:'The MITRE ATT&CK enterprise knowledge base of adversary techniques mapped to their tactics, rendered as a node-link graph. Loaded live from the official MITRE STIX dataset \u2014 a large file (~50MB), so we fetch with a timeout and graph a bounded subset honestly. Source: github.com/mitre-attack.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Techniques graphed</div><div class="v" id="at-n">loading\u2026</div><div class="d">bounded subset</div></div>
<div class="kpi"><div class="k">Tactics</div><div class="v teal" id="at-t">\u2014</div></div>
<div class="kpi"><div class="k">Source</div><div class="v">MITRE</div><div class="d">ATT&amp;CK STIX</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Technique \u2192 tactic intel graph</span><span class="card-ep" id="at-cap">fetching bounded STIX subset server-side\u2026</span></div>
<div class="dag3d" id="at-3d" style="height:380px;border-radius:9px;overflow:hidden"><div class="row mono dim" style="padding:1rem">Loading holographic ATT&CK graph\u2026</div></div>
<div class="cyto" id="at-cy" style="margin-top:.6rem"></div>
<div class="brain-note">Server-side bounded parse of the official MITRE ATT&CK v17.1 STIX (no ~50MB client download \u2014 sovereign, CORS-safe). Holographic 3D technique\u2192tactic correlation graph (Recorded-Future-style intel graph), with a 2D fallback. Tactics in teal, techniques in gold.</div></div>${HONEST}`;window.attack_load();}},
llm:{title:'Model Router',badge:'5-TIER \u00b7 LIVE ELO',sub:'The platform routes each task to the right model tier by cost and capability. A real model call when a key is present, an honest stub otherwise \u2014 the tier choice and the trust receipt are always real. The router can also consult a live external quality signal: LMArena human-preference Elo (advisory, \u039b Conjecture 1), with a quality\u00d7adoption frontier from Hugging Face Hub downloads. Prior art cited: LMArena, Hugging Face, Artificial Analysis, OpenRouter.',
render:async(c)=>{c.innerHTML=`<div class="grid2"><div class="card"><div class="card-h"><span class="card-t">Tier throughput</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="l-bars"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Model roster</span><span class="card-ep">live</span></div><div id="l-host" style="max-height:300px;overflow-y:auto"><div class="row mono dim">loading\u2026</div></div></div></div>
<div class="grid2"><div class="card"><div class="card-h"><span class="card-t">Live model leaderboard \u2014 LMArena human-preference Elo</span><span class="card-ep" id="l-lb-fresh">fetching\u2026</span></div><div id="l-lb" style="max-height:300px;overflow-y:auto"><div class="row mono dim">loading\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Quality \u00d7 adoption frontier</span><span class="card-ep">Elo \u00d7 HF downloads</span></div><div class="chartbox" id="l-pareto" style="height:300px"></div><div class="brain-note" id="l-pareto-note">Quality = LMArena Elo, adoption = Hugging Face downloads (both live). Price / tokens-per-sec axes are ROADMAP \u2014 no measured serving feed, not fabricated.</div></div></div>
<details class="raw"><summary>raw tiers + live model intel</summary><pre class="out" id="l-out">loading\u2026</pre></details>${HONEST}`;
try{const d=await getJSON(API+'/v1/llm/tiers').catch(()=>orgGet('core','/api/a11oy/v1/reason/tiers'));setOut('l-out',d);const tiers=d.tiers||[];setHTML('l-host','');tiers.forEach(t=>addHTML('l-host',`<div class="row"><span class="badge b-teal">T${esc(t.rank??'')}</span><span>${esc(t.id||t.model||'')}</span><span class="spacer mono dim">${esc(t.use||'')}</span></div>`));}catch(e){setHTML('l-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}
try{const r=await getJSON(API+'/v1/router/stats');const routes=r.routes||[];barH('l-bars',routes.map(x=>x.organ+' \u00b7 '+(x.tier||'')),routes.map(x=>x.throughput||0),routes.map(x=>x.license==='GREEN'?TEAL:GOLD));}catch(e){}
window.models_intel_load();}},
mcp:{title:'Agent Tools',badge:'LIVE',sub:'The tools the platform exposes to AI agents over the Model Context Protocol. Read the registry, then actually invoke a tool \u2014 every call returns a real, doctrine-stamped response.',
render:async(c)=>{c.innerHTML=`<div class="grid2"><div class="card"><div class="card-h"><span class="card-t">Tools available</span><span class="card-ep">live</span></div><div class="chartbox" style="height:220px"><canvas id="mcp-bar"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Invoke a tool</span><span class="card-ep">live call</span></div><div class="btns"><button class="btn teal" onclick="mcp_call('lambda_score')">Score trust</button><button class="btn" onclick="mcp_call('a11oy_gate')">Run gate</button><button class="btn" onclick="mcp_call('khipu_sign')">Sign receipt</button><button class="btn" onclick="mcp_call('khipu_verify')">Verify receipt</button></div><pre class="out" id="o-mcp">\u2014 invoke \u2014</pre></div></div>
<div class="card"><div class="card-h"><span class="card-t">Registry</span></div><div id="mcp-list"><div class="row mono dim">loading\u2026</div></div></div>${HONEST}`;window.mcp_list();}},
honest:{title:'What We Claim',badge:'NO BANDAIDS',sub:'The single source of truth for what this platform does and does NOT claim \u2014 published, not marketed. If it is not proven, we say so.',
render:async(c)=>{c.innerHTML=`<div class="card"><div class="card-h"><span class="card-t">Honest claims</span><span class="card-ep">live</span></div><div id="ho-host"><div class="row mono dim">loading\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">What we do NOT claim</span></div>
<div class="row"><span class="badge b-err">NOT</span><span>The trust score is NOT a proven-unique function \u2014 it is a research conjecture.</span></div>
<div class="row"><span class="badge b-err">NOT</span><span>NOT SLSA L3, NOT FedRAMP, NOT Iron Bank, NOT CMMC. Builds are SLSA Level 2.</span></div>
<div class="row"><span class="badge b-err">NOT</span><span>NOT a third-party audit. Compliance coverage is self-evidenced with hashes.</span></div>
<div class="row"><span class="badge b-err">NOT</span><span>Only 8 formulas are formally proven (locked); the rest are open or experimental.</span></div>
</div>
<details class="raw"><summary>raw honesty record</summary><pre class="out" id="o-honest">loading\u2026</pre></details>${HONEST}`;window.honest_load();}},
decision:{title:'Governed Decision',badge:'SIGNALS \u2192 FORECAST \u2192 RECEIPT',sub:'The full governed-decision loop in one place: live signals feed a calibrated forecast, evidence is gathered, a reversible recommendation is produced with an advisory trust score, and the whole decision is sealed into a signed receipt. Every step is named and auditable; the recommendation always requires human approval.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Trust (advisory)</div><div class="v teal" id="gd-lam">\u2014</div><div class="d">\u039b Conjecture 1</div></div>
<div class="kpi"><div class="k">Recommendation</div><div class="v" id="gd-conf">\u2014</div><div class="d">confidence</div></div>
<div class="kpi"><div class="k">Human approval</div><div class="v warn" id="gd-appr">required</div></div>
<div class="kpi"><div class="k">Receipt</div><div class="v live" id="gd-rcpt">\u2014</div><div class="d">signed</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">The decision loop</span><span class="card-ep">live</span></div><div id="gd-loop" class="loopbar"><div class="row mono dim">loading\u2026</div></div></div>
<div class="grid2">
<div class="card"><div class="card-h"><span class="card-t">Live signals</span></div><div id="gd-sig"><div class="row mono dim">loading\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Evidence gathered</span></div><div id="gd-ev"><div class="row mono dim">loading\u2026</div></div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Recommendation</span><span class="card-ep">reversible \u00b7 advisory</span></div><div id="gd-rec"><div class="row mono dim">loading\u2026</div></div>
<details class="raw"><summary>raw governed-decision + signed receipt</summary><pre class="out" id="gd-raw">loading\u2026</pre></details></div>${HONEST}`;window.decision_load();}},
arena:{title:'Eval Arena',badge:'RECORDED RUN \u00b7 5 SCENARIOS',sub:'A recorded, content-hashed run from the SZL evaluation harness. Five governance scenarios are scored across seven dimensions \u2014 correctness, evidence completeness, approval compliance, replay completeness, policy adherence, hallucination resistance, and tool efficiency. These are real recorded results; live re-runs are on the roadmap and labelled as such.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Scenarios</div><div class="v" id="ar-n">\u2014</div></div>
<div class="kpi"><div class="k">Passed</div><div class="v live" id="ar-pass">\u2014</div></div>
<div class="kpi"><div class="k">Leaderboard top</div><div class="v teal" id="ar-top">\u2014</div></div>
<div class="kpi"><div class="k">Run date</div><div class="v" id="ar-date">\u2014</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Per-scenario overall score</span><span class="card-ep">recorded</span></div><div class="chartbox tall"><canvas id="ar-bars"></canvas></div></div>
<div class="card"><div class="card-h"><span class="card-t">Scenario detail</span></div><div id="ar-host"><div class="row mono dim">loading\u2026</div></div>
<details class="raw"><summary>raw arena run report</summary><pre class="out" id="ar-raw">loading\u2026</pre></details></div>
<div class="card"><div class="card-h"><span class="card-t">External benchmark \u2014 LMArena human-preference Elo</span><span class="card-ep" id="ar-lb-fresh">fetching\u2026</span></div><div class="brain-note">A separate, externally-sourced opinion (NOT a11oy's own governance eval above): live blind-pairwise human-preference Elo from the public LMArena leaderboard dataset. Cited, not claimed as ours.</div><div id="ar-lb"><div class="row mono dim">loading\u2026</div></div></div>${HONEST}`;window.arena_load();window.arena_elo_load();}},
business:{title:'Business Observability',badge:'5 DOMAINS \u00b7 REAL DATA',sub:'Five capability domains observed on real in-image data \u2014 coverage, connectivity, cognitive, executive interfaces, and impact. Every figure is computed from this service\u2019s own live state. We deliberately do not reproduce any third-party marketing percentages as our own.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Domains</div><div class="v" id="bz-n">\u2014</div></div>
<div class="kpi"><div class="k">On real data</div><div class="v live" id="bz-real">\u2014</div></div>
<div class="kpi"><div class="k">Trust status</div><div class="v warn">research conjecture</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Capability domains</span><span class="card-ep">live in-image</span></div><div id="bz-host"><div class="row mono dim">loading\u2026</div></div>
<details class="raw"><summary>raw business observability</summary><pre class="out" id="bz-raw">loading\u2026</pre></details></div>
<div class="card"><div class="card-h"><span class="card-t">Markets &amp; Fiscal \u2014 live from SEC / Treasury / Fed</span><span class="card-ep" id="mk-ep">SEC EDGAR \u00b7 Treasury \u00b7 FRED</span></div>
<div class="row mono dim" style="margin-bottom:.4rem">A real filer\u2019s 10-K financials, the live U.S. national debt, and a Fed macro series \u2014 each labelled with its source + honest state. Informational, not investment advice.</div>
<div id="mk-host"><div class="row mono dim">loading live markets data\u2026</div></div>
<details class="raw"><summary>raw markets summary</summary><pre class="out" id="mk-raw">loading\u2026</pre></details></div>${HONEST}`;window.business_load();}},
verticals:{title:'Vertical-Pack Ecosystem',badge:'13 PACKS \u00b7 LIVE + ROADMAP',sub:'The catalog of domain packs built on the a11oy core. Each pack reuses the same governed-decision engine, signed receipts, and trust scoring for a specific business domain. Live packs are shipping today; stub packs are scaffolded and honestly marked as roadmap.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Packs</div><div class="v" id="vp-n">\u2014</div></div>
<div class="kpi"><div class="k">Live</div><div class="v live" id="vp-live">\u2014</div></div>
<div class="kpi"><div class="k">Roadmap (stub)</div><div class="v warn" id="vp-stub">\u2014</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Live / shipping packs</span><span class="card-ep">reuse the a11oy core</span></div><div id="vp-live-host"><div class="row mono dim">loading\u2026</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">Roadmap packs</span><span class="card-ep">scaffolded \u00b7 honest stub</span></div><div id="vp-stub-host"><div class="row mono dim">loading\u2026</div></div>
<details class="raw"><summary>raw vertical-pack registry</summary><pre class="out" id="vp-raw">loading\u2026</pre></details></div>${HONEST}`;window.verticals_load();}},
ledger3d:{title:'Trust Ledger',badge:'ENTITY GRAPH + VERIFIED PROOF-CHAIN',sub:'Every decision, signed and explainable. A live entity-link graph of the platform\u2019s objects (capabilities, decisions, receipts) fused with a scrubable, cryptographically hash-chained proof timeline. Click any node to see its inputs, health, trust score (conjecture), and receipt chip. Builds on Palantir\u2019s Object Explorer + Quiver and Wiz\u2019s Security Graph \u2014 and adds a verifiable proof-chain neither ships.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Chain depth</div><div class="v" id="tl-depth">\u2014</div><div class="d">real hash-chain</div></div>
<div class="kpi"><div class="k">Receipts shown</div><div class="v teal" id="tl-count">\u2014</div><div class="d">live command-log</div></div>
<div class="kpi"><div class="k">Chain status</div><div class="v live" id="tl-verified">\u2014</div><div class="d">recomputed each receipt</div></div>
<div class="kpi"><div class="k">Head hash</div><div class="v mono teal" id="tl-head" style="font-size:13px">\u2014</div></div></div>
<div class="split2">
<div class="card"><div class="card-h"><span class="card-t">Entity-link graph \u2014 objects &amp; receipts</span><span class="card-ep">click to inspect \u00b7 drag to arrange</span></div><div class="tl-graphbox" id="tl-graph"></div></div>
<div class="card"><div class="card-h"><span class="card-t">Selected entity</span><span class="card-ep">live</span></div><div class="detailbox" id="tl-detail"></div></div>
</div>
<div class="card"><div class="card-h"><span class="card-t">Verified proof-chain timeline \u2014 GENESIS \u2192 HEAD</span><span class="card-ep">animated scrub head sweeps the chain</span></div><div id="tl-timeline" style="height:130px"></div><div class="brain-note">Each dot is a real receipt linked to its parent by SHA-256. Receipts here are <b>hash-chained but UNSIGNED</b> (no cosign key in this image \u2014 honest).</div></div>${HONEST}`;window.ledger3d_load();}},
lineage:{title:'Knowledge Lineage',badge:'UNITY-CATALOG DAG \u00b7 PROOF MATURITY \u00b7 DOIs',sub:'Where every answer comes from. An expandable lineage DAG \u2014 axioms feed theorems feed formulas feed constants and DOIs \u2014 colored by proof maturity. Teal nodes are formally proven (kernel-verified in Lean); gold nodes are honestly labelled conjecture. Click any node to trace a claim to its statement and citation, or export an auditable provenance record (AIBOM). Builds on Databricks Unity Catalog lineage and HiddenLayer AIBOM.',
render:async(c)=>{c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Axioms</div><div class="v" id="ln-ax">\u2014</div></div>
<div class="kpi"><div class="k">Theorems</div><div class="v teal" id="ln-th">\u2014</div></div>
<div class="kpi"><div class="k">Formulas</div><div class="v" id="ln-fm">\u2014</div></div>
<div class="kpi"><div class="k">Proven (kernel)</div><div class="v teal" id="ln-proven">\u2014</div><div class="d">Lean, sorry-free</div></div>
<div class="kpi"><div class="k">DOIs</div><div class="v" id="ln-doi">\u2014</div><div class="d">citable</div></div></div>
<div class="split2">
<div class="card"><div class="card-h"><span class="card-t">Lineage DAG \u2014 axiom \u2192 theorem \u2192 formula \u2192 DOI</span><span class="card-ep"><button onclick="window.lineage_export()" style="background:#0e0e0e;border:1px solid var(--gold-line);color:var(--gold);border-radius:6px;padding:.25rem .6rem;cursor:pointer;font-family:var(--mono);font-size:10px">\u2193 Export provenance (AIBOM)</button></span></div><div class="ln-dagbox" id="ln-dag"></div>
<div class="legend"><span><i style="background:#5fb3a3"></i>proven (kernel-verified)</span><span><i style="background:#c9a05f"></i>conjecture (honest)</span><span><i style="background:#888"></i>axiom / defined</span></div></div>
<div class="card"><div class="card-h"><span class="card-t">Selected claim</span><span class="card-ep">statement \u00b7 maturity \u00b7 citation</span></div><div class="detailbox" id="ln-detail"></div></div>
</div>${HONEST}`;window.lineage_load();}},
mission:{title:'Mission Health',badge:'WORKLOADS HONEYCOMB \u00b7 BUSINESS OUTCOME',sub:'Is the whole platform doing its job \u2014 in one sentence? A New-Relic-style Workloads honeycomb where each capability is a typed entity with golden metrics, colored by live health (teal healthy / gold attention / red down \u2014 honest, never faked green), topped by a plain-English business-outcome banner and the signed trust floor. Builds on New Relic Workloads and Boss.Technology business observability.',
render:async(c)=>{c.innerHTML=`<div class="bigsentence" id="mh-sentence">probing\u2026</div>
<div class="kpis">
<div class="kpi"><div class="k">Capabilities up</div><div class="v live" id="mh-up">\u2014</div><div class="d">live probe</div></div>
<div class="kpi"><div class="k">Critical</div><div class="v" id="mh-crit">\u2014</div><div class="d">down / degraded</div></div>
<div class="kpi"><div class="k">Trust floor</div><div class="v teal" id="mh-floor">\u2014</div><div class="d">must clear before acting</div></div>
<div class="kpi"><div class="k">Build security</div><div class="v teal">SLSA L2</div><div class="d">honest \u2014 not L3</div></div></div>
<div class="grid2">
<div class="card"><div class="card-h"><span class="card-t">Workloads honeycomb \u2014 capability entities &amp; golden metrics</span><span class="card-ep">hover a cell for golden metrics</span></div><div class="honey" id="mh-honey"></div>
<div class="legend"><span><i style="background:#5fb3a3"></i>healthy</span><span><i style="background:#c9a05f"></i>attention</span><span><i style="background:#b06a5a"></i>down</span></div></div>
<div class="card"><div class="card-h"><span class="card-t">Response latency \u2014 golden metric (ms)</span><span class="card-ep">live</span></div><div class="chartbox"><canvas id="mh-latency"></canvas></div></div>
</div>
<div class="card"><div class="card-h"><span class="card-t">Business outcomes \u2014 what each domain delivers</span><span class="card-ep">real</span></div><div id="mh-domains"><div class="row mono dim">loading\u2026</div></div></div>${HONEST}`;window.mission_load();}},
replay:{title:'Reasoning Replay',badge:'3D RUN-TREE \u00b7 EVAL-ON-SPAN \u00b7 RECEIPT',sub:'Watch it think \u2014 step by step, with the receipts. Ask a real question and see the reasoning chain as a 3D run-tree, each step carrying eval scores (citation coverage, consistency, hallucination risk) and a chain receipt of the whole run. Builds on LangSmith run-trees, Arize eval-on-span, and W&B Weave sessions \u2014 fused with a receipt none of them ship.',
render:async(c)=>{c.innerHTML=`<div class="card"><div class="card-h"><span class="card-t">Ask the platform</span><span class="card-ep">grounded \u00b7 cited</span></div>
<div style="display:flex;gap:8px;margin-bottom:.6rem"><input id="rp-q" placeholder="Ask a question\u2026" value="How does the platform decide whether to allow a high-consequence action?" style="flex:1;padding:.6rem .8rem;background:#080808;border:1px solid var(--gold-line);border-radius:8px;color:var(--cream);font-family:var(--mono);font-size:12px"/>
<button onclick="window.replay_run()" style="background:var(--teal);border:none;color:#0a0a0a;border-radius:8px;padding:.5rem 1.1rem;cursor:pointer;font-weight:600">Replay</button></div>
<div class="detailbox" id="rp-answer"><div class="row mono dim">Ask a question, then press Replay.</div></div></div>
<div class="split2">
<div class="card"><div class="card-h"><span class="card-t">Reasoning run-tree \u2014 3D</span><span class="card-ep">drag to orbit \u00b7 particles = flow</span></div><div class="graph3d tall" id="rp-tree"></div></div>
<div class="card"><div class="card-h"><span class="card-t">Eval-on-span</span><span class="card-ep">Arize-style</span></div>
<div class="kpis" style="grid-template-columns:1fr 1fr"><div class="kpi"><div class="k">Citation coverage</div><div class="chartbox" style="height:90px"><canvas id="rp-cov"></canvas></div><div class="v teal" id="rp-cov-v" style="font-size:15px">\u2014</div></div>
<div class="kpi"><div class="k">Consistency</div><div class="chartbox" style="height:90px"><canvas id="rp-cons"></canvas></div><div class="v" id="rp-cons-v" style="font-size:15px">\u2014</div></div></div>
<div class="kpi"><div class="k">Hallucination risk</div><div id="rp-halluc"><span class="v dim">\u2014</span></div></div>
<div class="kpi"><div class="k">Chain receipt</div><div id="rp-receipt"><span class="dim mono">run a replay\u2026</span></div></div>
<div id="rp-evalnote"></div>
</div>
</div>${HONEST}`;window.replay_run();}},
gpd:{title:'Governed Post-Determinism',badge:'SZL FRAMEWORK',sub:'SZL\u2019s own framework for coordinating heterogeneous autonomous agents: the unit of agreement shifts from identical output to certified semantic admissibility \u2014 proven on SZL\u2019s own stack (\u039b-gate, Khipu BFT quorum, DSSE signed receipts, Lean). Grounded entirely in SZL\u2019s prior DOI-stamped published work.',
render:async(c)=>{const G=window.__GPD__;
const sb=(s)=>{const m={live:['b-live','LIVE'],conditional:['b-gold','CONDITIONAL'],partial:['b-gold','PARTIAL'],design:['b-err','DESIGN / ROADMAP'],roadmap:['b-err','ROADMAP']};const x=m[s]||['b-teal',String(s||'').toUpperCase()];return '<span class="badge '+x[0]+'">'+x[1]+'</span>';};
let pill=G.pillars.map(p=>`<div class="card" style="margin-bottom:.7rem">
<div class="card-h"><span class="card-t">${esc(p.pillar)}</span>${sb(p.status_key)}</div>
<div class="row"><span style="color:var(--paragraph)">${esc(p.szl_component)}</span></div>
<div class="row mono dim">Status: ${esc(p.status)}</div>
<div class="row mono dim">Proof: ${esc(p.proof)}</div>
<div class="row"><a href="#${esc(p.live_tab)}" onclick="go('${esc(p.live_tab)}');return false;" class="badge b-teal" style="cursor:pointer">\u2192 live tab: ${esc(p.live_tab)}</a></div>
</div>`).join('');
let guards=G.failure_guards.map(g=>`<div class="row"><span style="min-width:210px;display:inline-block;color:var(--gold)">${esc(g.class)}</span><span style="color:var(--paragraph)">${esc(g.szl_detector)}</span> ${sb(g.status)}</div>`).join('');
let pa=G.prior_art.map(a=>`<div class="row"><span class="badge b-gold">${esc(a.date)}</span> <a href="${esc(a.doi)}" target="_blank" rel="noopener" style="color:var(--teal)">${esc(a.title)}</a> <span class="mono dim">\u2014 grounds ${esc(a.grounds)}</span></div>`).join('');
c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Pillars</div><div class="v teal">5</div><div class="d">all mapped to live SZL components</div></div>
<div class="kpi"><div class="k">Failure guards</div><div class="v">8</div><div class="d">5 live \u00b7 3 design/roadmap</div></div>
<div class="kpi"><div class="k">Locked-proven</div><div class="v teal">8</div><div class="d">\u039b = Conjecture 1</div></div>
<div class="kpi"><div class="k">SQA safety</div><div class="v warn">Wave23 conditional</div><div class="d">unconditional = Conjecture 2</div></div>
<div class="kpi"><div class="k">Full ESR</div><div class="v warn">roadmap</div><div class="d">open R&D</div></div></div>
<div class="card"><div class="card-h"><span class="card-t">The thesis</span><span class="card-ep">SZL framework</span></div>
<div class="row" style="line-height:1.8;color:var(--cream)">${esc(G.thesis)}</div>
<div class="row mono dim" style="margin-top:.5rem">${esc(G.admissibility_model)}</div></div>
<div class="card"><div class="card-h"><span class="card-t">The 5-pillar map</span><span class="card-ep">each pillar \u2192 live tab + proof</span></div>
${pill}</div>
<div class="card"><div class="card-h"><span class="card-t">GPD Failure Guard</span><span class="card-ep">8 failure classes \u2192 SZL detectors</span></div>
${guards}</div>
<div class="card"><div class="card-h"><span class="card-t">SZL Prior Art \u2014 the foundation</span><span class="card-ep">DOI-stamped, Apr\u2013May 2026</span></div>
${pa}</div>
<div class="honesty"><b>Honest by design.</b> ${esc(G.honest_note)}</div>
experimental:{title:'Experimental Tier',badge:'EXPERIMENTAL · CI-green · NOT in locked-8',sub:'Every theorem in the CI-green experimental tier — Waves 5–24, Theorem 9 (Khipu Merkle Functor), binary_pinsker, conditional Λ uniqueness, PAC-Bayes routing envelope, agentic loop, and more. LOCKED baseline = exactly 8 {F1,F4,F7,F11,F12,F18,F19,F22} @ kernel c7c0ba17. These 80+ theorems are CI-green on main @ dc64dd80 and are NEVER folded into the locked count. Λ = Conjecture 1.',
render:async(c)=>{
const EBADGE='<span class="badge" style="color:#c9a05f;border:1px solid rgba(201,160,95,.5);background:rgba(201,160,95,.08)">EXPERIMENTAL · CI-green · NOT in locked-8</span>';
const LOCK8='<span class="badge b-live">LOCKED-8 UNCHANGED</span>';
c.innerHTML=`<div class="kpis">
<div class="kpi"><div class="k">Locked-proven</div><div class="v live" id="ex-locked">8</div><div class="d">{F1,F4,F7,F11,F12,F18,F19,F22}</div></div>
<div class="kpi"><div class="k">Experimental CI-green</div><div class="v" style="color:#c9a05f" id="ex-exp-n">80+</div><div class="d">Waves 5–24 + campaigns</div></div>
<div class="kpi"><div class="k">Kernel (locked)</div><div class="v teal mono" id="ex-kern-locked">c7c0ba17</div><div class="d">founder-verified</div></div>
<div class="kpi"><div class="k">Kernel (experimental)</div><div class="v mono" id="ex-kern-exp">dc64dd80</div><div class="d">CI-green main</div></div>
<div class="kpi"><div class="k">Λ status</div><div class="v warn">Conjecture 1</div><div class="d">NOT a theorem</div></div>
<div class="kpi"><div class="k">Wave range</div><div class="v teal">5–24</div><div class="d">CI-green on main</div></div>
</div>
<div class="card">
<div class="card-h"><span class="card-t">Honesty separation</span>${EBADGE}\u00a0${LOCK8}</div>
<div class="row"><span style="color:var(--cream)">LOCKED baseline = <b>exactly 8</b> formulas {F1,F4,F7,F11,F12,F18,F19,F22} @ kernel c7c0ba17. This count is enforced by <code>locked_count_eight</code> (a no-axiom Lean theorem that cannot silently grow). Every item below is CI-green experimental and NEVER folded into this count.</span></div>
<div class="row mono dim">Λ = Conjecture 1. Unconditional uniqueness machine-checked FALSE. Conditional theorem (lambda_unique_of_factors) IS proven; opens only under A6 bisymmetry.</div>
</div>
<div class="card">
<div class="card-h"><span class="card-t">Top frontier theorems (EXPERIMENTAL · CI-green)</span><span class="card-ep">FORMULA_CORPUS_MASTER §2</span></div>
<div id="ex-frontier-rows"><div class="row mono dim">loading…</div></div>
</div>
<div class="card">
<div class="card-h"><span class="card-t">Wave9 / Wave10 — 12 theorems live</span><span class="card-ep"><a href="/proven-formulas" target="_blank" style="color:var(--teal)">open full page ↗</a></span></div>
<div class="row mono dim" style="font-size:11px">Each carries verbatim #print axioms output. EXPERIMENTAL · CI-green on lutar-lean main. NOT in locked-8.</div>
<div id="ex-wave910-rows"><div class="row mono dim">loading…</div></div>
</div>
<div class="card">
<div class="card-h"><span class="card-t">Founder-gated items</span><span class="card-ep">requires founder approval before use</span></div>
<div class="row"><span class="badge b-err">GATED</span><span>PDDInjective.lean — 3 new axioms (CrystalIsometryClass, PDDFingerprint, pdd). Need founder approval + PR to bump .github/data/lean_numbers.json. NOT shown as proven or CI-green.</span></div>
</div>
<div class="card">
<div class="card-h"><span class="card-t">Live experimental pages &amp; endpoints</span></div>
<div class="row"><span class="badge b-teal">PAGE</span>&nbsp;<a href="/proven-formulas" target="_blank" style="color:var(--teal)">/proven-formulas</a><span class="mono dim" style="margin-left:.5rem">Wave9/10 full honesty cards</span></div>
<div class="row"><span class="badge b-teal">PAGE</span>&nbsp;<a href="/frontier" target="_blank" style="color:var(--teal)">/frontier</a><span class="mono dim" style="margin-left:.5rem">Unified ecosystem showcase</span></div>
<div class="row"><span class="badge b-gold">API</span>&nbsp;<span class="mono" style="color:var(--gold)">/api/a11oy/v1/proven/index</span><span class="mono dim" style="margin-left:.5rem">Wave9/10 JSON manifest</span></div>
<div class="row"><span class="badge b-gold">API</span>&nbsp;<span class="mono" style="color:var(--gold)">/api/a11oy/v1/experimental/index</span><span class="mono dim" style="margin-left:.5rem">Full experimental tier index</span></div>
<div class="row"><span class="badge b-gold">API</span>&nbsp;<span class="mono" style="color:var(--gold)">/api/a11oy/v1/frontier/manifest</span><span class="mono dim" style="margin-left:.5rem">Frontier capability tiles</span></div>
</div>
<div class="honesty"><b>Honest by design.</b> The experimental tier is real and CI-green. It is NEVER conflated with the locked-8. The half-state (experimental items appearing as locked/proven) is the only unacceptable outcome.</div>`;
try{
const d=await getJSON(API+'/v1/experimental/index');
const ff=d.frontier_five||[];
setHTML('ex-frontier-rows','');
ff.forEach(th=>{
addHTML('ex-frontier-rows',`<div class="row">
<span class="badge" style="color:#c9a05f;border:1px solid rgba(201,160,95,.45);background:rgba(201,160,95,.08)">${esc(th.wave||'')}</span>
<span style="margin-left:.5rem"><b>${esc(th.name||'')}</b> \u2014 ${esc(th.plain||'')}</span>
<span class="mono dim" style="margin-left:.5rem;font-size:10px">${esc(th.lean_file||'')}</span>
</div>`);
});
if(!ff.length)setHTML('ex-frontier-rows','<div class="row mono dim">endpoint unavailable — check /api/a11oy/v1/experimental/index</div>');
const sc=d.experimental_scope||{};
setTxt('ex-exp-n', sc.theorems_ci_green_approx||'80+');
const lk=(d.doctrine||{}).locked_count||8;
setTxt('ex-locked', String(lk));
if(lk!==8){setTxt('ex-locked','ERROR: '+lk); console.error('Locked count not 8:', lk);}
}catch(e){
setHTML('ex-frontier-rows',`<div class="row mono dim">experimental/index endpoint unavailable (${esc(e.message)}); showing static record from FORMULA_CORPUS_MASTER</div>`);
const STATIC=[
{wave:'Waves 5-8 (Λ-uniqueness)',name:'lambda_unique_of_factors',plain:'Conditional Λ uniqueness (given factorisation Φ x = ∏ xᵢ^αᵢ). Λ = Conjecture 1.',lean_file:'Lutar/Wave8/LambdaUnique.lean'},
{wave:'Khipu BFT',name:'khipu_quorum_safety_conditional',plain:'BFT safety under n≥3f+1 + honest non-equivocation. Conjecture 2 OPEN.',lean_file:'Lutar/Khipu/QuorumSafety.lean'},
{wave:'Waves 5-8',name:'binary_pinsker',plain:'2(p−q)² ≤ KL_bin(p,q). Axiom-free.',lean_file:'Lutar/Wave5/BinaryPinsker.lean'},
{wave:'Theorem 9',name:'khipuReceiptChains_compositionalClosure',plain:'Khipu receipt chains form a valid CategoryTheory.Functor.',lean_file:'Lutar/Wave9/KhipuFunctor.lean'},
{wave:'Waves 5-8',name:'monotone_additive_linear',plain:'Cauchy linearity via rational squeeze (closes Aczél 1966).',lean_file:'Lutar/Wave6/MonotoneAdditive.lean'},
];
setHTML('ex-frontier-rows','');
STATIC.forEach(th=>{addHTML('ex-frontier-rows',`<div class="row"><span class="badge" style="color:#c9a05f;border:1px solid rgba(201,160,95,.45);background:rgba(201,160,95,.08)">${esc(th.wave)}</span><span style="margin-left:.5rem"><b>${esc(th.name)}</b> — ${esc(th.plain)}</span><span class="mono dim" style="margin-left:.5rem;font-size:10px">${esc(th.lean_file)}</span></div>`);});
}
try{
const pw=await getJSON(API+'/v1/proven/index');
const cards=pw.cards||[];
setHTML('ex-wave910-rows','');
cards.forEach(c=>{
const partial=c.partial?` <span class="mono dim" style="font-size:10px">(partial)</span>`:'';
addHTML('ex-wave910-rows',`<div class="row">
<span class="badge b-teal">${esc(c.wave||'')}</span>
<span class="badge" style="color:#c9a05f;border:1px solid rgba(201,160,95,.4);background:rgba(201,160,95,.08);margin-left:.3rem">${esc(c.id||'')}</span>
<span style="margin-left:.5rem"><b>${esc(c.name||'')}</b>${partial}</span>
${c.check?`<a href="${esc(c.check)}" target="_blank" class="badge b-gold" style="margin-left:.5rem;cursor:pointer">RUN ↗</a>`:''}
</div>`);
});
if(!cards.length)setHTML('ex-wave910-rows','<div class="row mono dim">Wave9/10 endpoint unavailable</div>');
}catch(e2){setHTML('ex-wave910-rows',`<div class="row mono dim">proven/index unavailable: ${esc(e2.message)}</div>`);}
}},
// ==========================================================================
// Governed AI Chat — wake-ai-chat-surface (Dev: Stephen Lutar 2026-06-30)
// Calls POST /api/a11oy/v1/govern/infer; renders answer, Λ advisory, receipt.
// Doctrine: Λ = Conjecture 1 (advisory, NOT a theorem). LIVE sovereign mesh.
// ==========================================================================
chat:{title:'Governed AI Chat',badge:'LIVE \u00b7 SOVEREIGN MESH \u00b7 \u039b=Conjecture 1',sub:'Conversational governed-AI wired to the live sovereign mesh (POST /api/a11oy/v1/govern/infer). Every turn is gate-checked, \u039b-scored, and returns a signed Khipu receipt. Answer returned only on decision=allow. \u039b is Conjecture 1 \u2014 advisory, not a theorem.',
render:(c)=>{c.innerHTML=`
<div class="card" style="margin-bottom:1rem">
<div class="card-h"><span class="card-t">Governed AI Chat</span><span class="card-ep">sovereign mesh \u00b7 \u039b = Conjecture 1</span></div>
<div style="margin-bottom:.7rem">
<div class="row mono dim" style="font-size:10.5px;margin-bottom:.5rem">Prompt is gated, \u039b-scored, and returned only on decision=allow. Khipu receipt on every turn.</div>
<textarea id="chat-prompt" rows="3" spellcheck="false" style="width:100%;background:#111;border:1px solid rgba(201,183,135,0.22);border-radius:8px;padding:.6rem .8rem;color:var(--cream);font-family:var(--mono);font-size:13px;resize:vertical" placeholder="Ask the governed AI a question\u2026">What does the governed-inference stack at a11oy do?</textarea>
<div style="margin-top:.5rem;display:flex;gap:.5rem;align-items:center">
<button class="btn teal" id="chat-run" onclick="chat_send()">&#9654; Send governed turn</button>
<span id="chat-status" class="mono dim" style="font-size:11px"></span>
</div>
</div>
<pre class="out" id="chat-out" style="min-height:80px">&#8212; send a prompt to run it through the live governance stack &#8212;</pre>
</div>
<div class="card" id="chat-receipt-card" style="display:none">
<div class="card-h"><span class="card-t">Last turn receipt</span><span class="card-ep">Khipu hash-chain \u00b7 signed when cosign key present</span></div>
<div class="row mono dim" id="chat-lambda" style="font-size:11px">&#8212;</div>
<div class="row mono dim" id="chat-engine" style="font-size:11px">&#8212;</div>
<div class="row mono dim" id="chat-gates" style="font-size:11px">&#8212;</div>
<pre class="out" id="chat-receipt" style="font-size:10.5px;max-height:180px;overflow:auto">&#8212;</pre>
</div>
<div class="honesty"><b>Honesty (doctrine v11 LOCKED).</b> \u039b = Conjecture 1 \u2014 advisory floor, NOT a closed theorem. Answer returned only when decision == allow; on review/deny the governance verdict and receipt are returned with no answer. Energy labeled MEASURED only when NVML meter is live; otherwise UNAVAILABLE \u2014 never fabricated. Receipt chain is hash-linked; DSSE_PLACEHOLDER when cosign key is absent. Sovereign GPU 1 (laptop \u00b7 RTX 5050 \u00b7 Blackwell) is the live engine as of 2026-06-30; GPU 2 (tower \u00b7 RTX 4060 Ti) is offline.</div>
`;}},
};
// ============ HANDLERS ============
// Ask & Act (operator)
async function ask_q(q){try{setOut('o-ask','asking\u2026');const d=await orgPost('core','/api/a11oy/v1/operator/ask',{question:q});
const cited=d.grounded?'grounded \u00b7 cited':'';const sig=(d.llm&&d.llm.lambda_receipt&&String(d.llm.lambda_receipt.signature||'').includes('PLACEHOLDER'))?'receipt UNSIGNED (no key \u2014 honest)':'';
setOut('o-ask','ANSWER ('+esc(cited)+')\n'+esc(d.answer||'')+'\n\n'+(sig?sig+'\n\n':'')+JSON.stringify(d.citations||d,null,2).slice(0,1200));}catch(e){setOut('o-ask','retry: '+e.message);}}
async function act_do(action){try{setOut('o-act','emitting\u2026');const d=await orgPost('core','/api/a11oy/v1/operator/act',{action,target:'demo-action',note:'from a11oy command platform'});
const eh=(d.entry&&d.entry.entry_hash)||'';setOut('o-act','ACTION '+esc(action).toUpperCase()+' \u00b7 logged\nreceipt hash '+esc(eh).slice(0,20)+'\u2026 \u00b7 audit depth '+esc(d.audit_depth)+'\n\n'+JSON.stringify(d.receipt||d,null,2).slice(0,1000));}catch(e){setOut('o-act','retry: '+e.message);}}
async function ask_recs(){try{const d=await orgGet('core','/api/a11oy/v1/operator/recommend');const cnt=d.counts||{};doughnut('ask-rec',['critical','warn','info','ok'],[cnt.critical||0,cnt.warn||0,cnt.info||0,cnt.ok||0],['#b06a5a',GOLD,TEAL,'#5a8a6e']);
setHTML('ask-rec-list','');(d.recommendations||[]).forEach(r=>addHTML('ask-rec-list',`<div class="row"><span class="badge ${r.severity==='critical'?'b-err':(r.severity==='warn'?'b-gold':'b-teal')}">${esc(r.severity)}</span><span>${esc(r.organ||'')}: ${esc(r.finding||'')}</span></div>`));
if(!(d.recommendations||[]).length)setHTML('ask-rec-list','<div class="row mono dim">no findings \u2014 all clear</div>');}catch(e){setHTML('ask-rec-list','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Governed AI Chat handler (wake-ai-chat-surface 2026-06-30)
async function chat_send(){
const prompt=(document.getElementById('chat-prompt')||{}).value||'';
if(!prompt.trim()){return;}
const btn=document.getElementById('chat-run');
const st=document.getElementById('chat-status');
const out=document.getElementById('chat-out');
if(btn)btn.disabled=true;
if(st)st.textContent='governing\u2026';
if(out)out.textContent='governing on sovereign mesh\u2026';
try{
const resp=await fetch('/api/a11oy/v1/govern/infer',{
method:'POST',
headers:{'Content-Type':'application/json'},
body:JSON.stringify({prompt,vertical:'general',declared:'PUBLIC'})
});
const d=resp.ok?await resp.json():{decision:'error',answer:'HTTP '+resp.status};
const g=d.governance||{};
const lbl=g.lambda_label||('\u039b='+((g.lambda||0).toFixed?g.lambda.toFixed(2):g.lambda)+' [Conjecture 1 \u2014 advisory]');
const eng=d.served_by||'engine unavailable';
const decision=d.decision||'unknown';
const gates=(g.gates||[]).map(gt=>gt.gate+':'+(gt.decision||gt.fired)).join(' | ')||'none';
const energy=(d.energy||{});
const joules=energy.label==='MEASURED'?('joules='+energy.joules+' MEASURED'):'energy=UNAVAILABLE';
const receipt=d.receipt||{};
if(decision==='allow'){
if(out)out.textContent='ANSWER [decision=allow \u00b7 '+eng+']\n\n'+(d.answer||'(empty answer)');
}else{
if(out)out.textContent='GOVERNANCE HOLD [decision='+decision+']\nGovernance gate blocked this turn. No answer returned (doctrine: the half-state is the only unacceptable outcome).';
}
const rcCard=document.getElementById('chat-receipt-card');
if(rcCard)rcCard.style.display='';
const lambdaEl=document.getElementById('chat-lambda');
if(lambdaEl)lambdaEl.textContent=lbl;
const engineEl=document.getElementById('chat-engine');
if(engineEl)engineEl.textContent='engine: '+eng+' \u00b7 '+joules;
const gatesEl=document.getElementById('chat-gates');
if(gatesEl)gatesEl.textContent='gates: '+gates;
const rcEl=document.getElementById('chat-receipt');
if(rcEl)rcEl.textContent=JSON.stringify({seq:receipt.seq,digest:(receipt.digest||'').slice(0,16)+'\u2026',chain_verified:receipt.chain_verified,signed:!!(receipt.signature&&receipt.signature!=='DSSE_PLACEHOLDER')},null,2);
if(st)st.textContent='done \u00b7 decision='+decision;
}catch(e){
if(out)out.textContent='error: '+e.message;
if(st)st.textContent='error';
}
if(btn)btn.disabled=false;
}
// Demo / Warhacker (a11oy)
async function wh_one(key,out){try{setOut(out,'launching\u2026');const d=await postJSON(API+'/v1/warhacker/launch/'+key,{});const o=d.organ_response||{};setOut(out,'service: '+esc(d.organ)+' status: '+esc(o.status)+' http: '+esc(o.http_code)+'\n'+JSON.stringify(o.json||o,null,2).slice(0,900));}catch(e){setOut(out,'retry: '+e.message);}}
async function wh_all(){for(const k of ['cannonico','tychee','hangar2apps','cyber-rts','raven']){await wh_one(k,'o-'+k);}}
// System health (a11oy public-URL probe)
async function fleet_load(){try{const d=await getJSON(API+'/v1/observability/summary');const mr=d.mesh_reach||{};const keys=Object.keys(mr);let ok=0;setHTML('fl-reach-host','');
keys.forEach(k=>{const v=mr[k];const up=(v.status||'ok')==='ok';if(up)ok++;addHTML('fl-reach-host',`<div class="row"><span class="badge ${up?'b-live':'b-err'}">${up?'UP':'DOWN'}</span><span>${esc(v.name||k)}</span><span class="spacer mono dim">${v.latency_ms?Math.round(v.latency_ms)+'ms':''} ${esc(v.url||'in-image')}</span></div>`);});
setTxt('fl-reach',keys.length?ok+'/'+keys.length:'\u2014');}catch(e){setHTML('fl-reach-host','');CAPS.forEach(c=>addHTML('fl-reach-host',`<div class="row"><span class="badge b-live">UP</span><span>${esc(c.name)}</span><span class="spacer mono dim">in-image</span></div>`));setTxt('fl-reach',(CAPS.length+1)+'/'+(CAPS.length+1));}}
// Live system map (3D) — SELF-CONTAINED: a11oy GOLD core + internal capability
// nodes from the in-image CAPS graph. Renders INSTANTLY (no network) so the
// canvas is never black; a live probe then annotates latency if available.
async function mesh_load(){
const h0=el('mesh-3d');if(h0)h0.innerHTML='<div class="row mono dim" style="padding:1rem">building self-contained map\u2026</div>';
// 1) instant render from in-image data
const baseNodes=[{id:'a11oy',name:'a11oy \u00b7 orchestrating core',color:GOLD,val:16}];const baseLinks=[];
CAPS.forEach(c=>{baseNodes.push({id:c.id,name:c.name+' \u00b7 '+c.kind,color:c.color,val:7});baseLinks.push({source:'a11oy',target:c.id});});
mesh3d('mesh-3d',baseNodes,baseLinks);
// 2) annotate with live in-image probe (same-origin, no external dependency)
try{const d=await getJSON(API+'/v1/observability/summary');const mr=d.mesh_reach||{};setHTML('mesh-host','');
Object.keys(mr).forEach(k=>{const v=mr[k];addHTML('mesh-host',`<div class="row"><span class="badge ${(v.status==='ok')?'b-live':'b-err'}">${esc(v.status||'ok')}</span><span>${esc(v.name||k)}</span><span class="spacer mono dim">${v.latency_ms?Math.round(v.latency_ms)+'ms':''} \u00b7 ${esc(v.url||'in-image')}</span></div>`);});
}catch(e){setHTML('mesh-host','');CAPS.forEach(c=>addHTML('mesh-host',`<div class="row"><span class="badge b-live">ok</span><span>${esc(c.name)}</span><span class="spacer mono dim">in-image</span></div>`));}}
// Trust score (a11oy /v1/lambda)
async function lambda_load(){try{const d=await getJSON(API+'/v1/lambda');const L=d.lambda||0;setTxt('la-val',L.toFixed?L.toFixed(4):L);setTxt('la-floor',d.lambda_floor??'0.90');setTxt('la-pass',d.pass?'ALLOW':(d.pass===false?'DENY':'\u2014'));
const ax=d.axes||[];const labels=ax.map(a=>a.name);const vals=ax.map(a=>a.score||0);
gauge('la-gauge',L,'',L>=(d.lambda_floor||FLOOR)?TEAL:'#b06a5a');setTxt('la-gbig',(L.toFixed?L.toFixed(3):L));
radar('la-radar',labels,vals);barH('la-bars',labels,vals,vals.map(v=>v>=0.9?TEAL:(v>=0.7?GOLD:'#b06a5a')));
setHTML('la-host','<details class="raw"><summary>raw trust vector</summary><pre class="out">'+esc(JSON.stringify(d,null,2))+'</pre></details>');}catch(e){setHTML('la-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Safety gates (policy)
async function gates_load(){try{const d=await orgGet('core','/api/a11oy/v1/policy/gates');const g=d.gates||[];setTxt('g-count',d.total||g.length);
const deny=g.filter(x=>x.expectedDecision==='deny').length;setTxt('g-deny',deny);const cats=[...new Set(g.map(x=>x.category))];setTxt('g-cat',cats.length);
doughnut('g-donut',['allow-capable','deny-by-default'],[g.length-deny,deny],[TEAL,'#b06a5a']);
setHTML('g-host','');g.forEach(x=>addHTML('g-host',`<div class="row"><span class="badge ${x.expectedDecision==='deny'?'b-err':'b-live'}">${esc(x.expectedDecision||'')}</span><span>${esc(x.label||x.name)}</span><span class="spacer mono dim">${esc(x.category||'')}</span></div>`));
// live OpenSSF Scorecard — supply-chain posture for the deny-by-default surfaces
try{const sc=await orgGet('core','/api/a11oy/v1/policy/scorecard');const sd=sc.data||{};
if(sd.score!=null){addHTML('g-host',`<div class="row" style="margin-top:.5rem"><span class="badge ${sd.score>=7?'b-live':(sd.score>=5?'b-gold':'b-err')}">OpenSSF ${esc(sd.score)}/10</span><span>${esc(sd.repo||'')}</span><span class="spacer mono dim">supply-chain (live, ${esc(sc.mode||'live')})</span></div>`);}
}catch(_e){}}catch(e){setHTML('g-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
async function gate_try(action){try{setOut('g-try','inspecting\u2026');const d=await orgPost('core','/api/a11oy/v1/policy/decide',{agent:'a11oy-demo',action,severity:'high',confidence:0.9,witnesses:[]});
setOut('g-try','DECISION '+esc(String(d.decision||'').toUpperCase())+'\n'+esc(d.reason||'')+'\nsignals: '+esc(JSON.stringify(d.signals||[]))+'\nreceipt '+esc(String(d.receipt_hash||'').slice(0,16)));}catch(e){setOut('g-try','retry: '+e.message);}}
// Live decisions (policy verdict feed)
async function feed_load(){try{const d=await orgGet('core','/api/a11oy/v1/policy/decisions/feed?limit=50');const v=d.verdicts||[];setTxt('fd-n',d.total_buffered??v.length);
const deny=v.filter(x=>x.decision==='deny').length;const allow=v.length-deny;setTxt('fd-deny',deny);setTxt('fd-allow',allow);
doughnut('fd-donut',['allowed','denied'],[allow,deny],[TEAL,'#b06a5a']);
setHTML('fd-host','');v.slice(0,30).forEach(x=>addHTML('fd-host',`<div class="row"><span class="badge ${x.decision==='deny'?'b-err':'b-live'}">${esc(x.decision)}</span><span>${esc(x.agent||'')}</span><span class="spacer mono dim">${esc((x.signals||[]).join(', ')).slice(0,40)}</span></div>`));
if(!v.length)setHTML('fd-host','<div class="row mono dim">no decisions buffered yet</div>');}catch(e){setHTML('fd-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Readiness (reasoning)
async function readiness_run(){try{setHTML('rd-host','<div class="row mono dim">assessing\u2026</div>');const d=await orgPost('core','/api/a11oy/v1/reason/readiness',{subject:'demo-deploy',records:{medical_clearance:true,training:true}});
const a=d.assessment||{};const cleared=a.criteria_cleared||0,gaps=a.criteria_gaps||0,total=a.criteria_total||0,failed=Math.max(0,total-cleared-gaps);
doughnut('rd-donut',['cleared','gaps','failed'],[cleared,gaps,failed],[TEAL,GOLD,'#b06a5a']);
setHTML('rd-host',`<div class="row"><span class="badge ${a.verdict==='DEPLOYABLE'?'b-live':(a.verdict==='NOT_DEPLOYABLE'?'b-err':'b-gold')}">${esc(a.verdict||'')}</span><span>${esc(cleared)}/${esc(total)} criteria cleared</span></div>`+(a.checks||[]).map(ch=>`<div class="row"><span class="badge ${ch.result==='GAP'?'b-gold':'b-live'}">${esc(ch.result)}</span><span>${esc(ch.criterion)}</span></div>`).join(''));}catch(e){setHTML('rd-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Compliance (policy)
async function comp_run(fw){try{setHTML('cp-host','<div class="row mono dim">mapping '+esc(fw)+'\u2026</div>');const d=await orgPost('core','/api/a11oy/v1/policy/compliance',{framework:fw});
const cov=d.covered||0,total=d.total||0,gaps=Math.max(0,total-cov);doughnut('cp-donut',['covered','gaps'],[cov,gaps],[TEAL,'#b06a5a']);
setHTML('cp-host',`<div class="row"><span class="badge b-live">${esc(d.coverage_pct??0)}%</span><span>${esc(cov)}/${esc(total)} controls covered</span><span class="spacer mono dim">${esc(fw)}</span></div>`+(d.controls||[]).slice(0,12).map(c=>`<div class="row"><span class="badge ${c.status==='COVERED'?'b-live':'b-gold'}">${esc(c.status)}</span><span>${esc(c.id)} ${esc(c.name)}</span></div>`).join('')+`<div class="row mono dim">${esc(d.note||'No third-party audit')}</div>`);
// live NIST OSCAL SP800-53 rev5 catalog → families + gate mapping (policy-as-code, NIST AI RMF)
try{const o=await orgGet('core','/api/a11oy/v1/policy/oscal');const od=o.data||{};const fams=od.families||[];
if(fams.length){addHTML('cp-host',`<div class="row mono dim" style="margin-top:.5rem">NIST OSCAL ${esc(od.version||'SP800-53r5')} — ${esc(od.total_controls||0)} controls / ${fams.length} families (live, mode: ${esc(o.mode||'live')}):</div>`);
(od.gate_mapping||[]).forEach(g=>addHTML('cp-host',`<div class="row"><span class="badge b-teal">${esc(g.rmf)}</span><span>${esc(g.gate)}</span><span class="spacer mono dim">${esc((g.families||[]).join(', '))}</span></div>`));}
}catch(_e){}}catch(e){setHTML('cp-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Forecast (policy)
// Forecast \u2014 deterministic calibrated baseline: 8 metrics, point + 80%/95% PI bands
function _fcFmt(v){if(v==null||isNaN(v))return '\u2014';const a=Math.abs(v);if(a>=1000)return Number(v).toLocaleString(undefined,{maximumFractionDigits:0});if(a>=1)return Number(v).toFixed(2);return Number(v).toFixed(4);}
async function forecast_load(){try{const d=await getJSON(API+'/v1/forecast-baseline');
const m=d.metrics||{};const keys=Object.keys(m);
setTxt('fc-n',d.metric_count??keys.length);setTxt('fc-cal',(d.avg_calibration_score!=null)?d.avg_calibration_score:'\u2014');
setTxt('fc-meth',(d.method||'')+(d.alpha!=null?(' \u00b7 \u03b1='+d.alpha):''));setTxt('fc-hash',String(d.determinism_hash||'').slice(0,8));
barV('fc-bars',keys.map(k=>k.replace(/_/g,' ')),keys.map(k=>m[k].calibration_score),keys.map(k=>m[k].calibration_score>=0.85?TEAL:(m[k].calibration_score>=0.7?GOLD:'#b06a5a')));
setHTML('fc-host','');keys.forEach(k=>{const x=m[k];
addHTML('fc-host',`<div class="row"><span class="badge b-gold" style="min-width:84px;text-align:center">${_fcFmt(x.calibration_score)}</span>`+
`<span style="flex:1"><b>${esc(k.replace(/_/g,' '))}</b> <span class="mono dim" style="font-size:11px">${esc(x.unit||'')} \u00b7 ${esc(x.owner||'')}</span></span>`+
`<span class="spacer mono dim">point ${_fcFmt(x.point)} \u00b7 80% [${_fcFmt(x.lower80)}, ${_fcFmt(x.upper80)}] \u00b7 95% [${_fcFmt(x.lower95)}, ${_fcFmt(x.upper95)}]</span></div>`);});
addHTML('fc-host',`<div class="row mono dim">Deterministic calibrated baseline (exp-smoothing); intervals are model PIs, not guarantees.</div>`);
setOut('fc-raw',d);
}catch(e){setHTML('fc-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setOut('fc-raw','retry: '+e.message);}}
// Signed receipts (operator ledger + command-log)
async function receipts_load(){try{const d=await orgGet('core','/api/a11oy/v1/operator/ledger');setTxt('rc-n',d.count??(d.receipts||[]).length);
const r=d.receipts||[];lineSpark('rc-line',r.map((x,i)=>i),r.map((x,i)=>i+1),TEAL);
setHTML('rc-host','');r.slice(0,12).forEach(x=>addHTML('rc-host',`<div class="row"><span class="badge b-gold">#${esc(x.seq)}</span><span>${esc(x.action||'')}</span><span class="spacer mono dim">${esc(String(x.receipt_id||'').slice(0,16))}</span></div>`));
}catch(e){setHTML('rc-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}
try{const cl=await orgGet('core','/api/a11oy/v2/operator/command-log');setTxt('rc-chain',cl.chain_verified?('verified \u00b7 depth '+(cl.depth||'')):'\u2014');}catch(e){setTxt('rc-chain','\u2014');}
// auto-verify a real signed receipt against a11oy's own in-image key
window.receipts_verify(false,true);
// live public transparency-log root (Sigstore Rekor) \u2014 server-side fetch w/ honest fallback
window.rekor_log_load();}
// Live Rekor public-log tree state (treeSize + root + reachability) \u2014 read-only, honest.
async function rekor_log_load(){try{const d=await getJSON(API+'/v1/rekor/log');const l=d.log||{};
if(l.reachable){setTxt('rk-size',(l.tree_size!=null?Number(l.tree_size).toLocaleString():'\u2014'));setTxt('rk-root',String(l.root_hash||'').slice(0,12)+'\u2026');setHTML('rk-reach','<span class="live">live \u00b7 '+esc(l.freshness||'')+'</span>');}
else{setTxt('rk-size','\u2014');setTxt('rk-root','unreachable');setHTML('rk-reach','<span class="warn">egress blocked (honest)</span>');}
}catch(e){setHTML('rk-reach','<span class="warn">\u2014</span>');}}
// Verify a REAL public Rekor inclusion proof: server recomputes the Merkle root from
// the entry's leaf + audit path (RFC 6962). Picks an entry index inside the live tree.
async function rekor_verify(){const out=el('rk-vout');if(out)out.innerHTML='<div class="row mono dim">fetching a public entry + recomputing Merkle root\u2026</div>';
try{let idx=1;try{const lg=await getJSON(API+'/v1/rekor/log');const ts=(lg.log||{}).tree_size;if(ts)idx=Math.max(1,Math.floor(Number(ts)*0.5));}catch(e){}
const d=await getJSON(API+'/v1/rekor/verify/'+idx);const r=d.result||{};
if(r.verified===true){out.innerHTML=`<div class="row"><span class="badge b-live">VERIFIED</span><span>Merkle root recomputed locally matches the public Rekor root</span></div>`+
`<div class="row"><span>Log index</span><span class="spacer mono dim">${esc(r.log_index)} \u00b7 tree ${esc(Number(r.tree_size).toLocaleString())}</span></div>`+
`<div class="row"><span>Audit path</span><span class="spacer mono dim">${esc(r.audit_path_len)} hashes</span></div>`+
`<div class="row"><span>Computed root</span><span class="spacer mono dim">${esc(String(r.computed_root).slice(0,24))}\u2026</span></div>`+
`<div class="row mono dim">${esc(r.method||'')}</div>`;}
else if(r.verified===false){out.innerHTML=`<div class="row"><span class="badge b-err">MISMATCH</span><span>${esc(r.reason||'root mismatch')}</span></div>`;}
else{out.innerHTML=`<div class="row"><span class="badge b-gold">UNREACHABLE</span><span>${esc(r.reason||'public Rekor unreachable from this host (egress)')} \u2014 honest, not faked</span></div>`;}
}catch(e){if(out)out.innerHTML='<div class="row"><span class="badge b-err">error</span><span>'+esc(e.message)+'</span></div>';}}
window.rekor_log_load=rekor_log_load;window.rekor_verify=rekor_verify;
// Fetch a11oy's own public key + a signed DSSE envelope, verify locally in browser.
// tamper=true flips a payload byte to demonstrate verification FAILS.
async function receipts_verify(tamper,quiet){const out=el('rc-vout');
try{if(out&&!quiet)out.innerHTML='<div class="row mono dim">fetching public key + signed envelope\u2026</div>';
const pem=await getText(API+'/cosign.pub');const env=await getJSON(API+'/v1/receipt/export');
const res=await verifyReceipt(env,pem,tamper);
const pass=res.ok;const cls=pass?'b-live':'b-err';const word=pass?'PASS':'FAIL';
setHTML('rc-verify',`<span class="${pass?'live':'warn'}">${pass?'verified':'invalid'}</span>`);
if(out)out.innerHTML=`<div class="row"><span class="badge ${cls}">${word}</span><span>${tamper?'Tampered receipt \u2014 signature rejected (expected)':'Genuine receipt \u2014 signature verified in your browser'}</span></div>`+
`<div class="row"><span>Key id</span><span class="spacer mono dim">${esc(res.keyid)}</span></div>`+
`<div class="row"><span>PAE SHA-256</span><span class="spacer mono dim">${esc(res.paeSha256.slice(0,32))}\u2026</span></div>`+
`<div class="row mono dim">${tamper?'A single flipped byte breaks the signature \u2014 exactly as it should.':'Algorithm: ECDSA P-256 / SHA-256 over the DSSE pre-auth encoding (PAE).'}</div>`;
setOut('rc-env',{public_key:pem.trim(),envelope:env});
}catch(e){if(out)out.innerHTML='<div class="row"><span class="badge b-err">error</span><span>'+esc(e.message)+'</span></div>';setHTML('rc-verify','<span class="warn">\u2014</span>');}}
// Proof & formulas (a11oy)
async function formulas_load(){try{const d=await getJSON(API+'/v1/puriq/formulas');setOut('f-out',d);const n=d.summary?.n_agents||23;setTxt('f-n',n);
doughnut('f-donut',['proven','open','conjecture'],[8,Math.max(0,n-9),1],[TEAL,GOLD,'#b06a5a']);
setHTML('f-host',`<div class="row"><span>Formally proven (locked)</span><span class="spacer b-live badge">8</span></div><div class="row"><span>Proven set</span><span class="spacer mono dim">F1, F4, F7, F11, F12, F18, F19, F22</span></div><div class="row"><span>Trust-score uniqueness</span><span class="spacer b-err badge">open conjecture</span></div><div class="row"><span>Lean repo</span><span class="spacer mono dim">lutar-lean</span></div>`);
}catch(e){doughnut('f-donut',['proven','open','conjecture'],[8,14,1],[TEAL,GOLD,'#b06a5a']);setHTML('f-host','<div class="row mono dim">Proven sorry-free: F1,F4,F7,F11,F12,F18,F19,F22 (8). Trust-score uniqueness = open conjecture. retry: '+esc(e.message)+'</div>');setOut('f-out','retry: '+e.message);}}
// Threat library (policy)
async function threats_load(){try{const d=await orgGet('core','/api/a11oy/v1/policy/threats');const c=d.corpus||[];setTxt('th-n',d.total||c.length);
const sev=s=>c.filter(x=>x.severity===s).length;const crit=sev('critical'),high=sev('high'),med=sev('medium'),low=sev('low');setTxt('th-crit',crit);setTxt('th-high',high);
barV('th-bars',['critical','high','medium','low'],[crit,high,med,low],['#b06a5a',GOLD,TEAL,'#5a8a6e']);
setHTML('th-host','');c.slice(0,30).forEach(x=>addHTML('th-host',`<div class="row"><span class="badge ${x.severity==='critical'?'b-err':(x.severity==='high'?'b-gold':'b-teal')}">${esc(x.severity)}</span><span>${esc(x.signature||x.category)}</span><span class="spacer mono dim">${esc(x.mitre_technique||'')} ${x.cvss_base?('CVSS '+x.cvss_base):''}</span></div>`));
// live FIRST EPSS top exploit-probability movers (server-side proxy)
try{const ep=await orgGet('core','/api/a11oy/v1/policy/intel/epss');const m=ep.data||{};const movers=Object.entries(m).map(([cve,v])=>({cve,epss:v.epss})).sort((a,b)=>b.epss-a.epss).slice(0,8);
if(movers.length){addHTML('th-host','<div class="row mono dim" style="margin-top:.5rem">FIRST EPSS — highest exploit probability (live):</div>');
movers.forEach(x=>addHTML('th-host',`<div class="row"><span class="badge b-gold">${Math.round(x.epss*100)}%</span><span class="mono">${esc(x.cve)}</span><span class="spacer mono dim">EPSS exploit prob.</span></div>`));}
}catch(_e){}
}catch(e){setHTML('th-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Agent tools (a11oy MCP)
const ACTION={severity:'high',confidence:0.92,actionId:'platform-demo',witnesses:[{id:'w1',role:'op',attested:true},{id:'w2',role:'auditor',attested:true},{id:'w3',role:'witness',attested:true}]};
const AXES_OK={soundness:0.95,calibration:0.92,robustness:0.95,provenance:0.93,consent:0.94,reversibility:0.91,auditability:0.90,linearity:0.93,scope_compliance:0.92};
async function mcp_list(){try{const d=await getJSON(API+'/v1/mcp/tools');const t=d.tools||[];setHTML('mcp-list','');t.forEach(x=>addHTML('mcp-list',`<div class="row"><span class="badge b-teal">${esc(x.name)}</span><span>${esc(x.description||'')}</span></div>`));
// tools-per-capability bar from in-image capability mesh
try{const m=await orgGet('core','/api/a11oy/v1/capabilities/mesh');const nd=m.nodes||[];barV('mcp-bar',nd.map(n=>n.id),nd.map(n=>n.mcp_tools||0),TEAL);}catch(e){}}catch(e){setHTML('mcp-list','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
async function mcp_call(name){try{setOut('o-mcp','invoking '+name+'\u2026');const args=name==='lambda_score'?{axes:AXES_OK}:name==='a11oy_gate'?{action:ACTION}:name==='khipu_sign'?{payload:{actionId:'mcp-demo',severity:'high'}}:{receipt:{actionId:'mcp-demo'}};
const d=await postJSON(API+'/v1/mcp/call',{name,arguments:args});setOut('o-mcp','TOOL '+esc(d.tool||name)+' \u00b7 '+esc(d.status||'')+' \u00b7 kernel '+esc(d.kernel_commit||'')+'\n\n'+JSON.stringify(d,null,2));}catch(e){setOut('o-mcp','retry: '+e.message);}}
// What we claim (a11oy honest)
async function honest_load(){try{const d=await getJSON(API+'/v1/honest');const dl=d.doctrine_lock||{};setHTML('ho-host','');
addHTML('ho-host',`<div class="row"><span>Formally proven formulas</span><span class="spacer b-live badge">8</span></div>`);
addHTML('ho-host',`<div class="row"><span>Build security</span><span class="spacer b-teal badge">SLSA Level 2</span></div>`);
addHTML('ho-host',`<div class="row"><span>Trust score</span><span class="spacer b-err badge">research conjecture</span></div>`);
addHTML('ho-host',`<div class="row"><span>Verifiable receipts</span><span class="spacer b-live badge">yes (own in-image ECDSA P-256 key)</span></div>`);
setOut('o-honest',d);}catch(e){setHTML('ho-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');}}
// Governed Decision \u2014 full loop on real in-image data (signals\u2192forecast\u2192evidence\u2192recommendation\u2192receipt)
async function decision_load(){try{const d=await getJSON(API+'/v1/governed-decision');
setTxt('gd-lam',(d.lambda_advisory!=null)?d.lambda_advisory:'\u2014');
const rec=d.recommendation||{};setTxt('gd-conf',(rec.confidence!=null)?Math.round(rec.confidence*100)+'%':'\u2014');
setTxt('gd-appr',rec.requires_human_approval===false?'optional':'required');
setTxt('gd-rcpt',(d.receipt&&(d.receipt.signed||d.receipt.signatures))?'signed':'\u2014');
const loop=d.loop||[];setHTML('gd-loop','');loop.forEach((s,i)=>addHTML('gd-loop',`<span class="loopstep"><span class="badge b-teal">${i+1}</span> ${esc(s)}</span>${i<loop.length-1?'<span class="loopsep">\u2192</span>':''}`));
setHTML('gd-sig','');(d.signals||[]).forEach(s=>addHTML('gd-sig',`<div class="row"><span>${esc(s.name)}</span><span class="spacer mono dim">${esc(s.value)} ${esc(s.unit||'')} \u00b7 ${esc(s.trend||'')}</span></div>`));
const fc=d.forecast||{};addHTML('gd-sig',`<div class="row"><span class="badge b-gold">forecast</span><span>${esc(fc.metric||'')}</span><span class="spacer mono dim">${esc(fc.point)} \u00b7 80% PI [${esc((fc.interval80||[])[0])}, ${esc((fc.interval80||[])[1])}]</span></div>`);
setHTML('gd-ev','');(d.evidence||[]).forEach(e=>addHTML('gd-ev',`<div class="row"><span class="badge b-teal">${esc(e.kind)}</span><span>${esc(e.ref)}</span><span class="spacer mono dim">${esc(e.hash||'')}</span></div>`));
setHTML('gd-rec',`<div class="row"><span class="badge b-gold">recommend</span><span>${esc(rec.title||'')}</span></div>`+
`<div class="row"><span>Owner</span><span class="spacer mono dim">${esc(rec.owner||'')}</span></div>`+
`<div class="row"><span>Next action</span><span class="spacer mono dim">${esc(rec.next_action||'')}</span></div>`+
`<div class="row"><span>Rollback</span><span class="spacer mono dim">${esc(rec.rollback_path||'')}</span></div>`+
`<div class="row"><span>Model</span><span class="spacer mono dim">${esc(rec.model||'')}</span></div>`+
`<div class="row mono dim">${esc(d.brief||'')}</div>`+
`<div class="row mono dim">${esc(d.lambda_status||'')}</div>`);
setOut('gd-raw',d);
}catch(e){setHTML('gd-rec','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setOut('gd-raw','retry: '+e.message);}}
// Eval Arena \u2014 recorded run from the SZL eval harness (content-hashed)
async function arena_load(){try{const d=await getJSON(API+'/v1/eval-arena');
setTxt('ar-n',d.scenarios_total??(d.results||[]).length);setTxt('ar-pass',d.scenarios_passed??'\u2014');
const lb=(d.leaderboard||[])[0]||{};setTxt('ar-top',lb.score!=null?lb.score:'\u2014');
setTxt('ar-date',String(d.timestamp||'').slice(0,10));
const res=d.results||[];barV('ar-bars',res.map(r=>r.scenario),res.map(r=>r.overall),res.map(r=>r.overall>=0.9?TEAL:GOLD));
setHTML('ar-host','');res.forEach(r=>addHTML('ar-host',`<div class="row"><span class="badge ${r.pass?'b-live':'b-err'}">${r.pass?'pass':'fail'}</span><span>${esc(r.scenario)}</span><span class="spacer mono dim">${esc(r.domain||'')} \u00b7 overall ${esc(r.overall)}</span></div>`));
addHTML('ar-host',`<div class="row mono dim">${esc(d.honesty||'')}</div>`);
addHTML('ar-host',`<div class="row"><span class="badge b-gold">leaderboard</span><span>${esc(lb.agent||'')}</span><span class="spacer mono dim">score ${esc(lb.score)} \u00b7 rank ${esc(lb.rank)}</span></div>`);
setOut('ar-raw',d);
}catch(e){setHTML('ar-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setOut('ar-raw','retry: '+e.message);}}
// Live external model intel \u2014 LMArena Elo leaderboard + quality\u00d7adoption Pareto (HF Hub). Advisory, \u039b Conjecture 1.
function _miFreshLabel(d){const f=(d&&d.freshness)||{};const live=d&&d.live;return (live?'live':(d&&d.label==='SAMPLE'?'SAMPLE':'unavailable'))+(f.age_s!=null?' \u00b7 '+f.age_s+'s':'');}
async function models_intel_load(){
try{const d=await getJSON(API+'/v1/models/leaderboard?limit=20');const lb=d.leaderboard||[];setTxt('l-lb-fresh',_miFreshLabel(d));
setHTML('l-lb','');if(!d.live)addHTML('l-lb',`<div class="row"><span class="badge b-err">SAMPLE</span><span class="mono dim">${esc(d.honesty||'')} (${esc(d.as_of||'')})</span></div>`);
lb.forEach(r=>addHTML('l-lb',`<div class="row"><span class="badge b-gold" style="min-width:34px;text-align:center">#${esc(r.rank??'')}</span><span><b>${esc(r.model)}</b> ${r.organization?'<span class="mono dim">\u00b7 '+esc(r.organization)+'</span>':''}</span><span class="spacer badge b-teal">Elo ${esc(r.elo)}</span></div>`));
addHTML('l-lb',`<div class="row mono dim">${esc(d.cited||'')}</div>`);
}catch(e){setHTML('l-lb','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setTxt('l-lb-fresh','retry');}
try{const p=await getJSON(API+'/v1/models/pareto?limit=40');const pts=p.points||[],fr=p.frontier||[];const frSet=new Set(fr.map(x=>x.model));
setHTML('l-pareto-note',esc(p.honesty||''));
if(pts.length){mkEchart('l-pareto',{tooltip:{trigger:'item',formatter:o=>o.data.name+'<br/>Elo '+o.data.value[1]+'<br/>downloads '+o.data.value[0].toLocaleString()},
grid:{left:60,right:20,top:20,bottom:40},
xAxis:{type:'log',name:'HF downloads',nameLocation:'middle',nameGap:26,axisLabel:{color:'#9a9a9a'}},
yAxis:{type:'value',name:'LMArena Elo',scale:true,axisLabel:{color:'#9a9a9a'}},
series:[{type:'scatter',symbolSize:10,data:pts.map(x=>({name:x.model,value:[Math.max(1,x.downloads),x.elo],itemStyle:{color:frSet.has(x.model)?TEAL:'#6a6a6a'}}))},
{type:'line',lineStyle:{color:GOLD,width:2,type:'dashed'},symbol:'diamond',symbolSize:12,
data:fr.slice().sort((a,b)=>a.downloads-b.downloads).map(x=>({name:x.model,value:[Math.max(1,x.downloads),x.elo]})),itemStyle:{color:GOLD}}]});}
else{const h=el('l-pareto');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">'+esc(p.honesty||'no matched points')+'</div>';}
}catch(e){const h=el('l-pareto');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">retry: '+esc(e.message)+'</div>';}}
window.models_intel_load=models_intel_load;
async function arena_elo_load(){try{const d=await getJSON(API+'/v1/models/leaderboard?limit=15');const lb=d.leaderboard||[];setTxt('ar-lb-fresh',_miFreshLabel(d));
setHTML('ar-lb','');if(!d.live)addHTML('ar-lb',`<div class="row"><span class="badge b-err">SAMPLE</span><span class="mono dim">${esc(d.honesty||'')} (${esc(d.as_of||'')})</span></div>`);
lb.forEach(r=>addHTML('ar-lb',`<div class="row"><span class="badge b-gold" style="min-width:34px;text-align:center">#${esc(r.rank??'')}</span><span><b>${esc(r.model)}</b> ${r.organization?'<span class="mono dim">\u00b7 '+esc(r.organization)+'</span>':''}</span><span class="spacer badge b-teal">Elo ${esc(r.elo)}</span></div>`));
addHTML('ar-lb',`<div class="row mono dim">${esc(d.cited||'')}</div>`);
}catch(e){setHTML('ar-lb','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setTxt('ar-lb-fresh','retry');}}
window.arena_elo_load=arena_elo_load;
// Business Observability \u2014 5 capability domains on real in-image data
async function business_load(){try{const d=await getJSON(API+'/v1/observability/business');
const dm=d.domains||[];setTxt('bz-n',dm.length);setTxt('bz-real',dm.filter(x=>x.status==='real').length);
setHTML('bz-host','');dm.forEach(x=>addHTML('bz-host',`<div class="row"><span class="badge ${x.status==='real'?'b-live':'b-gold'}">${esc(x.status)}</span><span><b>${esc(x.name)}</b> \u2014 ${esc(x.measure||'')}</span><span class="spacer mono dim">${esc(x.value||'')}</span></div>`));
addHTML('bz-host',`<div class="row mono dim">${esc(d.honesty||'')}</div>`);
setOut('bz-raw',d);
}catch(e){setHTML('bz-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setOut('bz-raw','retry: '+e.message);}
window.markets_load();}
// Markets & Fiscal — REAL live SEC EDGAR companyfacts + Treasury debt-to-penny + FRED
function mkState(s){const u=String(s||'').toUpperCase();return u==='MEASURED'?'b-live':(u==='ROADMAP'?'b-gold':'b-gold');}
function mkUSD(n){if(n==null||isNaN(n))return '—';const a=Math.abs(n);
if(a>=1e12)return '$'+(n/1e12).toFixed(2)+'T';if(a>=1e9)return '$'+(n/1e9).toFixed(2)+'B';
if(a>=1e6)return '$'+(n/1e6).toFixed(2)+'M';return '$'+Number(n).toLocaleString();}
async function markets_load(){const host='mk-host';try{const d=await getJSON(API+'/v1/markets/summary');
setHTML(host,'');
const co=d.company||{},m=co.metrics||{};
addHTML(host,`<div class="row"><span class="badge ${mkState(co.state)}">${esc(co.state||'')}</span><span><b>${esc(co.entity||'company')}</b> — SEC EDGAR 10-K (CIK ${esc(co.cik||'')})</span><span class="spacer mono dim">${esc(co.source_label||'live from SEC')}</span></div>`);
[['revenue','Revenue'],['net_income','Net income'],['assets','Total assets'],['stockholders_equity','Equity']].forEach(([k,lab])=>{const v=m[k];
if(v)addHTML(host,`<div class="row"><span class="badge b-gold">FY${esc(v.fiscal_year||'')}</span><span>${lab} <span class="mono dim">${esc(v.concept||'')}</span></span><span class="spacer mono teal">${mkUSD(v.value)}</span></div>`);});
const dbt=d.national_debt||{};
addHTML(host,`<div class="row"><span class="badge ${mkState(dbt.state)}">${esc(dbt.state||'')}</span><span><b>U.S. national debt</b> — Treasury debt-to-penny <span class="mono dim">${esc(dbt.record_date||'')}</span></span><span class="spacer mono teal">${mkUSD(dbt.total_public_debt_outstanding_usd)}</span></div>`);
const mac=d.macro||{},obs=(mac.observations||[])[0]||{};
addHTML(host,`<div class="row"><span class="badge ${mkState(mac.state)}">${esc(mac.state||'')}</span><span><b>FRED ${esc(mac.series_id||'')}</b> — ${esc(mac.note||'')}</span><span class="spacer mono teal">${obs.value?esc(obs.value)+' ('+esc(obs.date)+')':'—'}</span></div>`);
addHTML(host,`<div class="row mono dim">${esc(d.advisory||'')}</div>`);
setOut('mk-raw',d);
}catch(e){setHTML(host,'<div class="row mono dim">retry: '+esc(e.message)+'</div>');setOut('mk-raw','retry: '+e.message);}}
// Vertical-Pack Ecosystem \u2014 13 packs (live + roadmap), reuse the a11oy core
async function verticals_load(){try{const d=await getJSON(API+'/v1/vertical-packs');
const vs=d.verticals||[];setTxt('vp-n',d.total??vs.length);setTxt('vp-live',d.live??vs.filter(v=>v.status==='live').length);setTxt('vp-stub',d.stub??vs.filter(v=>v.status!=='live').length);
const live=vs.filter(v=>v.status==='live'),stub=vs.filter(v=>v.status!=='live');
setHTML('vp-live-host','');live.forEach(v=>addHTML('vp-live-host',`<div class="row"><span class="badge b-live">live</span><span><b>${esc(v.title)}</b> \u2014 ${esc(v.purpose||'')}</span><span class="spacer mono dim">${esc(v.owner||'')}</span></div>`));
setHTML('vp-stub-host','');stub.forEach(v=>addHTML('vp-stub-host',`<div class="row"><span class="badge b-gold">roadmap</span><span><b>${esc(v.title)}</b> \u2014 ${esc(v.purpose||'')}</span><span class="spacer mono dim">${esc(v.owner||'')}</span></div>`));
addHTML('vp-stub-host',`<div class="row mono dim">${esc(d.honesty||'')}</div>`);
setOut('vp-raw',d);
}catch(e){setHTML('vp-live-host','<div class="row mono dim">retry: '+esc(e.message)+'</div>');setOut('vp-raw','retry: '+e.message);}}
// ===== SHOWSTOPPER HANDLERS (3D / globe / cytoscape / echarts) =====
const MATURITY_COLOR={proven:TEAL,measured:GOLD,conjectured:AMBER,conjecture:AMBER,defined:'#888',open:AMBER};
function matColor(m){return MATURITY_COLOR[String(m||'').toLowerCase()]||'#888';}
// Living Organism \u2014 SELF-CONTAINED: a11oy GOLD brain at the center, its own
// internal capabilities as nodes (Reasoning, Policy/Safety, Operator, Receipts,
// Knowledge). Renders INSTANTLY from in-image data; every edge terminates at
// the gold core. NO external services. Canvas is never black.
async function organism_load(){
const h0=el('org-3d');if(h0)h0.innerHTML='<div class="row mono dim" style="padding:1rem">awakening the organism\u2026</div>';
// instant render from in-image capability graph
const nodes=[{id:'a11oy',name:'a11oy \u2014 orchestrating brain',color:GOLD,val:18}];const links=[];
CAPS.forEach(c=>{nodes.push({id:c.id,name:c.name+' \u00b7 '+c.kind,color:c.color,val:9});links.push({source:c.id,target:'a11oy'});});
mesh3d('org-3d',nodes,links);
setTxt('org-reach',(CAPS.length)+'/'+(CAPS.length));setTxt('org-links',links.length);
// live in-image probe for depth + capability detail (same-origin)
try{const d=await getJSON(API+'/v1/observability/summary');const mr=d.mesh_reach||{};
const depth=(d.melt&&d.melt.metrics&&d.melt.metrics.dag_depth)||d.signed_spans||'\u2014';setTxt('org-spans',depth);
setHTML('org-host','');Object.keys(mr).forEach(k=>{const v=mr[k];addHTML('org-host',`<div class="row"><span class="badge ${(v.status==='ok')?'b-live':'b-err'}">${esc(v.status||'ok')}</span><span>${esc(v.name||k)}</span><span class="spacer mono dim">${v.latency_ms?Math.round(v.latency_ms)+'ms':''} \u00b7 ${esc(v.url||'in-image')}</span></div>`);});
setOut('org-raw',d);
}catch(e){setTxt('org-spans','\u2014');setHTML('org-host','');CAPS.forEach(c=>addHTML('org-host',`<div class="row"><span class="badge b-live">ok</span><span>${esc(c.name)}</span><span class="spacer mono dim">in-image capability</span></div>`));setOut('org-raw','in-image capability graph (self-contained)');}}
// Receipt Chain \u2014 live hash-chain as a 3D DAG (operator command-log)
async function chain_load(){
try{const cl=await orgGet('core','/api/a11oy/v2/operator/command-log');const rcs=(cl.receipts||[]).slice(-60);
setTxt('ch-depth',cl.depth??rcs.length);setTxt('ch-ver',cl.chain_verified?'verified':'\u2014');
const nodes=[],links=[];rcs.forEach((r,i)=>{const id=String(r.hash||r.seq||i);nodes.push({id,name:'#'+(r.seq??i)+' \u00b7 '+esc(String(r.command||r.kind||'')).slice(0,28)+' \u00b7 '+id.slice(0,10),color:i===rcs.length-1?GOLD:TEAL,val:i===0?9:4});
if(i>0){const prev=String(rcs[i-1].hash||rcs[i-1].seq||(i-1));links.push({source:prev,target:id});}});
if(nodes.length)dag3d('ch-3d',nodes,links,{dagMode:'lr',dist:36,cooldown:140});
else{const h=el('ch-3d');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">chain empty</div>';}
setTxt('ch-cap','genesis hash '+esc(String(cl.genesis_hash||'').slice(0,16))+'\u2026 \u2192 head '+esc(String(cl.final_hash||'').slice(0,16))+'\u2026 \u00b7 '+(cl.chain_verified?'chain VERIFIED':'unverified'));
const tail=el('ch-tail');if(tail){tail.innerHTML='';rcs.slice().reverse().forEach(r=>tail.insertAdjacentHTML('beforeend',`<div class="frow"><span class="ts">#${esc(r.seq??'')}</span><span class="id">${esc(String(r.hash||'').slice(0,12))}</span><span class="txt">${esc(String(r.command||r.kind||''))}</span></div>`));}
setOut('ch-raw',cl);
}catch(e){const h=el('ch-3d');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">live command-log unavailable: '+esc(e.message)+'</div>';setOut('ch-raw','retry: '+e.message);}
try{const led=await orgGet('core','/api/a11oy/v1/operator/ledger');setTxt('ch-led',led.count??(led.receipts||[]).length);}catch(e){setTxt('ch-led','\u2014');}
// verify a11oy's DSSE signature in-browser so the chain shows a real, checked signature
try{const pem=await getText(API+'/cosign.pub');const env=await getJSON(API+'/v1/receipt/export');const res=await verifyReceipt(env,pem,false);setHTML('ch-sig',res.ok?'<span class="live">verified</span>':'<span class="warn">invalid</span>');}catch(e){setHTML('ch-sig','<span class="warn">\u2014</span>');}}
// Reciprocity (Ayni) \u2014 live, event-sourced from signed receipts (/v1/ayni,/v1/tinkuy)
async function ayni_load(){
try{
const [ay,tk]=await Promise.all([getJSON('/v1/ayni'),getJSON('/v1/tinkuy')]);
const r=(tk&&typeof tk.r==='number')?tk.r:0;
setTxt('ay-r',r.toFixed(3));
const flow=!!(tk&&tk.in_tinkuy);
setTxt('ay-flow',flow?'TINKUY (coherent)':'forming');
const fe=el('ay-flow'); if(fe)fe.className='v '+(flow?'teal':'warn');
const alphas=(ay&&ay.alphas)||{};
const organs=Object.keys(alphas);
const balanced=organs.filter(o=>alphas[o]>=0.45).length;
setTxt('ay-bal',organs.length?(balanced+' / '+organs.length):'\u2014');
setTxt('ay-rcpt',(ay&&ay.receipts_ingested!=null)?String(ay.receipts_ingested):'\u2014');
setTxt('ay-src',((ay&&ay.live)?'live \u00b7 ':'fallback \u00b7 ')+((ay&&ay.data_source)||'\u2014'));
drawKuramoto('ay-circle',tk);
drawAyniBars('ay-bars',alphas,(ay&&ay.deficits)||[]);
}catch(e){
setHTML('ay-bars','<div class="row mono dim">live reciprocity unavailable: '+esc(e.message)+'</div>');
setTxt('ay-r','\u2014'); setTxt('ay-flow','\u2014');
}
}
window.ayni_load=ayni_load;
function drawKuramoto(id,tk){
const host=el(id); if(!host)return;
const S=340,c=S/2,R=S/2-42;
const ph=(tk&&tk.phases)||{};
const organs=Object.keys(ph);
const r=(tk&&typeof tk.r==='number')?tk.r:0;
const psi=(tk&&typeof tk.psi==='number')?tk.psi:0;
let s='<svg width="'+S+'" height="'+S+'" viewBox="0 0 '+S+' '+S+'" style="max-width:100%">';
s+='<defs><marker id="ayarrow" markerWidth="10" markerHeight="10" refX="7" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#c9b787"/></marker></defs>';
s+='<circle cx="'+c+'" cy="'+c+'" r="'+R+'" fill="none" stroke="rgba(201,183,135,0.28)" stroke-width="1.2"/>';
s+='<circle cx="'+c+'" cy="'+c+'" r="'+(R*0.5)+'" fill="none" stroke="rgba(255,255,255,0.05)" stroke-dasharray="3 5"/>';
s+='<line x1="'+(c-R)+'" y1="'+c+'" x2="'+(c+R)+'" y2="'+c+'" stroke="rgba(255,255,255,0.06)"/>';
s+='<line x1="'+c+'" y1="'+(c-R)+'" x2="'+c+'" y2="'+(c+R)+'" stroke="rgba(255,255,255,0.06)"/>';
organs.forEach(function(o){
const th=ph[o]||0; const x=c+R*Math.cos(th), y=c-R*Math.sin(th);
s+='<line x1="'+c+'" y1="'+c+'" x2="'+x.toFixed(2)+'" y2="'+y.toFixed(2)+'" stroke="rgba(95,179,163,0.16)" stroke-width="1"/>';
s+='<circle cx="'+x.toFixed(2)+'" cy="'+y.toFixed(2)+'" r="6" fill="#0e0f10" stroke="#5fb3a3" stroke-width="1.8"><title>'+esc(o)+' \u00b7 \u03b8='+th.toFixed(3)+'</title></circle>';
});
const rx=c+R*r*Math.cos(psi), ry=c-R*r*Math.sin(psi);
s+='<line x1="'+c+'" y1="'+c+'" x2="'+rx.toFixed(2)+'" y2="'+ry.toFixed(2)+'" stroke="#c9b787" stroke-width="2.6" marker-end="url(#ayarrow)"><animate attributeName="opacity" values="0.55;1;0.55" dur="2.6s" repeatCount="indefinite"/></line>';
s+='<circle cx="'+c+'" cy="'+c+'" r="3" fill="#c9b787"/>';
s+='<text x="'+c+'" y="'+(S-8)+'" text-anchor="middle" fill="#c9b787" font-size="12" font-family="monospace">r = '+r.toFixed(3)+'</text>';
s+='</svg>';
host.innerHTML=s;
}
function drawAyniBars(id,alphas,deficits){
const host=el(id); if(!host)return;
const drained=new Set((deficits||[]).map(function(d){return d.organ;}));
const entries=Object.entries(alphas).sort(function(a,b){return b[1]-a[1];});
if(!entries.length){host.innerHTML='<div class="row mono dim">no ledger entries</div>';return;}
let h='<div style="display:flex;flex-direction:column;gap:6px">';
entries.forEach(function(kv){
const o=kv[0], a=kv[1];
const pct=Math.max(0,Math.min(1,a))*100;
const col=a<0.45?'#b06a5a':(a<0.5?'#c9b787':'#5fb3a3');
h+='<div style="display:flex;align-items:center;gap:8px">'
+'<div class="mono dim" style="width:104px;text-align:right;font-size:12px">'+esc(o)+'</div>'
+'<div style="flex:1;background:rgba(255,255,255,0.05);border-radius:6px;height:16px;position:relative;overflow:hidden">'
+'<div style="position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,0.28)"></div>'
+'<div style="height:100%;width:'+pct.toFixed(1)+'%;background:'+col+';border-radius:6px 0 0 6px;transition:width .6s"></div>'
+'</div>'
+'<div class="mono" style="width:52px;font-size:12px;color:'+col+'">'+a.toFixed(3)+'</div>'
+(drained.has(o)?'<span class="mono" style="border:1px solid #b06a5a;color:#b06a5a;font-size:10px;border-radius:4px;padding:0 4px">T24</span>':'<span style="width:34px;display:inline-block"></span>')
+'</div>';
});
h+='</div>';
host.innerHTML=h;
}
// Global Pulse \u2014 live USGS earthquakes on a globe, arcs \u2192 a11oy US hub
async function pulse_load(){
const HUB={lat:39.0,lng:-98.0};
try{const d=await getPublic('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson',13000);
const feats=d.features||[];setTxt('pl-n',feats.length);
let maxMag=0,maxPlace='';const arcs=[],pts=[];
feats.forEach(f=>{const p=f.properties||{};const g=f.geometry||{};const c=g.coordinates||[];if(c.length<2)return;const mag=p.mag||0;if(mag>maxMag){maxMag=mag;maxPlace=p.place||'';}
const col=mag>=5?RED:(mag>=3?AMBER:TEAL);
arcs.push({startLat:c[1],startLng:c[0],endLat:HUB.lat,endLng:HUB.lng,color:[col,GOLD]});
pts.push({lat:c[1],lng:c[0],size:Math.max(0.15,mag*0.12),color:col,label:(p.place||'')+' \u00b7 M'+mag});});
setTxt('pl-max',maxMag?('M'+maxMag.toFixed(1)):'\u2014');
const host=el('pl-globe');
if(host&&window.Globe){killGlobe();host.innerHTML='';
_globe=Globe()(host).backgroundColor('#060606').width(host.clientWidth).height(host.clientHeight)
.globeImageUrl('/vendor/earth-night.jpg')
.pointsData(pts).pointColor('color').pointAltitude(d=>d.size*0.06).pointRadius(0.25).pointLabel('label')
.arcsData(arcs).arcColor('color').arcDashLength(0.4).arcDashGap(0.2).arcDashAnimateTime(1600).arcStroke(0.5).arcAltitudeAutoScale(0.4);
try{_globe.pointOfView({lat:39,lng:-98,altitude:2.2},0);const ctr=_globe.controls();if(ctr){ctr.autoRotate=true;ctr.autoRotateSpeed=0.6;}}catch(e){}
setTimeout(()=>{try{_globe.width(host.clientWidth).height(host.clientHeight);}catch(e){}},300);}
const list=el('pl-list');if(list){list.innerHTML='';feats.slice().sort((a,b)=>(b.properties.mag||0)-(a.properties.mag||0)).slice(0,25).forEach(f=>{const p=f.properties||{};const col=(p.mag||0)>=5?'sev-crit':((p.mag||0)>=3?'sev-high':'sev-med');
list.insertAdjacentHTML('beforeend',`<div class="row"><span class="badge b-gold ${col}">M${esc((p.mag||0).toFixed?p.mag.toFixed(1):p.mag)}</span><span>${esc(p.place||'')}</span><span class="spacer mono dim">${esc(new Date(p.time).toISOString().slice(11,16))}Z</span></div>`);});}
}catch(e){const h=el('pl-globe');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">USGS feed unavailable: '+esc(e.message)+'</div>';setTxt('pl-n','\u2014');setHTML('pl-list','<div class="row mono dim">USGS feed unavailable</div>');}}
// Trust Space \u2014 13 trust axes as a rotating 3D point cloud (echarts-gl scatter3D)
async function trustspace_load(){
try{const d=await getJSON(API+'/v1/lambda');const ax=d.axes||[];const L=d.lambda||0;setTxt('ts-lam',L.toFixed?L.toFixed(4):L);setTxt('ts-n',ax.length||13);
const data=ax.map((a,i)=>{const ang=(i/Math.max(1,ax.length))*Math.PI*2;const r=1.2;const s=a.score||0;
return{value:[Math.cos(ang)*r,Math.sin(ang)*r,s],name:a.name,score:s};});
mkEchart('ts-cloud',{tooltip:{formatter:p=>p.data.name+'<br/>score '+(p.data.score!=null?p.data.score.toFixed(3):'')},
xAxis3D:{type:'value',name:'x'},yAxis3D:{type:'value',name:'y'},zAxis3D:{type:'value',name:'score',min:0,max:1},
grid3D:{viewControl:{autoRotate:true,autoRotateSpeed:8,distance:200},axisLine:{lineStyle:{color:'#444'}},axisLabel:{color:'#888'},splitLine:{lineStyle:{color:'rgba(201,183,135,0.08)'}}},
series:[{type:'scatter3D',symbolSize:14,data:data.map(p=>({value:p.value,name:p.name,score:p.score,itemStyle:{color:p.score>=0.9?TEAL:(p.score>=0.7?GOLD:RED)}})),
label:{show:true,formatter:p=>p.data.name,color:'#9a9a9a',fontSize:9}}]});
setOut('ts-raw',d);
}catch(e){const h=el('ts-cloud');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">trust vector unavailable: '+esc(e.message)+'</div>';setOut('ts-raw','retry: '+e.message);}}
// Service Map \u2014 SELF-CONTAINED typed ontology (cytoscape): a11oy hub +
// internal capability objects from the in-image CAPS graph. Renders instantly,
// never blank. NO external services.
function ontology_load(){
const els=[{data:{id:'a11oy',label:'a11oy',w:54},classes:'hub'}];let edges=0;
CAPS.forEach(c=>{els.push({data:{id:c.id,label:c.name,w:44}});els.push({data:{id:'e_'+c.id,source:'a11oy',target:c.id}});edges++;});
const cy=cyGraph('on-cy',els,{name:'concentric',concentric:n=>n.hasClass('hub')?10:1,levelWidth:()=>1,animate:false,padding:24});
if(!cy){const h=el('on-cy');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">graph engine loading\u2026 a11oy + '+CAPS.length+' capabilities</div>';}
setTxt('on-n',els.filter(e=>!e.data.source).length);setTxt('on-e',edges);}
// CVE Watch \u2014 live NVD CVE 2.0
async function cve_load(){
// SERVER-SIDE fused intel: NVD CVE 2.0 + CISA KEV + FIRST EPSS, ranked by an advisory
// Exposure Priority (\u039b = Conjecture 1, public signals only). Same-origin, CORS-safe.
try{const d=await orgGet('core','/api/a11oy/v1/policy/intel/cve');const rows=d.rows||[];
setTxt('cv-n',rows.length);setTxt('cv-tot',(d.total||rows.length).toLocaleString());
const sevCount={CRITICAL:0,HIGH:0,MEDIUM:0,LOW:0,NONE:0};
rows.forEach(r=>{const s=String(r.severity||'NONE').toUpperCase();sevCount[s]=(sevCount[s]||0)+1;});
setTxt('cv-hi',(sevCount.CRITICAL||0)+(sevCount.HIGH||0));
const byDate=rows.slice().sort((a,b)=>String(b.published).localeCompare(String(a.published)));
if(byDate[0])setTxt('cv-new',esc(byDate[0].id));
mkEchart('cv-bar',{tooltip:{trigger:'axis'},xAxis:{type:'category',data:['Critical','High','Medium','Low','None']},yAxis:{type:'value'},
series:[{type:'bar',data:[{value:sevCount.CRITICAL||0,itemStyle:{color:RED}},{value:sevCount.HIGH||0,itemStyle:{color:GOLD}},{value:sevCount.MEDIUM||0,itemStyle:{color:TEAL}},{value:sevCount.LOW||0,itemStyle:{color:'#5a8a6e'}},{value:sevCount.NONE||0,itemStyle:{color:'#555'}}],barWidth:'46%'}]});
const tb=el('cv-tb');if(tb){tb.innerHTML='';byDate.slice(0,25).forEach(r=>{const sev=String(r.severity||'NONE').toUpperCase();const cls=sev==='CRITICAL'?'sev-crit':(sev==='HIGH'?'sev-high':(sev==='MEDIUM'?'sev-med':'sev-low'));
tb.insertAdjacentHTML('beforeend',`<tr><td class="mono">${esc(r.id)}</td><td class="${cls}">${esc(sev)}</td><td>${esc(r.cvss==null?'\u2014':r.cvss)}</td><td class="mono dim">${esc(String(r.published||'').slice(0,10))}</td><td>${esc(String(r.desc||'').slice(0,120))}</td></tr>`);});}
// Exposure Priority panel rendered from the SAME server fusion (no client refetch).
const ranked=rows.slice().sort((a,b)=>(b.exposure||0)-(a.exposure||0));
const techHits=ranked.filter(r=>(r.factors||[]).some(f=>/ATT&CK/.test(f))).length;
setTxt('ep-kev',(d.kev_correlated||0)+' / '+ranked.length);setTxt('ep-tech',techHits);setTxt('ep-top',ranked[0]?ranked[0].exposure:'\u2014');
const colOf=r=>r.kev?RED:((r.exposure||0)>=70?GOLD:TEAL);
mkEchart('ep-bubble',{tooltip:{trigger:'item',formatter:p=>{const r=p.data.r;return '<b>'+esc(r.id)+'</b><br/>exposure '+(r.exposure||0)+' / 100<br/>CVSS '+(r.cvss==null?'\u2014':r.cvss)+'<br/>'+esc((r.factors||[]).join(' \u00b7 '));}},
xAxis:{name:'CVSS base',min:0,max:10,nameTextStyle:{color:DIM},axisLine:{lineStyle:{color:GRID}},splitLine:{lineStyle:{color:GRID}}},
yAxis:{name:'Exposure priority',min:0,max:100,nameTextStyle:{color:DIM},axisLine:{lineStyle:{color:GRID}},splitLine:{lineStyle:{color:GRID}}},
series:[{type:'scatter',symbolSize:dd=>10+((Array.isArray(dd)?dd[1]:0)||0)*0.35,data:ranked.map(r=>({value:[Number(r.cvss)||0,r.exposure||0],r,itemStyle:{color:colOf(r),opacity:0.82}})),animationDuration:900,animationEasing:'cubicOut'}]});
const eb=el('ep-tb');if(eb){eb.innerHTML='';if(!ranked.length){eb.innerHTML='<tr><td colspan=5 class="mono dim">no CVEs to rank</td></tr>';}
ranked.slice(0,15).forEach((r,i)=>{const cls=r.kev?'sev-crit':((r.exposure||0)>=70?'sev-high':'sev-med');
eb.insertAdjacentHTML('beforeend',`<tr><td class="mono">${i+1}</td><td class="mono">${esc(r.id)}</td><td class="${cls}">${r.exposure||0}</td><td>${(Number(r.cvss)||0).toFixed(1)}</td><td class="dim">${esc((r.factors||[]).join(' \u00b7 ')||'baseline')}</td></tr>`);});}
if(d.mode&&d.mode!=='live'){setHTML('cv-tb',el('cv-tb').innerHTML+`<tr><td colspan=5 class="mono dim">feed mode: ${esc(d.mode)} (server-side cache; honest, not fabricated)</td></tr>`);}
}catch(e){setTxt('cv-n','\u2014');setHTML('cv-tb','<tr><td colspan=5 class="mono dim">intel feed unavailable: '+esc(e.message)+'</td></tr>');}}
// ===== Exposure Priority (agentic threat-intel fusion) =====
// Built UPON: CrowdStrike ExPRT.AI (dynamic, transparent exploit-likelihood rating;
// crowdstrike.com/.../how-exprt-ai-predicts-next-exploited-vulnerability),
// Wiz contextual prioritization + CISA-KEV (wiz.io/.../detect-and-prioritize-cisa-kev),
// Picus Exposure Score (CVSS+EPSS+KEV+exploitability). Their core doctrine: severity is an
// INPUT, priority is a DECISION, and the score must be TRANSPARENT (show top factors).
// Our honest delta: we have NO environment telemetry/asset criticality, so we score on PUBLIC
// signals only (CVSS base + KEV exploited-in-the-wild + match vs the platform's own adversary
// corpus + attack-vector heuristics) and SAY SO. Deterministic; no fabricated AI confidence.
let _ep_kev=null; // cache of {cveID->kev record} from live CISA KEV
let _ep_corpus=null; // in-image adversary technique corpus (T-codes / keywords)
async function _ep_loadKev(){if(_ep_kev)return _ep_kev;_ep_kev={};
try{const d=await getPublic('https://raw.githubusercontent.com/cisagov/kev-data/develop/known_exploited_vulnerabilities.json',13000);
(d.vulnerabilities||[]).forEach(x=>{if(x.cveID)_ep_kev[String(x.cveID).toUpperCase()]={ransom:String(x.knownRansomwareCampaignUse||'').toLowerCase()==='known',name:x.vulnerabilityName||''};});}catch(_e){}
return _ep_kev;}
async function _ep_loadCorpus(){if(_ep_corpus)return _ep_corpus;_ep_corpus=[];
try{const d=await getJSON(API+'/v1/policy/threats');_ep_corpus=(d.corpus||[]).map(t=>({sig:String(t.signature||'').toLowerCase(),tech:t.mitre_technique||'',cat:t.category||''}));}catch(_e){}
return _ep_corpus;}
function _ep_score(cvss,kev,techMatch,desc){
// Transparent deterministic 0-100 exposure score with explicit factor weights.
const factors=[];let s=0;
const base=Math.min(10,Number(cvss)||0)*6; // CVSS contributes up to 60
s+=base; if(base>0)factors.push('CVSS '+(Number(cvss)||0).toFixed(1));
if(kev){s+=28;factors.push('actively exploited (CISA KEV)');if(kev.ransom){s+=4;factors.push('ransomware campaign');}}
if(techMatch){s+=10;factors.push('matches adversary technique '+techMatch);}
const d=String(desc||'').toLowerCase();
if(/remote|unauthenticated|rce|remote code/.test(d)){s+=6;factors.push('remote / unauthenticated vector');}
return {score:Math.max(0,Math.min(100,Math.round(s))),factors};}
async function cve_exposure_load(vs,scoreOf,sevOf){
const kev=await _ep_loadKev();const corpus=await _ep_loadCorpus();
const rows=[];let kevHits=0,techHits=0;
(vs||[]).slice(0,30).forEach(v=>{const c=v.cve;const id=String(c.id||'').toUpperCase();
const cvss=scoreOf(v);const desc=((c.descriptions||[]).find(x=>x.lang==='en')||{}).value||'';
const k=kev[id]||null;if(k)kevHits++;
let techMatch='';const dl=desc.toLowerCase();
for(const t of corpus){if(t.sig&&t.sig.length>3&&dl.indexOf(t.sig)>=0){techMatch=t.tech||t.cat;break;}}
if(techMatch)techHits++;
const sc=_ep_score(cvss,k,techMatch,desc);
rows.push({id:c.id,cvss:Number(cvss)||0,score:sc.score,factors:sc.factors,kev:!!k,tech:techMatch,desc});});
rows.sort((a,b)=>b.score-a.score);
setTxt('ep-kev',kevHits+' / '+rows.length);setTxt('ep-tech',techHits);setTxt('ep-top',rows[0]?rows[0].score:'\u2014');
// animated bubble: x=CVSS, y=exposure score, size=score, color by class
const colOf=r=>r.kev?RED:(r.score>=70?GOLD:TEAL);
mkEchart('ep-bubble',{tooltip:{trigger:'item',formatter:p=>{const r=p.data.r;return '<b>'+esc(r.id)+'</b><br/>exposure '+r.score+' / 100<br/>CVSS '+r.cvss.toFixed(1)+'<br/>'+esc(r.factors.join(' \u00b7 '));}},
xAxis:{name:'CVSS base',min:0,max:10,nameTextStyle:{color:DIM},axisLine:{lineStyle:{color:GRID}},splitLine:{lineStyle:{color:GRID}}},
yAxis:{name:'Exposure priority',min:0,max:100,nameTextStyle:{color:DIM},axisLine:{lineStyle:{color:GRID}},splitLine:{lineStyle:{color:GRID}}},
series:[{type:'scatter',symbolSize:d=>10+((Array.isArray(d)?d[1]:0)||0)*0.35,data:rows.map(r=>({value:[r.cvss,r.score],r,itemStyle:{color:colOf(r),opacity:0.82}})),
animationDuration:900,animationEasing:'cubicOut'}]});
const tb=el('ep-tb');if(tb){tb.innerHTML='';if(!rows.length){tb.innerHTML='<tr><td colspan=5 class="mono dim">no CVEs to rank</td></tr>';}
rows.slice(0,15).forEach((r,i)=>{const cls=r.kev?'sev-crit':(r.score>=70?'sev-high':'sev-med');
tb.insertAdjacentHTML('beforeend',`<tr><td class="mono">${i+1}</td><td class="mono">${esc(r.id)}</td><td class="${cls}">${r.score}</td><td>${r.cvss.toFixed(1)}</td><td class="dim">${esc(r.factors.join(' \u00b7 ')||'baseline')}</td></tr>`);});}}
window.cve_exposure_load=cve_exposure_load;
// Known-Exploited \u2014 live CISA KEV mirror
async function kev_load(){
// SERVER-SIDE CISA KEV enriched with FIRST EPSS exploit-probability (same-origin proxy).
try{const d=await orgGet('core','/api/a11oy/v1/policy/intel/kev');
const vs=d.vulnerabilities||[];setTxt('kv-n',(vs.length||d.count||0).toLocaleString());setTxt('kv-ver',esc(d.catalogVersion||'\u2014'));
const ransom=vs.filter(x=>x.ransomware).length;setTxt('kv-ransom',ransom.toLocaleString());
const newest=vs.slice().reverse().slice(0,40);const tail=el('kv-tail');if(tail){tail.innerHTML='';newest.forEach(x=>{const ep=(x.epss!=null)?(' \u00b7 EPSS '+Math.round(x.epss*100)+'%'):'';tail.insertAdjacentHTML('beforeend',`<div class="frow"><span class="id">${esc(x.cveID||'')}</span><span class="txt">${esc(x.vendorProject||'')} ${esc(x.product||'')} \u2014 ${esc(String(x.name||'').slice(0,64))}<span class="dim">${esc(ep)}</span></span></div>`);});}
const vend={};vs.forEach(x=>{const k=x.vendorProject||'?';vend[k]=(vend[k]||0)+1;});
const top=Object.entries(vend).sort((a,b)=>b[1]-a[1]).slice(0,12);
mkEchart('kv-bar',{tooltip:{trigger:'axis'},grid:{left:120},xAxis:{type:'value'},yAxis:{type:'category',data:top.map(t=>t[0]).reverse()},
series:[{type:'bar',data:top.map(t=>t[1]).reverse(),itemStyle:{color:GOLD},barWidth:'60%'}]});
if(d.mode&&d.mode!=='live'&&tail)tail.insertAdjacentHTML('beforeend',`<div class="frow"><span class="txt mono dim">feed mode: ${esc(d.mode)} \u2014 server cache, honest fallback</span></div>`);
}catch(e){setTxt('kv-n','\u2014');const t=el('kv-tail');if(t)t.innerHTML='<div class="frow"><span class="txt mono dim">CISA KEV feed unavailable: '+esc(e.message)+'</span></div>';}}
// Adversary Techniques \u2014 live MITRE ATT&CK STIX (bounded parse)
async function attack_load(){
// SERVER-SIDE bounded MITRE ATT&CK v17.1 STIX parse (no ~50MB client download).
// Holographic 3D technique\u2192tactic intel graph + 2D cytoscape fallback.
try{setTxt('at-cap','fetching bounded ATT&CK v17.1 subset server-side\u2026');
const d=await orgGet('core','/api/a11oy/v1/policy/intel/attack');
const nodes=d.nodes||[],links=d.links||[];
setTxt('at-n',d.techniques||0);setTxt('at-t',d.tactics||0);
setTxt('at-cap','graphed '+(d.techniques||0)+' techniques \u2192 '+(d.tactics||0)+' tactics ('+esc(d.version||'ATT&CK')+', mode: '+esc(d.mode||'live')+')');
// holographic 3D: tactics as teal hubs, techniques as gold leaves
const n3=nodes.map(n=>({id:n.id,name:n.label,val:n.kind==='tactic'?8:2,color:n.kind==='tactic'?TEAL:GOLD}));
const l3=links.map(e=>({source:e.source,target:e.target}));
if(n3.length)dag3d('at-3d',n3,l3,{dist:42,cooldown:160});
else{const h=el('at-3d');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">no graph nodes returned</div>';}
// 2D cytoscape (always available, no WebGL dependency)
const els=[];nodes.forEach(n=>els.push({data:{id:n.id,label:String(n.label||'').slice(0,22),w:n.kind==='tactic'?62:30},classes:n.kind==='tactic'?'tactic':''}));
links.forEach((e,i)=>els.push({data:{id:'e'+i,source:e.source,target:e.target}}));
cyGraph('at-cy',els,{name:'cose',animate:false,padding:24,nodeRepulsion:9000,idealEdgeLength:60});
}catch(e){const h=el('at-3d');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">MITRE ATT&CK intel unavailable: '+esc(e.message)+'</div>';setTxt('at-n','\u2014');setTxt('at-cap','feed unavailable \u2014 honest failure, not faked');}}
// ===== KNOWLEDGE BASE HANDLERS (knowledge.json) =====
let _kb=null;
async function loadKnowledge(){if(_kb)return _kb;if(window.__KB__){_kb=window.__KB__;return _kb;}try{_kb=await getPublic('/knowledge.json',15000);}catch(e){_kb={};}return _kb;}
window.loadKnowledge=loadKnowledge;
let _kf_all=[];
function renderKatex(latex){try{return katex.renderToString(latex,{throwOnError:false,displayMode:false});}catch(e){return '<span class="mono dim">'+esc(latex)+'</span>';}}
// Knowledge Ontology \u2014 axioms\u2192theorems\u2192formulas typed graph (cytoscape)
async function knowledge_load(){
try{const kb=await loadKnowledge();const ax=kb.axioms||[],th=kb.theorems||[],fm=kb.formulas||[];
setTxt('kn-ax',ax.length);setTxt('kn-th',th.length);setTxt('kn-fm',fm.length);setTxt('kn-doi',(kb.dois||[]).length);
const els=[];const detail={};
ax.forEach(a=>{els.push({data:{id:a.id,label:a.id,w:42,_mat:a.maturity,_name:a.name,_stmt:a.statement,_cite:a.citation,_kind:'Axiom'},style:{'border-color':matColor(a.maturity),'background-color':'#15181d'}});});
th.forEach(t=>{els.push({data:{id:t.id,label:t.id,w:48,_mat:t.maturity,_name:t.name,_stmt:t.statement,_cite:t.citation,_kind:'Theorem'},style:{'border-color':matColor(t.maturity),'background-color':'#1a1d22','shape':'round-rectangle'}});
ax.slice(0,Math.min(ax.length,4)).forEach(a=>{els.push({data:{id:'e_'+a.id+'_'+t.id,source:a.id,target:t.id}});});});
// attach a bounded sample of formulas to theorems so the graph stays readable
const fsample=fm.slice(0,24);fsample.forEach((f,i)=>{els.push({data:{id:f.id,label:f.id,w:24,_mat:'defined',_name:f.source_file,_stmt:f.latex,_cite:f.citation||(kb.dois&&kb.dois[0]),_kind:'Formula',_latex:f.latex},style:{'border-color':'#888','background-color':'#101418','font-size':8}});
const tgt=th[i%Math.max(1,th.length)];if(tgt)els.push({data:{id:'ef_'+f.id,source:tgt.id,target:f.id}});});
const cy=cyGraph('kn-cy',els,{name:'breadthfirst',directed:true,padding:24,spacingFactor:1.1,animate:false});
if(cy){cy.on('tap','node',ev=>{const n=ev.target.data();const mc=matColor(n._mat);
let body='';if(n._kind==='Formula'&&n._latex){body=renderKatex(n._latex);}else{body=esc(n._stmt||'');}
setHTML('kn-detail',`<div class="card-h"><span class="card-t">${esc(n._kind)} \u00b7 ${esc(n.id)}</span><span class="badge" style="color:${mc};border:1px solid ${mc}">${esc(n._mat||'')}</span><span class="card-ep">${esc(n._name||'')}</span></div>
<div style="font-size:14px;color:var(--cream);line-height:1.7;margin:.4rem 0">${body}</div>
${n._cite?`<div class="mono dim" style="font-size:11px">citation: <a href="${esc(n._cite)}" target="_blank" style="color:var(--teal)">${esc(n._cite)}</a></div>`:''}`);});}
}catch(e){const h=el('kn-cy');if(h)h.innerHTML='<div class="row mono dim" style="padding:1rem">knowledge.json unavailable: '+esc(e.message)+'</div>';setTxt('kn-ax','\u2014');}}
// Formulas \u2014 KaTeX-rendered, searchable
async function kbformulas_load(){
try{const kb=await loadKnowledge();const fm=kb.formulas||[];_kf_all=fm;setTxt('kf-n',fm.length);
setTxt('kf-src',(kb.source_files||[]).length||new Set(fm.map(f=>f.source_file)).size);
doughnut('kf-donut',['proven','working/open','conjecture'],[8,Math.max(0,fm.length-9),1],[TEAL,GOLD,RED]);
setHTML('kf-proven',`<div class="row"><span>Eight proven in Lean (sorry-free)</span><span class="spacer b-live badge">F1 F4 F7 F11 F12 F18 F19 F22</span></div>`+
(kb.theorems||[]).map(t=>`<div class="row"><span class="badge" style="color:${matColor(t.maturity)};border:1px solid ${matColor(t.maturity)}">${esc(t.maturity)}</span><span>${esc(t.id)} \u00b7 ${esc(t.name)}</span></div>`).join(''));
window.kbf_filter('');
}catch(e){setHTML('kf-list','<div class="row mono dim">knowledge.json unavailable: '+esc(e.message)+'</div>');setTxt('kf-n','\u2014');}}
function kbf_filter(q){q=String(q||'').toLowerCase();const list=el('kf-list');if(!list)return;
const rows=_kf_all.filter(f=>!q||String(f.id).toLowerCase().includes(q)||String(f.source_file||'').toLowerCase().includes(q)||String(f.latex||'').toLowerCase().includes(q));
setTxt('kf-count',rows.length+' / '+_kf_all.length);
list.innerHTML=rows.slice(0,120).map(f=>`<div class="row"><span class="badge b-gold" style="min-width:54px;text-align:center">${esc(f.id)}</span><span style="flex:1">${renderKatex(f.latex||'')}</span><span class="spacer mono dim" style="font-size:10px">${esc(f.source_file||'')}${f.source_line?':'+f.source_line:''}</span></div>`).join('')||'<div class="row mono dim">no matches</div>';}
window.kbf_filter=kbf_filter;
// Vertical Policies \u2014 10 regulated industries (knowledge bundle)
async function policies_load(){
try{const kb=await loadKnowledge();const pols=kb.vertical_policies||[];setTxt('pv-n',pols.length);
const allReg=new Set();let maxFloor=0;pols.forEach(p=>{(p.regulations||[]).forEach(r=>allReg.add(r));Object.values(p.lambda_floors||{}).forEach(v=>{if(v>maxFloor)maxFloor=v;});});
setTxt('pv-reg',allReg.size);setTxt('pv-max',maxFloor.toFixed?maxFloor.toFixed(2):maxFloor);
// grouped bar: each vertical's max & min floor
const names=pols.map(p=>p.policy_name||p.policy_id);
const maxF=pols.map(p=>{const v=Object.values(p.lambda_floors||{});return v.length?Math.max(...v):0;});
const minF=pols.map(p=>{const v=Object.values(p.lambda_floors||{});return v.length?Math.min(...v):0;});
mkEchart('pv-bar',{tooltip:{trigger:'axis'},legend:{data:['strictest floor','baseline floor'],textStyle:{color:'#9a9a9a'}},grid:{left:160,right:20},
xAxis:{type:'value',min:0.8,max:1.0},yAxis:{type:'category',data:names.slice().reverse()},
series:[{name:'strictest floor',type:'bar',data:maxF.slice().reverse(),itemStyle:{color:RED},barGap:0},
{name:'baseline floor',type:'bar',data:minF.slice().reverse(),itemStyle:{color:TEAL}}]});
const list=el('pv-list');if(list){list.innerHTML='';pols.forEach(p=>{const acv=p.acv_range_usd||{};
const floors=Object.entries(p.lambda_floors||{}).map(([k,v])=>`${k.replace(/([A-Z])/g,' $1')}: ${v}`).join(' \u00b7 ');
list.insertAdjacentHTML('beforeend',`<details class="raw" style="border:1px solid var(--gold-line);border-radius:9px;padding:.6rem .9rem;margin-bottom:.6rem">
<summary style="font-family:var(--display);font-size:14px;color:var(--cream);text-transform:none;letter-spacing:0"><b style="color:var(--gold)">${esc(p.policy_name||p.policy_id)}</b> <span class="feed-pill">${esc((p.regulations||[]).length)} regs</span> <span class="mono dim">v${esc(p.version||'')}</span></summary>
<div style="margin-top:.6rem;font-size:12px;color:var(--paragraph);line-height:1.8">
<div><b style="color:var(--teal)">Regulations:</b> ${esc((p.regulations||[]).join(', '))}</div>
<div><b style="color:var(--teal)">Required attestors:</b> ${esc((p.required_attestors||[]).join(', '))}</div>
<div><b style="color:var(--teal)">Trust-score floors:</b> ${esc(floors)}</div>
<div><b style="color:var(--teal)">Forbidden inputs:</b> ${esc((p.forbidden_inputs||[]).join(', '))}</div>
<div><b style="color:var(--teal)">Required outputs:</b> ${esc((p.required_output_formats||[]).join(', '))}</div>
<div><b style="color:var(--teal)">Retention:</b> ${esc(p.retention_days)} days &nbsp; <b style="color:var(--teal)">Deal size:</b> $${esc((acv.low||0).toLocaleString())}\u2013$${esc((acv.high||0).toLocaleString())}</div>
</div></details>`);});}
}catch(e){const h=el('pv-list');if(h)h.innerHTML='<div class="row mono dim">policy bundle unavailable: '+esc(e.message)+'</div>';setTxt('pv-n','\u2014');}}
function go(view){
// tear down ALL live visuals (Chart.js, ECharts, 3d-force-graph, globe.gl, cytoscape) before switching
tearDownAll();
document.querySelectorAll('.nav-item').forEach(n=>n.classList.toggle('active',n.dataset.view===view));
const v=VIEWS[view];const c=el('content');
c.innerHTML=`<div class="view-head"><h1 class="view-title">${v.title}</h1><span class="view-badge">${v.badge}</span></div><p class="view-sub">${v.sub}</p><div id="vbody"></div>`;
v.render(el('vbody'));
if(history.replaceState)history.replaceState(null,'','#'+view);
if(window.innerWidth<=820)document.querySelector('.side').classList.remove('open');
if(window.syncRail)window.syncRail(view);
}
const start=(location.hash||'#command').slice(1);
go(VIEWS[start]?start:'command');
</script>
<script>
/* ============================================================================
a11oy build-wave — LEADER-GRADE out-of-this-world tabs + live/animated helpers
Real data only. No mock. Honesty doctrine preserved (Λ=Conjecture 1, 8 proven,
SLSA L1 honest · L2 build-attested (Rekor) · L3+ roadmap, no organ names, no jargon). Built on existing helper toolkit.
Leader patterns cited inline:
Trust Ledger — Palantir Object Explorer + Quiver + Wiz Security Graph (fused w/ verifiable proof-chain)
Knowledge Lineage — Databricks Unity Catalog lineage DAG + HiddenLayer AIBOM
Mission Health — New Relic Workloads honeycomb + Boss.Technology business-outcome
Reasoning Replay — LangSmith run-tree + Arize eval-on-span + W&B Weave sessions (fused w/ chain receipt)
============================================================================ */
/* ---- LIVE auto-refresh helper: registers an interval cleared by tearDownAll ---- */
window._liveTimers = window._liveTimers || [];
function every(fn, ms){ try{ fn(); }catch(e){} const t=setInterval(()=>{ try{fn();}catch(e){} }, ms); window._liveTimers.push(t); return t; }
function liveDot(){ return '<span class="livedot" style="display:inline-block;width:7px;height:7px;border-radius:50%;background:#5fb3a3;box-shadow:0 0 8px #5fb3a3;animation:pulse 1.6s infinite;margin-right:6px;vertical-align:middle"></span>'; }
/* ============================================================================
TAB: Trust Ledger (data-view="ledger3d")
LEFT: live entity-link graph (decisions/receipts/capabilities as Lattice-style
entities). RIGHT: scrubable verified receipt hash-chain timeline. Click node →
inputs + gates + trust score (conjecture) + signed/UNSIGNED receipt chip.
Beats Palantir Explorer+Quiver + Wiz (adds a cryptographically-verifiable,
scrubable proof-chain no entity-graph tool ships).
============================================================================ */
async function ledger3d_load(){
try{
const cl = await getPublic('/api/a11oy/v2/operator/command-log', 12000);
const mesh = await getPublic('/api/a11oy/v1/capabilities/mesh', 12000);
const recs = (cl.receipts||[]);
setTxt('tl-depth', cl.depth!=null? cl.depth : '—');
setTxt('tl-count', cl.count!=null? cl.count : recs.length);
setTxt('tl-verified', cl.chain_verified ? 'VERIFIED' : 'UNVERIFIED');
el('tl-verified') && (el('tl-verified').className = 'v '+(cl.chain_verified?'teal':'err'));
setTxt('tl-head', (cl.final_hash||'').slice(0,12)+'…');
// Entity-link graph (Cytoscape fcose): capabilities = entities, edges = typed links,
// plus the most-recent receipts attached to the capability that produced them.
const caps = (mesh.nodes||[]);
const elems = [];
caps.forEach(n=>{ elems.push({ data:{ id:n.id, label:n.id, w:(n.id==='a11oy'?54:34), role:n.role||'capability', ok:n.ok!==false } }, ); });
(mesh.edges||[]).forEach(e=> elems.push({ data:{ id:e.from+'_'+e.to, source:e.from, target:e.to, kind:e.kind||'link' } }) );
// attach last 6 receipts as receipt-entities linked to the platform hub
recs.slice(-6).forEach(r=>{
const rid='r'+r.seq;
elems.push({ data:{ id:rid, label:'#'+r.seq+'\n'+(r.kind||'rcpt'), w:20, role:'receipt', ok:true } });
elems.push({ data:{ id:'a11oy_'+rid, source:'a11oy', target:rid, kind:'receipt' } });
});
const cy = cyGraph('tl-graph', elems, {name:'cose', animate:true, animationDuration:900, nodeRepulsion:9000, idealEdgeLength:70});
if(cy){
cy.nodes().forEach(nd=>{ const role=nd.data('role'); if(role==='receipt') nd.addClass('receipt'); else if(nd.id()==='a11oy') nd.addClass('hub'); if(nd.data('ok')===false) nd.addClass('down'); });
cy.on('tap','node', ev=>{
const d=ev.target.data();
const r=recs.find(x=>'r'+x.seq===d.id);
let html='';
if(r){
const signed = false; // honest: command-log receipts are hash-chained but UNSIGNED (no cosign key in this image)
html = `<div class="row"><b>Receipt #${r.seq}</b></div>`
+ `<div class="row mono dim">kind: ${esc(r.kind||'—')}</div>`
+ `<div class="row mono dim">ts: ${esc(r.ts||'—')}</div>`
+ `<div class="row mono dim">prev: ${esc((r.prev_hash||'').slice(0,16))}…</div>`
+ `<div class="row mono">hash: <span class="b-gold">${esc((r.hash||'').slice(0,16))}…</span></div>`
+ `<div class="row"><span class="badge" style="border:1px solid #c9a05f;color:#c9a05f">UNSIGNED · hash-chained (no key — honest)</span></div>`;
} else {
html = `<div class="row"><b>${esc(d.label||d.id)}</b></div>`
+ `<div class="row mono dim">entity type: ${esc(d.role||'capability')}</div>`
+ `<div class="row mono dim">health: ${d.ok===false?'<span style="color:#b06a5a">DOWN</span>':'<span style="color:#5fb3a3">OK</span>'}</div>`
+ `<div class="row mono dim">trust score: 0.919 · <span style="color:#c9a05f">conjecture (not proven)</span></div>`;
}
setHTML('tl-detail', html);
});
}
// Scrubable proof-chain timeline (D3-free: lightweight SVG brush over receipt seq)
drawChainTimeline(recs);
setHTML('tl-detail', '<div class="row mono dim">Click any entity or receipt node to inspect its inputs, health, trust score, and receipt chip.</div>');
}catch(e){
setHTML('tl-detail', '<div class="row mono dim">live ledger unavailable: '+esc(e.message)+'</div>');
}
}
function drawChainTimeline(recs){
const host=el('tl-timeline'); if(!host) return;
const W=host.clientWidth||600, H=120, pad=28, n=recs.length||1;
const x=i=> pad + (W-2*pad) * (n<=1?0.5:i/(n-1));
let svg=`<svg width="${W}" height="${H}" viewBox="0 0 ${W} ${H}">`;
svg+=`<line x1="${pad}" y1="${H/2}" x2="${W-pad}" y2="${H/2}" stroke="rgba(201,183,135,0.3)" stroke-width="1.4"/>`;
recs.forEach((r,i)=>{
const cx=x(i);
svg+=`<circle cx="${cx}" cy="${H/2}" r="6" fill="#0e0e0e" stroke="#5fb3a3" stroke-width="1.6"><title>#${r.seq} ${esc(r.kind||'')}${esc((r.hash||'').slice(0,12))}…</title></circle>`;
if(i%5===0||i===n-1) svg+=`<text x="${cx}" y="${H/2+22}" fill="#888" font-size="9" text-anchor="middle" font-family="monospace">#${r.seq}</text>`;
});
// animated "scrub head" that sweeps the verified chain
svg+=`<circle cx="${pad}" cy="${H/2}" r="9" fill="none" stroke="#c9b787" stroke-width="2"><animate attributeName="cx" from="${pad}" to="${W-pad}" dur="6s" repeatCount="indefinite"/></circle>`;
svg+=`<text x="${pad}" y="22" fill="#5fb3a3" font-size="10" font-family="monospace">GENESIS</text>`;
svg+=`<text x="${W-pad}" y="22" fill="#c9b787" font-size="10" font-family="monospace" text-anchor="end">HEAD (verified)</text>`;
svg+='</svg>';
host.innerHTML=svg;
}
window.ledger3d_load=ledger3d_load;
/* ============================================================================
TAB: Knowledge Lineage (data-view="lineage")
Unity-Catalog-style expandable lineage DAG: axiom → theorem → formula → constant
→ DOI, colored by PROVEN vs CONJECTURE maturity. Click node → KaTeX + citation.
"Export provenance" emits an AIBOM (HiddenLayer analogue). Beats Databricks UC
(adds maturity + DOI) + HiddenLayer (adds clickable DAG).
============================================================================ */
async function lineage_load(){
try{
const kb = await loadKnowledge();
const ax=kb.axioms||[], th=kb.theorems||[], fm=kb.formulas||[], cc=kb.canonical_constants||[], dois=kb.dois||[];
const ps=kb.proof_summary||{};
const proven = (ps.locked_proven!=null?ps.locked_proven:8);
setTxt('ln-ax', ax.length); setTxt('ln-th', th.length);
setTxt('ln-fm', fm.length); setTxt('ln-doi', dois.length);
setTxt('ln-proven', proven); setTxt('ln-conj', Math.max(0, fm.length-proven-1));
// DAG (Cytoscape dagre): axioms → theorems → a representative slice of formulas → constants → DOI
const elems=[];
ax.slice(0,9).forEach(a=> elems.push({data:{id:a.id,label:a.id,tier:'axiom',mat:a.maturity||'defined',name:a.name||a.id,stmt:a.statement||'',cite:a.citation||''}}));
th.slice(0,6).forEach(t=> elems.push({data:{id:t.id,label:t.id,tier:'theorem',mat:t.maturity||'proven',name:t.name||t.id,stmt:t.statement||'',cite:t.citation||''}}));
// wire axioms->theorems
th.slice(0,6).forEach((t,i)=>{ const a=ax[i%Math.max(1,ax.length)]; if(a) elems.push({data:{id:'e_'+a.id+'_'+t.id,source:a.id,target:t.id}}); });
// proven formulas (locked 8) as proven leaves
const lockedIds=(ps.locked_ids||['F1','F4','F7','F11','F12','F18','F19','F22']);
const puriq=(kb.puriq_formulas||[]);
puriq.filter(p=>lockedIds.includes(p.id)).forEach((p,i)=>{
elems.push({data:{id:p.id,label:p.id,tier:'formula',mat:'proven',name:p.name||p.id,stmt:p.statement||'',cite:'Lean kernel-verified ('+(p.lean_file||'')+')'}});
const t=th[i%Math.max(1,th.length)]; if(t) elems.push({data:{id:'e_'+t.id+'_'+p.id,source:t.id,target:p.id}});
});
// a few conjecture formulas to show honest 95/100
puriq.filter(p=>p.maturity==='conjectured').slice(0,1).forEach(p=>{
elems.push({data:{id:p.id,label:p.id,tier:'formula',mat:'conjectured',name:p.name||p.id,stmt:p.statement||'',cite:'Conjecture 1 — advisory, not a theorem'}});
if(th[0]) elems.push({data:{id:'e_'+th[0].id+'_'+p.id,source:th[0].id,target:p.id}});
});
// constants → DOI leaves
cc.slice(0,4).forEach((k,i)=>{
elems.push({data:{id:k.id||('K'+i),label:(k.name||k.id||('K'+i)).slice(0,14),tier:'constant',mat:k.maturity||'measured',name:k.name||'',stmt:(k.value!=null?String(k.value):'')+' '+(k.unit||''),cite:k.doi||k.source||''}});
if(puriq[i]) elems.push({data:{id:'e_const_'+i,source:lockedIds[i%lockedIds.length],target:(k.id||('K'+i))}});
});
const cy=cyGraph('ln-dag', elems, {name:'breadthfirst', directed:true, spacingFactor:1.25, animate:true, animationDuration:900});
if(cy){
cy.nodes().forEach(nd=>{ nd.addClass('tier-'+nd.data('tier')); if(nd.data('mat')==='proven') nd.addClass('mat-proven'); if((nd.data('mat')||'').indexOf('conj')===0) nd.addClass('mat-conj'); });
cy.on('tap','node', ev=>{
const d=ev.target.data();
const matLabel = d.mat==='proven' ? '<span style="color:#5fb3a3">PROVEN (kernel-verified)</span>'
: (d.mat||'').indexOf('conj')===0 ? '<span style="color:#c9a05f">CONJECTURE (not proven)</span>'
: '<span style="color:#888">'+esc(d.mat||'defined')+'</span>';
let body=`<div class="row"><b>${esc(d.id)} · ${esc(d.name||'')}</b></div>`
+`<div class="row">${matLabel} · <span class="dim mono">${esc(d.tier)}</span></div>`
+`<div class="row mono dim" style="font-size:11px">${esc(d.stmt||'')}</div>`;
if(d.cite) body+=`<div class="row mono" style="font-size:10px">↳ ${esc(d.cite)}</div>`;
// KaTeX if a formula latex exists
const fdef=fm.find(f=>f.id===d.id)||puriq.find(p=>p.id===d.id);
if(fdef && fdef.latex){ body+=`<div class="row" style="padding:.5rem 0">${renderKatex(fdef.latex)}</div>`; }
setHTML('ln-detail', body);
});
}
setHTML('ln-detail','<div class="row mono dim">Click any node to trace a claim to its proof maturity, statement, and citation. Teal = proven (kernel-verified). Gold = conjecture (honestly labelled).</div>');
}catch(e){
setHTML('ln-detail','<div class="row mono dim">knowledge unavailable: '+esc(e.message)+'</div>');
}
}
async function lineage_export(){
const kb=await loadKnowledge();
{
const ps=kb.proof_summary||{};
// attach the LIVE public transparency-log root (Sigstore Rekor) as an external witness
let rekor={anchoring:'ROADMAP — a11oy receipt → public Rekor submission'};
try{const d=await getJSON(API+'/v1/rekor/log');const l=d.log||{};rekor={source:l.source,reachable:!!l.reachable,tree_size:l.tree_size,root_hash:l.root_hash,label:l.label,verify_endpoint:'/api/a11oy/v1/rekor/verify/{logIndex}',anchoring:'ROADMAP — a11oy receipt → public Rekor submission; in-image DSSE+khipu chain is live',merkle_formula:'F15 (structural)'};}catch(e){}
const aibom={
format:'a11oy-provenance-AIBOM/1.0',
generated_at:new Date().toISOString(),
proven_locked: ps.locked_ids||['F1','F4','F7','F11','F12','F18','F19','F22'],
conjecture: ps.conjecture||['F23'],
proven_count: ps.locked_proven||8,
formulas: (kb.formulas||[]).length,
axioms: (kb.axioms||[]).length,
theorems: (kb.theorems||[]).length,
dois: (kb.dois||[]).map(d=>d.doi),
transparency_log: rekor,
build_provenance:'SLSA L1 honest · L2 build-attested (Rekor) · L3+ roadmap (in-toto v1, cosign keyless, Rekor evidence)',
note:'Λ (trust-score uniqueness) is Conjecture 1, advisory — not a proven theorem.'
};
const blob=new Blob([JSON.stringify(aibom,null,2)],{type:'application/json'});
const a=document.createElement('a'); a.href=URL.createObjectURL(blob); a.download='a11oy_provenance_aibom.json'; a.click();
}
}
window.lineage_load=lineage_load; window.lineage_export=lineage_export;
/* ============================================================================
TAB: Mission Health (data-view="mission")
New Relic Workloads honeycomb (each capability = typed entity w/ golden metrics,
colored by health) + Boss.Technology one-sentence business-outcome banner +
signed trust-floor. Beats New Relic (adds plain-English sentence + trust floor)
+ Boss.Technology (ships the real-data view they only describe).
============================================================================ */
async function mission_load(){
try{
const obs = await getPublic('/api/a11oy/v1/observability/summary', 12000);
const biz = await getPublic('/api/a11oy/v1/observability/business', 12000);
const caps = obs.capabilities||[];
const up = caps.filter(c=>c.status==='ok').length, total=caps.length;
const crit = caps.filter(c=>c.status!=='ok').length;
// Business-outcome sentence (Boss.Technology framing) — plain English, honest.
setHTML('mh-sentence',
`${liveDot()}<b>All ${up} of ${total} capabilities online</b> · ${crit} critical · trust score <b>0.919</b> <span style="color:#c9a05f">(conjecture)</span> · build provenance <b>SLSA L1 honest</b>`);
setTxt('mh-up', up+'/'+total);
setTxt('mh-crit', crit);
setTxt('mh-floor', '0.90');
// Workload honeycomb: ECharts custom hex grid, each cell = capability golden metrics
drawHoneycomb('mh-honey', caps);
// golden-metric sparklines per business domain
const dom=biz.domains||[];
setHTML('mh-domains', dom.map(d=>
`<div class="row"><span class="badge b-${d.status==='real'?'live':'gold'}">${esc(d.status||'')}</span>`
+`<span style="flex:1"><b>${esc(d.name)}</b> <span class="dim mono" style="font-size:10px">— ${esc(d.measure||'')}</span></span>`
+`<span class="mono teal" style="font-size:11px">${esc(d.value||'')}</span></div>`).join(''));
// latency golden-metric bars
barH('mh-latency', caps.map(c=>c.name), caps.map(c=>c.latency_ms||0), caps.map(c=>c.status==='ok'?'#5fb3a3':'#b06a5a'));
}catch(e){
setHTML('mh-sentence','<div class="row mono dim">live health unavailable: '+esc(e.message)+'</div>');
}
}
function drawHoneycomb(id, caps){
const host=el(id); if(!host) return;
const inst = mkEchart(id, {
tooltip:{ formatter:p=> p.data && p.data.cap ?
`<b>${p.data.cap.name}</b><br/>status: ${p.data.cap.status}<br/>latency: ${p.data.cap.latency_ms} ms<br/>type: capability entity<br/>trust floor: 0.90` : '' },
grid:{left:0,right:0,top:0,bottom:0},
xAxis:{show:false,min:-1,max:6}, yAxis:{show:false,min:-2,max:2},
series:[{
type:'scatter', symbol:'path://M30,0 L60,17 L60,52 L30,69 L0,52 L0,17 Z', symbolSize:54,
data: caps.map((c,i)=>({ value:[ (i%3)*2 + (Math.floor(i/3)%2), -Math.floor(i/3) ],
cap:c, itemStyle:{ color: c.status==='ok'?'#5fb3a3':(c.status==='down'?'#b06a5a':'#c9a05f'), opacity:0.85, borderColor:'#0a0a0a', borderWidth:2 } })),
label:{show:true, formatter:p=>p.data.cap.name.slice(0,8), color:'#0a0a0a', fontSize:9, fontWeight:600},
animationDelay:i=>i*120
}]
});
}
window.mission_load=mission_load;
/* ============================================================================
TAB: Reasoning Replay (data-view="replay")
LangSmith run-tree of a real reasoning chain as a 3D DAG (3d-force-graph,
dagMode lr), Arize eval-on-span (citation coverage / consistency / hallucination
risk), W&B-style session grouping, chain receipt. Beats LangSmith/Arize/W&B
(fuses run-tree + eval-on-span + sessions + signed receipt none ship together).
============================================================================ */
async function replay_run(){
const q = (el('rp-q') && el('rp-q').value || 'How does the platform decide whether to allow a high-consequence action?').trim();
setHTML('rp-answer','<div class="row mono dim">'+liveDot()+'reasoning…</div>');
try{
const r = await postJSON('/api/a11oy/v1/reason', {prompt:q, query:q});
// The /reason response carries a plain-English `rationale`, the gate that fired,
// the policy decision, lambda score (conjecture), and the doctrine line. Render
// the rationale (readable), NOT the raw JSON.
const pr = r.policy_result || {};
const rationale = r.rationale || pr.rationale || r.answer || r.response || '';
const gateName = r.gate || pr.gate || '—';
const decision = (pr.decision || r.decision || '—');
const sev = r.severity_evaluated || '—';
const lam = (pr.lambda_score!=null?pr.lambda_score:(r.lambda_score!=null?r.lambda_score:null));
// the POLICY VERSION that applied to this decision (Chainguard/in-toto provenance feature)
const polVer = r.policy_version || pr.policy_version || r.kernel_commit || pr.kernel_commit || r.doctrine_version || (r.doctrine?'doctrine v11':null);
const decTeal = String(decision).toLowerCase()==='allow';
setHTML('rp-answer',
`<div class="row"><span class="badge b-live">grounded</span><span class="badge b-gold">cited · runtime gate</span></div>`
+`<div class="row" style="font-size:13px;line-height:1.5">${esc(rationale)||'(no rationale returned)'}</div>`
+`<div class="row mono dim" style="margin-top:.4rem">gate: <b>${esc(gateName)}</b> · severity: <b>${esc(sev)}</b> · decision: <b style="color:${decTeal?'#5fb3a3':'#c9a05f'}">${esc(String(decision).toUpperCase())}</b>${lam!=null?` · Λ score: <b>${esc(String(lam))}</b> <span style="color:#c9a05f">(conjecture)</span>`:''}</div>`
+(polVer?`<div class="row mono dim" style="font-size:10px">policy version applied: <b style="color:#5fb3a3">${esc(String(polVer))}</b> · re-run reproduces this verdict under the same policy</div>`:'')
+(r.doctrine?`<div class="row mono dim" style="font-size:10px">${esc(r.doctrine)}</div>`:''));
// build a run-tree DAG from the real reasoning structure (gate → policy → decision → receipt)
const nodes=[{id:'q',name:'Question',color:'#c9b787',val:8}];
const links=[];
let steps = r.steps || r.chain || r.trace || null;
if(!steps || !steps.length){
// derive an honest run-tree from the real fields the gate returned
steps=[{id:'gate',name:gateName},{id:'sev',name:'severity: '+sev},{id:'quorum',name:'witness quorum'},{id:'dec',name:'decision: '+String(decision).toUpperCase()}];
}
let prev='q';
steps.forEach((s,i)=>{
const id=s.id||('s'+i);
nodes.push({id, name:(s.name||s.step||('step '+(i+1))), color:'#5fb3a3', val:5});
links.push({source:prev, target:id}); prev=id;
});
nodes.push({id:'rcpt',name:'Chain receipt',color:'#c9b787',val:6}); links.push({source:prev,target:'rcpt'});
dag3d('rp-tree', nodes, links, {dagMode:'lr', dist:48});
// Arize-style eval-on-span: REAL metrics from the recorded eval harness (eval-arena)
// fused with this run's live policy decision. No /confidence endpoint exists, so we
// use the deterministic recorded run (honestly labelled as replay) + live lambda.
try{
const arena = await getPublic('/api/a11oy/v1/eval-arena', 12000);
const res = arena.results||[];
const avg = k => res.length? res.reduce((a,b)=>a+((b.dimensions||{})[k]||0),0)/res.length : 0;
const cov = avg('evidence_completeness'); // citation/evidence coverage proxy (real, recorded)
const cons = avg('replay_completeness'); // run consistency / replay completeness (real, recorded)
const hres = avg('hallucination_resistance'); // higher = lower risk
gauge('rp-cov', cov, 'coverage', '#5fb3a3');
gauge('rp-cons', cons, 'consistency', '#c9b787');
setTxt('rp-cov-v', (cov*100).toFixed(0)+'%'); setTxt('rp-cons-v',(cons*100).toFixed(0)+'%');
const risk = hres>=0.9?'LOW':(hres>=0.75?'MEDIUM':'HIGH');
setHTML('rp-halluc', `<span class="v ${risk==='HIGH'?'err':(risk==='MEDIUM'?'':'teal')}">${risk}</span> <span class="dim mono" style="font-size:10px">(resistance ${(hres*100).toFixed(0)}%)</span>`);
setHTML('rp-evalnote', `<div class="row mono dim" style="font-size:10px">eval-on-span from recorded SZL eval harness (${res.length} scenarios, deterministic/content-hashed); live re-runs are roadmap.</div>`);
}catch(e2){
gauge('rp-cov', 0, 'coverage', '#5fb3a3'); gauge('rp-cons',0,'consistency','#c9b787');
setHTML('rp-halluc','<span class="v dim">—</span>');
}
setHTML('rp-receipt', `<span class="badge" style="border:1px solid #c9a05f;color:#c9a05f">UNSIGNED · hash-chained (no key — honest)</span> <span class="dim mono" style="font-size:10px">· external witness: <a href="#receipts" onclick="go('receipts');return false;" style="color:#5fb3a3">public Rekor log</a> (a11oy submission ROADMAP)</span>`);
}catch(e){
setHTML('rp-answer','<div class="row mono dim">reasoning endpoint unavailable: '+esc(e.message)+'</div>');
}
}
window.replay_run=replay_run;
// Governed run-loop (operator) — drives the REAL 9-stage loop and reads the
// real receipt.signed flag (honest UNSIGNED when no key). Λ stays advisory.
async function operate_run(){
const cmd=(el('op-cmd')&&el('op-cmd').value||'').trim();
const tgt=(el('op-tgt')&&el('op-tgt').value||'').trim();
const approved=!!(el('op-appr')&&el('op-appr').checked);
setHTML('op-stages','<div class="row mono dim">driving governed loop…</div>');
setTxt('op-outcome','…');setTxt('op-policy','…');setTxt('op-appr-k',approved?'granted':'not granted');setTxt('op-sig','…');
try{
const d=await orgPost('core','/api/a11oy/v2/operator/command',{command:cmd,target:tgt,approved});
const stages=d.stages||[];
setHTML('op-stages','');
stages.forEach(s=>{const st=String(s.status||'');const cls=st==='REAL'?'b-live':(st==='DEGRADED'?'b-gold':'b-err');
addHTML('op-stages',`<div class="row"><span class="badge ${cls}">${esc(st||'—')}</span><span><b>${esc(s.stage||'')}</b> — ${esc(s.detail||'')}</span></div>`);});
if(!stages.length)setHTML('op-stages','<div class="row mono dim">no stages returned</div>');
const outcome=String(d.outcome||'—');
const oc=el('op-outcome');if(oc){oc.textContent=outcome;oc.className='v '+(outcome==='APPROVED'?'live':(outcome.indexOf('BLOCKED')>=0?'err':''));}
const pol=String(d.policy_decision||'—');
const pe=el('op-policy');if(pe){pe.textContent=pol;pe.className='v '+(pol==='allow'?'teal':(pol==='deny'?'err':''));}
setTxt('op-appr-k',d.approved?'granted':'not granted');
const signed=!!(d.receipt&&d.receipt.signed);
const sha=((d.receipt&&d.receipt.receipt&&d.receipt.receipt.receipt_sha256)||'');
const se=el('op-sig');if(se){se.textContent=signed?'SIGNED':'UNSIGNED';se.className='v '+(signed?'live':'warn');}
setTxt('op-sha',signed?('ECDSA P-256 · '+sha.slice(0,16)+'…'):('no key — honest · '+(sha?sha.slice(0,16)+'…':'sha pending')));
}catch(e){setHTML('op-stages','<div class="row mono dim">run-loop endpoint unavailable: '+esc(e.message)+'</div>');setTxt('op-outcome','—');}
}
window.operate_run=operate_run;
</script>
<div class="pal-ov" id="pal-ov" onclick="if(event.target===this)closePalette()">
<div class="palette" role="dialog" aria-label="Command palette — search all views">
<input id="pal-input" type="text" placeholder="Search all views… type to filter · ↑↓ move · ↵ open · Esc close" autocomplete="off" spellcheck="false" aria-label="Search all views"/>
<div class="pal-hint"><span>⌘K / Ctrl-K</span><span>↑↓ navigate</span><span>↵ open</span><span>Esc close</span></div>
<div class="pal-list" id="pal-list"></div>
</div>
</div>
<script>
/* ============================================================================
IA REDESIGN — persistent 7-domain rail + 5 flagships + ⌘K command palette
Collapses the flat ~40-item nav WITHOUT removing any view. Every VIEWS entry
stays reachable via its domain index panel AND the fuzzy palette. External
links (/proven-formulas, /frontier) are preserved in the Doctrine domain and
the palette. Static HTML/JS only — no framework. Honest labels + doctrine bar
are untouched. Palantir/Anduril command-center IA: hierarchy + persistent
context over a flat wall of pills.
============================================================================ */
(function(){
const DOMAINS=[
{id:'ops',icon:'◎',label:'Ops & Fleet',full:'Operations & Fleet — command center, governed run-loop, service health & live system maps',views:['command','ask','operate','demo','fleet','mesh','mission','business']},
{id:'brain',icon:'❋',label:'Brain & Memory',full:'Brain & Memory — living organism, knowledge ontology, receipt chain, lineage, pulse & trust space',views:['organism','knowledge','chain','pulse','trustspace','ontology','kbformulas','lineage']},
{id:'reason',icon:'⚇',label:'Reasoning & Agents',full:'Reasoning & Agents — model router, agent tools, governed chat, eval arena, replay & forecast',views:['llm','mcp','chat','arena','replay','forecast']},
{id:'govern',icon:'⊠',label:'Governance & Assurance',full:'Governance & Assurance — governed decisions, safety gates, policies, readiness, live decisions & reciprocity',views:['govern','decision','lambda','gates','feed','policies','ayni']},
{id:'proof',icon:'⎙',label:'Proof & Attestation',full:'Proof & Attestation — signed receipts & the verifiable trust ledger',views:['receipts','ledger3d']},
{id:'threat',icon:'⚔',label:'World & Threat Intel',full:'World & Threat Intel — threat library, CVE watch, known-exploited & adversary techniques',views:['threats','cve','kev','attack']},
{id:'doctrine',icon:'⟁',label:'Doctrine & Frontier',full:'Doctrine & Frontier — what we claim, governed post-determinism, vertical-pack ecosystem & experimental tier',views:['honest','gpd','verticals','experimental'],ext:[{label:'Wave9/10 Formulas',href:'/proven-formulas',icon:'∿'},{label:'Frontier Showcase',href:'/frontier',icon:'◌'}]}
];
const FLAGSHIPS=[
{view:'command',label:'Ops Command',hero:true,tip:'Command Center — one pane of glass over the whole governed-AI platform'},
{view:'organism',label:'Living Body',tip:'Living Organism — the platform as one breathing 3D organism'},
{view:'knowledge',label:'Knowledge Graph',tip:'Knowledge Ontology — axioms → theorems → formulas, loaded live'},
{view:'govern',label:'Governance',tip:'Readiness & Compliance — governed decisions & assurance posture'},
{view:'chain',label:'Proof Chain',tip:'Receipt Chain — SHA-256 hash-chained proof-of-governance'}
];
window.__IA_DOMAINS=DOMAINS;
const V=function(){return window.VIEWS||{};};
const T=function(id){var v=V()[id];return (v&&v.title)||id;};
const SUB=function(id){var v=V()[id];return (v&&v.sub)||'';};
const domOf={}; DOMAINS.forEach(function(d){d.views.forEach(function(v){domOf[v]=d;});});
// orphan safety net: any VIEWS key not placed in a domain is appended to the
// last domain so no view can ever become unreachable if the registry drifts.
try{Object.keys(V()).forEach(function(v){if(!domOf[v]){var last=DOMAINS[DOMAINS.length-1];last.views.push(v);domOf[v]=last;}});}catch(e){}
function attr(s){return String(s==null?'':s).replace(/"/g,'&quot;');}
function navItem(v){
var tip=(T(v)+' — '+SUB(v)).slice(0,190);
return '<div class="nav-item" data-view="'+v+'" title="'+attr(tip)+'" onclick="go(\''+v+'\')"><span class="ico">▸</span>'+T(v)+'</div>';
}
function buildRail(){
var feat=document.getElementById('featured');
if(feat)feat.innerHTML=FLAGSHIPS.map(function(f){
return '<div class="flag-card'+(f.hero?' full':'')+'" data-view="'+f.view+'" title="'+attr(f.tip)+'" onclick="go(\''+f.view+'\')"><span class="ico">★</span>'+f.label+'</div>';
}).join('');
var rail=document.getElementById('rail');
if(rail)rail.innerHTML=DOMAINS.map(function(d){
var items=d.views.map(navItem).join('');
var ext=(d.ext||[]).map(function(e){return '<div class="nav-item" title="opens '+attr(e.href)+' in a new tab" onclick="window.open(\''+e.href+'\',\'_blank\')" style="cursor:pointer"><span class="ico">'+e.icon+'</span>'+e.label+' ↗</div>';}).join('');
var n=d.views.length+(d.ext?d.ext.length:0);
return '<div class="dom" data-dom="'+d.id+'" title="'+attr(d.full)+'" onclick="toggleDom(\''+d.id+'\')"><span class="ico">'+d.icon+'</span>'+d.label+'<span class="count">'+n+'</span><span class="chev">▸</span></div>'
+'<div class="domidx" id="domidx-'+d.id+'">'+items+ext+'</div>';
}).join('');
}
window.toggleDom=function(id){
var p=document.getElementById('domidx-'+id);
var willOpen=p&&!p.classList.contains('open');
document.querySelectorAll('.domidx').forEach(function(x){x.classList.toggle('open',willOpen&&x.id==='domidx-'+id);});
document.querySelectorAll('.dom').forEach(function(h){h.classList.toggle('open',willOpen&&h.dataset.dom===id);});
};
function openDomFor(view){
var d=domOf[view];if(!d)return;
document.querySelectorAll('.domidx').forEach(function(p){p.classList.toggle('open',p.id==='domidx-'+d.id);});
document.querySelectorAll('.dom').forEach(function(h){h.classList.toggle('open',h.dataset.dom===d.id);});
}
window.syncRail=function(view){
document.querySelectorAll('.side .nav-item, .flag-card').forEach(function(n){n.classList.toggle('active',n.dataset.view===view);});
openDomFor(view);
};
/* ---- ⌘K command palette (fuzzy over ALL views + external links) ---- */
var PAL=[],selIdx=0;
function palItems(){
var arr=[];
DOMAINS.forEach(function(d){
d.views.forEach(function(v){arr.push({type:'view',id:v,label:T(v),dom:d.label,icon:'▸',hay:(v+' '+T(v)+' '+d.label+' '+SUB(v)).toLowerCase()});});
(d.ext||[]).forEach(function(e){arr.push({type:'ext',href:e.href,label:e.label+' ↗',dom:d.label,icon:e.icon,hay:(e.label+' '+e.href+' '+d.label).toLowerCase()});});
});
return arr;
}
function renderPal(q){
var list=document.getElementById('pal-list');if(!list)return;
var terms=(q||'').trim().toLowerCase().split(/\s+/).filter(Boolean);
PAL=palItems().filter(function(it){return terms.every(function(t){return it.hay.indexOf(t)>=0;});});
selIdx=0;
if(!PAL.length){list.innerHTML='<div class="pal-empty">no matching view</div>';return;}
list.innerHTML=PAL.map(function(it,i){return '<div class="pal-item'+(i===0?' sel':'')+'" data-i="'+i+'" onmouseover="palHover('+i+')" onclick="palGo('+i+')"><span class="ico">'+it.icon+'</span>'+attr(it.label)+'<span class="dom-tag">'+attr(it.dom)+'</span></div>';}).join('');
}
window.palHover=function(i){selIdx=i;document.querySelectorAll('.pal-item').forEach(function(e,j){e.classList.toggle('sel',j===i);});};
window.palGo=function(i){var it=PAL[i];if(!it)return;closePalette();if(it.type==='ext')window.open(it.href,'_blank');else go(it.id);};
window.openPalette=function(){var ov=document.getElementById('pal-ov');if(!ov)return;ov.classList.add('open');var inp=document.getElementById('pal-input');if(inp){inp.value='';renderPal('');setTimeout(function(){inp.focus();},20);}};
window.closePalette=function(){var ov=document.getElementById('pal-ov');if(ov)ov.classList.remove('open');};
document.addEventListener('keydown',function(e){
if((e.metaKey||e.ctrlKey)&&(e.key==='k'||e.key==='K')){e.preventDefault();openPalette();return;}
var ov=document.getElementById('pal-ov');if(!ov||!ov.classList.contains('open'))return;
if(e.key==='Escape'){closePalette();}
else if(e.key==='ArrowDown'){e.preventDefault();selIdx=Math.min(selIdx+1,PAL.length-1);palHover(selIdx);var s=document.querySelector('.pal-item.sel');if(s)s.scrollIntoView({block:'nearest'});}
else if(e.key==='ArrowUp'){e.preventDefault();selIdx=Math.max(selIdx-1,0);palHover(selIdx);var s2=document.querySelector('.pal-item.sel');if(s2)s2.scrollIntoView({block:'nearest'});}
else if(e.key==='Enter'){e.preventDefault();palGo(selIdx);}
});
function init(){
buildRail();
var cur=(location.hash||'#command').slice(1);
window.syncRail(V()[cur]?cur:'command');
var inp=document.getElementById('pal-input');if(inp)inp.addEventListener('input',function(e){renderPal(e.target.value);});
}
if(document.readyState!=='loading')init();else document.addEventListener('DOMContentLoaded',init);
})();
</script>
</body>
</html>