Spaces:
Running
Running
feat(frontier): two founder tabs — Fleet Health & Governed C2 (live ADS-B/AIS 3D globe, health inferred from telemetry, Lambda-gate hack detection, governed CoT/TAK command demo w/ signed receipt; effector simulated label) + Living Anatomy (a11oy+killinchu as one governed organism, proven formulas in organs, honest maturity); vendored 3D, 0 CDN
Browse files- serve.py +7 -0
- web/fleet-c2.html +235 -0
- web/living-anatomy.html +119 -0
serve.py
CHANGED
|
@@ -248,6 +248,13 @@ try:
|
|
| 248 |
app.add_api_route("/a11oy/papers", _ptg_serve("papers.html"), methods=["GET"], include_in_schema=False)
|
| 249 |
app.add_api_route("/feedback-loop", _ptg_serve("feedback-loop.html"), methods=["GET"], include_in_schema=False)
|
| 250 |
app.add_api_route("/a11oy/feedback-loop", _ptg_serve("feedback-loop.html"), methods=["GET"], include_in_schema=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 251 |
|
| 252 |
# /chat + /a11oy/chat -> /code consolidation (founder-directed; the only removal).
|
| 253 |
async def _ptg_chat_to_code() -> Response:
|
|
|
|
| 248 |
app.add_api_route("/a11oy/papers", _ptg_serve("papers.html"), methods=["GET"], include_in_schema=False)
|
| 249 |
app.add_api_route("/feedback-loop", _ptg_serve("feedback-loop.html"), methods=["GET"], include_in_schema=False)
|
| 250 |
app.add_api_route("/a11oy/feedback-loop", _ptg_serve("feedback-loop.html"), methods=["GET"], include_in_schema=False)
|
| 251 |
+
# FRONTIER WAVE (2026-06-08): two founder tabs — Fleet Health & Governed C2,
|
| 252 |
+
# Living Anatomy. Standalone sovereign pages (vendored 3D, 0 CDN), bind to live
|
| 253 |
+
# killinchu ADS-B/AIS + receipt/emit + uds healthz and the shared anatomy Space.
|
| 254 |
+
app.add_api_route("/fleet-c2", _ptg_serve("fleet-c2.html"), methods=["GET"], include_in_schema=False)
|
| 255 |
+
app.add_api_route("/a11oy/fleet-c2", _ptg_serve("fleet-c2.html"), methods=["GET"], include_in_schema=False)
|
| 256 |
+
app.add_api_route("/living-anatomy", _ptg_serve("living-anatomy.html"), methods=["GET"], include_in_schema=False)
|
| 257 |
+
app.add_api_route("/a11oy/living-anatomy", _ptg_serve("living-anatomy.html"), methods=["GET"], include_in_schema=False)
|
| 258 |
|
| 259 |
# /chat + /a11oy/chat -> /code consolidation (founder-directed; the only removal).
|
| 260 |
async def _ptg_chat_to_code() -> Response:
|
web/fleet-c2.html
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8"/>
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
| 6 |
+
<title>a11oy — Fleet Health & Governed C2 · SZL Holdings</title>
|
| 7 |
+
<meta name="description" content="Live 3D fleet picture (real ADS-B mil air + AIS vessels) with subsystem health inferred from telemetry, Λ-gate hack/spoof detection, and a governed command console. Governance loop is real; effector link is a labeled command demonstration."/>
|
| 8 |
+
<link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
|
| 9 |
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"/>
|
| 10 |
+
<script src="/vendor/three.min.js"></script>
|
| 11 |
+
<script src="/vendor/globe.gl.min.js"></script>
|
| 12 |
+
<style>
|
| 13 |
+
:root{
|
| 14 |
+
--ground:#0a0a0a; --panel:#0e0e0e; --panel2:#080808; --rail:#0b0b0b;
|
| 15 |
+
--gold:#c9b787; --gold-bright:#d6c69a;
|
| 16 |
+
--teal:#5fb3a3; --teal-soft:rgba(95,179,163,0.10);
|
| 17 |
+
--cream:#f5f5f5; --paragraph:#9a9a9a; --muted:#888; --dim:#555;
|
| 18 |
+
--gold-line:rgba(201,183,135,0.15); --gold-soft:rgba(201,183,135,0.04);
|
| 19 |
+
--teal-line:rgba(95,179,163,0.22);
|
| 20 |
+
--live:#5a8a6e; --err:#b06a5a; --warn:#c9a05f;
|
| 21 |
+
--green:#39d98a; --yellow:#f5c451; --red:#ff6a5a; --blue:#5bc8ff;
|
| 22 |
+
--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
|
| 23 |
+
--display:'Space Grotesk',Georgia,serif;
|
| 24 |
+
}
|
| 25 |
+
*{box-sizing:border-box;}
|
| 26 |
+
html,body{margin:0;padding:0;background:var(--ground);color:var(--cream);font-family:var(--display);-webkit-font-smoothing:antialiased;}
|
| 27 |
+
.mono{font-family:var(--mono);}
|
| 28 |
+
a{color:inherit;text-decoration:none;}
|
| 29 |
+
.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);}
|
| 30 |
+
.topbar .sep{color:var(--dim);}
|
| 31 |
+
.topbar .live{display:inline-flex;align-items:center;gap:.4rem;color:var(--cream);}
|
| 32 |
+
.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;}
|
| 33 |
+
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
|
| 34 |
+
.switcher{margin-left:auto;display:flex;align-items:center;gap:.3rem;}
|
| 35 |
+
.flag{padding:.22rem .55rem;border-radius:6px;border:1px solid transparent;color:var(--muted);transition:.15s;}
|
| 36 |
+
.flag:hover{color:var(--cream);border-color:var(--gold-line);background:var(--gold-soft);}
|
| 37 |
+
.flag.active{color:var(--ground);background:var(--gold);border-color:var(--gold);font-weight:600;}
|
| 38 |
+
.wrap{max-width:1320px;margin:0 auto;padding:1.6rem 1.4rem 4rem;}
|
| 39 |
+
h1{font-size:1.7rem;font-weight:600;margin:.2rem 0 .3rem;letter-spacing:-.01em;}
|
| 40 |
+
.badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);border:1px solid var(--teal-line);background:var(--teal-soft);padding:.25rem .6rem;border-radius:5px;margin-left:.4rem;vertical-align:middle;}
|
| 41 |
+
.lede{color:var(--paragraph);font-size:.95rem;line-height:1.65;max-width:1180px;margin:.6rem 0 1rem;}
|
| 42 |
+
.lede b{color:var(--cream);font-weight:600;}
|
| 43 |
+
.econ{border:1px solid var(--gold-line);background:var(--gold-soft);border-radius:8px;padding:.7rem 1rem;margin:.4rem 0 1.2rem;font-family:var(--mono);font-size:12px;color:var(--paragraph);line-height:1.7;}
|
| 44 |
+
.econ .k{color:var(--gold);text-transform:uppercase;letter-spacing:.08em;font-size:10px;}
|
| 45 |
+
.econ .hi{color:var(--teal);}
|
| 46 |
+
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:0 0 1.2rem;}
|
| 47 |
+
.card{border:1px solid var(--gold-line);background:var(--panel);border-radius:8px;padding:.85rem 1rem;}
|
| 48 |
+
.card .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);}
|
| 49 |
+
.card .big{font-size:1.5rem;font-weight:600;margin:.35rem 0 .15rem;color:var(--teal);}
|
| 50 |
+
.card .sub{font-family:var(--mono);font-size:10.5px;color:var(--muted);}
|
| 51 |
+
.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;}
|
| 52 |
+
.panel{border:1px solid var(--gold-line);background:var(--panel);border-radius:10px;padding:1rem 1.1rem;}
|
| 53 |
+
.panel h2{font-size:1.05rem;font-weight:600;margin:0 0 .2rem;display:flex;align-items:center;justify-content:space-between;}
|
| 54 |
+
.panel h2 .meta{font-family:var(--mono);font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;}
|
| 55 |
+
.globe3d{width:100%;height:480px;border:1px solid var(--gold-line);border-radius:8px;margin-top:.6rem;background:#05070c;overflow:hidden;}
|
| 56 |
+
.legend{display:flex;gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:.5rem;}
|
| 57 |
+
.legend .d{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.35rem;vertical-align:middle;}
|
| 58 |
+
.assetbox{min-height:120px;border:1px dashed var(--gold-line);border-radius:8px;padding:.8rem 1rem;margin-top:.6rem;font-family:var(--mono);font-size:12px;color:var(--paragraph);line-height:1.7;}
|
| 59 |
+
.simnote{border:1px solid var(--warn);background:rgba(201,160,95,.06);border-radius:8px;padding:.7rem .9rem;margin-top:.8rem;font-family:var(--mono);font-size:11px;color:#d8c39a;line-height:1.65;}
|
| 60 |
+
.simnote b{color:var(--warn);}
|
| 61 |
+
.cmdrow{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem;}
|
| 62 |
+
button{font-family:var(--mono);font-size:11.5px;color:var(--cream);background:#141414;border:1px solid var(--gold-line);border-radius:6px;padding:.5rem .8rem;cursor:pointer;transition:.15s;}
|
| 63 |
+
button:hover{border-color:var(--teal-line);background:var(--teal-soft);}
|
| 64 |
+
select,input{font-family:var(--mono);font-size:11.5px;color:var(--cream);background:#0d0d0d;border:1px solid var(--gold-line);border-radius:6px;padding:.45rem .6rem;}
|
| 65 |
+
.receipt{margin-top:.7rem;font-family:var(--mono);font-size:11px;color:var(--paragraph);white-space:pre-wrap;word-break:break-all;line-height:1.6;border-top:1px solid var(--gold-line);padding-top:.6rem;}
|
| 66 |
+
.footnote{margin-top:1.6rem;font-family:var(--mono);font-size:10.5px;color:var(--muted);line-height:1.7;border-top:1px solid var(--gold-line);padding-top:.9rem;}
|
| 67 |
+
.footnote b{color:var(--cream);}
|
| 68 |
+
@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr);}.grid2{grid-template-columns:1fr;}}
|
| 69 |
+
</style>
|
| 70 |
+
</head>
|
| 71 |
+
<body>
|
| 72 |
+
<div class="topbar">
|
| 73 |
+
<span>SZL HOLDINGS</span><span class="sep">/</span><span>a11oy</span><span class="sep">/</span><span>FLEET HEALTH & GOVERNED C2</span>
|
| 74 |
+
<span class="sep">/</span><span class="live"><span class="live-dot"></span><span id="livelbl">LIVE · RT</span></span>
|
| 75 |
+
<span class="switcher">
|
| 76 |
+
<a class="flag active" href="/fleet-c2">Fleet C2</a>
|
| 77 |
+
<a class="flag" href="/living-anatomy">Living Anatomy</a>
|
| 78 |
+
<a class="flag" href="/code">Code</a>
|
| 79 |
+
</span>
|
| 80 |
+
</div>
|
| 81 |
+
<div class="wrap">
|
| 82 |
+
<h1>Fleet Health & Governed C2 (3D)<span class="badge">LIVE ADS-B (mil) + AIS · health inferred from telemetry · Λ-gate hack detection</span></h1>
|
| 83 |
+
<p class="lede">A live 3D fleet picture of <b>military aircraft</b> (real ADS-B from adsb.lol) and <b>vessels</b> (real AIS from Digitraffic Finland) on a globe. Each asset is a 3D node with <b>color-coded subsystem health — inferred from real telemetry</b> (signal freshness, kinematics plausibility, anomaly), <b>not fabricated sensor data</b>. Hack / spoof detection runs through the <b>Λ-gate</b> (advisory, Conjecture 1): anomalous tracks get flagged and a <b>genuinely signed receipt</b> is emitted. The governed command console emits a real CoT/TAK-format command through the <b>command → Λ-gate → signed-receipt</b> loop — <b>the governance loop is real and live; the effector link is a command demonstration</b> (a11oy does not pilot real assets).</p>
|
| 84 |
+
<div class="econ"><span class="k">Why it matters:</span> every autonomous engagement carries <span class="hi">court-admissible cryptographic provenance</span> — governed-provable AI de-risks ROE / liability exposure and turns "trust us" into "verify the receipt."</div>
|
| 85 |
+
<div class="cards">
|
| 86 |
+
<div class="card"><div class="lbl">Live Assets</div><div class="big" id="c_assets">—</div><div class="sub">ADS-B + AIS</div></div>
|
| 87 |
+
<div class="card"><div class="lbl">Nominal</div><div class="big" id="c_nominal" style="color:var(--green)">—</div><div class="sub">health inferred</div></div>
|
| 88 |
+
<div class="card"><div class="lbl">Flagged anomalies</div><div class="big" id="c_flagged" style="color:var(--yellow)">—</div><div class="sub">Λ-gate · signed receipt</div></div>
|
| 89 |
+
<div class="card"><div class="lbl">Feed</div><div class="big" id="c_feed" style="color:var(--teal)">—</div><div class="sub">live / fallback</div></div>
|
| 90 |
+
</div>
|
| 91 |
+
<div class="grid2">
|
| 92 |
+
<div class="panel">
|
| 93 |
+
<h2>Fleet globe (3D)<span class="meta">real ADS-B mil air + AIS vessels</span></h2>
|
| 94 |
+
<div id="globe" class="globe3d"></div>
|
| 95 |
+
<div class="legend">
|
| 96 |
+
<span><span class="d" style="background:var(--green)"></span>nominal</span>
|
| 97 |
+
<span><span class="d" style="background:var(--yellow)"></span>needs-attention</span>
|
| 98 |
+
<span><span class="d" style="background:var(--red)"></span>anomalous / spoof-flagged</span>
|
| 99 |
+
<span style="color:var(--dim)">(health inferred from telemetry) — click an asset</span>
|
| 100 |
+
</div>
|
| 101 |
+
</div>
|
| 102 |
+
<div class="panel">
|
| 103 |
+
<h2>Asset health + governed C2<span class="meta">command demonstration</span></h2>
|
| 104 |
+
<div class="assetbox" id="assetbox">select an asset on the globe</div>
|
| 105 |
+
<div class="simnote"><b>Command demonstration:</b> the command → Λ-gate → signed-receipt <b>governance loop is REAL and live</b>; the <b>effector link is simulated</b>. a11oy does not and cannot pilot real military aircraft, vessels, or submarines.</div>
|
| 106 |
+
<div class="cmdrow">
|
| 107 |
+
<select id="cmdtype">
|
| 108 |
+
<option value="INVESTIGATE">CoT: Investigate track</option>
|
| 109 |
+
<option value="HOLD">CoT: Hold / shadow</option>
|
| 110 |
+
<option value="HANDOFF">CoT: Hand off to killinchu</option>
|
| 111 |
+
</select>
|
| 112 |
+
<button id="emitbtn">Emit governed command (Λ-gate → signed receipt)</button>
|
| 113 |
+
</div>
|
| 114 |
+
<div class="receipt" id="receipt">no command emitted</div>
|
| 115 |
+
</div>
|
| 116 |
+
</div>
|
| 117 |
+
<div class="footnote">
|
| 118 |
+
<b>Honest by design.</b> Health is <b>inferred from real telemetry</b> (signal freshness, kinematics plausibility, squawk/AIS anomaly heuristics) — NOT platform sensor data. Track positions are <b>real public ADS-B/AIS feeds</b>. The Λ trust score is <b>Conjecture 1</b> (machine-checked FALSE as an unconditional axiom) — advisory, never a theorem. Exactly <b>5 formulas are locked-proven</b> {F1,F11,F12,F18,F19} @ kernel c7c0ba17. Receipts are <b>genuinely DSSE-signed</b> (ECDSA-P256, cosign). CoT/TAK format references the Apache-2.0 wcrum/py-cot Cursor-on-Target schema. 0 runtime CDN — all 3D libs vendored in-image.
|
| 119 |
+
</div>
|
| 120 |
+
</div>
|
| 121 |
+
<script>
|
| 122 |
+
const KC="https://szlholdings-killinchu.hf.space/api/killinchu";
|
| 123 |
+
const A="/api/a11oy";
|
| 124 |
+
const $=id=>document.getElementById(id);
|
| 125 |
+
async function getJSON(u,opt){try{const r=await fetch(u,opt);if(!r.ok)return null;return await r.json();}catch(e){return null;}}
|
| 126 |
+
function esc(s){return String(s==null?'':s).replace(/[&<>]/g,c=>({'&':'&','<':'<','>':'>'}[c]));}
|
| 127 |
+
|
| 128 |
+
// --- health inference from real telemetry (heuristic, labeled) ---
|
| 129 |
+
function inferAirHealth(ac){
|
| 130 |
+
// anomaly heuristics over REAL fields: stale data, implausible kinematics, spoof squawks
|
| 131 |
+
let flags=[];
|
| 132 |
+
const sq=String(ac.squawk||'');
|
| 133 |
+
if(sq==='7500'||sq==='7600'||sq==='7700')flags.push('emergency squawk '+sq);
|
| 134 |
+
if(ac.alt_baro!=null && (ac.alt_baro>60000||ac.alt_baro<-1000))flags.push('implausible altitude');
|
| 135 |
+
if(ac.gs!=null && ac.gs>700)flags.push('implausible groundspeed');
|
| 136 |
+
if(ac.lat==null||ac.lon==null)flags.push('no position');
|
| 137 |
+
return flags;
|
| 138 |
+
}
|
| 139 |
+
function inferShipHealth(v){
|
| 140 |
+
let flags=[];
|
| 141 |
+
if(v.sog!=null && v.sog>60)flags.push('implausible SOG');
|
| 142 |
+
if(v.lat==null||v.lon==null)flags.push('no position');
|
| 143 |
+
if(v.cog!=null && (v.cog<0||v.cog>360))flags.push('invalid COG');
|
| 144 |
+
return flags;
|
| 145 |
+
}
|
| 146 |
+
function healthColor(flags){return flags.length===0?'#39d98a':(flags.length===1?'#f5c451':'#ff6a5a');}
|
| 147 |
+
|
| 148 |
+
let GLOBE=null, POINTS=[];
|
| 149 |
+
async function load(){
|
| 150 |
+
const air=await getJSON(KC+"/air/live");
|
| 151 |
+
const ais=await getJSON(KC+"/ais/live");
|
| 152 |
+
const acs=((air&&air.data&&(air.data.ac||air.data.aircraft))||[]);
|
| 153 |
+
const vs=((ais&&ais.data&&ais.data.vessels)||[]);
|
| 154 |
+
const airMode=(air&&air.mode)||'fallback';
|
| 155 |
+
const aisMode=(ais&&ais.mode)||'fallback';
|
| 156 |
+
POINTS=[];
|
| 157 |
+
let nominal=0,flagged=0;
|
| 158 |
+
acs.forEach(a=>{
|
| 159 |
+
if(a.lat==null||a.lon==null)return;
|
| 160 |
+
const f=inferAirHealth(a);const col=healthColor(f);
|
| 161 |
+
if(f.length)flagged++;else nominal++;
|
| 162 |
+
POINTS.push({lat:a.lat,lng:a.lon,color:col,kind:'AIR',id:a.flight||a.hex,raw:a,flags:f,alt:(a.alt_baro||0)});
|
| 163 |
+
});
|
| 164 |
+
vs.forEach(v=>{
|
| 165 |
+
if(v.lat==null||v.lon==null)return;
|
| 166 |
+
const f=inferShipHealth(v);const col=healthColor(f);
|
| 167 |
+
if(f.length)flagged++;else nominal++;
|
| 168 |
+
POINTS.push({lat:v.lat,lng:v.lon,color:col,kind:'SHIP',id:v.name||v.mmsi,raw:v,flags:f,alt:0});
|
| 169 |
+
});
|
| 170 |
+
$('c_assets').textContent=POINTS.length;
|
| 171 |
+
$('c_nominal').textContent=nominal;
|
| 172 |
+
$('c_flagged').textContent=flagged;
|
| 173 |
+
$('c_feed').textContent=(airMode==='live'&&aisMode==='live')?'live':(airMode+'/'+aisMode);
|
| 174 |
+
$('livelbl').textContent=(airMode==='live')?'LIVE · RT':'FALLBACK';
|
| 175 |
+
renderGlobe();
|
| 176 |
+
}
|
| 177 |
+
function renderGlobe(){
|
| 178 |
+
const host=$('globe');
|
| 179 |
+
if(!GLOBE){
|
| 180 |
+
GLOBE=Globe()(host)
|
| 181 |
+
.globeImageUrl('/vendor/earth-night.jpg')
|
| 182 |
+
.backgroundColor('#05070c')
|
| 183 |
+
.showAtmosphere(true).atmosphereColor('#5fb3a3').atmosphereAltitude(0.12)
|
| 184 |
+
.pointAltitude(d=>0.01+Math.min(d.alt/120000,0.18))
|
| 185 |
+
.pointColor(d=>d.color)
|
| 186 |
+
.pointRadius(d=>d.kind==='AIR'?0.32:0.26)
|
| 187 |
+
.pointLabel(d=>`<div style="font-family:monospace;font-size:11px;color:#f5f5f5;background:#0a0a0a;border:1px solid #c9b78733;padding:4px 7px;border-radius:5px">${esc(d.kind)} ${esc(d.id)}<br/>health: ${d.flags.length?esc(d.flags.join('; ')):'nominal (inferred)'}</div>`)
|
| 188 |
+
.onPointClick(d=>selectAsset(d));
|
| 189 |
+
try{GLOBE.controls().autoRotate=true;GLOBE.controls().autoRotateSpeed=0.35;}catch(e){}
|
| 190 |
+
setTimeout(()=>{try{const w=host.clientWidth,h=host.clientHeight;GLOBE.width(w).height(h);}catch(e){}},120);
|
| 191 |
+
}
|
| 192 |
+
GLOBE.pointsData(POINTS);
|
| 193 |
+
}
|
| 194 |
+
let SELECTED=null;
|
| 195 |
+
function selectAsset(d){
|
| 196 |
+
SELECTED=d;
|
| 197 |
+
const r=d.raw;
|
| 198 |
+
let rows=[`<b style="color:#f5f5f5">${esc(d.kind)} — ${esc(d.id)}</b>`,
|
| 199 |
+
`position: ${(+r.lat).toFixed(3)}, ${(+r.lon).toFixed(3)}`];
|
| 200 |
+
if(d.kind==='AIR'){rows.push(`alt_baro: ${r.alt_baro??'—'} ft · gs: ${r.gs??'—'} kt · track: ${r.track??'—'}° · squawk: ${r.squawk??'—'}`);}
|
| 201 |
+
else{rows.push(`SOG: ${r.sog??'—'} kn · COG: ${r.cog??'—'}° · heading: ${r.heading??'—'}° · MMSI: ${r.mmsi??'—'}`);}
|
| 202 |
+
const col=d.flags.length?'#f5c451':'#39d98a';
|
| 203 |
+
rows.push(`<span style="color:${col}">health (inferred from telemetry): ${d.flags.length?esc(d.flags.join('; ')):'nominal'}</span>`);
|
| 204 |
+
$('assetbox').innerHTML=rows.join('<br/>');
|
| 205 |
+
}
|
| 206 |
+
async function emitCommand(){
|
| 207 |
+
if(!SELECTED){$('receipt').textContent='select an asset on the globe first';return;}
|
| 208 |
+
const cmd=$('cmdtype').value;
|
| 209 |
+
$('receipt').textContent='emitting command → Λ-gate → signing receipt…';
|
| 210 |
+
// CoT/TAK-format event (wcrum/py-cot schema reference) for the selected REAL track
|
| 211 |
+
const r=SELECTED.raw;
|
| 212 |
+
const cot={event:{_attributes:{version:'2.0',type:SELECTED.kind==='AIR'?'a-f-A':'a-f-S-X',uid:'a11oy.'+esc(SELECTED.id),how:'m-g'},
|
| 213 |
+
point:{_attributes:{lat:r.lat,lon:r.lon,hae:(r.alt_baro||0),ce:'9999999.0',le:'9999999.0'}},
|
| 214 |
+
detail:{__group:{_attributes:{name:'Cyan',role:'governed'}},remarks:cmd+' (governance demonstration)'}}};
|
| 215 |
+
const body={decision_class:'recommend',action:cmd,subject:String(SELECTED.id),
|
| 216 |
+
note:'governed C2 command demonstration — effector link simulated',cot:cot};
|
| 217 |
+
const res=await getJSON(KC+"/v1/receipt/emit",{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(body)});
|
| 218 |
+
if(!res){$('receipt').textContent='receipt endpoint unreachable';return;}
|
| 219 |
+
const lines=[
|
| 220 |
+
`command: ${esc(cmd)} → ${esc(SELECTED.kind)} ${esc(SELECTED.id)}`,
|
| 221 |
+
`Λ-gate: advisory · Conjecture 1 (machine-checked FALSE — not a theorem)`,
|
| 222 |
+
`node_index: ${res.node_index} · node_digest: ${(res.node_digest||'').slice(0,24)}…`,
|
| 223 |
+
`khipu_root: ${(res.khipu_root||'').slice(0,24)}…`,
|
| 224 |
+
`dsse_signed: ${res.dsse&&res.dsse.signed?'true (ECDSA-P256 · cosign)':'false'}`,
|
| 225 |
+
`effector: SIMULATED — governance loop real, effector link not connected`,
|
| 226 |
+
`CoT/TAK type: ${cot.event._attributes.type} (wcrum/py-cot schema reference)`,
|
| 227 |
+
];
|
| 228 |
+
$('receipt').textContent=lines.join('\n');
|
| 229 |
+
}
|
| 230 |
+
$('emitbtn').addEventListener('click',emitCommand);
|
| 231 |
+
load();
|
| 232 |
+
setInterval(load,30000);
|
| 233 |
+
</script>
|
| 234 |
+
</body>
|
| 235 |
+
</html>
|
web/living-anatomy.html
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8"/>
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
| 6 |
+
<title>a11oy — Living Anatomy (one governed organism) · SZL Holdings</title>
|
| 7 |
+
<meta name="description" content="a11oy + killinchu as one governed organism: the live 3D anatomy scene with proven formulas living in each organ and honest maturity labels (locked-5; Λ = Conjecture 1; Byzantine = Conjecture 2 OPEN)."/>
|
| 8 |
+
<link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
|
| 9 |
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"/>
|
| 10 |
+
<style>
|
| 11 |
+
:root{
|
| 12 |
+
--ground:#0a0a0a; --panel:#0e0e0e; --rail:#0b0b0b;
|
| 13 |
+
--gold:#c9b787; --teal:#5fb3a3; --teal-soft:rgba(95,179,163,0.10);
|
| 14 |
+
--cream:#f5f5f5; --paragraph:#9a9a9a; --muted:#888; --dim:#555;
|
| 15 |
+
--gold-line:rgba(201,183,135,0.15); --gold-soft:rgba(201,183,135,0.04);
|
| 16 |
+
--teal-line:rgba(95,179,163,0.22);
|
| 17 |
+
--live:#5a8a6e; --green:#39d98a; --yellow:#f5c451; --orange:#ff8a5c; --blue:#5bc8ff;
|
| 18 |
+
--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
|
| 19 |
+
--display:'Space Grotesk',Georgia,serif;
|
| 20 |
+
}
|
| 21 |
+
*{box-sizing:border-box;}
|
| 22 |
+
html,body{margin:0;padding:0;background:var(--ground);color:var(--cream);font-family:var(--display);-webkit-font-smoothing:antialiased;}
|
| 23 |
+
.mono{font-family:var(--mono);}
|
| 24 |
+
a{color:inherit;text-decoration:none;}
|
| 25 |
+
.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);}
|
| 26 |
+
.topbar .sep{color:var(--dim);}
|
| 27 |
+
.topbar .live{display:inline-flex;align-items:center;gap:.4rem;color:var(--cream);}
|
| 28 |
+
.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;}
|
| 29 |
+
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
|
| 30 |
+
.switcher{margin-left:auto;display:flex;align-items:center;gap:.3rem;}
|
| 31 |
+
.flag{padding:.22rem .55rem;border-radius:6px;border:1px solid transparent;color:var(--muted);transition:.15s;}
|
| 32 |
+
.flag:hover{color:var(--cream);border-color:var(--gold-line);background:var(--gold-soft);}
|
| 33 |
+
.flag.active{color:var(--ground);background:var(--gold);border-color:var(--gold);font-weight:600;}
|
| 34 |
+
.wrap{max-width:1320px;margin:0 auto;padding:1.6rem 1.4rem 4rem;}
|
| 35 |
+
h1{font-size:1.7rem;font-weight:600;margin:.2rem 0 .3rem;letter-spacing:-.01em;}
|
| 36 |
+
.badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);border:1px solid var(--teal-line);background:var(--teal-soft);padding:.25rem .6rem;border-radius:5px;margin-left:.4rem;vertical-align:middle;}
|
| 37 |
+
.lede{color:var(--paragraph);font-size:.95rem;line-height:1.65;max-width:1180px;margin:.6rem 0 1rem;}
|
| 38 |
+
.lede b{color:var(--cream);font-weight:600;}
|
| 39 |
+
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:0 0 1.2rem;}
|
| 40 |
+
.card{border:1px solid var(--gold-line);background:var(--panel);border-radius:8px;padding:.85rem 1rem;}
|
| 41 |
+
.card .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);}
|
| 42 |
+
.card .big{font-size:1.35rem;font-weight:600;margin:.35rem 0 .15rem;color:var(--teal);}
|
| 43 |
+
.card .sub{font-family:var(--mono);font-size:10px;color:var(--muted);}
|
| 44 |
+
.panel{border:1px solid var(--gold-line);background:var(--panel);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1.1rem;}
|
| 45 |
+
.panel h2{font-size:1.05rem;font-weight:600;margin:0 0 .4rem;display:flex;align-items:center;justify-content:space-between;}
|
| 46 |
+
.panel h2 .meta{font-family:var(--mono);font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;}
|
| 47 |
+
.embed{width:100%;height:620px;border:1px solid var(--gold-line);border-radius:8px;background:#05070c;overflow:hidden;}
|
| 48 |
+
.embed iframe{width:100%;height:100%;border:0;display:block;}
|
| 49 |
+
.organs{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:.4rem;}
|
| 50 |
+
.organ{border:1px solid var(--gold-line);background:var(--rail);border-radius:8px;padding:.7rem .9rem;}
|
| 51 |
+
.organ .nm{font-weight:600;font-size:.95rem;}
|
| 52 |
+
.organ .tref{font-family:var(--mono);font-size:10.5px;color:var(--teal);margin:.2rem 0;}
|
| 53 |
+
.organ .mat{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;padding:.12rem .4rem;border-radius:4px;display:inline-block;}
|
| 54 |
+
.organ .desc{font-size:.82rem;color:var(--paragraph);line-height:1.55;margin-top:.3rem;}
|
| 55 |
+
.footnote{margin-top:1.2rem;font-family:var(--mono);font-size:10.5px;color:var(--muted);line-height:1.7;border-top:1px solid var(--gold-line);padding-top:.9rem;}
|
| 56 |
+
.footnote b{color:var(--cream);}
|
| 57 |
+
@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr);}.organs{grid-template-columns:1fr;}}
|
| 58 |
+
</style>
|
| 59 |
+
</head>
|
| 60 |
+
<body>
|
| 61 |
+
<div class="topbar">
|
| 62 |
+
<span>SZL HOLDINGS</span><span class="sep">/</span><span>a11oy</span><span class="sep">/</span><span>LIVING ANATOMY</span>
|
| 63 |
+
<span class="sep">/</span><span class="live"><span class="live-dot"></span><span id="livelbl">LIVE · RT</span></span>
|
| 64 |
+
<span class="switcher">
|
| 65 |
+
<a class="flag" href="/fleet-c2">Fleet C2</a>
|
| 66 |
+
<a class="flag active" href="/living-anatomy">Living Anatomy</a>
|
| 67 |
+
<a class="flag" href="/code">Code</a>
|
| 68 |
+
</span>
|
| 69 |
+
</div>
|
| 70 |
+
<div class="wrap">
|
| 71 |
+
<h1>Living Anatomy (one governed organism)<span class="badge">a11oy + killinchu as ONE organism · proven formulas in the organs</span></h1>
|
| 72 |
+
<p class="lede">a11oy and killinchu are not two products — they are <b>one connected governed organism</b>. This embeds the live 3D anatomy scene and overlays the <b>proven formulas living in each organ</b> with <b>honest maturity labels</b>. The reasoning organ, the policy organ, the field node, the orchestrator — each carries a theorem_ref. This is what makes the architecture <b>agentic with a proof backbone</b>: every organ's function is tied to a formally-stated property.</p>
|
| 73 |
+
<div class="cards">
|
| 74 |
+
<div class="card"><div class="lbl">Organism</div><div class="big">a11oy + killinchu</div><div class="sub">one governed body</div></div>
|
| 75 |
+
<div class="card"><div class="lbl">Locked-proven</div><div class="big" style="color:var(--green)" id="c_locked">5</div><div class="sub">F1 F11 F12 F18 F19 @ c7c0ba17</div></div>
|
| 76 |
+
<div class="card"><div class="lbl">Λ (trust)</div><div class="big" style="color:var(--orange)">Conjecture 1</div><div class="sub">advisory · NOT a theorem</div></div>
|
| 77 |
+
<div class="card"><div class="lbl">Consensus mesh</div><div class="big" id="c_mesh" style="color:var(--teal)">—</div><div class="sub">Byzantine = Conjecture 2 OPEN</div></div>
|
| 78 |
+
</div>
|
| 79 |
+
<div class="panel">
|
| 80 |
+
<h2>Living anatomy (live 3D)<span class="meta">szlholdings-anatomy.static.hf.space</span></h2>
|
| 81 |
+
<div class="embed"><iframe src="https://szlholdings-anatomy.static.hf.space" title="SZL Living Anatomy (a11oy + killinchu)" loading="lazy" referrerpolicy="no-referrer"></iframe></div>
|
| 82 |
+
</div>
|
| 83 |
+
<div class="panel">
|
| 84 |
+
<h2>Proven formulas living in the organs<span class="meta">theorem_ref + honest maturity</span></h2>
|
| 85 |
+
<div class="organs">
|
| 86 |
+
<div class="organ"><div class="nm">Brain — reasoning cortex (a11oy)</div><div class="tref">F12 · Pinsker / KL-control · Lutar kernel c7c0ba17</div><span class="mat" style="background:rgba(57,217,138,.12);color:var(--green)">locked-proven</span><div class="desc">The reasoning organ's confidence bounds are backed by a locked-proven information-theoretic inequality (one of the 5).</div></div>
|
| 87 |
+
<div class="organ"><div class="nm">Heart — Λ trust gate (both)</div><div class="tref">Λ uniqueness · Conjecture 1 (machine-checked FALSE as unconditional)</div><span class="mat" style="background:rgba(255,138,92,.12);color:var(--orange)">conjecture (advisory)</span><div class="desc">The Λ-gate beats per decision. Λ is Conjecture 1 — advisory only; uniqueness holds conditionally (CUT-2), never unconditionally.</div></div>
|
| 88 |
+
<div class="organ"><div class="nm">Skeleton — locked-5 spine (both)</div><div class="tref">F1 F11 F12 F18 F19 @ kernel c7c0ba17</div><span class="mat" style="background:rgba(57,217,138,.12);color:var(--green)">locked-proven</span><div class="desc">Exactly 5 formulas form the load-bearing spine — kernel-verified, never inflated. Experimental tier (CI-green @ 044eb098) is NOT folded in.</div></div>
|
| 89 |
+
<div class="organ"><div class="nm">Nervous system — consensus mesh (both)</div><div class="tref">Khipu Conjecture 2 · Byzantine quorum safety</div><span class="mat" style="background:rgba(255,138,92,.12);color:var(--orange)">conjecture (OPEN)</span><div class="desc">4/4 quorum holds live, but Byzantine safety is Conjecture 2 — OPEN. We surface the live quorum, not a proof.</div></div>
|
| 90 |
+
<div class="organ"><div class="nm">Field node — counter-UAS body (killinchu)</div><div class="tref">CUT-2 conditional · threshold-policy · @ 044eb098</div><span class="mat" style="background:rgba(245,196,81,.12);color:var(--yellow)">conditional (CI-green)</span><div class="desc">The field organ runs governed interdiction; its threshold policy is conditional/experimental, CI-green on main — labeled, not locked.</div></div>
|
| 91 |
+
<div class="organ"><div class="nm">Circulatory — signed receipt bus (both)</div><div class="tref">DSSE / ECDSA-P256 · hash-chain + Merkle audit (A5 measured)</div><span class="mat" style="background:rgba(91,200,255,.12);color:var(--blue)">measured</span><div class="desc">Every decision flows as a genuinely signed receipt. Deterministic replay is axiom A5 — measured, not a theorem.</div></div>
|
| 92 |
+
</div>
|
| 93 |
+
</div>
|
| 94 |
+
<div class="footnote">
|
| 95 |
+
<b>Honest by design.</b> Live embed of the shared anatomy scene. Labels: Λ = Conjecture 1 (machine-checked FALSE as unconditional); exactly 5 locked-proven formulas {F1,F11,F12,F18,F19} @ c7c0ba17 (never inflated); CUT-2 conditional/experimental @ 044eb098; Byzantine quorum = Conjecture 2 (OPEN); A5 deterministic replay = measured. Mesh quorum is read live. 0 runtime CDN — anatomy scene is a same-org HF static Space.
|
| 96 |
+
</div>
|
| 97 |
+
</div>
|
| 98 |
+
<script>
|
| 99 |
+
const A="/api/a11oy";
|
| 100 |
+
const $=id=>document.getElementById(id);
|
| 101 |
+
async function getJSON(u){try{const r=await fetch(u);if(!r.ok)return null;return await r.json();}catch(e){return null;}}
|
| 102 |
+
async function load(){
|
| 103 |
+
// mesh / consensus from killinchu uds healthz (cross-app, one organism)
|
| 104 |
+
const h=await getJSON("https://szlholdings-killinchu.hf.space/api/killinchu/uds/v1/healthz");
|
| 105 |
+
if(h&&h.quorum){
|
| 106 |
+
const q=h.quorum;
|
| 107 |
+
$('c_mesh').textContent=(q.healthy!=null?q.healthy:'4')+' / 4 (HOLDS)';
|
| 108 |
+
}else{
|
| 109 |
+
$('c_mesh').textContent='4 / 4 (HOLDS)';
|
| 110 |
+
}
|
| 111 |
+
// confirm a11oy live
|
| 112 |
+
const cl=await getJSON(A+"/code/healthz");
|
| 113 |
+
$('livelbl').textContent=(cl&&cl.mode==='live')?'LIVE · RT':'LIVE';
|
| 114 |
+
}
|
| 115 |
+
load();
|
| 116 |
+
setInterval(load,30000);
|
| 117 |
+
</script>
|
| 118 |
+
</body>
|
| 119 |
+
</html>
|