Spaces:
Running
Running
deploy(hf): sync szl-holdings/a11oy@42ece2159d56c4ac37a4b16c27a5edace60017e5 derived COPY set
1e70710 verified | <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> | |
| <title>A11oy Holographic Operations — a11oy</title> | |
| <!-- 0 runtime CDN. All 3D libs vendored in-image and served same-origin via the | |
| /static/3d/vendor/... importmap below (see VENDOR_MANIFEST.md). System fonts only. --> | |
| <script type="importmap"> | |
| { | |
| "imports": { | |
| "three": "/static/3d/vendor/three/three.module.min.js", | |
| "three/webgpu": "/static/3d/vendor/three/three.webgpu.min.js", | |
| "three/addons/": "/static/3d/vendor/three/addons/" | |
| } | |
| } | |
| </script> | |
| <style> | |
| :root{--bg:#05070d;--panel:#0b121b;--line:#1b2734;--teal:#39d3c4;--proof:#3af4c8;--gold:#e8c074;--cream:#eef3f6;--para:#9fb1bf;} | |
| *{box-sizing:border-box} | |
| html,body{margin:0;height:100%} | |
| /* Flex column so the 3D stage always fills the space left over by the header + | |
| tab strip, no matter how far they wrap. dvh (dynamic viewport height) tracks | |
| the mobile address-bar collapse; svh/100vh are fallbacks for older engines. */ | |
| body{background:var(--bg);color:var(--cream);font:14px/1.5 ui-sans-serif,system-ui,Segoe UI,Roboto,Arial; | |
| overflow:hidden;display:flex;flex-direction:column;height:100vh;height:100svh;height:100dvh} | |
| header{padding:10px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#08101a,#05070d); | |
| display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex:0 0 auto} | |
| h1{font-size:16px;margin:0;letter-spacing:.4px} | |
| .badge{display:inline-block;font:10.5px ui-monospace,monospace;padding:2px 7px;border-radius:6px; | |
| border:1px solid var(--line);color:var(--gold);background:#10171f;white-space:nowrap} | |
| #backend{color:var(--teal)} | |
| /* Nav = a pinned ★ Featured row (flagships incl. Atlas, always visible) above a row of | |
| collapsible CATEGORY dropdowns. Replaces the old flat wall of ~84 pills so the flagship | |
| surfaces stand out and the rest group behind one-tap dropdowns. Accents are proof-teal | |
| (0x3af4c8) — NEVER purple (doctrine v11 palette). */ | |
| .tabs{display:flex;flex-direction:column;gap:0;padding:8px 12px;border-bottom:1px solid var(--line); | |
| background:#070d15;flex:0 0 auto;position:relative;z-index:18} | |
| .tabs[data-browse="true"],.tabs:focus-within{z-index:40} | |
| .navrow{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;overflow-x:auto; | |
| -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px} | |
| .navrow::-webkit-scrollbar{display:none} | |
| .navlabel{font:9.5px ui-monospace,monospace;color:var(--para);letter-spacing:.6px; | |
| text-transform:uppercase;opacity:.7;margin-right:2px;flex:0 0 auto} | |
| .tab{font:11.5px ui-monospace,monospace;padding:6px 12px;border-radius:7px;border:1px solid var(--line); | |
| background:#0a121b;color:var(--para);cursor:pointer;letter-spacing:.3px;transition:.12s;white-space:nowrap} | |
| .tab:hover{border-color:var(--proof);color:var(--cream)} | |
| .tab[data-active="true"]{background:#12202b;color:var(--cream);border-color:var(--proof); | |
| box-shadow:0 0 0 1px var(--proof) inset} | |
| /* Featured (flagship) pills — proof-teal star + accent so Brain/Anatomy stand out. */ | |
| .tab--feat{border-color:#20323e;color:var(--cream);background:#0b1620} | |
| .tab--feat .star{color:var(--proof);margin-right:5px} | |
| .tab--feat[data-active="true"]{border-color:var(--proof); | |
| box-shadow:0 0 0 1px var(--proof) inset,0 0 10px rgba(58,244,200,.25)} | |
| /* Category dropdown buttons — ▸ caret rotates to ▾ when the panel is open. */ | |
| .catbtn{font:11px ui-monospace,monospace;padding:6px 11px;border-radius:7px;border:1px solid var(--line); | |
| background:#0a121b;color:var(--para);cursor:pointer;letter-spacing:.3px;white-space:nowrap; | |
| display:inline-flex;align-items:center;gap:6px;transition:.12s} | |
| .catbtn:hover{border-color:var(--proof);color:var(--cream)} | |
| .catbtn .caret{font-size:9px;transition:transform .15s;color:var(--proof)} | |
| .catbtn[aria-expanded="true"]{color:var(--cream);border-color:var(--proof)} | |
| .catbtn[aria-expanded="true"] .caret{transform:rotate(90deg)} | |
| .catbtn[data-hasactive="true"]{box-shadow:0 0 0 1px var(--proof) inset} | |
| .catbtn .count{font-size:9px;color:var(--para);opacity:.7} | |
| /* Drop panel: the tabs of the currently-open category (only one open at a time). */ | |
| .panel{display:none;gap:6px;flex-wrap:wrap;padding:8px;margin-top:2px;max-height:180px; | |
| overflow-y:auto;border:1px solid var(--line);border-radius:9px;background:#08111a} | |
| .panel[data-open="true"]{display:flex} | |
| .navtools{display:grid;grid-template-columns:minmax(260px,1fr) minmax(210px,auto) auto auto; | |
| gap:7px;align-items:center;min-height:34px} | |
| .surface-search{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px; | |
| background:#08111a;color:var(--cream);padding:7px 10px;font:11.5px ui-monospace,monospace; | |
| outline:none;letter-spacing:.2px} | |
| .surface-search:focus{border-color:var(--proof);box-shadow:0 0 0 1px var(--proof)} | |
| .surface-search::placeholder{color:#70818e} | |
| .navmeta{font:10px ui-monospace,monospace;color:var(--para);white-space:nowrap} | |
| .navmode{border:1px solid var(--line);border-radius:8px;background:#0a121b;color:var(--para); | |
| padding:7px 10px;font:10.5px ui-monospace,monospace;cursor:pointer;white-space:nowrap} | |
| .navmode:hover{border-color:var(--proof);color:var(--cream)} | |
| .active-surface{display:flex;align-items:center;gap:7px;min-width:0;padding:0 8px; | |
| border-left:1px solid var(--line);font:10px ui-monospace,monospace;color:var(--para)} | |
| .active-surface span{font-size:9px;letter-spacing:.8px;color:var(--proof)} | |
| .active-surface strong{font-weight:500;color:var(--cream);overflow:hidden;text-overflow:ellipsis; | |
| white-space:nowrap;max-width:32vw} | |
| .surface-browser{display:none;position:absolute;left:12px;right:12px;top:calc(100% + 1px); | |
| padding:9px;border:1px solid var(--line);border-top-color:#20323e;border-radius:0 0 10px 10px; | |
| background:rgba(7,13,21,.98);box-shadow:0 18px 40px rgba(0,0,0,.56);z-index:20} | |
| .tabs[data-browse="true"] .surface-browser{display:flex;flex-direction:column;gap:7px} | |
| #search-panel{position:absolute;left:12px;right:12px;top:calc(100% + 1px);z-index:22; | |
| margin:0;box-shadow:0 18px 40px rgba(0,0,0,.56)} | |
| #stage-wrap{position:relative;flex:1 1 auto;min-height:0;width:100%} | |
| #stage{position:absolute;inset:0} | |
| #stage canvas{display:block;width:100%;height:100%;touch-action:none} | |
| #fallback{position:absolute;inset:0;display:none;align-items:center;justify-content:center; | |
| text-align:center;color:var(--para);padding:24px;font:13px ui-monospace,monospace} | |
| #surface-caption{padding:4px 14px;border-top:1px solid var(--line);background:#060c14; | |
| color:var(--para);font:10.5px ui-monospace,monospace;letter-spacing:.2px;flex:0 0 auto; | |
| white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:6} | |
| #surface-caption:empty{display:none} | |
| footer{padding:6px 14px;border-top:1px solid var(--line);flex:0 0 auto; | |
| background:#070d15;color:var(--para);font:10.5px ui-monospace,monospace;letter-spacing:.3px;z-index:6; | |
| white-space:normal;overflow:visible;line-height:1.35} | |
| a{color:var(--teal);text-decoration:none} | |
| /* ---- Mobile / touch (<=640px) ---------------------------------------- */ | |
| @media (max-width:640px){ | |
| header{padding:8px 12px;gap:8px} | |
| h1{font-size:14px;flex:1 1 100%} | |
| /* Keep only the essential badges visible; hide the noisier ones on small screens. */ | |
| header .badge{font-size:9.5px;padding:2px 6px} | |
| #three-rev-badge,#cdn-badge{display:none} | |
| .tabs{padding:7px 10px;gap:5px} | |
| .navtools{grid-template-columns:minmax(0,1fr) auto} | |
| .navmeta,.active-surface{display:none} | |
| /* Featured + category rows each scroll horizontally so they never build a tall wall; | |
| the tapped-open panel wraps below, height-capped so it never shoves the stage off. */ | |
| .navrow{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none} | |
| .navrow::-webkit-scrollbar{display:none} | |
| .navlabel{position:sticky;left:0;background:#070d15;z-index:1} | |
| .tab,.catbtn{padding:7px 11px;font-size:11px;flex:0 0 auto} | |
| .surface-browser{left:8px;right:8px;max-height:52vh;overflow:auto} | |
| .panel[data-open="true"]{flex-wrap:wrap;max-height:34vh;overflow-y:auto} | |
| footer{font-size:9px;padding:5px 10px} | |
| /* Give the 3D stage a guaranteed usable share of the screen on phones (100dvh-safe). */ | |
| #stage-wrap{min-height:46vh} | |
| } | |
| @media (max-width:640px) and (orientation:landscape){ | |
| #stage-wrap{min-height:56vh} | |
| } | |
| /* ---- Landing / intro overlay (Dev4, Wave R) --------------------------- */ | |
| /* A coherent honest entry panel that showcases the Brain + the frontier estate | |
| + the public /verify, sitting over the live 3D stage (which boots underneath). | |
| Additive: dismisses to reveal the estate; every stat carries an honest label and | |
| degrades to NO-LIVE-DATA if its same-origin endpoint 404s / is unreachable. */ | |
| #intro{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column; | |
| align-items:center;justify-content:center;gap:16px;padding:26px 20px;overflow-y:auto; | |
| background:radial-gradient(120% 120% at 50% 0%,rgba(11,22,32,.90),rgba(5,7,13,.96)); | |
| -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-align:center} | |
| #intro[hidden]{display:none} | |
| #intro .intro-eyebrow{font:10.5px ui-monospace,monospace;letter-spacing:1.2px; | |
| text-transform:uppercase;color:var(--gold);opacity:.85} | |
| #intro h2{margin:0;font-size:clamp(19px,3.4vw,30px);letter-spacing:.3px;color:var(--cream); | |
| font-weight:600;max-width:min(720px,92vw)} | |
| #intro .intro-sub{margin:0;max-width:min(640px,90vw);color:var(--para); | |
| font:13.5px/1.55 ui-sans-serif,system-ui,Segoe UI,Roboto,Arial} | |
| #intro .cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center; | |
| max-width:min(880px,95vw);margin-top:2px} | |
| #intro .card{flex:1 1 240px;min-width:210px;max-width:280px;text-align:left; | |
| border:1px solid var(--line);border-radius:12px;background:#0a121bcc;padding:14px 15px; | |
| display:flex;flex-direction:column;gap:8px} | |
| #intro .card h3{margin:0;font:12.5px ui-monospace,monospace;letter-spacing:.4px;color:var(--cream)} | |
| #intro .card p{margin:0;font:12px/1.5 ui-sans-serif,system-ui,Segoe UI,Roboto,Arial;color:var(--para)} | |
| #intro .stat{font:22px ui-monospace,monospace;color:var(--proof);line-height:1.1} | |
| #intro .stat small{font-size:11px;color:var(--para);display:block;margin-top:2px;letter-spacing:.2px} | |
| #intro .lbl{align-self:flex-start;font:9.5px ui-monospace,monospace;padding:2px 7px;border-radius:6px; | |
| border:1px solid var(--line);letter-spacing:.4px} | |
| #intro .lbl[data-state="live"]{color:var(--proof);border-color:#20323e} | |
| #intro .lbl[data-state="degraded"]{color:var(--gold);border-color:#3a2f1a} | |
| #intro .card .go{margin-top:auto;font:11px ui-monospace,monospace;padding:7px 10px;border-radius:8px; | |
| border:1px solid var(--line);background:#0b1620;color:var(--cream);cursor:pointer;text-align:center; | |
| transition:.12s;text-decoration:none} | |
| #intro .card .go:hover{border-color:var(--proof);color:var(--cream)} | |
| #intro .enter{margin-top:6px;font:12.5px ui-monospace,monospace;padding:10px 22px;border-radius:9px; | |
| border:1px solid var(--proof);background:#12202b;color:var(--cream);cursor:pointer;letter-spacing:.4px; | |
| box-shadow:0 0 0 1px var(--proof) inset,0 0 12px rgba(58,244,200,.22);transition:.12s} | |
| #intro .enter:hover{box-shadow:0 0 0 1px var(--proof) inset,0 0 18px rgba(58,244,200,.4)} | |
| #intro .intro-foot{font:10px ui-monospace,monospace;color:var(--para);opacity:.8;letter-spacing:.3px; | |
| max-width:min(760px,92vw)} | |
| #intro-reopen{cursor:pointer;background:#10171f} | |
| @media (max-width:640px){ | |
| #intro{gap:12px;padding:20px 14px;justify-content:flex-start} | |
| #intro .cards{gap:9px} | |
| #intro .card{padding:11px 12px;min-width:0;flex:1 1 100%;max-width:420px} | |
| } | |
| /* ---- Universal evidence rail ----------------------------------------- */ | |
| .evidence-rail{position:fixed;right:12px;bottom:48px;z-index:65;width:min(390px,calc(100vw - 24px)); | |
| border:1px solid var(--line);border-radius:11px;background:rgba(7,13,21,.97); | |
| box-shadow:0 14px 40px rgba(0,0,0,.55);font:11px/1.45 ui-monospace,monospace} | |
| .evidence-rail__toggle{width:100%;display:flex;align-items:center;justify-content:space-between; | |
| gap:10px;padding:8px 11px;border:0;border-radius:10px;background:#0b1620;color:var(--cream); | |
| font:11px ui-monospace,monospace;cursor:pointer;text-align:left} | |
| .evidence-rail__toggle:focus-visible{outline:2px solid var(--proof);outline-offset:2px} | |
| .evidence-rail__state{color:var(--gold);white-space:nowrap} | |
| .evidence-rail[data-state="OBSERVED"] .evidence-rail__state{color:var(--proof)} | |
| .evidence-rail__panel{border-top:1px solid var(--line);padding:10px 11px;color:var(--para)} | |
| .evidence-rail__panel[hidden]{display:none} | |
| .evidence-rail__title{display:block;color:var(--cream);margin-bottom:5px} | |
| .evidence-rail__row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;padding:2px 0} | |
| .evidence-rail__row span:first-child{color:#738796;text-transform:uppercase;font-size:9px} | |
| .evidence-rail__row code{overflow-wrap:anywhere;color:var(--teal)} | |
| .evidence-rail__links{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px} | |
| .evidence-rail__links a{border:1px solid var(--line);border-radius:6px;padding:4px 7px} | |
| @media (max-width:640px){.evidence-rail{right:8px;left:8px;bottom:42px;width:auto}.evidence-rail__panel{max-height:38vh;overflow:auto}} | |
| @media (prefers-reduced-motion:reduce){.evidence-rail *{scroll-behavior:auto;transition:none}} | |
| </style> | |
| </head> | |
| <body> | |
| <header> | |
| <h1>A11oy Holographic Operations</h1> | |
| <span class="badge" id="estate-observation-badge" data-state="UNVERIFIED">Evidence status: UNVERIFIED</span> | |
| <span class="badge" id="backend">renderer: …</span> | |
| <button class="badge" id="gpu-toggle" title="Toggle WebGPU compute path (falls back to WebGL2 if the browser/driver can't provide a WebGPU device). WebGPU is not production-safe on all platforms — doctrine." style="cursor:pointer;background:#10171f">⚡ WebGPU: off</button> | |
| <span class="badge" id="three-rev-badge">three r<span id="three-rev">…</span></span> | |
| <span class="badge" id="cdn-badge">0 runtime CDN</span> | |
| <span class="badge">Λ = Conjecture 1</span> | |
| <button class="badge" id="intro-reopen" title="Reopen the landing overview (Brain · frontier estate · public verify)">◇ intro</button> | |
| <a href="/verify" class="badge" title="Public receipt verifier — paste a signed Khipu receipt / DSSE envelope for a PASS/FAIL panel">✓ verify</a> | |
| <a href="/" style="margin-left:auto;font:11px ui-monospace,monospace">← a11oy</a> | |
| </header> | |
| <nav class="tabs" id="tabs" aria-label="Estate surface command center" data-browse="false"> | |
| <div class="navtools"> | |
| <input class="surface-search" id="surface-search" type="search" | |
| placeholder="Find a surface (Ctrl/⌘ K)" autocomplete="off" spellcheck="false" | |
| aria-label="Find an estate surface" aria-controls="search-panel"/> | |
| <div class="active-surface" id="active-surface" aria-live="polite"><span>ACTIVE</span><strong>Loading surface</strong></div> | |
| <span class="navmeta" id="surface-results-count">All surfaces indexed</span> | |
| <button class="navmode" id="nav-mode" type="button" aria-expanded="false" aria-controls="surface-browser">Browse surfaces</button> | |
| </div> | |
| <div class="panel" id="search-panel" role="region" aria-label="Surface search results" data-open="false"></div> | |
| <div class="surface-browser" id="surface-browser" role="region" aria-label="All estate surfaces"> | |
| <div class="navrow" id="featured-row"><span class="navlabel">★ Featured</span></div> | |
| <div class="navrow" id="cat-row"><span class="navlabel">Categories</span></div> | |
| <div id="cat-panels"></div> | |
| </div> | |
| </nav> | |
| <div id="stage-wrap"> | |
| <div id="stage"></div> | |
| <div id="fallback">3D unavailable on this device — the holographic estate needs a WebGL2 or WebGPU canvas.<br> | |
| All underlying data is still available as JSON at the per-surface endpoints.</div> | |
| <!-- Landing overlay (Dev4): coherent honest entry over the live estate. --> | |
| <div id="intro" role="dialog" aria-modal="true" tabindex="-1" aria-label="a11oy holographic estate — landing overview" hidden> | |
| <div class="intro-eyebrow">SZL Holdings · Doctrine v11 · Λ = Conjecture 1</div> | |
| <h2>The governed agentic substrate, rendered as a holographic estate</h2> | |
| <p class="intro-sub">Every value each surface shows traces to a real same-origin a11oy endpoint and | |
| carries its own honesty label (MEASURED / MODELED / SAMPLE / STRUCTURAL-ONLY). Nothing here is | |
| invented. Start with the Brain, walk the frontier estate, or verify a signed receipt yourself.</p> | |
| <div class="cards"> | |
| <div class="card" id="card-brain"> | |
| <span class="lbl" data-state="degraded" id="brain-lbl">NO-LIVE-DATA</span> | |
| <h3>Brain — live knowledge graph</h3> | |
| <div class="stat" id="brain-stat">—<small id="brain-sub">distinct artifacts (harvested)</small></div> | |
| <p id="brain-note">The estate's own harvested graph. Distinct artifacts is the honest headline; | |
| the raw node count is larger (dominated by arXiv co-author nodes).</p> | |
| <button class="go" data-go="brain">Open the Brain →</button> | |
| </div> | |
| <div class="card" id="card-estate"> | |
| <span class="lbl" data-state="degraded" id="estate-lbl">NO-LIVE-DATA</span> | |
| <h3>Frontier estate</h3> | |
| <div class="stat" id="estate-stat">—<small>3D surfaces, each wired to a live backend</small></div> | |
| <p>Attention, reasoning, governance, proof, energy, defense and more — grouped behind the | |
| category dropdowns above. locked-proven formulas = 8 (never inflated).</p> | |
| <button class="go" data-go="frontierindex">Explore the estate →</button> | |
| </div> | |
| <div class="card" id="card-verify"> | |
| <span class="lbl" data-state="live">PUBLIC</span> | |
| <h3>Verify it yourself</h3> | |
| <div class="stat">✓<small>signed Khipu receipt / DSSE envelope</small></div> | |
| <p>Receipts sign on state changes, never on reads. Paste a receipt id or envelope into the | |
| public verifier for an independent PASS / FAIL panel — no login.</p> | |
| <a class="go" href="/verify">Open /verify →</a> | |
| </div> | |
| </div> | |
| <button class="enter" id="intro-enter">Enter the estate →</button> | |
| <div class="intro-foot">Doctrine v11 · locked = 8 {F1,F4,F7,F11,F12,F18,F19,F22} · Λ = Conjecture 1 · | |
| Khipu BFT = Conjecture 2 · 0 runtime CDN (three.js vendored in-image) · trust < 100%</div> | |
| </div> | |
| </div> | |
| <aside id="evidence-rail" class="evidence-rail" data-state="UNVERIFIED" | |
| aria-label="Active surface evidence" aria-live="polite"> | |
| <button id="evidence-rail-toggle" class="evidence-rail__toggle" type="button" | |
| aria-expanded="false" aria-controls="evidence-rail-panel"> | |
| <span>Evidence · active surface</span><span id="evidence-rail-state" class="evidence-rail__state">UNVERIFIED</span> | |
| </button> | |
| <div id="evidence-rail-panel" class="evidence-rail__panel" hidden> | |
| <strong id="evidence-rail-title" class="evidence-rail__title">Loading surface</strong> | |
| <div class="evidence-rail__row"><span>Surface</span><code id="evidence-rail-id">—</code></div> | |
| <div class="evidence-rail__row"><span>Contract</span><code id="evidence-rail-contract">—</code></div> | |
| <div class="evidence-rail__row"><span>Runtime</span><span id="evidence-rail-runtime">NOT_EVALUATED</span></div> | |
| <div class="evidence-rail__row"><span>Readiness</span><span id="evidence-rail-readiness">NOT_EVALUATED</span></div> | |
| <div class="evidence-rail__links"><a href="/api/a11oy/v1/readiness/tab-matrix?view=summary">Readiness JSON</a><a href="/api/build-info">Build identity</a><a href="/verify">Verify receipt</a></div> | |
| </div> | |
| </aside> | |
| <div id="surface-caption" title=""></div> | |
| <footer>Doctrine v11 · locked = 8 @ c7c0ba17 · Λ = Conjecture 1 · Khipu BFT = Conjecture 2 · | |
| shared szl3d toolkit (Dev0) · every value carries its honesty label · trust < 100%</footer> | |
| <script type="module"> | |
| import szl3d from "/static/3d/szl3d/szl3d_boot.js"; | |
| import * as live from "/static/3d/szl3d/szl3d_live.js"; | |
| import * as label from "/static/3d/szl3d/szl3d_label.js"; | |
| import * as THREE from "three"; | |
| // The 9 surface slots the other devs fill. Lazy-loaded per tab. | |
| const SURFACES = [ | |
| { id: "integritycontrol", cat: "governance", short: "Integrity Control Plane", title: "Integrity Control Plane · read-only Waqay Security Loop + Claim Integrity manifests · PROPOSAL_ONLY boundary · effectors=0 · signatures honestly UNSIGNED until a real signer and external verifier exist", mod: "/static/3d/surfaces/integritycontrol.js" }, | |
| { id: "atlas", cat: "map", flag: true, title: "Atlas", mod: "/static/3d/surfaces/atlas.js" }, | |
| { id: "loopforge", cat: "brain", title: "Loop Forge · bounded kernel-gated recursion · separate referee halts invariant breaches · MODELED reward signals", mod: "/static/3d/surfaces/loopforge.js" }, | |
| { id: "frontier", cat: "map", title: "Frontier", mod: "/static/3d/surfaces/frontier.js" }, | |
| { id: "neuromorphic", cat: "more", title: "Neuromorphic", mod: "/static/3d/surfaces/neuromorphic.js" }, | |
| { id: "interpretability", cat: "governance", title: "Interpretability", mod: "/static/3d/surfaces/interpretability.js" }, | |
| { id: "circuits", cat: "governance", title: "Attribution Graph \u00b7 Circuit Tracing", mod: "/static/3d/surfaces/circuits.js" }, | |
| { id: "worldmodel", cat: "attention", title: "World Model", mod: "/static/3d/surfaces/worldmodel.js" }, | |
| { id: "qec", cat: "proof", title: "Topological QEC", mod: "/static/3d/surfaces/qec.js" }, | |
| { id: "episodic", cat: "brain", title: "Episodic Memory", mod: "/static/3d/surfaces/episodic.js" }, | |
| { id: "testtime", cat: "reasoning", title: "Test-Time Compute", mod: "/static/3d/surfaces/testtime.js" }, | |
| { id: "ssm", cat: "attention", title: "State-Space (Mamba-3)", mod: "/static/3d/surfaces/ssm.js" }, | |
| { id: "genie", cat: "attention", title: "Genie World-Model", mod: "/static/3d/surfaces/genie.js" }, | |
| { id: "specdecode", cat: "attention", title: "Speculative Decoding", mod: "/static/3d/surfaces/specdecode.js" }, | |
| { id: "flowmatch", cat: "attention", title: "Flow Matching", mod: "/static/3d/surfaces/flowmatch.js" }, | |
| { id: "dllm", cat: "attention", title: "Diffusion LLM", mod: "/static/3d/surfaces/dllm.js" }, | |
| { id: "moe", cat: "attention", title: "MoE Router", mod: "/static/3d/surfaces/moe.js" }, | |
| { id: "formalmath", cat: "governance", title: "Formal-Math Retrieval", mod: "/static/3d/surfaces/formalmath.js" }, | |
| { id: "ccattest", cat: "proof", title: "Confidential-Compute Attest", mod: "/static/3d/surfaces/ccattest.js" }, | |
| { id: "attestinfer", cat: "proof", title: "Attested Inference", mod: "/static/3d/surfaces/attestinfer.js" }, | |
| { id: "pcai", cat: "proof", title: "Proof-Carrying Attested Inference", mod: "/static/3d/surfaces/pcai.js" }, | |
| { id: "ringattn", cat: "attention", title: "Ring Attention", mod: "/static/3d/surfaces/ringattn.js" }, | |
| { id: "grpo", cat: "rl", title: "GRPO Reward Dynamics", mod: "/static/3d/surfaces/grpo.js" }, | |
| { id: "kvcache", cat: "quant", title: "KV-Cache H2O", mod: "/static/3d/surfaces/kvcache.js" }, | |
| { id: "mla", cat: "attention", title: "Latent Attention (MLA)", mod: "/static/3d/surfaces/mla.js" }, | |
| { id: "blt", cat: "attention", title: "Byte-Latent Patching", mod: "/static/3d/surfaces/blt.js" }, | |
| { id: "nsa", cat: "attention", title: "Native Sparse Attention", mod: "/static/3d/surfaces/nsa.js" }, | |
| { id: "kan", cat: "attention", title: "Kolmogorov-Arnold Network", mod: "/static/3d/surfaces/kan.js" }, | |
| { id: "steering", cat: "governance", title: "Steering Vectors (ActAdd / RepE)", mod: "/static/3d/surfaces/steering.js" }, | |
| { id: "titans", cat: "brain", title: "Titans Neural Long-Term Memory", mod: "/static/3d/surfaces/titans.js" }, | |
| { id: "mor", cat: "reasoning", title: "Mixture-of-Recursions (adaptive depth)", mod: "/static/3d/surfaces/mor.js" }, | |
| { id: "goat", cat: "attention", title: "GOAT Optimal-Transport Attention", mod: "/static/3d/surfaces/goat.js" }, | |
| { id: "kla", cat: "attention", title: "Kaczmarz Linear Attention", mod: "/static/3d/surfaces/kla.js" }, | |
| { id: "hrm", cat: "reasoning", title: "Hierarchical Reasoning Model", mod: "/static/3d/surfaces/hrm.js" }, | |
| { id: "pfield", cat: "anatomy", title: "Pressure-Field Coordination", mod: "/static/3d/surfaces/pfield.js" }, | |
| { id: "qhall", cat: "governance", title: "Quantum-Inspired Hallucination UQ", mod: "/static/3d/surfaces/qhall.js" }, | |
| { id: "aimc", cat: "attention", title: "Analog In-Memory Attention", mod: "/static/3d/surfaces/aimc.js" }, | |
| { id: "ternary", cat: "quant", title: "Ternary 1.58-bit Weights", mod: "/static/3d/surfaces/ternary.js" }, | |
| { id: "sement", cat: "governance", title: "Semantic-Entropy Uncertainty", mod: "/static/3d/surfaces/sement.js" }, | |
| { id: "inplacettt", cat: "reasoning", title: "In-Place Test-Time Training", mod: "/static/3d/surfaces/inplacettt.js" }, | |
| { id: "nested", cat: "brain", title: "Nested Learning (multi-timescale)", mod: "/static/3d/surfaces/nested.js" }, | |
| { id: "matgran", cat: "brain", title: "Matryoshka Representation Granularity", mod: "/static/3d/surfaces/matgran.js" }, | |
| { id: "graphmem", cat: "brain", title: "Multi-Graph Agentic Memory", mod: "/static/3d/surfaces/graphmem.js" }, | |
| { id: "elf", cat: "attention", title: "Continuous-Embedding Flow LM", mod: "/static/3d/surfaces/elf.js" }, | |
| { id: "s3search", cat: "quant", title: "Stratified Denoise Search", mod: "/static/3d/surfaces/s3search.js" }, | |
| { id: "slidesparse", cat: "quant", title: "Structured-Sparse Layout Packing", mod: "/static/3d/surfaces/slidesparse.js" }, | |
| { id: "catq", cat: "quant", title: "Calibration Ternary Quant", mod: "/static/3d/surfaces/catq.js" }, | |
| { id: "rauq", cat: "governance", title: "Attention-Pattern Uncertainty", mod: "/static/3d/surfaces/rauq.js" }, | |
| { id: "agentcoh", cat: "brain", title: "Multi-Agent Memory Coherence", mod: "/static/3d/surfaces/agentcoh.js" }, | |
| { id: "energy", cat: "energy", title: "Energy", mod: "/static/3d/surfaces/energy.js" }, | |
| { id: "fabric", cat: "defense", title: "Fabric", mod: "/static/3d/surfaces/fabric.js" }, | |
| { id: "pnt", cat: "defense", title: "PNT", mod: "/static/3d/surfaces/pnt.js" }, | |
| { id: "counter-uas", cat: "defense", title: "Counter-UAS", mod: "/static/3d/surfaces/counter-uas.js" }, | |
| { id: "governance", cat: "governance", flag: true, title: "Governance", mod: "/static/3d/surfaces/governance.js" }, | |
| { id: "pinn", cat: "defense", title: "PINN", mod: "/static/3d/surfaces/pinn.js" }, | |
| { id: "router", cat: "defense", title: "Router", mod: "/static/3d/surfaces/router.js" }, | |
| { id: "anatomy", cat: "anatomy", title: "Anatomy", mod: "/static/3d/surfaces/anatomy.js" }, | |
| { id: "anatomy_body", cat: "anatomy", flag: true, title: "Anatomy · Living Body", mod: "/static/3d/surfaces/anatomy_body.js" }, | |
| { id: "estate", cat: "map", title: "Estate", mod: "/static/3d/surfaces/estate.js" }, | |
| { id: "muon", cat: "attention", title: "Muon Orthogonalized-Momentum Optimizer", mod: "/static/3d/surfaces/muon.js" }, | |
| { id: "specexec", cat: "attention", title: "Tree Speculative Execution", mod: "/static/3d/surfaces/specexec.js" }, | |
| { id: "nvfp4", cat: "quant", title: "NVFP4 4-bit Training Format", mod: "/static/3d/surfaces/nvfp4.js" }, | |
| { id: "keyless", cat: "attention", title: "Keyless Attention (Value-Only Cache)", mod: "/static/3d/surfaces/keyless.js" }, | |
| { id: "gitthoughts", cat: "reasoning", title: "GitOfThoughts (Version-Controlled Reasoning)", mod: "/static/3d/surfaces/gitthoughts.js" }, | |
| { id: "herotq", cat: "quant", title: "HeRo-Q Hessian-Conditioned Quantization", mod: "/static/3d/surfaces/herotq.js" }, | |
| { id: "dla", cat: "attention", title: "Dynamic Linear Attention", mod: "/static/3d/surfaces/dla.js" }, | |
| { id: "ctxready", cat: "reasoning", title: "Context-Ready Transformer", mod: "/static/3d/surfaces/ctxready.js" }, | |
| { id: "opera", cat: "reasoning", title: "OPERA Perplexity-Reward Alignment", mod: "/static/3d/surfaces/opera.js" }, | |
| { id: "brain", cat: "brain", flag: true, title: "Brain — live knowledge graph", mod: "/static/3d/surfaces/brain.js" }, | |
| { id: "zkinfer", cat: "proof", title: "zkML Proof-of-Inference (Cryptographic Receipts)", mod: "/static/3d/surfaces/zkinfer.js" }, | |
| { id: "flower", cat: "brain", title: "Flower Brain", mod: "/static/3d/surfaces/flower.js" }, | |
| { id: "agentmem", cat: "brain", title: "AgentMem · Λ-Governed Agent Memory (synthesis)", mod: "/static/3d/surfaces/agentmem.js" }, | |
| { id: "edgefusion", cat: "energy", title: "EdgeFusion · Λ-Gated Energy-Proportional Sensor Fusion (synthesis)", mod: "/static/3d/surfaces/edgefusion.js" }, | |
| { id: "evalarena", cat: "governance", flag: true, title: "Eval Arena · Governed Eval / Red-Team", mod: "/static/3d/surfaces/evalarena.js" }, | |
| { id: "vqc", cat: "energy", title: "Governed VQC · Parameter-Shift Hybrid QML (MODELED)", mod: "/static/3d/surfaces/vqc.js" }, | |
| { id: "harness", cat: "governance", title: "Governed Model Harness · Behavior Transfer", mod: "/static/3d/surfaces/harness.js" }, | |
| { id: "aigov", cat: "governance", title: "AI Governance Conformance · Λ-Advisory Readiness (crosswalk)", mod: "/static/3d/surfaces/aigov.js" }, | |
| { id: "fmverif", cat: "proof", title: "Proof-Carrying Inference (Machine-Checkable Certificates)", mod: "/static/3d/surfaces/fmverif.js" }, | |
| { id: "supplychain", cat: "proof", title: "Model-Artifact Provenance (SLSA / in-toto / Rekor / C2PA)", mod: "/static/3d/surfaces/supplychain.js" }, | |
| { id: "hybridssm", cat: "attention", title: "HybridSSM · Attention vs State-Space vs Hybrid Frontier (synthesis)", mod: "/static/3d/surfaces/hybridssm.js" }, | |
| { id: "governedagent", cat: "reasoning", title: "Governed Agent Loop · plan→act→self-eval→gate→retry", mod: "/static/3d/surfaces/governedagent.js" }, | |
| { id: "governedrag", cat: "reasoning", title: "Governed RAG · Retrieval-with-Receipts", mod: "/static/3d/surfaces/governedrag.js" }, | |
| { id: "ecosystem", cat: "defense", flag: true, title: "Harness · Ecosystem Status", mod: "/static/3d/surfaces/ecosystem.js" }, | |
| { id: "brainquery", cat: "brain", flag: true, title: "Brain Query · ask the graph (retrieval)", mod: "/static/3d/surfaces/brainquery.js" }, | |
| { id: "sovereign", cat: "energy", flag: true, title: "Sovereign Local Model · status · doctrine self-test · Stage A/B · signed receipt", mod: "/static/3d/surfaces/sovereign.js" }, | |
| { id: "brainbody", cat: "anatomy", title: "Anatomy \u00b7 Body lit by the Brain (pulse + energy)", mod: "/static/3d/surfaces/brainbody.js" }, | |
| { id: "braincommand", cat: "brain", title: "Brain Command · pulse · subscribe/budget · signed receipt (Brain powering the ecosystem)", mod: "/static/3d/surfaces/braincommand.js" }, | |
| { id: "mesh", cat: "defense", title: "Sovereign Mesh · Cross-Node Orchestration (status/route/quorum)", mod: "/static/3d/surfaces/mesh.js" }, | |
| { id: "agenttts", cat: "reasoning", title: "Agent Test-Time Compute · Multi-Agent TTC (live)", mod: "/static/3d/surfaces/agenttts.js" }, | |
| { id: "cryptopipeline", cat: "proof", title: "Crypto-Pipeline · End-to-End AI Lifecycle Verifiable Transcript (MODELED)", mod: "/static/3d/surfaces/cryptopipeline.js" }, | |
| { id: "gateddelta", cat: "attention", title: "Gated Delta-Rule Linear Attention · state recall (MODELED)", mod: "/static/3d/surfaces/gateddelta.js" }, | |
| { id: "agentops", cat: "reasoning", title: "Agent Ops · bounded operate loop (ground→act→self-eval→gate, Ouroboros-bounded, writer≠judge)", mod: "/static/3d/surfaces/agentops.js" }, | |
| { id: "lgmi", cat: "governance", title: "LGMI · Λ-Governed Mechanistic Interpretability (synthesis)", mod: "/static/3d/surfaces/lgmi.js" }, | |
| { id: "gnqs", cat: "quant", title: "GNQS · Governed-Norm Quantization Stability (synthesis)", mod: "/static/3d/surfaces/gnqs.js" }, | |
| { id: "numericsdataset", cat: "quant", title: "Numerics Dataset · 1,328 frozen matrix cases + append-only engine evidence · preregistered inputs are never shown as measured results · MATCH/CONFLICT/UNAVAILABLE · proof uplift=0", mod: "/static/3d/surfaces/numericsdataset.js" }, | |
| { id: "casta", cat: "defense", title: "CASTA · Clean-room Anomaly × Streaming Test-time Adaptation (synthesis)", mod: "/static/3d/surfaces/casta.js" }, | |
| { id: "frontierindex", cat: "brain", title: "Frontier Index · honest ecosystem catalog · per-surface backend label + citations + native/fallback (self-audited)", mod: "/static/3d/surfaces/frontierindex.js" }, | |
| { id: "sparsemoe", cat: "quant", title: "Extreme-Sparsity MoE Analyzer · activation-ratio ↔ inference-cost tradeoff (STRUCTURAL-ONLY)", mod: "/static/3d/surfaces/sparsemoe.js" }, | |
| { id: "pddisagg", cat: "defense", title: "Prefill/Decode Disaggregation Map · colocated vs disaggregated latency across the mesh (STRUCTURAL-ONLY/ROADMAP)", mod: "/static/3d/surfaces/pddisagg.js" }, | |
| { id: "execverify", cat: "reasoning", title: "Execution-Verified Synthesis Loop · eval → verified trajectory → corpus candidate → receipt (STRUCTURAL-ONLY)", mod: "/static/3d/surfaces/execverify.js" }, | |
| { id: "opsdash", cat: "governance", flag: true, title: "Ops Dashboard · live estate health · GREEN/DEGRADED/UNAVAILABLE rollup + per-surface honest labels + /verify", mod: "/static/3d/surfaces/opsdash.js" }, | |
| { id: "flowbrain", cat: "brain", flag: true, title: "FlowBrain · continuous belief-flow lens · tiers as thresholds crossed on x_t∈[0,1] + 1D-time⊗1D-node axis-factorization (STRUCTURAL-ONLY; borrows B[FM]² continuous-flow principle, NO EEG)", mod: "/static/3d/surfaces/flowbrain.js" }, | |
| { id: "blocksparse", cat: "attention", title: "Learned Blockwise Top-k KV Sparse Attention · selection (MODELED)", mod: "/static/3d/surfaces/blocksparse.js" }, | |
| { id: "confattest", cat: "governance", title: "Confidential-Compute Attestation + Action Gate · SIMULATED enclave quote → receipt · govern ACTIONS not reasoning (MODELED)", mod: "/static/3d/surfaces/confattest.js" }, | |
| { id: "retrievalattn", cat: "attention", title: "Retrieval-Modulated Long-Context Attention · needle recall (MODELED)", mod: "/static/3d/surfaces/retrievalattn.js" }, | |
| { id: "whatsnew", cat: "brain", title: "What's New · honest auto-derived estate changelog · recently-added surfaces w/ verbatim labels + citations from real git history (drift-proof)", mod: "/static/3d/surfaces/whatsnew.js" }, | |
| { id: "honestywall", cat: "governance", title: "Honesty Wall · live integrity aggregation · reads each surface's OWN honest label VERBATIM + estate honesty invariants → INTACT/DEGRADED/VIOLATED verdict, unsigned SHA-256 receipt-on-write (drift-proof)", mod: "/static/3d/surfaces/honestywall.js" }, | |
| { id: "agentos", cat: "governance", flag: true, title: "Agent OS Map · live self-honest operator's-eye map of the agent OS · nodes (daily loop←agentops, trust ledger←anatomy+receipts+honestywall, standing goals←doctrine+locked-8, optional loops←governedagent/governedrag/loopforge/mesh) with LIVE per-node verdict from the honestywall aggregate → OPERATING/DEGRADED/HALTED-HONEST, never OPERATING if anything VIOLATED, unsigned SHA-256 receipt-on-write (drift-proof)", mod: "/static/3d/surfaces/agentos.js" }, | |
| { id: "brainground", cat: "brain", title: "Brainground · grounding-confidence + honest abstention over brain retrieval · scores the brain's REAL grounding_subgraph (seed coverage · subgraph cohesion · salience mass · community consistency) → GROUNDED/WEAK-GROUNDING/INSUFFICIENT-GROUNDING, brain abstains when grounding is weak, MODELED (never MEASURED), unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainground.js" }, | |
| { id: "brainmemory", cat: "brain", title: "Brain Memory Freshness · honest episodic decay proxy over the knowledge graph · deterministic per-node freshness (recency + structure when a real timestamp exists, else STRUCTURAL-ONLY connectivity+salience proxy, never a fabricated timestamp) -> FRESH/AGING/STALE, STALE flagged for re-harvest, unsigned SHA-256 receipt-on-write (drift-proof)", mod: "/static/3d/surfaces/brainmemory.js" }, | |
| { id: "brainprovenance", cat: "brain", title: "Brain Provenance · per-answer source-lineage chain · which knowledge-graph nodes supported the answer, each node's OWN label VERBATIM + contribution_weight + coverage (HARVESTED/MODELED/UNAVAILABLE) → TRACEABLE/PARTIAL-PROVENANCE/UNTRACEABLE, never TRACEABLE while any node UNAVAILABLE, unsigned SHA-256 receipt-on-write (source-lineage of an answer, NOT build/model attestation)", mod: "/static/3d/surfaces/brainprovenance.js" }, | |
| { id: "braincontradict", cat: "brain", flag: true, title: "Brain Contradiction Detector · surfaces potential contradictions between grounded knowledge-graph claims HONESTLY via transparent deterministic heuristics (negation polarity / antonym opposition / numeric conflict) → NO-CONFLICT/POSSIBLE-CONFLICT/CONFLICT-FLAGGED · PRESENTS conflicts, NEVER resolves them (adjudication=human-required), unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/braincontradict.js" }, | |
| { id: "brainuncertainty", cat: "brain", title: "Brain Uncertainty · calibrated honest uncertainty on a brain retrieval · reads the same honest ranked retrieval and derives score dispersion + retrieval entropy + rank stability → one uncertainty in [0,1] with a CONFIDENT/UNCERTAIN/HIGHLY-UNCERTAIN verdict (recommends abstain), never CONFIDENT when dispersion/entropy high, MODELED calibration honesty not a probability, unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainuncertainty.js" }, | |
| { id: "brainhealth", cat: "brain", title: "Brain Health · live \"can the brain be trusted for this query right now?\" rollup · reads each brain-honesty surface's OWN label VERBATIM (grounding, freshness, provenance, contradiction, uncertainty), degrades absent siblings to UNAVAILABLE → TRUSTWORTHY/DEGRADED/UNTRUSTWORTHY/INSUFFICIENT-SIGNAL, never TRUSTWORTHY if any available component abstains, unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/brainhealth.js" }, | |
| { id: "brainreranker", cat: "brain", flag: true, title: "Anatomy v6 · Brain evidence inventory, reranker readiness, and bounded Ouroboros local-feed receipts · every raw node receives an admission/quarantine decision · zero proposal rows while canonical manifests are absent", mod: "/static/3d/surfaces/brainreranker.js" }, | |
| { id: "brainwatch", cat: "brain", title: "Brain Watch · knowledge-graph honesty-posture drift monitor · MEASURED label-distribution/orphan/community/salience snapshot vs a caller-supplied PRIOR → STABLE/DRIFTING/DEGRADED/BASELINE-ONLY (no fabricated trend without a real prior), unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainwatch.js" }, | |
| { id: "brainconsensus", cat: "brain", title: "Brain Consensus · honest corroboration of a brain grounding · measures how MANY distinct nodes support a query and how many distinct communities they span (cross-community agreement is stronger than one clique) → CORROBORATED/WEAK-CORROBORATION/SINGLE-SOURCE, single-source-risk flag when support collapses to one node/community, never CORROBORATED while that flag is set, MODELED corroboration honesty not a truth guarantee, unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainconsensus.js" }, | |
| { id: "brainqueryaudit", cat: "brain", title: "Brain Query Audit · append-only hash-linked ledger of brain queries + the honest verdict each returned · POST appends {query, verdict, grounding_label} and mints an UNSIGNED SHA-256 receipt chained to the prior entry (tamper-evident); GET recomputes the whole chain → CHAIN-INTACT/CHAIN-BROKEN (never softened), ephemeral in-memory ledger labelled honestly, MODELED, receipt-on-write-not-on-read", mod: "/static/3d/surfaces/brainqueryaudit.js" }, | |
| { id: "brainlineage", cat: "brain", title: "Brain Lineage · node-origin chain · how each knowledge-graph node ENTERED the graph, read VERBATIM from its OWN real origin fields (source/url → structural derivation → none) → TRACED/PARTIAL-LINEAGE/UNKNOWN-ORIGIN, a node with no source is UNKNOWN-ORIGIN never a fabricated source, aggregate never TRACED while any origin UNKNOWN, unsigned SHA-256 receipt-on-write (node-origin lineage, NOT per-answer provenance, NOT build/model attestation)", mod: "/static/3d/surfaces/brainlineage.js" }, | |
| { id: "brainexplain", cat: "brain", title: "Brain Explain · transparent explanation of WHY the brain retrieved what it did · MODELED descriptive trace over the REAL retrieval subgraph (which query terms matched which seed nodes, per-node ppr-vs-salience rationale, communities traversed, each node's OWN label VERBATIM) → EXPLAINABLE/PARTIALLY-EXPLAINABLE/OPAQUE (never invents a rationale; honest OPAQUE beats a fake one), unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainexplain.js" }, | |
| { id: "braingaps", cat: "brain", title: "Brain Gaps · an honest map of what the brain does NOT know · MEASURED thin (sparse) communities + weakly-connected island nodes (degree≤1) + weak-label share over the live graph, and per-query COVERED/THIN/GAP grounding → estate verdict WELL-COVERED/PATCHY/SPARSE (a GAP is never fabricated into coverage), unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/braingaps.js" }, | |
| { id: "brainconstitution", cat: "brain", title: "Brain Constitution · the honest, machine-checkable ruleset the brain is graded against per query · an explicit ordered set of ARTICLES (grounding sufficiency, calibrated confidence, honest corroboration, contradictions surfaced, traceable to source, freshness honesty, coverage gaps admitted, doctrine invariants) each graded COMPLIANT/VIOLATED/UNAVAILABLE against whatever sibling brain-honesty surfaces are importable (an absent surface is UNAVAILABLE, never a fabricated pass) → CONSTITUTIONAL/IN-VIOLATION/INSUFFICIENT-SIGNAL, never CONSTITUTIONAL while any evaluable Article is VIOLATED, unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/brainconstitution.js" }, | |
| { id: "markets", cat: "finance", flag: true, title: "Markets & Finance · live Polymarket prediction book (top markets by 24h volume, pillar height = 24h vol, bead = YES probability) + crypto majors orbiting by market cap · 100% MEASURED same-origin deva finance feeds, no mocked spend/keys, log-scaling is display-only", mod: "/static/3d/surfaces/finance.js" }, | |
| { id: "leaders", cat: "more", flag: true, title: "Frontier Models · Live AI Leaders · MEASURED live OpenRouter model catalog — one pillar per lab (height = max context window, bead = open/free share); widest-context models orbit as satellites (teal = free, amber = paid); log-scaling is display-only, no invented benchmark or ranking", mod: "/static/3d/surfaces/leaders.js" }, | |
| { id: "research", cat: "more", flag: true, title: "Frontier Research · Live arXiv AI · MEASURED live arXiv submission stream (cs.AI/LG/CL/CV/NE) — one pillar per research category (height = fresh-paper count, bead = share of the window); most-recent papers orbit as satellites sized by author count; log-scaling is display-only, no citation count, score, or ranking", mod: "/static/3d/surfaces/research.js" }, | |
| { id: "open", cat: "more", flag: true, title: "Open Frontier · Live Hugging Face · MEASURED live Hugging Face Hub trending stream — one pillar per org/author (height = summed likes, bead = download reach); most-liked open models orbit as satellites coloured by task; log-scaling is display-only, no invented benchmark, score, or ranking beyond the Hub’s own", mod: "/static/3d/surfaces/open.js" }, | |
| { id: "brainagent", cat: "brain", title: "Brain Agent · honesty-gated agentic graph reasoner · treats the brain graph as a state space and walks it one node at a time for a query, choosing EXPAND/FOLLOW/BACKTRACK/STOP by pure graph heuristics (no model call, fully deterministic); every candidate hop passes an honesty gate built from the sibling surfaces (grounding, provenance, contradiction, uncertainty) — an ungrounded/untraceable/contradicted/uncertain hop is refused with a recorded reason, an absent guard is UNAVAILABLE never a fabricated pass; within an explicit step/node budget it returns ANSWER-GROUNDED/PARTIAL or abstains ABSTAINED-BUDGET/ABSTAINED-INSUFFICIENT rather than answer under-grounded, emits an ordered trace + unsigned SHA-256 receipt-on-write, makes no sentience claim (MODELED)", mod: "/static/3d/surfaces/brainagent.js" }, | |
| { id: "estateconstitution", cat: "governance", title: "Estate Constitution · the WHOLE ESTATE's honesty posture graded continuously against explicit estate-level ARTICLES (the per-query brain-constitution pattern lifted to the estate) · Art 1 the honesty wall holds (0 REACHABLE invariant violations), Art 2 no surface declares a fabricated MEASURED label (every declared label in the honest vocabulary, read VERBATIM), Art 3 manifest coverage DISCLOSED honestly (NATIVE-OK vs NO-MANIFEST counted out loud — a DISCLOSURE Article: admitting the gap is compliance, papering it over is the violation, full coverage never claimed while any surface is unverifiable), Art 4 doctrine invariants (Λ = Conjecture 1 never a theorem, locked-8 never inflated, trust ceiling 0.97 never 100%, no consciousness claim) · each graded COMPLIANT/VIOLATED/UNAVAILABLE over the szl_honestywall aggregate read in-process through a GUARDED import (an unreadable aggregate is UNAVAILABLE, never a fabricated pass) → CONSTITUTIONAL/IN-VIOLATION/INSUFFICIENT-SIGNAL, never CONSTITUTIONAL while any evaluable Article is VIOLATED, unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/estateconstitution.js" }, | |
| ]; | |
| const stageEl = document.getElementById("stage"); | |
| const tabsEl = document.getElementById("tabs"); | |
| const fallbackEl = document.getElementById("fallback"); | |
| document.getElementById("three-rev").textContent = THREE.REVISION; | |
| let stage = null; | |
| let current = null; // { def, instance } | |
| let loadToken = 0; | |
| // WebGPU opt-in: seeded from ?webgpu=1, flippable live via the header toggle. WebGPU is not | |
| // production-safe on all browsers/drivers yet (doctrine) so WebGL2 stays the default; the | |
| // toolkit's probe is timeout-guarded and falls back honestly if no device is available. | |
| let wantWebGPU = /[?&]webgpu=1\b/.test(location.search); | |
| async function ensureStage() { | |
| if (stage) return stage; | |
| try { | |
| stage = await szl3d.boot(stageEl, { | |
| bloom: { strength: 0.85, radius: 0.5, threshold: 0.18 }, | |
| cameraPos: [0, 5, 16], | |
| forceWebGL: !wantWebGPU, | |
| }); | |
| document.getElementById("backend").textContent = "renderer: " + stage.backend.toUpperCase(); | |
| _syncGpuToggle(); | |
| stage.start(); | |
| } catch (e) { | |
| fallbackEl.style.display = "flex"; | |
| document.getElementById("backend").textContent = "renderer: UNAVAILABLE"; | |
| console.error("[holographic] stage boot failed:", e); | |
| throw e; | |
| } | |
| return stage; | |
| } | |
| function _syncGpuToggle() { | |
| const btn = document.getElementById("gpu-toggle"); | |
| if (!btn) return; | |
| const on = stage && stage.backend === "webgpu"; | |
| btn.textContent = "\u26a1 WebGPU: " + (on ? "on" : (wantWebGPU ? "requested" : "off")); | |
| btn.style.color = on ? "var(--proof, #3af4c8)" : "var(--gold)"; | |
| btn.style.borderColor = on ? "var(--teal)" : "var(--line)"; | |
| } | |
| // Tear down the current stage + surface and re-boot with the new renderer preference, then | |
| // re-mount the active surface. Used by the header WebGPU toggle so users can engage the | |
| // compute path on capable browsers without editing the URL. | |
| async function rebootStage() { | |
| const active = current ? current.def.id : (SURFACES[0] && SURFACES[0].id); | |
| try { if (current && current.instance && current.instance.unmount) current.instance.unmount(); } catch (_) {} | |
| current = null; | |
| try { if (stage && stage.dispose) stage.dispose(); } catch (_) {} | |
| stage = null; | |
| // The toolkit's dispose() releases the GL context but leaves its <canvas> in the DOM; | |
| // a fresh boot() appends a new one. Remove the orphaned canvas(es) here so a toggle | |
| // never accumulates duplicate canvases / leaked contexts. | |
| try { stageEl.querySelectorAll("canvas").forEach((c) => c.remove()); } catch (_) {} | |
| fallbackEl.style.display = "none"; | |
| await selectSurface(active, "none"); | |
| } | |
| function clearScene() { | |
| if (!stage) return; | |
| // Remove everything the previous surface added except the default lights. | |
| const keep = new Set(); | |
| stage.scene.traverse((o) => { if (o.isLight) keep.add(o); }); | |
| for (let i = stage.scene.children.length - 1; i >= 0; i--) { | |
| const o = stage.scene.children[i]; | |
| if (!keep.has(o)) stage.scene.remove(o); | |
| } | |
| // reset per-frame callbacks by re-booting frame list is overkill; surfaces guard on null. | |
| } | |
| async function selectSurface(id, historyMode = "replace") { | |
| const def = SURFACES.find((s) => s.id === id); | |
| if (!def) return; | |
| if (current && current.def && current.def.id === id) { | |
| _highlight(id); | |
| if (historyMode === "replace" && location.hash !== "#" + id) { | |
| history.replaceState(null, "", "#" + id); | |
| } | |
| return; | |
| } | |
| const token = ++loadToken; | |
| // visual selection state: mark every tab button with this id (a flagship appears both in | |
| // the ★ Featured row and inside its category panel), auto-open the active category, and | |
| // proof-teal-flag the owning dropdown button. | |
| _highlight(id); | |
| // one-line honest caption: the FULL verbatim title of the active surface (hover for wrap-free read) | |
| { const cap = document.getElementById("surface-caption"); | |
| if (cap) { cap.textContent = def.title; cap.title = def.title; } } | |
| await ensureStage(); | |
| // tear down previous | |
| if (current && current.instance && current.instance.unmount) { | |
| try { current.instance.unmount(); } catch (_) {} | |
| } | |
| clearScene(); | |
| let mod; | |
| try { mod = await import(def.mod); } | |
| catch (e) { console.error("[holographic] failed to load surface", id, e); return; } | |
| if (token !== loadToken) return; // a newer tab click superseded us | |
| const surface = mod.default || mod; | |
| const ctx = { stage, container: stageEl, live, label, THREE, szl3d }; | |
| try { | |
| surface.mount(ctx); | |
| current = { def, instance: surface }; | |
| if (historyMode === "push") history.pushState(null, "", "#" + id); | |
| else if (historyMode === "replace") history.replaceState(null, "", "#" + id); | |
| } catch (e) { | |
| console.error("[holographic] surface mount threw", id, e); | |
| } | |
| } | |
| // ---- grouped nav: pinned ★ Featured row + collapsible category dropdowns ---- | |
| // Category display order + labels (spec taxonomy). Only categories with >=1 surface are | |
| // rendered; any surface without a `cat` falls to "more" (safety net — never dropped). | |
| const CATS = [ | |
| ["map", "Map"], | |
| ["brain", "Brain & Memory"], | |
| ["anatomy", "Anatomy & Living System"], | |
| ["reasoning", "Reasoning & Agents"], | |
| ["attention", "Attention & Architecture"], | |
| ["quant", "Quantization & Efficiency"], | |
| ["governance", "Governance & Assurance"], | |
| ["proof", "Proof & Attestation"], | |
| ["energy", "Energy & Sovereign"], | |
| ["defense", "Defense & Fleet"], | |
| ["finance", "Finance & Markets"], | |
| ["rl", "RL & Training"], | |
| ["more", "More"], | |
| ]; | |
| const catOf = (s) => s.cat || "more"; | |
| const featuredRow = document.getElementById("featured-row"); | |
| const catRow = document.getElementById("cat-row"); | |
| const catPanels = document.getElementById("cat-panels"); | |
| const searchInput = document.getElementById("surface-search"); | |
| const searchPanel = document.getElementById("search-panel"); | |
| const searchCount = document.getElementById("surface-results-count"); | |
| const navMode = document.getElementById("nav-mode"); | |
| const activeSurface = document.querySelector("#active-surface strong"); | |
| const estateObservationBadge = document.getElementById("estate-observation-badge"); | |
| const evidenceRail = document.getElementById("evidence-rail"); | |
| const evidenceToggle = document.getElementById("evidence-rail-toggle"); | |
| const evidencePanel = document.getElementById("evidence-rail-panel"); | |
| const evidenceState = document.getElementById("evidence-rail-state"); | |
| const evidenceTitle = document.getElementById("evidence-rail-title"); | |
| const evidenceId = document.getElementById("evidence-rail-id"); | |
| const evidenceContract = document.getElementById("evidence-rail-contract"); | |
| const evidenceRuntime = document.getElementById("evidence-rail-runtime"); | |
| const evidenceReadiness = document.getElementById("evidence-rail-readiness"); | |
| const EVIDENCE_MAX_AGE_MS = 24 * 60 * 60 * 1000; | |
| const EVIDENCE_REFRESH_INTERVAL_MS = 5 * 60 * 1000; | |
| let evidenceSnapshotPromise = null; | |
| let evidenceRefreshTimer = null; | |
| let evidenceRefreshGeneration = 0; | |
| if (evidenceToggle && evidencePanel) { | |
| evidenceToggle.addEventListener("click", () => { | |
| const open = evidenceToggle.getAttribute("aria-expanded") !== "true"; | |
| evidenceToggle.setAttribute("aria-expanded", String(open)); | |
| evidencePanel.hidden = !open; | |
| }); | |
| document.addEventListener("keydown", (event) => { | |
| if (event.key === "Escape" && !evidencePanel.hidden) { | |
| evidenceToggle.setAttribute("aria-expanded", "false"); | |
| evidencePanel.hidden = true; | |
| evidenceToggle.focus(); | |
| } | |
| }); | |
| } | |
| async function _fetchEvidenceSnapshot(forceRefresh = false) { | |
| if (forceRefresh) { | |
| evidenceRefreshGeneration += 1; | |
| evidenceSnapshotPromise = null; | |
| } | |
| if (evidenceSnapshotPromise) return evidenceSnapshotPromise; | |
| const generation = evidenceRefreshGeneration; | |
| evidenceSnapshotPromise = (async () => { | |
| const getJson = async (url) => { | |
| try { | |
| const response = await fetch(url, {method:"GET",headers:{accept:"application/json"},cache:"no-store"}); | |
| return response.ok ? await response.json() : null; | |
| } catch (_) { return null; } | |
| }; | |
| const [readiness, build] = await Promise.all([ | |
| getJson("/api/a11oy/v1/readiness/tab-matrix?view=summary"), | |
| getJson("/api/build-info"), | |
| ]); | |
| return { readiness, build, generation }; | |
| })(); | |
| return evidenceSnapshotPromise; | |
| } | |
| function _hasObservedEvidence(readiness, revision, nowMs = Date.now()) { | |
| if ( | |
| typeof revision !== "string" || | |
| !/^[0-9a-f]{40}$/.test(revision) || | |
| readiness?.honest !== true || | |
| readiness?.view !== "summary" || | |
| readiness?.available !== true || | |
| readiness?.matrix_available !== true || | |
| readiness?.probe_verdict_available !== true || | |
| readiness?.verdict_source_revision !== revision || | |
| typeof readiness?.verdict_base !== "string" || | |
| !/^https:\/\/[^/]+$/.test(readiness.verdict_base) || | |
| readiness?.verdict_base !== readiness?.verdict_expected_base | |
| ) return false; | |
| const checkedAt = readiness?.verdict_checked_at; | |
| if ( | |
| typeof checkedAt !== "string" || | |
| !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(checkedAt) | |
| ) return false; | |
| const checkedMs = Date.parse(checkedAt); | |
| if ( | |
| !Number.isFinite(checkedMs) || | |
| checkedMs > nowMs || | |
| nowMs - checkedMs > EVIDENCE_MAX_AGE_MS | |
| ) return false; | |
| const verdict = readiness?.verdict_summary; | |
| if (!verdict || typeof verdict !== "object") return false; | |
| const counts = [ | |
| "endpoints", "ok", "skippedStateChanging", "lies", "unreachable", "throttled", | |
| ] | |
| .map((field) => verdict[field]); | |
| if (!counts.every((value) => Number.isInteger(value) && value >= 0)) return false; | |
| if (!Number.isFinite(verdict.p95_worst) || verdict.p95_worst < 0) return false; | |
| const [endpoints, ...outcomes] = counts; | |
| const executed = endpoints - verdict.skippedStateChanging; | |
| return ( | |
| endpoints > 0 && | |
| executed > 0 && | |
| verdict.lies === 0 && | |
| outcomes.reduce((total, value) => total + value, 0) === endpoints | |
| ); | |
| } | |
| function _readinessEvidenceText(readiness, observed) { | |
| const matrix = readiness?.matrix_summary || {}; | |
| const verdict = readiness?.verdict_summary || null; | |
| if (!observed || !verdict) { | |
| return `${matrix.tabs ?? SURFACES.length} surfaces · probe UNVERIFIED`; | |
| } | |
| return `${verdict.ok}/${verdict.endpoints} clean · complete verdict`; | |
| } | |
| function _nextEvidenceRefreshDelay(readiness, nowMs = Date.now()) { | |
| const checkedMs = Date.parse(readiness?.verdict_checked_at || ""); | |
| if (!Number.isFinite(checkedMs)) return EVIDENCE_REFRESH_INTERVAL_MS; | |
| const untilExpiry = checkedMs + EVIDENCE_MAX_AGE_MS - nowMs; | |
| if (untilExpiry < 0) return EVIDENCE_REFRESH_INTERVAL_MS; | |
| return Math.max( | |
| 50, | |
| Math.min(EVIDENCE_REFRESH_INTERVAL_MS, untilExpiry + 50), | |
| ); | |
| } | |
| function _scheduleEvidenceRefresh(def, readiness) { | |
| if (evidenceRefreshTimer) clearTimeout(evidenceRefreshTimer); | |
| evidenceRefreshTimer = setTimeout( | |
| () => _updateEvidenceRail(def, true), | |
| _nextEvidenceRefreshDelay(readiness), | |
| ); | |
| } | |
| function _updateEvidenceRail(def, forceRefresh = false) { | |
| if (!evidenceRail || !def) return; | |
| evidenceRail.dataset.state = "UNVERIFIED"; | |
| if (evidenceState) evidenceState.textContent = "UNVERIFIED"; | |
| if (estateObservationBadge) { | |
| estateObservationBadge.dataset.state = "UNVERIFIED"; | |
| estateObservationBadge.textContent = "Evidence status: UNVERIFIED"; | |
| } | |
| if (evidenceTitle) evidenceTitle.textContent = def.title; | |
| if (evidenceId) evidenceId.textContent = def.id; | |
| if (evidenceContract) evidenceContract.textContent = `${catOf(def)} · ${def.mod}`; | |
| if (evidenceRuntime) evidenceRuntime.textContent = "CHECKING"; | |
| if (evidenceReadiness) evidenceReadiness.textContent = "CHECKING"; | |
| _fetchEvidenceSnapshot(forceRefresh).then(({ readiness, build, generation }) => { | |
| if (generation !== evidenceRefreshGeneration) return; | |
| const buildState = build?.build?.state || build?.state || "UNAVAILABLE"; | |
| const revision = build?.build?.revision || build?.revision || null; | |
| if (evidenceRuntime) evidenceRuntime.textContent = revision ? `${buildState} · ${String(revision).slice(0,12)}…` : buildState; | |
| const observed = _hasObservedEvidence(readiness, revision); | |
| if (evidenceReadiness) { | |
| evidenceReadiness.textContent = _readinessEvidenceText(readiness, observed); | |
| } | |
| evidenceRail.dataset.state = observed ? "OBSERVED" : "UNVERIFIED"; | |
| if (evidenceState) evidenceState.textContent = observed ? "OBSERVED" : "UNVERIFIED"; | |
| if (estateObservationBadge) { | |
| estateObservationBadge.dataset.state = observed ? "OBSERVED" : "UNVERIFIED"; | |
| estateObservationBadge.textContent = observed | |
| ? "The estate, observed—not assumed." | |
| : "Evidence status: UNVERIFIED"; | |
| } | |
| _scheduleEvidenceRefresh(def, readiness); | |
| }); | |
| } | |
| function _resumeEvidenceRefresh() { | |
| if (document.hidden || !current?.def) return; | |
| _updateEvidenceRail(current.def, true); | |
| } | |
| document.addEventListener("visibilitychange", _resumeEvidenceRefresh); | |
| window.addEventListener("pageshow", _resumeEvidenceRefresh); | |
| const _panels = {}; // cat -> drop-panel element | |
| const _catBtns = {}; // cat -> dropdown button | |
| let searchLimit = 36; | |
| function _clearSearch() { | |
| searchLimit = 36; | |
| if (searchInput) searchInput.value = ""; | |
| if (searchPanel) { searchPanel.textContent = ""; searchPanel.dataset.open = "false"; } | |
| if (searchCount) searchCount.textContent = SURFACES.length + " surfaces indexed"; | |
| } | |
| // Command-center default: the graph owns the viewport. The complete registry remains one | |
| // click away in an overlay drawer and every surface remains indexed by the search field. | |
| function _setBrowser(open) { | |
| const on = !!open; | |
| tabsEl.dataset.browse = String(on); | |
| if (navMode) { | |
| navMode.setAttribute("aria-expanded", String(on)); | |
| navMode.textContent = on ? "Close browser" : "Browse surfaces"; | |
| } | |
| if (!on) openCategory("", false); | |
| } | |
| // Short pill label: first 1-2 " · "-separated segments of the honest title, capped. | |
| // The FULL honest title is preserved verbatim in the tooltip (b.title) and in the | |
| // footer caption when the surface is selected — nothing is dropped, only de-cluttered. | |
| function _shortLabel(s) { | |
| if (s.short) return s.short; | |
| const parts = String(s.title).split(/\s*(?:·|—)\s*/).filter(Boolean); | |
| let label = parts[0] || String(s.title); | |
| if (parts[1] && (label.length + parts[1].length + 3) <= 36) label += " · " + parts[1]; | |
| if (label.length > 42) label = label.slice(0, 39).replace(/\s+\S*$/, "") + "…"; | |
| return label; | |
| } | |
| function _makeTab(s, feat) { | |
| const b = document.createElement("a"); | |
| b.className = "tab" + (feat ? " tab--feat" : ""); | |
| b.href = "#" + s.id; | |
| b.dataset.id = s.id; b.dataset.cat = catOf(s); | |
| b.title = s.title; // full honest title on hover | |
| b.setAttribute("aria-label", s.title); | |
| if (feat) { | |
| const star = document.createElement("span"); star.className = "star"; star.textContent = "★"; | |
| b.appendChild(star); b.appendChild(document.createTextNode(_shortLabel(s))); | |
| } else { | |
| b.textContent = _shortLabel(s); | |
| } | |
| b.addEventListener("click", (ev) => { | |
| ev.preventDefault(); | |
| selectSurface(s.id, "push"); | |
| _clearSearch(); | |
| _setBrowser(false); | |
| openCategory(catOf(s), false); | |
| // On the mobile horizontal strips, keep the tapped tab in view. | |
| try { b.scrollIntoView({ behavior: "smooth", inline: "center", block: "nearest" }); } catch (_) {} | |
| }); | |
| b.addEventListener("keydown", (ev) => { | |
| if (!["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"].includes(ev.key)) return; | |
| const peers = Array.from(b.parentElement?.querySelectorAll("[data-id]") || []); | |
| if (!peers.length) return; | |
| const here = Math.max(0, peers.indexOf(b)); | |
| let next = here; | |
| if (ev.key === "Home") next = 0; | |
| else if (ev.key === "End") next = peers.length - 1; | |
| else if (ev.key === "ArrowLeft" || ev.key === "ArrowUp") next = (here - 1 + peers.length) % peers.length; | |
| else next = (here + 1) % peers.length; | |
| ev.preventDefault(); | |
| peers[next].focus(); | |
| }); | |
| return b; | |
| } | |
| // Open exactly one category panel (or close all when open=false). One open at a time. | |
| function openCategory(cat, open) { | |
| Object.keys(_panels).forEach((c) => { | |
| const on = (c === cat) ? open : false; | |
| _panels[c].dataset.open = String(on); | |
| if (_catBtns[c]) _catBtns[c].setAttribute("aria-expanded", String(on)); | |
| }); | |
| } | |
| // (a) pinned Featured row — flagships (incl. Atlas), always visible above the dropdowns. | |
| SURFACES.filter((s) => s.flag).forEach((s) => featuredRow.appendChild(_makeTab(s, true))); | |
| // (b) category dropdown buttons + their drop panels. | |
| CATS.forEach(([cat, label]) => { | |
| const items = SURFACES.filter((s) => catOf(s) === cat); | |
| if (!items.length) return; | |
| const btn = document.createElement("button"); | |
| btn.className = "catbtn"; btn.type = "button"; | |
| btn.dataset.cat = cat; btn.setAttribute("aria-expanded", "false"); | |
| btn.id = "category-" + cat; | |
| const caret = document.createElement("span"); caret.className = "caret"; caret.textContent = "▸"; | |
| btn.appendChild(caret); | |
| btn.appendChild(document.createTextNode(label + " ")); | |
| const cnt = document.createElement("span"); cnt.className = "count"; cnt.textContent = String(items.length); | |
| btn.appendChild(cnt); | |
| const panel = document.createElement("div"); | |
| panel.className = "panel"; panel.dataset.cat = cat; panel.dataset.open = "false"; | |
| panel.id = "category-panel-" + cat; | |
| panel.setAttribute("aria-labelledby", btn.id); | |
| btn.setAttribute("aria-controls", panel.id); | |
| items.forEach((s) => panel.appendChild(_makeTab(s, false))); | |
| btn.addEventListener("click", () => { | |
| _clearSearch(); | |
| openCategory(cat, panel.dataset.open !== "true"); | |
| }); | |
| catRow.appendChild(btn); | |
| catPanels.appendChild(panel); | |
| _panels[cat] = panel; _catBtns[cat] = btn; | |
| }); | |
| // Indexed surface finder: every surface stays reachable without a permanent wall of pills. | |
| // Matching is deterministic over id, title and category; nothing is generated. | |
| if (searchInput && searchPanel) { | |
| const renderSearch = () => { | |
| const q = searchInput.value.trim().toLowerCase(); | |
| searchPanel.textContent = ""; | |
| if (!q) { _clearSearch(); return; } | |
| _setBrowser(false); | |
| openCategory("", false); | |
| const matches = SURFACES.filter((s) => | |
| (s.id + " " + s.title + " " + catOf(s)).toLowerCase().includes(q)); | |
| matches.slice(0, searchLimit).forEach((s) => searchPanel.appendChild(_makeTab(s, false))); | |
| if (matches.length > searchLimit) { | |
| const more = document.createElement("button"); | |
| more.type = "button"; | |
| more.className = "navmode"; | |
| more.textContent = `Show ${Math.min(36, matches.length - searchLimit)} more`; | |
| more.setAttribute("aria-label", `Show more results; ${matches.length - searchLimit} remain`); | |
| more.addEventListener("click", () => { searchLimit += 36; renderSearch(); }); | |
| searchPanel.appendChild(more); | |
| } | |
| searchPanel.dataset.open = "true"; | |
| if (searchCount) searchCount.textContent = | |
| `${Math.min(searchLimit, matches.length)} of ${matches.length} match${matches.length === 1 ? "" : "es"}`; | |
| }; | |
| searchInput.addEventListener("input", () => { searchLimit = 36; renderSearch(); }); | |
| searchInput.addEventListener("keydown", (ev) => { | |
| if (ev.key === "Escape") { _clearSearch(); _setBrowser(false); searchInput.blur(); } | |
| if (ev.key === "Enter") { | |
| const first = searchPanel.querySelector("[data-id]"); | |
| if (first) first.click(); | |
| } | |
| if (ev.key === "ArrowDown" || ev.key === "ArrowUp") { | |
| const results = Array.from(searchPanel.querySelectorAll("[data-id]")); | |
| if (results.length) { | |
| ev.preventDefault(); | |
| results[ev.key === "ArrowUp" ? results.length - 1 : 0].focus(); | |
| } | |
| } | |
| }); | |
| document.addEventListener("keydown", (ev) => { | |
| if ((ev.ctrlKey || ev.metaKey) && ev.key.toLowerCase() === "k") { | |
| ev.preventDefault(); searchInput.focus(); searchInput.select(); | |
| } | |
| }); | |
| _clearSearch(); | |
| } | |
| if (navMode) { | |
| navMode.addEventListener("click", () => { | |
| _clearSearch(); | |
| _setBrowser(tabsEl.dataset.browse !== "true"); | |
| }); | |
| } | |
| // Mark every tab button carrying `id` as selected (a flagship is in both the Featured row | |
| // and its category panel), auto-open the active surface's category, and proof-teal-flag the | |
| // owning dropdown button so the current location is always legible. | |
| function _highlight(id) { | |
| const def = SURFACES.find((s) => s.id === id); | |
| const cat = def ? catOf(def) : null; | |
| if (activeSurface) { | |
| activeSurface.textContent = def ? _shortLabel(def) : id; | |
| activeSurface.title = def ? def.title : id; | |
| } | |
| _updateEvidenceRail(def); | |
| const matches = Array.from(tabsEl.querySelectorAll("[data-id]")) | |
| .filter((t) => t.dataset.id === id); | |
| tabsEl.querySelectorAll("[data-id]").forEach((t) => { | |
| t.dataset.active = String(t.dataset.id === id); | |
| t.removeAttribute("aria-current"); | |
| }); | |
| if (matches.length) matches[0].setAttribute("aria-current", "page"); | |
| Object.keys(_catBtns).forEach((c) => | |
| _catBtns[c].setAttribute("data-hasactive", String(c === cat))); | |
| } | |
| // WebGPU toggle: flip the preference and re-boot the renderer + re-mount the active surface. | |
| // Honest: if the browser/driver yields no WebGPU device the toolkit falls back to WebGL2 and | |
| // the badge reports the real backend ("WebGPU: requested" but renderer stays WEBGL2). | |
| { | |
| const gpuBtn = document.getElementById("gpu-toggle"); | |
| if (gpuBtn) { | |
| gpuBtn.addEventListener("click", async () => { | |
| wantWebGPU = !wantWebGPU; | |
| gpuBtn.disabled = true; | |
| const prev = gpuBtn.textContent; gpuBtn.textContent = "\u26a1 switching\u2026"; | |
| try { await rebootStage(); } catch (_) { document.getElementById("backend").textContent = "renderer: UNAVAILABLE"; } | |
| finally { gpuBtn.disabled = false; _syncGpuToggle(); } | |
| }); | |
| _syncGpuToggle(); | |
| } | |
| } | |
| // expose a tiny API for the selftest harness to drive the shell headlessly. | |
| window.__SZL3D_SHELL__ = { | |
| surfaces: SURFACES, | |
| select: selectSurface, | |
| get stage() { return stage; }, | |
| get current() { return current; }, | |
| get wantWebGPU() { return wantWebGPU; }, | |
| ensureStage, rebootStage, | |
| }; | |
| // initial surface from hash or default to the Atlas front door (Wave 27 unifier) | |
| const initial = (location.hash || "").replace("#", ""); | |
| selectSurface(SURFACES.some((s) => s.id === initial) ? initial : "atlas", "replace"); | |
| window.addEventListener("hashchange", () => { | |
| const requested = (location.hash || "").replace("#", ""); | |
| if (!SURFACES.some((s) => s.id === requested)) return; | |
| if (current && current.def && current.def.id === requested) return; | |
| selectSurface(requested, "none"); | |
| }); | |
| // ---- Landing / intro overlay (Dev4, Wave R) -------------------------------- | |
| // A coherent honest entry: the estate boots live underneath while this panel shows the | |
| // Brain headline + frontier surface count + the public verifier. Every stat is fetched | |
| // same-origin (0 CDN) and degrades to an honest NO-LIVE-DATA chip if the endpoint 404s or | |
| // is unreachable — never a fabricated number. Auto-shows once per tab session; re-openable | |
| // via the header ◇ intro badge or ?intro=1. | |
| { | |
| const introEl = document.getElementById("intro"); | |
| const setLabel = (id, state, text) => { | |
| const el = document.getElementById(id); | |
| if (el) { el.dataset.state = state; el.textContent = text; } | |
| }; | |
| const setStat = (id, value, subHtml) => { | |
| const el = document.getElementById(id); | |
| if (!el) return; | |
| el.textContent = value; | |
| if (subHtml !== undefined) { const s = document.createElement("small"); s.innerHTML = subHtml; el.appendChild(s); } | |
| }; | |
| // Brain headline — honest distinct_artifacts (never the raw, person-inflated total). | |
| async function loadBrain() { | |
| try { | |
| const r = await fetch("/api/a11oy/v1/brain/graph?summary=1", { headers: { accept: "application/json" } }); | |
| if (!r.ok) throw new Error("HTTP " + r.status); | |
| const j = await r.json(); | |
| const s = j.summary || j; | |
| const distinct = s.distinct_artifacts ?? j.distinct_artifacts; | |
| const total = s.node_count ?? j.node_count; | |
| if (distinct == null) throw new Error("no distinct_artifacts field"); | |
| setStat("brain-stat", Number(distinct).toLocaleString(), "distinct artifacts (harvested)"); | |
| setLabel("brain-lbl", "live", "LIVE"); | |
| if (total != null) { | |
| const note = document.getElementById("brain-note"); | |
| if (note) note.textContent = | |
| `${Number(distinct).toLocaleString()} distinct artifacts; raw node_count ${Number(total).toLocaleString()} ` + | |
| `is larger (dominated by arXiv co-author person nodes — never presented as distinct work).`; | |
| } | |
| } catch (e) { | |
| setStat("brain-stat", "—", "distinct artifacts (harvested)"); | |
| setLabel("brain-lbl", "degraded", "NO-LIVE-DATA"); | |
| } | |
| } | |
| // Frontier estate — count of live 3D surfaces (prefer the honest server info, fall back to | |
| // the in-page manifest which is the same source of truth as the shell). | |
| async function loadEstate() { | |
| try { | |
| const r = await fetch("/api/a11oy/v1/holographic/info", { headers: { accept: "application/json" } }); | |
| if (!r.ok) throw new Error("HTTP " + r.status); | |
| const j = await r.json(); | |
| const n = Array.isArray(j.surfaces) ? j.surfaces.length : SURFACES.length; | |
| setStat("estate-stat", String(n), "3D surfaces, each wired to a live backend"); | |
| setLabel("estate-lbl", "live", "LIVE"); | |
| } catch (e) { | |
| // The shell manifest is authoritative and always present — honest count, labelled as | |
| // in-page (not a fresh server read). | |
| setStat("estate-stat", String(SURFACES.length), "3D surfaces (from in-page manifest)"); | |
| setLabel("estate-lbl", "degraded", "MANIFEST"); | |
| } | |
| } | |
| let introReturnFocus = null; | |
| const introBackground = [document.querySelector("header"), tabsEl, document.querySelector("footer")] | |
| .filter(Boolean); | |
| function introFocusable() { | |
| return Array.from(introEl.querySelectorAll( | |
| 'button:not([disabled]),a[href],input:not([disabled]),[tabindex]:not([tabindex="-1"])')); | |
| } | |
| function openIntro() { | |
| introReturnFocus = document.activeElement; | |
| _clearSearch(); | |
| _setBrowser(false); | |
| introBackground.forEach((el) => { el.inert = true; }); | |
| introEl.hidden = false; | |
| loadBrain(); loadEstate(); | |
| requestAnimationFrame(() => (document.getElementById("intro-enter") || introEl).focus()); | |
| } | |
| function closeIntro() { | |
| introEl.hidden = true; | |
| introBackground.forEach((el) => { el.inert = false; }); | |
| try { sessionStorage.setItem("szl3d_intro_seen", "1"); } catch (_) {} | |
| if (introReturnFocus && introReturnFocus.focus) introReturnFocus.focus(); | |
| } | |
| introEl.addEventListener("keydown", (ev) => { | |
| if (ev.key === "Escape") { ev.preventDefault(); closeIntro(); return; } | |
| if (ev.key !== "Tab") return; | |
| const focusable = introFocusable(); | |
| if (!focusable.length) { ev.preventDefault(); introEl.focus(); return; } | |
| const first = focusable[0], last = focusable[focusable.length - 1]; | |
| if (ev.shiftKey && document.activeElement === first) { ev.preventDefault(); last.focus(); } | |
| else if (!ev.shiftKey && document.activeElement === last) { ev.preventDefault(); first.focus(); } | |
| }); | |
| introEl.querySelectorAll("[data-go]").forEach((b) => | |
| b.addEventListener("click", () => { closeIntro(); selectSurface(b.dataset.go, "push"); })); | |
| const enterBtn = document.getElementById("intro-enter"); | |
| if (enterBtn) enterBtn.addEventListener("click", closeIntro); | |
| const reopen = document.getElementById("intro-reopen"); | |
| if (reopen) reopen.addEventListener("click", openIntro); | |
| // Auto-show on a fresh visit: skip if this tab already dismissed it, unless a deep-link | |
| // hash (#brain etc.) or a suppress flag says otherwise; ?intro=1 always forces it. | |
| let seen = false; | |
| try { seen = sessionStorage.getItem("szl3d_intro_seen") === "1"; } catch (_) {} | |
| const force = /[?&]intro=1\b/.test(location.search); | |
| const deepLink = SURFACES.some((s) => s.id === initial); | |
| if (force || (!seen && !deepLink)) openIntro(); | |
| else introEl.hidden = true; | |
| window.__SZL3D_SHELL__.openIntro = openIntro; | |
| window.__SZL3D_SHELL__.closeIntro = closeIntro; | |
| } | |
| </script> | |
| </body> | |
| </html> | |