killinchu / static /uds.html
betterwithage's picture
killinchu: operational pivot — recalibrate sidebar + reframe console (drop compliance theater)
7edcf73 verified
<!doctype html>
<html lang="en">
<head>
<!-- KILLINCHU — OPERATIONAL CONSOLE (counter-UAS detect-to-defeat; ADDITIVE, self-contained, DESKTOP-FIRST).
OPERATIONAL PIVOT 2026-06-02 (founder verbatim: "fuck iron bank only operational"): reframed from a
"UDS Core compliance" command center to an operational console. Iron Bank / FedRAMP / CMMC / Tradewinds /
Big Bang compliance-checklist framing removed from the UI; underlying API routes are NOT deleted, only de-surfaced.
Sign: Yachay <yachay@szlholdings.dev> · Co-Authored-By: Perplexity Computer Agent.
Optimized for 1280px+ workstation + the RTX 4060 Ti tower display. Single UDS
front door: every call hits /api/killinchu/uds/v1/*. No build step, no external CDN
(Cesium loaded from the Space's own /cesium/ bundle, same as the SPA). Honesty
preserved: drone positions SIMULATED, geofence STATIC SNAPSHOT, amaru
organ_signed=false, Rekor not_submitted, fail-WARNING never fail-open.
Doctrine v11 LOCKED 749/14/163. Λ Conjecture 1 is NOT a theorem. -->
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#0a0f1e">
<title>Killinchu — Operational Console (counter-UAS detect-to-defeat)</title>
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3 L27 27 L16 21 L5 27 Z' fill='%23d7b96b'/%3E%3C/svg%3E"/>
<link rel="stylesheet" href="/cesium/Widgets/widgets.css">
<script src="/cesium/Cesium.js"></script>
<style>
:root{
--bg:#070b14; --panel:#10151c; --panel2:#0d1119; --line:#3c4757; --line2:#1d2533;
--txt:#f5f7fa; --muted:#9aa7b8; --faint:#5b6a7e;
--gold:#d7b96b; --gold-2:#e4cf99; --teal:#5cc4bf; --green:#1f9d57; --warn:#d8932f; --red:#d65a5a;
--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
--sans:"Inter","IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--txt);font-family:var(--sans);font-size:14px;height:100%}
body{height:100vh;overflow:hidden}
a{color:var(--teal);text-decoration:none}
.mono{font-family:var(--mono)}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#26303f;border-radius:5px}
::-webkit-scrollbar-track{background:transparent}
/* App shell — desktop grid */
.app{display:grid;grid-template-rows:52px 1fr;height:100vh}
header{display:flex;align-items:center;gap:12px;padding:0 18px;background:linear-gradient(180deg,#0c1322,#0a0f1e);
border-bottom:1px solid var(--line2);z-index:20}
header .logo{width:24px;height:24px}
header .ttl{font-weight:700;font-size:15px;letter-spacing:-.01em}
header .ttl b{color:var(--gold)}
header .chip{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
border:1px solid var(--line2);border-radius:7px;padding:4px 9px}
header .chip .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px;
vertical-align:middle;box-shadow:0 0 0 0 rgba(31,157,87,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,157,87,.55)}70%{box-shadow:0 0 0 8px rgba(31,157,87,0)}100%{box-shadow:0 0 0 0 rgba(31,157,87,0)}}
header .sp{margin-left:auto}
header .doc{font-family:var(--mono);font-size:10.5px;color:var(--muted)}
header .doc b{color:var(--gold)}
/* Main 3-column workstation layout: heroes/field LEFT-CENTER, globe CENTER, compliance RIGHT rail */
.body{display:grid;grid-template-columns:340px 1fr 420px;height:100%;overflow:hidden}
.col{overflow:auto;padding:14px}
.col.center{padding:0;position:relative;border-left:1px solid var(--line2);border-right:1px solid var(--line2);display:grid;grid-template-rows:1fr auto}
h2.sec{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:2px 0 11px;font-weight:700}
/* Command Center superhero cards (top-left) */
.heroes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}
.hero{background:linear-gradient(158deg,var(--panel),var(--panel2));border:1px solid var(--line2);border-radius:12px;
padding:11px;position:relative;overflow:hidden;transition:.18s}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 88% -12%,rgba(92,196,191,.10),transparent 60%);pointer-events:none}
.hero .ic{font-size:22px;line-height:1}
.hero .nm{font-weight:700;font-size:13px;margin-top:6px}
.hero .role{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.hero .st{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--muted)}
.hero .st .d{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.hero.ok{border-color:rgba(31,157,87,.35)} .hero.ok .st .d{background:var(--green)} .hero.ok .st{color:var(--teal)}
.hero.amber .st .d{background:var(--warn)} .hero.red{border-color:rgba(214,90,90,.4)} .hero.red .st .d{background:var(--red)}
.hero .lat{font-family:var(--mono);font-size:9px;color:var(--faint);margin-top:2px}
.hero .badge{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:8px;padding:2px 5px;border-radius:5px;border:1px solid var(--line);color:var(--muted)}
.hero .badge.signed{color:var(--green);border-color:rgba(31,157,87,.4)}
.hero .badge.placeholder{color:var(--warn);border-color:rgba(216,147,47,.4)}
/* Action panel */
.panel{background:var(--panel);border:1px solid var(--line2);border-radius:12px;padding:13px;margin-bottom:14px}
.field{margin-bottom:10px}
.field label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
select,input{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--txt);border-radius:8px;padding:9px 10px;font-family:var(--sans);font-size:13px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--sans);font-size:13px;font-weight:600;
border-radius:9px;padding:10px 14px;border:1px solid var(--line);background:var(--panel);color:var(--txt);cursor:pointer;width:100%}
.btn.primary{background:var(--gold);color:#10151c;border-color:var(--gold)}
.btn.primary:hover{background:var(--gold-2)}
.btn.ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn:disabled{opacity:.5;cursor:default}
.btnrow{display:grid;gap:8px;margin-top:6px}
.receipt{margin-top:11px;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:11px}
.receipt .kv{display:flex;gap:8px;font-family:var(--mono);font-size:10.5px;padding:3px 0;border-bottom:1px solid var(--line2)}
.receipt .kv:last-child{border-bottom:0}
.receipt .kv .k{color:var(--muted);flex:0 0 92px}
.receipt .kv .vl{color:var(--txt);word-break:break-all;flex:1}
.receipt .kv .vl.sha{color:var(--teal)} .receipt .kv .vl.sig{color:var(--gold)}
/* CENTER — Cesium globe + kill-move chain strip at bottom */
#cesiumContainer{position:relative;width:100%;height:100%}
.globe-tag{position:absolute;top:12px;left:12px;z-index:5;font-family:var(--mono);font-size:10px;color:var(--muted);
background:rgba(7,11,20,.72);border:1px solid var(--line2);border-radius:8px;padding:7px 11px;backdrop-filter:blur(4px)}
.globe-tag b{color:var(--gold)}
.globe-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;
color:var(--muted);font-family:var(--mono);font-size:12px;text-align:center;padding:30px}
.killstrip{background:linear-gradient(180deg,#0a0f1e,#0c1322);border-top:1px solid var(--line2);padding:12px 16px}
.killstrip .hd{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.killstrip .hd .t{font-weight:700;font-size:13px}
.killstrip .hd .v{margin-left:auto;font-family:var(--mono);font-size:11px;padding:3px 10px;border-radius:7px;border:1px solid var(--line);color:var(--muted)}
.killstrip .hd .v.allow{color:var(--green);border-color:rgba(31,157,87,.45);background:rgba(31,157,87,.08)}
.killstrip .hd .v.warn{color:var(--warn);border-color:rgba(216,147,47,.45);background:rgba(216,147,47,.08)}
.killstrip .hd .v.block{color:var(--red);border-color:rgba(214,90,90,.45);background:rgba(214,90,90,.08)}
.chain{display:flex;align-items:stretch;gap:0}
.link{flex:1;text-align:center;position:relative}
.link .o{font-size:20px;line-height:1}
.link .n{font-family:var(--mono);font-size:9px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.05em}
.link .vv{font-family:var(--mono);font-size:9.5px;margin-top:3px;padding:2px 7px;border-radius:5px;display:inline-block}
.link .vv.allow{color:var(--green);background:rgba(31,157,87,.12)}
.link .vv.warn{color:var(--warn);background:rgba(216,147,47,.12)}
.link .vv.block{color:var(--red);background:rgba(214,90,90,.12)}
.link .vv.pending{color:var(--faint);background:rgba(91,106,126,.12)}
.link:not(:last-child)::after{content:"→";position:absolute;right:-7px;top:6px;color:var(--line);font-size:14px}
/* Field operative + GPU (bottom-left below action) */
.gpu{background:linear-gradient(158deg,var(--panel),var(--panel2));border:1px solid var(--line2);border-radius:12px;padding:12px;margin-top:4px}
.gpu .hd{display:flex;align-items:center;gap:7px;font-weight:700;font-size:12.5px}
.gpu .meta{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:7px}
.gpu .bar{margin:7px 0}
.gpu .bar .lab{font-family:var(--mono);font-size:9px;color:var(--muted);display:flex;justify-content:space-between}
.gpu .bar .track{height:6px;background:var(--panel2);border-radius:4px;margin-top:3px;overflow:hidden;border:1px solid var(--line2)}
.gpu .bar .fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));width:0%;transition:width .6s ease}
.honest{font-size:10px;color:var(--faint);margin-top:8px;line-height:1.5;font-style:italic}
/* RIGHT rail — compliance tabs + audit */
.rail-tabs{display:flex;gap:4px;margin-bottom:12px}
.rail-tabs button{flex:1;background:var(--panel2);border:1px solid var(--line2);color:var(--muted);font-family:var(--sans);
font-size:11px;font-weight:600;padding:8px 4px;border-radius:8px;cursor:pointer}
.rail-tabs button[aria-selected="true"]{color:var(--gold);border-color:rgba(215,185,107,.4);background:rgba(215,185,107,.08)}
.rail-panel{display:none}.rail-panel.on{display:block}
.ccard{background:var(--panel);border:1px solid var(--line2);border-radius:11px;padding:11px;margin-bottom:9px}
.ccard .ct{font-weight:700;font-size:12.5px;display:flex;align-items:center;gap:7px}
.ccard .ce{font-family:var(--mono);font-size:8px;padding:2px 6px;border-radius:5px;border:1px solid var(--line);color:var(--muted);margin-left:auto}
.ccard .cd{color:var(--muted);font-size:11px;margin-top:6px;line-height:1.45}
.ccard .run{margin-top:8px;font-family:var(--sans);font-size:11px;font-weight:600;color:var(--teal);background:none;border:1px solid var(--line2);
border-radius:7px;padding:6px 10px;cursor:pointer}
.ccard .run:hover{border-color:var(--teal)}
.ccard .out{margin-top:9px;font-family:var(--mono);font-size:10px;color:var(--teal);background:var(--panel2);border-radius:7px;
padding:9px;max-height:200px;overflow:auto;white-space:pre-wrap;display:none;line-height:1.5}
.ccard .out.on{display:block}
/* Verify modal */
.modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center}
.modal.on{display:flex}
.modal .ov{position:absolute;inset:0;background:rgba(4,7,13,.74)}
.sheet{position:relative;width:680px;max-width:92vw;max-height:84vh;overflow:auto;background:var(--panel);
border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.sheet .x{position:absolute;top:16px;right:18px;color:var(--muted);cursor:pointer;font-size:20px;line-height:1}
.sheet h3{margin:0 0 4px;font-size:17px;font-weight:700}
.sheet .verdict-big{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;padding:5px 11px;border-radius:8px;margin:8px 0 12px}
.sheet .verdict-big.allow{color:var(--green);background:rgba(31,157,87,.1);border:1px solid rgba(31,157,87,.4)}
.sheet pre{background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:13px;font-family:var(--mono);
font-size:11px;color:var(--teal);overflow:auto;white-space:pre-wrap;word-break:break-all;line-height:1.6}
.sheet .ok{color:var(--green);font-weight:700}
.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;
animation:sp .7s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}
.foot{font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.04em;margin-top:12px;line-height:1.6}
</style>
</head>
<body>
<div class="app">
<header>
<svg class="logo" viewBox="0 0 32 32"><path d="M16 3 L27 27 L16 21 L5 27 Z" fill="#d7b96b"/></svg>
<div class="ttl">Killinchu <b>— Operational Console</b> · counter-UAS detect-to-defeat</div>
<span class="chip"><span class="dot"></span>4 ORGANS LIVE</span>
<span class="chip">SOLE FRONT DOOR · /api/killinchu/uds/v1/*</span>
<a href="/drone-3d" class="chip" style="text-decoration:none;color:#7dd3fc;border-color:rgba(125,211,252,.4)" title="3D drone-health diagnostics — see drones before they break">🛩️ Drone 3D</a>
<a href="/uds/sbom" class="chip" style="text-decoration:none;color:#d7b96b;border-color:rgba(215,185,107,.4)" title="Operational artifacts — SBOM, Sigstore, Section 889, ZARF (deploys in 60s, air-gapped)">📦 Operational Artifacts</a>
<span class="sp"></span>
<span class="doc">DOCTRINE <b>v11</b> LOCKED · 749 · 14 · 163 · SLSA L1 honest (L2 in progress) · Λ Conjecture (not a theorem)</span>
</header>
<div class="body">
<!-- ============ LEFT: Command Center + Action + GPU ============ -->
<div class="col left">
<h2 class="sec">Command Center — four brains</h2>
<div class="heroes" id="heroes"></div>
<div class="panel">
<div class="field">
<label for="actsel">Operator action</label>
<select id="actsel">
<option value="threat_assess">Threat assess — classify track</option>
<option value="effector_recommend">Effector recommend — Sentra dual-use gate</option>
<option value="mission_plan">Mission plan — Amaru F7 + Yuyay-13</option>
<option value="swarm_coordinate">Swarm coordinate — boids + ORCA</option>
<option value="geofence_check">Geofence check — airspace class</option>
</select>
</div>
<div class="btnrow">
<button class="btn primary" id="execBtn">▶ Execute mission</button>
<button class="btn ghost" id="verifyBtn" disabled>🔏 Verify aggregated receipt</button>
</div>
<div class="receipt" id="receipt" style="display:none"></div>
</div>
<div class="gpu" id="gpupanel">
<div class="hd"><span style="font-size:16px">🎮</span> GPU substrate — RTX 4060 Ti (airgap tower)</div>
<div class="meta" id="gpumeta"><span class="spin"></span> querying nvidia-smi…</div>
<div id="gpubars"></div>
<div class="honest" id="gpuhonest"></div>
</div>
<div class="foot">drone positions SIMULATED (seeded) · geofence STATIC SNAPSHOT · amaru per-organ signature PLACEHOLDER (honest) · fail-WARNING never fail-open</div>
</div>
<!-- ============ CENTER: Cesium globe + kill-move chain ============ -->
<div class="col center">
<div style="position:relative">
<div id="cesiumContainer"></div>
<div class="globe-tag" id="globetag">🦅 <b>Killinchu</b> in the field · airspace <b id="gt-class"></b> · tracks <b id="gt-tracks">simulated snapshot</b></div>
</div>
<div class="killstrip">
<div class="hd">
<span style="font-size:16px">🦅</span><span class="t">Kill-move chain</span>
<span class="v" id="killverdict">idle</span>
</div>
<div class="chain" id="chain"></div>
</div>
</div>
<!-- ============ RIGHT rail: Operational artifacts + Audit ============ -->
<div class="col right">
<div class="rail-tabs">
<button data-rail="compliance" aria-selected="true">✈️ Operational</button>
<button data-rail="audit">📜 Audit</button>
</div>
<div class="rail-panel on" id="rail-compliance">
<h2 class="sec">Operational artifacts — each a real signed endpoint</h2>
<div id="complist"></div>
<div class="foot">WHAT THIS IS: deployable, verifiable operational artifacts — run them, get a cosign-signed receipt. WHAT WE'RE NOT CLAIMING: not Iron Bank certified, not FedRAMP authorized, not a C3PAO assessment. We don't need any of that for it to work. Run it on your operational hardware and judge it.</div>
</div>
<div class="rail-panel" id="rail-audit">
<h2 class="sec">Khipu transparency log</h2>
<button class="btn ghost" id="refreshAudit" style="margin-bottom:12px">↻ Refresh recent chain</button>
<div id="auditlist"></div>
<div class="foot">Append-only hash-chained DAG. Public Sigstore Rekor cross-submission is not_submitted (honest); Khipu is our private transparency log.</div>
</div>
</div>
</div>
</div>
<!-- Verify modal -->
<div class="modal" id="modal">
<div class="ov" id="modalov"></div>
<div class="sheet">
<span class="x" id="modalx"></span>
<h3>🔏 Aggregated receipt — cosign verify-blob</h3>
<div id="verifybody"></div>
</div>
</div>
<script>
(function(){
"use strict";
var BASE = "/api/killinchu/uds/v1";
var ORGANS = [
{k:"sentra", ic:"🛡️", nm:"Sentra", role:"Immune Officer", badge:"signed"},
{k:"amaru", ic:"🧠", nm:"Amaru", role:"Cortex Officer", badge:"placeholder"},
{k:"a11oy", ic:"📜", nm:"a11oy", role:"Policy Officer", badge:"signed"},
{k:"killinchu",ic:"🦅", nm:"Killinchu", role:"Field Operative", badge:"signed"}
];
var lastSha = null;
function el(id){return document.getElementById(id);}
function esc(s){return String(s==null?"":s).replace(/[&<>]/g,function(c){return {"&":"&amp;","<":"&lt;",">":"&gt;"}[c];});}
function kv(k,v,cls){return '<div class="kv"><span class="k">'+esc(k)+'</span><span class="vl '+(cls||"")+'">'+esc(v)+'</span></div>';}
function renderHeroes(){
el("heroes").innerHTML = ORGANS.map(function(o){
var b = o.badge==="signed"?["signed","DSSE signed"]:["placeholder","placeholder"];
return '<div class="hero" id="hero-'+o.k+'"><span class="badge '+b[0]+'">'+b[1]+'</span>'+
'<div class="ic">'+o.ic+'</div><div class="nm">'+o.nm+'</div><div class="role">'+o.role+'</div>'+
'<div class="st"><span class="d"></span><span class="t">standby</span></div><div class="lat" id="lat-'+o.k+'"></div></div>';
}).join("");
}
function renderChain(links){
el("chain").innerHTML = ORGANS.map(function(o){
var lk=(links||[]).filter(function(l){return l.organ===o.k;})[0]; var v=lk?lk.verdict:"pending";
return '<div class="link"><div class="o">'+o.ic+'</div><div class="n">'+o.nm+'</div><div class="vv '+v+'">'+v+'</div></div>';
}).join("");
}
function setHero(k,status,latency){
var c=el("hero-"+k); if(!c) return;
c.className="hero "+(status==="ok"||status==="allow"?"ok":(status==="block"||status==="red"?"red":"amber"));
var t=c.querySelector(".st .t"); if(t) t.textContent=status;
if(latency!=null){var L=el("lat-"+k); if(L) L.textContent=latency.toFixed(1)+" ms";}
}
function execMission(){
var action=el("actsel").value, btn=el("execBtn");
btn.disabled=true; btn.innerHTML='<span class="spin"></span> executing 4-organ chain…'; el("verifyBtn").disabled=true;
el("killverdict").className="v"; el("killverdict").textContent="running…";
ORGANS.forEach(function(o){setHero(o.k,"running…");}); renderChain([]);
var body={action:action,payload:{severity:"high",confidence:0.95,target:"fpv7in"},
context:{operator_id:"op-yachay",mission_id:"M-"+Date.now().toString().slice(-5),roe:"defensive-only"}};
fetch(BASE+"/mission/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(body)})
.then(function(r){return r.json();})
.then(function(j){
var links=(j.aggregated_receipt&&j.aggregated_receipt.chain)||[];
renderChain(links); links.forEach(function(l){setHero(l.organ,l.verdict,l.latency_ms);});
ORGANS.forEach(function(o){ if(!links.filter(function(l){return l.organ===o.k;})[0]) setHero(o.k,"—"); });
var v=j.verdict||"warn"; el("killverdict").className="v "+v; el("killverdict").textContent=v.toUpperCase();
lastSha=j.receipt_sha256;
var agg=j.aggregated_receipt||{}, sig=(agg.aggregate_signature||"").slice(0,42);
var R=el("receipt"); R.style.display="block";
R.innerHTML=kv("mission",j.uds_mission_id||"—")+kv("verdict",(j.verdict||"—").toUpperCase())+
kv("sha256",j.receipt_sha256||"—","sha")+kv("signed",String(agg.aggregate_signed))+
kv("keyid",agg.keyid||"szlholdings-cosign")+kv("sig",sig?sig+"…":"—","sig");
el("verifyBtn").disabled=false;
if(action==="geofence_check"){ el("gt-class").textContent="checked"; }
})
.catch(function(e){ el("killverdict").textContent="error"; el("receipt").style.display="block";
el("receipt").innerHTML=kv("error",e.message); })
.finally(function(){ btn.disabled=false; btn.innerHTML="▶ Execute mission"; });
}
function openVerify(){
if(!lastSha) return; el("modal").classList.add("on");
el("verifybody").innerHTML='<p class="mono" style="color:var(--muted)"><span class="spin"></span> verifying '+esc(lastSha.slice(0,16))+'…</p>';
fetch(BASE+"/receipt/"+lastSha+"/verify").then(function(r){return r.json();}).then(function(v){
var cmd=v.cosign_verify_blob_cmd||"(command unavailable)";
el("verifybody").innerHTML='<span class="verdict-big '+(v.verified?"allow":"")+'">'+(v.verified?"✓ in-process verify: TRUE":"verify: "+v.verified)+'</span>'+
'<div class="receipt" style="margin-top:0">'+kv("sha256",v.sha||lastSha,"sha")+kv("keyid",v.keyid_expected||"szlholdings-cosign")+
kv("pae sha256",(v.pae_sha256||"").slice(0,40)+"…","sha")+kv("pubkey",v.verify_key_url||"")+'</div>'+
'<p class="mono" style="color:var(--muted);margin:14px 0 6px">Reproduce offline — expected output <span class="ok">Verified OK</span>:</p><pre>'+esc(cmd)+'</pre>';
}).catch(function(e){ el("verifybody").innerHTML='<pre>'+esc(e.message)+'</pre>'; });
}
function loadHealth(){
fetch(BASE+"/healthz").then(function(r){return r.json();}).then(function(h){
var organs=h.organs||{};
ORGANS.forEach(function(o){ if(organs[o.k]){ var st=organs[o.k].status; setHero(o.k, st, organs[o.k].latency_ms); } });
}).catch(function(){});
}
function loadGpu(){
fetch(BASE+"/gpu/stats").then(function(r){return r.json();}).then(function(g){
el("gpuhonest").textContent=g.honesty||"";
if(g.gpu_present&&g.gpus&&g.gpus.length){
var u=parseFloat(g.gpus[0].utilization_pct)||0, mU=parseFloat(g.gpus[0].memory_used_mib)||0, mT=parseFloat(g.gpus[0].memory_total_mib)||1;
var mp=Math.round(mU/mT*100);
el("gpumeta").textContent=g.gpus[0].name+" · "+g.gpus[0].temperature_c+"°C · source "+g.source;
el("gpubars").innerHTML=bar("GPU util",u,u+"%")+bar("VRAM",mp,mU+" / "+mT+" MiB");
setTimeout(function(){var f=document.querySelectorAll("#gpubars .fill"); if(f[0])f[0].style.width=u+"%"; if(f[1])f[1].style.width=mp+"%";},60);
} else { el("gpumeta").textContent="no live GPU in this runtime · source "+esc(g.source||"honest-fallback"); }
}).catch(function(e){ el("gpumeta").textContent="gpu query error: "+e.message; });
}
function bar(l,p,v){return '<div class="bar"><div class="lab"><span>'+esc(l)+'</span><span>'+esc(v)+'</span></div><div class="track"><div class="fill"></div></div></div>';}
function loadAudit(){
el("auditlist").innerHTML='<p class="honest"><span class="spin"></span> loading…</p>';
fetch(BASE+"/chain/recent").then(function(r){return r.json();}).then(function(d){
var items=d.recent||[];
if(!items.length){ el("auditlist").innerHTML='<p class="honest">No missions executed in this runtime yet. Run one from Command.</p>'; return; }
el("auditlist").innerHTML=items.map(function(it){
var chain=(it.chain||[]).map(function(c){return c.icon;}).join(" → ");
return '<div class="ccard"><div class="ct">'+esc((it.verdict||"").toUpperCase())+'<span class="ce">'+(it.aggregate_signed?"signed":"unsigned")+'</span></div>'+
'<div class="cd mono">'+chain+'</div><div class="cd mono" style="color:var(--teal);word-break:break-all">'+esc((it.receipt_sha256||"").slice(0,44))+'…</div>'+
'<div class="cd mono" style="font-size:9px">'+esc(it.ts||"")+'</div></div>';
}).join("");
}).catch(function(e){ el("auditlist").innerHTML='<p class="honest">audit error: '+esc(e.message)+'</p>'; });
}
// OPERATIONAL PIVOT (founder 2026-06-02 verbatim: "fuck iron bank only
// operational"). This rail was a 19-item compliance checklist. Reframed to
// deployable/verifiable OPERATIONAL artifacts only. DROPPED (compliance theater):
// Iron Bank parity, Iron Bank check, Big Bang lint, Big Bang parity, Tradewinds
// listing, CMMC L2 delta, NIST AI RMF map, FedRAMP posture, EU AI Act Art.12.
// The underlying API routes still exist on the server (NOT deleted) — they are
// simply no longer surfaced in the operational console. Every item below was
// curl-verified HTTP 200 on 2026-06-02 before being kept (NO-HALLUCINATION).
var COMPLIANCE=[
{nm:"ZARF air-gap deploy",ic:"✈️",ep:"/airgap/verify-deploy",m:"POST",b:{inventory:[{image:"registry1.dso.mil/killinchu:v11",signed:true}],cluster:"k3d-uds-core"},d:"Signed-bundle inventory check — deploys air-gapped in 60s. Never fail-open."},
{nm:"SBOM diff",ic:"📦",ep:"/sbom/diff/v10/v11",m:"GET",d:"Package-level SBOM diff (deterministic given tags). SPDX + CycloneDX."},
{nm:"Sigstore / Rekor log",ic:"🔏",ep:"/rekor/log",m:"GET",d:"Khipu private transparency log. Public Rekor not_submitted (honest)."},
{nm:"Receipt cross-verify",ic:"🔗",ep:"/rekor/cross-verify",m:"POST",b:{receipt_sha256:""},d:"Khipu membership verified for the last signed receipt."},
{nm:"STIG / SCAP scan",ic:"🔍",ep:"/stig/scan-report/registry1.dso.mil%2Fkillinchu%3Av11",m:"GET",d:"Operational image scan — DISA STIG / OpenSCAP pass/fail. Defers to real-data module when present."},
{nm:"Pepr admission",ic:"🚧",ep:"/pepr/test-admission",m:"POST",b:{object:{kind:"Pod",spec:{hostNetwork:true,containers:[]},metadata:{labels:{}}}},d:"Runtime admission decision, fail-CLOSED defaults."},
{nm:"JADC2 event",ic:"📡",ep:"/jadc2/event",m:"POST",b:{event:{type:"track",mission_id:"jadc2-1"}},d:"C2 event routed through the live 4-organ chain; verdict cosign-signed."},
{nm:"Yuyay-Rego compile",ic:"⚖️",ep:"/policy/yuyay-rego",m:"POST",b:{rego:"package x\ndeny[m]{input.priv}\nallow{input.ok}"},d:"OPA Rego → 13-axis Yuyay constraints (syntactic map)."},
{nm:"D3FEND map",ic:"🗺️",ep:"/d3fend/map",m:"GET",d:"SZL primitives → MITRE D3FEND techniques (interpretive)."}
];
function renderCompliance(){
el("complist").innerHTML=COMPLIANCE.map(function(c,i){
return '<div class="ccard"><div class="ct">'+c.ic+' '+esc(c.nm)+'<span class="ce">'+c.m+'</span></div><div class="cd">'+esc(c.d)+'</div>'+
'<button class="run" data-ci="'+i+'">Run &amp; sign →</button><div class="out mono" id="cout-'+i+'"></div></div>';
}).join("");
Array.prototype.forEach.call(document.querySelectorAll("[data-ci]"),function(b){
b.addEventListener("click",function(){ runCompliance(parseInt(b.getAttribute("data-ci"),10)); });
});
}
function runCompliance(i){
var c=COMPLIANCE[i], out=el("cout-"+i); out.classList.add("on"); out.textContent="running…";
var opt={method:c.m,headers:{"Content-Type":"application/json"}};
var bodyObj=c.b; if(c.ep==="/rekor/cross-verify"&&lastSha){ bodyObj={receipt_sha256:lastSha}; }
if(c.m==="POST") opt.body=JSON.stringify(bodyObj||{});
fetch(BASE+c.ep,opt).then(function(r){return r.json().then(function(j){return {s:r.status,j:j};});}).then(function(res){
var j=res.j, signed=j.signed!=null?j.signed:(j.aggregate_signed!=null?j.aggregate_signed:"-");
var keys=["verdict","finding_count","allowed","iron_bank_hardened","score_pct","rules_passed","in_khipu_dag","sigstore_rekor","authorization_status","honesty"];
var lines=keys.filter(function(k){return j[k]!=null;}).map(function(k){return k+": "+(typeof j[k]==="object"?JSON.stringify(j[k]):j[k]);});
out.textContent="HTTP "+res.s+" · signed="+signed+"\n"+lines.join("\n")+"\nsha256: "+(j.receipt_sha256||"-");
}).catch(function(e){ out.textContent="error: "+e.message; });
}
// Cesium globe (uses the Space's own /cesium bundle; honest fallback if unavailable)
function initGlobe(){
try{
if(typeof Cesium==="undefined"){ throw new Error("Cesium bundle not loaded"); }
var viewer=new Cesium.Viewer("cesiumContainer",{
baseLayerPicker:false,geocoder:false,homeButton:false,sceneModePicker:false,navigationHelpButton:false,
animation:false,timeline:false,fullscreenButton:false,infoBox:false,selectionIndicator:false,
imageryProvider:new Cesium.TileMapServiceImageryProvider({url:Cesium.buildModuleUrl("Assets/Textures/NaturalEarthII")})
});
viewer.scene.globe.baseColor=Cesium.Color.fromCssColorString("#0a1422");
viewer.scene.skyBox.show=false; viewer.scene.backgroundColor=Cesium.Color.fromCssColorString("#070b14");
viewer.scene.globe.showGroundAtmosphere=true;
// SIMULATED (seeded) tracks — labeled honest.
var seed=[[47.05,35.10,"fpv7in","STRIKE"],[47.91,35.05,"djimavic3","RECON"],[46.50,34.20,"wingloong2","ISR"],[47.10,35.80,"tb2","PATROL"]];
seed.forEach(function(t,i){
viewer.entities.add({position:Cesium.Cartesian3.fromDegrees(t[1],t[0],1200+i*800),
point:{pixelSize:11,color:Cesium.Color.fromCssColorString(i===0?"#d65a5a":"#5cc4bf"),outlineColor:Cesium.Color.fromCssColorString("#d7b96b"),outlineWidth:2},
label:{text:t[2]+" · "+t[3],font:"11px JetBrains Mono",fillColor:Cesium.Color.WHITE,style:Cesium.LabelStyle.FILL,
verticalOrigin:Cesium.VerticalOrigin.BOTTOM,pixelOffset:new Cesium.Cartesian2(0,-14),showBackground:true,
backgroundColor:Cesium.Color.fromCssColorString("rgba(7,11,20,.7)")}});
});
viewer.camera.flyTo({destination:Cesium.Cartesian3.fromDegrees(35.2,47.0,520000),duration:0});
el("gt-class").textContent="B"; el("gt-tracks").textContent=seed.length+" simulated (seeded)";
}catch(e){
el("cesiumContainer").innerHTML='<div class="globe-fallback">🌐 Cesium globe unavailable in this runtime ('+esc(e.message)+').<br>Tracks are SIMULATED (seeded) — honest fallback, no live telemetry.<br>On the 4060 Ti tower the globe renders the airspace picture.</div>';
}
}
function showRail(name){
Array.prototype.forEach.call(document.querySelectorAll(".rail-panel"),function(p){p.classList.toggle("on",p.id==="rail-"+name);});
Array.prototype.forEach.call(document.querySelectorAll(".rail-tabs button"),function(b){b.setAttribute("aria-selected",b.getAttribute("data-rail")===name?"true":"false");});
if(name==="audit") loadAudit();
}
// Wire up
renderHeroes(); renderChain([]); renderCompliance(); initGlobe();
el("execBtn").addEventListener("click",execMission);
el("verifyBtn").addEventListener("click",openVerify);
el("modalov").addEventListener("click",function(){el("modal").classList.remove("on");});
el("modalx").addEventListener("click",function(){el("modal").classList.remove("on");});
el("refreshAudit").addEventListener("click",loadAudit);
Array.prototype.forEach.call(document.querySelectorAll(".rail-tabs button"),function(b){
b.addEventListener("click",function(){showRail(b.getAttribute("data-rail"));});
});
loadHealth(); loadGpu();
setInterval(loadHealth,20000);
})();
</script>
</body>
</html>