Spaces:
Running
Running
deploy(hf): sync szl-holdings/killinchu@main derived COPY set
Browse filesReusable Dockerfile-COPY-derived deploy from szl-holdings/killinchu main.
Files: 880 Pruned: 0
Derived from Dockerfile COPY sources (NO hand-maintained allowlist).
Signed-off-by: SZL Holdings <noreply@szlholdings.ai>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- cathedral.html +2 -2
- killinchu_elite_console.py +13 -8
- static/landing.html +1 -1
- static/navy.html +6 -6
- static/uds-compliance.html +27 -27
- static/uds.html +6 -6
cathedral.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
Field node (killinchu, edge) tethered to the a11oy brain-sun upstream.
|
| 5 |
Sovereign: Three.js r160 (MIT) VENDORED under /static/vendor3d, NO CDN.
|
| 6 |
Honesty: locked proven = 8 {F1,F4,F7,F11,F12,F18,F19,F22}; experimental main 1304/22; Λ = Conjecture 1;
|
| 7 |
-
Trust Gate = Conjecture; SLSA L1 honest
|
| 8 |
"Enter Field Console" -> /elite (Counter-UAS Governance command deck).
|
| 9 |
Vessels CONSOLIDATED into killinchu (/elite fleet group).
|
| 10 |
Signed-off-by: Stephen P. Lutar Jr. <stephenlutar2@gmail.com>
|
|
@@ -90,7 +90,7 @@ html,body{margin:0;height:100%;background:var(--indigo-900);overflow:hidden;colo
|
|
| 90 |
<div class="title">killinchu · Maritime + Drone C2 (Field Node)</div>
|
| 91 |
<div class="line">Doctrine <b>v11 LOCKED</b> · <b>749/14/163</b> · <span class="sha">c7c0ba17</span></div>
|
| 92 |
<div class="line" style="margin-top:5px">Λ = <b>Conjecture 1</b> · Trust Gate = <b>Conjecture</b> · locked proven <b>8</b> {F1,F4,F7,F11,F12,F18,F19,F22}</div>
|
| 93 |
-
<div class="line" style="margin-top:5px">Vessels <b>consolidated</b> into killinchu (/elite) · /wave910 (6 cards) · SLSA <b>L1 honest
|
| 94 |
<div class="line" style="margin-top:5px;color:var(--ink-dim)">Field node (edge) tethered to the a11oy substrate upstream</div>
|
| 95 |
</div>
|
| 96 |
|
|
|
|
| 4 |
Field node (killinchu, edge) tethered to the a11oy brain-sun upstream.
|
| 5 |
Sovereign: Three.js r160 (MIT) VENDORED under /static/vendor3d, NO CDN.
|
| 6 |
Honesty: locked proven = 8 {F1,F4,F7,F11,F12,F18,F19,F22}; experimental main 1304/22; Λ = Conjecture 1;
|
| 7 |
+
Trust Gate = Conjecture; SLSA L1 honest · L2 attested · L3 roadmap. Live /healthz + ledger.
|
| 8 |
"Enter Field Console" -> /elite (Counter-UAS Governance command deck).
|
| 9 |
Vessels CONSOLIDATED into killinchu (/elite fleet group).
|
| 10 |
Signed-off-by: Stephen P. Lutar Jr. <stephenlutar2@gmail.com>
|
|
|
|
| 90 |
<div class="title">killinchu · Maritime + Drone C2 (Field Node)</div>
|
| 91 |
<div class="line">Doctrine <b>v11 LOCKED</b> · <b>749/14/163</b> · <span class="sha">c7c0ba17</span></div>
|
| 92 |
<div class="line" style="margin-top:5px">Λ = <b>Conjecture 1</b> · Trust Gate = <b>Conjecture</b> · locked proven <b>8</b> {F1,F4,F7,F11,F12,F18,F19,F22}</div>
|
| 93 |
+
<div class="line" style="margin-top:5px">Vessels <b>consolidated</b> into killinchu (/elite) · /wave910 (6 cards) · SLSA <b>L1 honest · L2 attested · L3 roadmap</b></div>
|
| 94 |
<div class="line" style="margin-top:5px;color:var(--ink-dim)">Field node (edge) tethered to the a11oy substrate upstream</div>
|
| 95 |
</div>
|
| 96 |
|
killinchu_elite_console.py
CHANGED
|
@@ -371,11 +371,15 @@ __all__ = ["register"]
|
|
| 371 |
# ===========================================================================
|
| 372 |
_CEO_OVERLAY_HTML = r"""<!-- __SZL_CEO_OVERLAY__ : light CEO/investor overlay (additive, 0-CDN) -->
|
| 373 |
<style>
|
| 374 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 375 |
font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
|
| 376 |
-
padding:11px 16px;min-height:44px;border-radius:10px;border:1px solid rgba(201,183,135,.45);
|
| 377 |
background:rgba(201,183,135,.12);color:#d6c69a;cursor:pointer;backdrop-filter:blur(8px);
|
| 378 |
-
box-shadow:0 8px 26px -10px rgba(0,0,0,.7);}
|
| 379 |
#szl-ceo-fab:hover{background:rgba(201,183,135,.2);border-color:rgba(201,183,135,.7);}
|
| 380 |
#szl-ceo-fab .dot{width:8px;height:8px;border-radius:50%;background:#5fb3a3;box-shadow:0 0 0 3px rgba(95,179,163,.18);}
|
| 381 |
#szl-ceo{position:fixed;inset:0;z-index:2147483001;display:none;overflow-y:auto;
|
|
@@ -881,7 +885,8 @@ a{color:inherit;text-decoration:none;}
|
|
| 881 |
.nav-group[data-demo-sec]:focus-visible{outline:1px solid var(--teal-line,#2c5d52);outline-offset:2px;}
|
| 882 |
.nav-item.demo-hidden,.nav-group.demo-hidden,.exp-fence-note.demo-hidden{display:none!important;}
|
| 883 |
.exp-fence-note{margin:.15rem .5rem .35rem;padding:.45rem .55rem;font-family:var(--mono);font-size:9px;line-height:1.55;color:#caa84b;background:rgba(202,168,75,.06);border:1px dashed rgba(202,168,75,.35);border-radius:6px;letter-spacing:.04em;}
|
| 884 |
-
.side-foot{margin-top:1.2rem;padding:.
|
|
|
|
| 885 |
|
| 886 |
/* ===== CONTENT ===== */
|
| 887 |
.content{padding:1.1rem 1.6rem 2rem;overflow-y:auto;overflow-x:hidden;height:100%;min-height:0;-webkit-overflow-scrolling:touch;}
|
|
@@ -1201,7 +1206,7 @@ details.raw{margin-top:1rem;} details.raw summary{cursor:pointer;font-family:var
|
|
| 1201 |
9-11.5px on desktop by design; bumped to a readable 12px floor on mobile. */
|
| 1202 |
.nav-group{font-size:12px!important;letter-spacing:.12em;}
|
| 1203 |
.brand .role{font-size:12px!important;} /* small but >=11; brand sub */
|
| 1204 |
-
.side-foot{font-size:12px!important;line-height:1.
|
| 1205 |
.kpi .k{font-size:12px!important;letter-spacing:.1em;}
|
| 1206 |
.kpi .d{font-size:12px!important;}
|
| 1207 |
.view-badge{font-size:12px!important;}
|
|
@@ -4930,8 +4935,8 @@ cosign verify-blob --key cosign.pub --signature sig.b64 payload.bin</pre></div>
|
|
| 4930 |
<div class="kpi"><div class="k">Declarations</div><div class="v teal" id="me-dag">\u2014</div><div class="d">v11 kernel</div></div></div>
|
| 4931 |
<div class="grid2">
|
| 4932 |
<div class="card"><div class="card-h"><span class="card-t">${liveDot()}Golden metric \u2014 telemetry latency by service</span><span class="card-ep">live \u00b7 auto-refresh 8s</span></div><div class="echart" id="me-lat"></div></div>
|
| 4933 |
-
<div class="card"><div class="card-h"><span class="card-t">
|
| 4934 |
-
<div id="me-stream" style="max-height:300px;overflow:auto"><div class="row mono dim">
|
| 4935 |
</div>
|
| 4936 |
<div class="card" id="me-drill"><div class="row mono dim">Click any span in the stream to drill into it \u2014 its service, traceparent and its span receipt (DSSE-signed when a cosign key is armed, else UNSIGNED-honest) land here.</div></div>${HONEST}`;window.melt_load();}},
|
| 4937 |
|
|
@@ -7143,7 +7148,7 @@ async function melt_load(){
|
|
| 7143 |
var sid=(++window._meSeq);
|
| 7144 |
var span={id:sid,ts:nowts(),svc:svc.id,svcName:svc.name,model:(trk.model||'track'),status:(trk.status||'telemetry'),lat:svc._lat||0,tp:'00-'+Math.random().toString(16).slice(2,18)+'-'+Math.random().toString(16).slice(2,10)+'-01'};
|
| 7145 |
window._meSpans[sid]=span;
|
| 7146 |
-
var line='<div class="row me-span" data-svc="'+esc(span.svc)+'" style="cursor:pointer;animation:pulse 1.2s 1" onclick="window.melt_drill('+sid+')"><span class="badge b-
|
| 7147 |
ev.insertAdjacentHTML('afterbegin',line);
|
| 7148 |
while(ev.children.length>40) ev.removeChild(ev.lastChild);
|
| 7149 |
melt_apply_filter();
|
|
|
|
| 371 |
# ===========================================================================
|
| 372 |
_CEO_OVERLAY_HTML = r"""<!-- __SZL_CEO_OVERLAY__ : light CEO/investor overlay (additive, 0-CDN) -->
|
| 373 |
<style>
|
| 374 |
+
/* Investor pill stacks ABOVE the floating reliability/Chaski orb badge so the two
|
| 375 |
+
never overlap or clip the circular FAB at 1280-1920px. Both share the bottom-right
|
| 376 |
+
corner; the pill sits one row up (safe-area aware), max-width capped to viewport. */
|
| 377 |
+
#szl-ceo-fab{position:fixed;right:calc(env(safe-area-inset-right,0px) + 16px);
|
| 378 |
+
bottom:calc(env(safe-area-inset-bottom,0px) + 74px);z-index:2147483000;display:inline-flex;align-items:center;gap:8px;
|
| 379 |
font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
|
| 380 |
+
padding:11px 16px;min-height:44px;max-width:calc(100vw - 32px);border-radius:10px;border:1px solid rgba(201,183,135,.45);
|
| 381 |
background:rgba(201,183,135,.12);color:#d6c69a;cursor:pointer;backdrop-filter:blur(8px);
|
| 382 |
+
box-shadow:0 8px 26px -10px rgba(0,0,0,.7);white-space:nowrap;}
|
| 383 |
#szl-ceo-fab:hover{background:rgba(201,183,135,.2);border-color:rgba(201,183,135,.7);}
|
| 384 |
#szl-ceo-fab .dot{width:8px;height:8px;border-radius:50%;background:#5fb3a3;box-shadow:0 0 0 3px rgba(95,179,163,.18);}
|
| 385 |
#szl-ceo{position:fixed;inset:0;z-index:2147483001;display:none;overflow-y:auto;
|
|
|
|
| 885 |
.nav-group[data-demo-sec]:focus-visible{outline:1px solid var(--teal-line,#2c5d52);outline-offset:2px;}
|
| 886 |
.nav-item.demo-hidden,.nav-group.demo-hidden,.exp-fence-note.demo-hidden{display:none!important;}
|
| 887 |
.exp-fence-note{margin:.15rem .5rem .35rem;padding:.45rem .55rem;font-family:var(--mono);font-size:9px;line-height:1.55;color:#caa84b;background:rgba(202,168,75,.06);border:1px dashed rgba(202,168,75,.35);border-radius:6px;letter-spacing:.04em;}
|
| 888 |
+
.side-foot{margin-top:1.2rem;padding:.85rem .6rem 1.1rem;border-top:1px solid var(--gold-line);font-family:var(--mono);font-size:10px;color:var(--dim);line-height:1.95;letter-spacing:.02em;}
|
| 889 |
+
.side-foot br{line-height:2.1;}
|
| 890 |
|
| 891 |
/* ===== CONTENT ===== */
|
| 892 |
.content{padding:1.1rem 1.6rem 2rem;overflow-y:auto;overflow-x:hidden;height:100%;min-height:0;-webkit-overflow-scrolling:touch;}
|
|
|
|
| 1206 |
9-11.5px on desktop by design; bumped to a readable 12px floor on mobile. */
|
| 1207 |
.nav-group{font-size:12px!important;letter-spacing:.12em;}
|
| 1208 |
.brand .role{font-size:12px!important;} /* small but >=11; brand sub */
|
| 1209 |
+
.side-foot{font-size:12px!important;line-height:1.9;}
|
| 1210 |
.kpi .k{font-size:12px!important;letter-spacing:.1em;}
|
| 1211 |
.kpi .d{font-size:12px!important;}
|
| 1212 |
.view-badge{font-size:12px!important;}
|
|
|
|
| 4935 |
<div class="kpi"><div class="k">Declarations</div><div class="v teal" id="me-dag">\u2014</div><div class="d">v11 kernel</div></div></div>
|
| 4936 |
<div class="grid2">
|
| 4937 |
<div class="card"><div class="card-h"><span class="card-t">${liveDot()}Golden metric \u2014 telemetry latency by service</span><span class="card-ep">live \u00b7 auto-refresh 8s</span></div><div class="echart" id="me-lat"></div></div>
|
| 4938 |
+
<div class="card"><div class="card-h"><span class="card-t">Event stream \u2014 track / span receipts <span class="badge b-warn" style="margin-left:.4rem">MODELED cadence</span></span><span class="card-ep"><select id="me-filter" style="background:var(--panel);color:var(--paragraph);border:1px solid var(--gold-line);border-radius:6px;padding:.25rem .5rem;font-family:var(--mono);font-size:11px"><option value="">all services</option></select></span></div>
|
| 4939 |
+
<div id="me-stream" style="max-height:300px;overflow:auto"><div class="row mono dim">awaiting spans</div></div></div>
|
| 4940 |
</div>
|
| 4941 |
<div class="card" id="me-drill"><div class="row mono dim">Click any span in the stream to drill into it \u2014 its service, traceparent and its span receipt (DSSE-signed when a cosign key is armed, else UNSIGNED-honest) land here.</div></div>${HONEST}`;window.melt_load();}},
|
| 4942 |
|
|
|
|
| 7148 |
var sid=(++window._meSeq);
|
| 7149 |
var span={id:sid,ts:nowts(),svc:svc.id,svcName:svc.name,model:(trk.model||'track'),status:(trk.status||'telemetry'),lat:svc._lat||0,tp:'00-'+Math.random().toString(16).slice(2,18)+'-'+Math.random().toString(16).slice(2,10)+'-01'};
|
| 7150 |
window._meSpans[sid]=span;
|
| 7151 |
+
var line='<div class="row me-span" data-svc="'+esc(span.svc)+'" style="cursor:pointer;animation:pulse 1.2s 1" onclick="window.melt_drill('+sid+')"><span class="badge b-warn" title="MODELED: span composed from real /mesh/state services + /threats/active tracks; the emission cadence is synthesized, not a captured trace event">MODELED</span><span>'+esc(span.svcName)+' \u00b7 '+esc(span.model)+' \u00b7 '+esc(span.status)+'</span><span class="spacer mono dim">'+esc(span.ts)+'</span></div>';
|
| 7152 |
ev.insertAdjacentHTML('afterbegin',line);
|
| 7153 |
while(ev.children.length>40) ev.removeChild(ev.lastChild);
|
| 7154 |
melt_apply_filter();
|
static/landing.html
CHANGED
|
@@ -155,7 +155,7 @@ img, svg { display: block; }
|
|
| 155 |
/* ---- ORBITAL ANIMATION -------------------------------------------------- */
|
| 156 |
.ds-orbital { position: relative; width: 100%; aspect-ratio: 1 / 1; max-width: 520px; margin: 0 auto; border-radius: 18px; overflow: hidden; background: radial-gradient(circle at 50% 50%, rgba(201,183,135,0.06) 0%, rgba(201,183,135,0.02) 35%, rgba(0,0,0,0) 65%), #0d0d0d; border: 1px solid var(--hairline); box-shadow: 0 30px 80px -20px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(255,255,255,0.02); }
|
| 157 |
.ds-orbital__corner { position: absolute; width: 14px; height: 14px; border-top: 1px solid var(--gold); border-left: 1px solid var(--gold); opacity: 0.55; pointer-events: none; }
|
| 158 |
-
.ds-orbital__hud
|
| 159 |
.ds-orbital__hud .gold { color: var(--gold-dim); }
|
| 160 |
.ds-orbital__hud .teal { color: var(--teal); }
|
| 161 |
.ds-orbital__scan { position: absolute; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent); opacity: 0.35; mix-blend-mode: screen; animation: ds-scan 5.5s linear infinite; z-index: 2; }
|
|
|
|
| 155 |
/* ---- ORBITAL ANIMATION -------------------------------------------------- */
|
| 156 |
.ds-orbital { position: relative; width: 100%; aspect-ratio: 1 / 1; max-width: 520px; margin: 0 auto; border-radius: 18px; overflow: hidden; background: radial-gradient(circle at 50% 50%, rgba(201,183,135,0.06) 0%, rgba(201,183,135,0.02) 35%, rgba(0,0,0,0) 65%), #0d0d0d; border: 1px solid var(--hairline); box-shadow: 0 30px 80px -20px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(255,255,255,0.02); }
|
| 157 |
.ds-orbital__corner { position: absolute; width: 14px; height: 14px; border-top: 1px solid var(--gold); border-left: 1px solid var(--gold); opacity: 0.55; pointer-events: none; }
|
| 158 |
+
.ds-orbital__hud{text-shadow:0 0 6px rgba(8,8,8,.95),0 0 2px #080808; position: absolute; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); line-height: 1.7; z-index: 3; ;background:rgba(8,12,20,.78);padding:5px 7px;border-radius:2px}
|
| 159 |
.ds-orbital__hud .gold { color: var(--gold-dim); }
|
| 160 |
.ds-orbital__hud .teal { color: var(--teal); }
|
| 161 |
.ds-orbital__scan { position: absolute; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--gold) 50%, transparent); opacity: 0.35; mix-blend-mode: screen; animation: ds-scan 5.5s linear infinite; z-index: 2; }
|
static/navy.html
CHANGED
|
@@ -52,12 +52,12 @@
|
|
| 52 |
<header>
|
| 53 |
<svg class="logo" viewBox="0 0 32 32"><path d="M16 3 L27 27 L16 21 L5 27 Z" fill="#d7b96b"/></svg>
|
| 54 |
<div class="ttl">Killinchu <b>/ Warhacker</b> — Defense Unicorns hackathon, packages on UDS Core</div>
|
| 55 |
-
<span class="chip"
|
| 56 |
<span class="chip" style="color:#5cc4bf;border-color:rgba(92,196,191,.45)" title="Compatible with Defense Unicorns UDS Core (not certified)">✓ UDS Core compatible</span>
|
| 57 |
<span class="chip" style="color:#5cc4bf;border-color:rgba(92,196,191,.45)" title="Section 889: five banned vendors, none used">✓ Section 889 · 5 banned vendors clean</span>
|
| 58 |
<span class="chip">ZARF-packaged</span>
|
| 59 |
<span class="sp"></span>
|
| 60 |
-
<span class="doc">DOCTRINE v11 LOCKED · 749 · 14 · 163 · SLSA L1 honest
|
| 61 |
</header>
|
| 62 |
<main>
|
| 63 |
<h1>Defense Unicorns Warhacker — <span class="accent">packages on UDS Core</span>.</h1>
|
|
@@ -67,7 +67,7 @@
|
|
| 67 |
<div class="cell good"><div class="v">Enterprise Agents</div><div class="k">CDAO lane (our lane)</div></div>
|
| 68 |
<div class="cell good"><div class="v">✓ UDS Core compatible</div><div class="k">interoperability badge (not certified)</div></div>
|
| 69 |
<div class="cell good"><div class="v">ZARF-packaged</div><div class="k">airgap bundle (available)</div></div>
|
| 70 |
-
<div class="cell"><div class="v">SLSA L1 honest</div><div class="k">L2
|
| 71 |
<div class="cell good"><div class="v">✓ Section 889 · 5 clean</div><div class="k">no banned vendors</div></div>
|
| 72 |
</div>
|
| 73 |
|
|
@@ -78,7 +78,7 @@
|
|
| 78 |
<a href="/uds">UDS Core</a> ·
|
| 79 |
<a href="/uds/sbom">SBOM (SPDX+CycloneDX)</a> ·
|
| 80 |
<a href="/uds/sigstore">Sigstore (cosign + public Rekor)</a> ·
|
| 81 |
-
<a href="/uds/cmmc">CMMC L1 (17 practices)</a> ·
|
| 82 |
<a href="/uds/889">Section 889 (five vendors)</a> ·
|
| 83 |
<a href="/uds/zarf">ZARF air-gap deploy</a> ·
|
| 84 |
<a href="/uds/mission-owner">Mission Owner (Iron Bank sponsor ask)</a>
|
|
@@ -99,11 +99,11 @@
|
|
| 99 |
<h2>Honest compliance posture</h2>
|
| 100 |
<table>
|
| 101 |
<tr><th>Item</th><th>State</th><th>Note</th></tr>
|
| 102 |
-
<tr><td>SLSA Build</td><td class="warn">L1 honest
|
| 103 |
<tr><td>ZARF + UDS Core packaging</td><td class="ok">Available</td><td>UDS Core compatible; ZARF bundle for airgap. Not certified.</td></tr>
|
| 104 |
<tr><td>NDAA §889</td><td class="ok">Defensible / signable</td><td>5 banned vendors: Huawei, ZTE, Hytera, Hikvision, Dahua. No banned hardware on bench.</td></tr>
|
| 105 |
<tr><td>Iron Bank</td><td class="no">Not accredited</td><td>Iron Bank requires a government Mission Owner sponsor — invitation-only; you cannot self-register. Target via Warhacker.</td></tr>
|
| 106 |
-
<tr><td>CMMC</td><td class="warn">L1 self-attest
|
| 107 |
</table>
|
| 108 |
</section>
|
| 109 |
|
|
|
|
| 52 |
<header>
|
| 53 |
<svg class="logo" viewBox="0 0 32 32"><path d="M16 3 L27 27 L16 21 L5 27 Z" fill="#d7b96b"/></svg>
|
| 54 |
<div class="ttl">Killinchu <b>/ Warhacker</b> — Defense Unicorns hackathon, packages on UDS Core</div>
|
| 55 |
+
<span class="chip" title="Live status is on the /operator console; this booth is a static overview">4 ORGANS · status on /operator</span>
|
| 56 |
<span class="chip" style="color:#5cc4bf;border-color:rgba(92,196,191,.45)" title="Compatible with Defense Unicorns UDS Core (not certified)">✓ UDS Core compatible</span>
|
| 57 |
<span class="chip" style="color:#5cc4bf;border-color:rgba(92,196,191,.45)" title="Section 889: five banned vendors, none used">✓ Section 889 · 5 banned vendors clean</span>
|
| 58 |
<span class="chip">ZARF-packaged</span>
|
| 59 |
<span class="sp"></span>
|
| 60 |
+
<span class="doc">DOCTRINE v11 LOCKED · 749 · 14 · 163 · SLSA L1 honest · L2 attested · L3 roadmap · Λ Conjecture (not a theorem)</span>
|
| 61 |
</header>
|
| 62 |
<main>
|
| 63 |
<h1>Defense Unicorns Warhacker — <span class="accent">packages on UDS Core</span>.</h1>
|
|
|
|
| 67 |
<div class="cell good"><div class="v">Enterprise Agents</div><div class="k">CDAO lane (our lane)</div></div>
|
| 68 |
<div class="cell good"><div class="v">✓ UDS Core compatible</div><div class="k">interoperability badge (not certified)</div></div>
|
| 69 |
<div class="cell good"><div class="v">ZARF-packaged</div><div class="k">airgap bundle (available)</div></div>
|
| 70 |
+
<div class="cell"><div class="v">SLSA L1 honest</div><div class="k">L2 attested · L3 roadmap</div></div>
|
| 71 |
<div class="cell good"><div class="v">✓ Section 889 · 5 clean</div><div class="k">no banned vendors</div></div>
|
| 72 |
</div>
|
| 73 |
|
|
|
|
| 78 |
<a href="/uds">UDS Core</a> ·
|
| 79 |
<a href="/uds/sbom">SBOM (SPDX+CycloneDX)</a> ·
|
| 80 |
<a href="/uds/sigstore">Sigstore (cosign + public Rekor)</a> ·
|
| 81 |
+
<a href="/uds/cmmc">CMMC L1 self-attest (roadmap, 17 practices)</a> ·
|
| 82 |
<a href="/uds/889">Section 889 (five vendors)</a> ·
|
| 83 |
<a href="/uds/zarf">ZARF air-gap deploy</a> ·
|
| 84 |
<a href="/uds/mission-owner">Mission Owner (Iron Bank sponsor ask)</a>
|
|
|
|
| 99 |
<h2>Honest compliance posture</h2>
|
| 100 |
<table>
|
| 101 |
<tr><th>Item</th><th>State</th><th>Note</th></tr>
|
| 102 |
+
<tr><td>SLSA Build</td><td class="warn">L1 honest · L2 attested · L3 roadmap</td><td>Real cosign-signed provenance, Rekor-anchored. L2 attested via hosted CI + cosign; L3 is a roadmap item.</td></tr>
|
| 103 |
<tr><td>ZARF + UDS Core packaging</td><td class="ok">Available</td><td>UDS Core compatible; ZARF bundle for airgap. Not certified.</td></tr>
|
| 104 |
<tr><td>NDAA §889</td><td class="ok">Defensible / signable</td><td>5 banned vendors: Huawei, ZTE, Hytera, Hikvision, Dahua. No banned hardware on bench.</td></tr>
|
| 105 |
<tr><td>Iron Bank</td><td class="no">Not accredited</td><td>Iron Bank requires a government Mission Owner sponsor — invitation-only; you cannot self-register. Target via Warhacker.</td></tr>
|
| 106 |
+
<tr><td>CMMC</td><td class="warn">L1 self-attest — roadmap</td><td>Roadmap item, not a held certification. L2/L3 deferred until a contract imposes CUI.</td></tr>
|
| 107 |
</table>
|
| 108 |
</section>
|
| 109 |
|
static/uds-compliance.html
CHANGED
|
@@ -120,12 +120,12 @@
|
|
| 120 |
<!-- FRAMEWORKS -->
|
| 121 |
<section class="sec" id="s-frameworks">
|
| 122 |
<h1>Framework <b>Mappings</b></h1>
|
| 123 |
-
<p class="sub">STIG-
|
| 124 |
<div class="grid g2">
|
| 125 |
-
<div class="card" id="fw-"><h3>STIG-
|
| 126 |
<div class="card" id="fw-nist"><h3>NIST AI RMF 1.0</h3><div class="load">Loading…</div></div>
|
| 127 |
<div class="card" id="fw-eu"><h3>EU AI Act Article 12</h3><div class="load">Loading…</div></div>
|
| 128 |
-
<div class="card" id="fw-fedramp"><h3>FedRAMP Moderate posture</h3><div class="load">Loading…</div></div>
|
| 129 |
</div>
|
| 130 |
</section>
|
| 131 |
<!-- RAW -->
|
|
@@ -155,7 +155,7 @@ const API="/api/killinchu/uds/v1";
|
|
| 155 |
const FLAGSHIPS=[{k:"a11oy",label:"Orchestrator (a11oy)"},{k:"killinchu",label:"Field Node (killinchu)"},{k:"vessels",label:"vessels"},{k:"hatun-mcp",label:"hatun-mcp"}];
|
| 156 |
const $=s=>document.querySelector(s);
|
| 157 |
async function get(p){const r=await fetch(API+"/"+p);return r.json();}
|
| 158 |
-
function sigLine(j){const ok=j.signed;return `<span class="dot ${ok?'ok':'no'}"></span>${ok?'DSSE SIGNED':'UNSIGNED (no key in runtime — honest, not fabricated)'} · keyid ${(j.dsse&&j.dsse.signatures&&j.dsse.signatures[0]?j.dsse.signatures[0].keyid:'szlholdings-cosign')} · receipt ${(j.receipt_sha256||'').slice(0,16)||'
|
| 159 |
function badge(v){if(v===true)return '<span class="badge b-green">yes</span>';if(v===false)return '<span class="badge b-red">no</span>';return `<span class="badge b-warn">${v}</span>`;}
|
| 160 |
|
| 161 |
// nav
|
|
@@ -166,44 +166,44 @@ document.querySelectorAll('#nav a').forEach(a=>a.onclick=()=>{
|
|
| 166 |
async function loadStig(){
|
| 167 |
const j=await get("stig/scan-report/killinchu");
|
| 168 |
const b=j.baseline||{},h=j.hardened||{};
|
|
|
|
|
|
|
| 169 |
$('#stig-kpis').innerHTML=`
|
| 170 |
-
<div class="card"><h3>Baseline score</h3><div class="kpi">${
|
| 171 |
-
<div class="card"><h3>Hardened score</h3><div class="kpi" style="color:var(--teal)">${
|
| 172 |
-
<div class="card"><h3>Rules passed</h3><div class="kpi">${b.rules_passed
|
| 173 |
-
<div class="card"><h3>High-sev fails</h3><div class="kpi" style="color:var(--gold)">${(b.fail_by_severity||{}).high||0}</div><div class="honest" style="margin-top:6px">FIPS/SELinux
|
| 174 |
const tb=$('#stig-table tbody');tb.innerHTML="";
|
| 175 |
for(const fo of FLAGSHIPS){const f=fo.k;const jr=await get("stig/scan-report/"+f);const node=(f==="vessels");
|
| 176 |
const jb=jr.baseline||{},jh=jr.hardened||{};
|
| 177 |
tb.innerHTML+=`<tr><td><b>${fo.label}</b></td><td class="mono" style="font-size:11px">${node?'nodejs20 (IB)':'ubi9-minimal (IB)'}</td>
|
| 178 |
-
<td class="num">${jb.score_pct?
|
| 179 |
-
<td class="num">${jr.rules_fixed_by_image_hardening?
|
| 180 |
<td>${node?'<span class="badge b-warn">node base pending</span>':'<span class="badge b-green">scanned</span>'}</td></tr>`;}
|
| 181 |
$('#stig-sig').innerHTML=sigLine(j);
|
| 182 |
$('#stig-fails').innerHTML=(j.top_high_severity_fails||[]).map(r=>`<span class="badge b-red" style="margin:3px">${r}</span>`).join('')+
|
| 183 |
`<div class="honest">${j.honesty||''}</div>`;
|
| 184 |
}
|
| 185 |
-
/* loadIB() REMOVED — STIG Baseline per CTO P1 REJECT */
|
| 186 |
-
<td class="mono" style="font-size:11px">${f.current_base}</td><td class="mono" style="font-size:11px">${f.ironbank_target_base.replace('registry1.dso.mil/ironbank/','…/')}</td>
|
| 187 |
-
<td>${badge(f.ironbank_image_pushed==='Y')}</td><td><span class="badge b-warn">${f.pull_status}</span></td></tr>`);
|
| 188 |
-
$('#ib-honest').textContent=j.honesty||'';$('#ib-sig').innerHTML=sigLine(j);}
|
| 189 |
async function loadBB(){const j=await get("big-bang/parity");const o=j.rendered_objects||{};
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
<div class="card"><h3>
|
|
|
|
| 193 |
const tb=$('#bb-table tbody');tb.innerHTML="";(j.big_bang_compat_matrix||[]).forEach(m=>
|
| 194 |
tb.innerHTML+=`<tr><td>${m.feature}</td><td>${badge(m.big_bang)}</td><td>${badge(m.szl)}</td></tr>`);
|
| 195 |
$('#bb-honest').textContent=(j.install_command?'$ '+j.install_command+' — ':'')+(j.honesty||'');$('#bb-sig').innerHTML=sigLine(j);}
|
| 196 |
async function loadTW(){const j=await get("tradewinds/listing");const c=j.company||{},p=j.compliance_posture||{},s=j.solution||{};
|
| 197 |
$('#tw-company').innerHTML=`<h3>Company</h3><table>
|
| 198 |
<tr><td>Name</td><td><b>${c.name||''}</b></td></tr>
|
| 199 |
-
<tr><td>CAGE</td><td>${c.cage_code&&c.cage_code.value?c.cage_code.value:'<span class="badge b-warn">
|
| 200 |
-
<tr><td>UEI</td><td>${c.uei&&c.uei.value?c.uei.value:'<span class="badge b-warn">
|
| 201 |
<tr><td>Tradewinds acct</td><td><span class="badge b-warn">founder action</span></td></tr></table>`;
|
| 202 |
$('#tw-posture').innerHTML=`<h3>Compliance posture</h3><table>
|
| 203 |
-
<tr><td>IL5</td><td>${badge((p.il5_readiness||{}).status||'
|
| 204 |
-
<tr><td>STIG-Hardened</td><td>${badge((p
|
| 205 |
-
<tr><td>FedRAMP</td><td>${badge((p.fedramp||{}).status||'
|
| 206 |
-
<tr><td>SLSA</td><td>${badge((p.slsa||{}).status||'L1')}</td></tr>
|
| 207 |
<tr><td>Signing</td><td class="mono" style="font-size:11px">${(p.signing||{}).keyid||'szlholdings-cosign'}</td></tr></table>`;
|
| 208 |
$('#tw-caps').innerHTML=`<div style="font-weight:600;margin-bottom:8px">${s.name||''}</div><div class="honest" style="border-color:var(--gold)">${s.tagline||''}</div><ul>`+
|
| 209 |
(s.capabilities||[]).map(x=>`<li style="margin:4px 0">${x}</li>`).join('')+'</ul><div class="honest">'+(j.honesty||'')+'</div>';
|
|
@@ -220,13 +220,13 @@ async function loadFW(){
|
|
| 220 |
const eu=await get("eu-ai-act/article-12");$('#fw-eu').innerHTML=`<h3>EU AI Act Article 12</h3>`+
|
| 221 |
`<div style="font-size:12px;color:var(--muted)">${eu.article||''}</div><pre style="max-height:200px;margin-top:8px">${JSON.stringify(eu.logging_mechanism||eu,null,1)}</pre>`+
|
| 222 |
`<div class="honest">${eu.honesty||''}</div><div class="sig">${sigLine(eu)}</div>`;
|
| 223 |
-
const fr=await get("fedramp/posture");$('#fw-fedramp').innerHTML=`<h3>FedRAMP Moderate posture</h3>`+
|
| 224 |
-
`<div style="font-size:12px;color:var(--muted);margin-bottom:6px">${fr.baseline||''}</div>`+
|
| 225 |
(fr.families||[]).map(f=>`<div style="margin:4px 0">${badge(f.status==='supported'?true:f.status)} <b>${f.family}</b></div>`).join('')+
|
| 226 |
-
`<div class="honest">${fr.authorization_status||''} ${fr.honesty||''}</div><div class="sig">${sigLine(fr)}</div>`;
|
| 227 |
}
|
| 228 |
$('#raw-pick').onchange=async e=>{$('#raw-out').textContent='…';const j=await get(e.target.value);$('#raw-out').textContent=JSON.stringify(j,null,2);};
|
| 229 |
-
(async()=>{try{await loadStig();
|
| 230 |
$('#raw-out').textContent=JSON.stringify(await get("stig/scan-report/killinchu"),null,2);}catch(e){console.error(e);}})();
|
| 231 |
</script>
|
| 232 |
</body>
|
|
|
|
| 120 |
<!-- FRAMEWORKS -->
|
| 121 |
<section class="sec" id="s-frameworks">
|
| 122 |
<h1>Framework <b>Mappings</b></h1>
|
| 123 |
+
<p class="sub">Engineering-level control mappings — STIG-Hardened delta, NIST AI RMF, EU AI Act Art.12, and FedRAMP posture. Mappings, not conformity assertions; no certification claimed.</p>
|
| 124 |
<div class="grid g2">
|
| 125 |
+
<div class="card" id="fw-stig-hardened"><h3>STIG-Hardened delta</h3><div class="load">Loading…</div></div>
|
| 126 |
<div class="card" id="fw-nist"><h3>NIST AI RMF 1.0</h3><div class="load">Loading…</div></div>
|
| 127 |
<div class="card" id="fw-eu"><h3>EU AI Act Article 12</h3><div class="load">Loading…</div></div>
|
| 128 |
+
<div class="card" id="fw-fedramp"><h3>FedRAMP Moderate — roadmap posture</h3><div class="load">Loading…</div></div>
|
| 129 |
</div>
|
| 130 |
</section>
|
| 131 |
<!-- RAW -->
|
|
|
|
| 155 |
const FLAGSHIPS=[{k:"a11oy",label:"Orchestrator (a11oy)"},{k:"killinchu",label:"Field Node (killinchu)"},{k:"vessels",label:"vessels"},{k:"hatun-mcp",label:"hatun-mcp"}];
|
| 156 |
const $=s=>document.querySelector(s);
|
| 157 |
async function get(p){const r=await fetch(API+"/"+p);return r.json();}
|
| 158 |
+
function sigLine(j){const ok=j.signed;return `<span class="dot ${ok?'ok':'no'}"></span>${ok?'DSSE SIGNED':'UNSIGNED (no key in runtime — honest, not fabricated)'} · keyid ${(j.dsse&&j.dsse.signatures&&j.dsse.signatures[0]?j.dsse.signatures[0].keyid:'szlholdings-cosign')} · receipt ${(j.receipt_sha256||'').slice(0,16)||'awaiting sweep'}`;}
|
| 159 |
function badge(v){if(v===true)return '<span class="badge b-green">yes</span>';if(v===false)return '<span class="badge b-red">no</span>';return `<span class="badge b-warn">${v}</span>`;}
|
| 160 |
|
| 161 |
// nav
|
|
|
|
| 166 |
async function loadStig(){
|
| 167 |
const j=await get("stig/scan-report/killinchu");
|
| 168 |
const b=j.baseline||{},h=j.hardened||{};
|
| 169 |
+
const bScore=(b.score_pct!=null?b.score_pct:null), hScore=(h.score_pct!=null?h.score_pct:null);
|
| 170 |
+
const delta=(bScore!=null&&hScore!=null)?('+'+(hScore-bScore).toFixed(2)+' from hardening layer'):'awaiting sweep';
|
| 171 |
$('#stig-kpis').innerHTML=`
|
| 172 |
+
<div class="card"><h3>Baseline score <span class="badge b-mute">measured</span></h3><div class="kpi">${bScore!=null?bScore:'<small>awaiting sweep</small>'}${bScore!=null?'<small>/100</small>':''}</div><div class="bar"><span style="width:${bScore!=null?bScore:0}%"></span></div></div>
|
| 173 |
+
<div class="card"><h3>Hardened score <span class="badge b-mute">measured</span></h3><div class="kpi" style="color:var(--teal)">${hScore!=null?hScore:'<small>awaiting sweep</small>'}${hScore!=null?'<small>/100</small>':''}</div><div class="delta up">${delta}</div></div>
|
| 174 |
+
<div class="card"><h3>Rules passed <span class="badge b-mute">measured</span></h3><div class="kpi">${(b.rules_passed!=null&&h.rules_passed!=null)?b.rules_passed+'→'+h.rules_passed:'<small>awaiting sweep</small>'}</div><div class="delta up">${j.rules_fixed_by_image_hardening!=null?j.rules_fixed_by_image_hardening+' fixed':'awaiting sweep'}</div></div>
|
| 175 |
+
<div class="card"><h3>High-sev fails <span class="badge b-mute">measured</span></h3><div class="kpi" style="color:var(--gold)">${(b.fail_by_severity||{}).high||0}</div><div class="honest" style="margin-top:6px">FIPS/SELinux gaps are kernel-boot, not image-layer</div></div>`;
|
| 176 |
const tb=$('#stig-table tbody');tb.innerHTML="";
|
| 177 |
for(const fo of FLAGSHIPS){const f=fo.k;const jr=await get("stig/scan-report/"+f);const node=(f==="vessels");
|
| 178 |
const jb=jr.baseline||{},jh=jr.hardened||{};
|
| 179 |
tb.innerHTML+=`<tr><td><b>${fo.label}</b></td><td class="mono" style="font-size:11px">${node?'nodejs20 (IB)':'ubi9-minimal (IB)'}</td>
|
| 180 |
+
<td class="num">${jb.score_pct!=null?jb.score_pct:'<span class="badge b-mute">awaiting sweep</span>'}</td><td class="num" style="color:var(--teal)">${jh.score_pct!=null?jh.score_pct:'<span class="badge b-mute">awaiting sweep</span>'}</td>
|
| 181 |
+
<td class="num">${jr.rules_fixed_by_image_hardening!=null?jr.rules_fixed_by_image_hardening:'<span class="badge b-mute">awaiting sweep</span>'}</td>
|
| 182 |
<td>${node?'<span class="badge b-warn">node base pending</span>':'<span class="badge b-green">scanned</span>'}</td></tr>`;}
|
| 183 |
$('#stig-sig').innerHTML=sigLine(j);
|
| 184 |
$('#stig-fails').innerHTML=(j.top_high_severity_fails||[]).map(r=>`<span class="badge b-red" style="margin:3px">${r}</span>`).join('')+
|
| 185 |
`<div class="honest">${j.honesty||''}</div>`;
|
| 186 |
}
|
| 187 |
+
/* loadIB() REMOVED — STIG Baseline per CTO P1 REJECT (Charter §24). No orphaned render. */
|
|
|
|
|
|
|
|
|
|
| 188 |
async function loadBB(){const j=await get("big-bang/parity");const o=j.rendered_objects||{};
|
| 189 |
+
const lintPass=(j.lint_status||'').toLowerCase().includes('pass')||j.lint_passed===true;
|
| 190 |
+
$('#bb-kpis').innerHTML=`<div class="card"><h3>helm lint <span class="badge b-mute">measured</span></h3><div class="kpi" style="font-size:22px;color:${lintPass?'var(--green)':'var(--gold)'}">${j.lint_status?(lintPass?'PASS':'REVIEW'):'awaiting sweep'}</div><div class="honest">${j.lint_status||'no helm lint output in this runtime'}</div></div>
|
| 191 |
+
<div class="card"><h3>Rendered objects <span class="badge b-mute">measured</span></h3><div class="kpi">${o.total!=null?o.total:'<small>awaiting sweep</small>'}</div><div class="delta up">${o.total!=null?'across '+FLAGSHIPS.length+' components':'no render'}</div></div>
|
| 192 |
+
<div class="card"><h3>Chart artifact</h3><div class="kpi" style="font-size:18px">${j.packaged_artifact||'szl-0.1.0.tgz'}</div><div class="honest">helm ${j.helm_version||'version awaiting sweep'}</div></div>`;
|
| 193 |
const tb=$('#bb-table tbody');tb.innerHTML="";(j.big_bang_compat_matrix||[]).forEach(m=>
|
| 194 |
tb.innerHTML+=`<tr><td>${m.feature}</td><td>${badge(m.big_bang)}</td><td>${badge(m.szl)}</td></tr>`);
|
| 195 |
$('#bb-honest').textContent=(j.install_command?'$ '+j.install_command+' — ':'')+(j.honesty||'');$('#bb-sig').innerHTML=sigLine(j);}
|
| 196 |
async function loadTW(){const j=await get("tradewinds/listing");const c=j.company||{},p=j.compliance_posture||{},s=j.solution||{};
|
| 197 |
$('#tw-company').innerHTML=`<h3>Company</h3><table>
|
| 198 |
<tr><td>Name</td><td><b>${c.name||''}</b></td></tr>
|
| 199 |
+
<tr><td>CAGE</td><td>${c.cage_code&&c.cage_code.value?c.cage_code.value:'<span class="badge b-warn">awaiting SAM.gov</span>'}</td></tr>
|
| 200 |
+
<tr><td>UEI</td><td>${c.uei&&c.uei.value?c.uei.value:'<span class="badge b-warn">awaiting SAM.gov</span>'}</td></tr>
|
| 201 |
<tr><td>Tradewinds acct</td><td><span class="badge b-warn">founder action</span></td></tr></table>`;
|
| 202 |
$('#tw-posture').innerHTML=`<h3>Compliance posture</h3><table>
|
| 203 |
+
<tr><td>IL5</td><td>${badge((p.il5_readiness||{}).status||'roadmap')}</td></tr>
|
| 204 |
+
<tr><td>STIG-Hardened</td><td>${badge((p['stig-hardened']||{}).status||'roadmap')}</td></tr>
|
| 205 |
+
<tr><td>FedRAMP</td><td>${badge((p.fedramp||{}).status||'roadmap')}</td></tr>
|
| 206 |
+
<tr><td>SLSA</td><td>${badge((p.slsa||{}).status||'L1 honest · L2 attested · L3 roadmap')}</td></tr>
|
| 207 |
<tr><td>Signing</td><td class="mono" style="font-size:11px">${(p.signing||{}).keyid||'szlholdings-cosign'}</td></tr></table>`;
|
| 208 |
$('#tw-caps').innerHTML=`<div style="font-weight:600;margin-bottom:8px">${s.name||''}</div><div class="honest" style="border-color:var(--gold)">${s.tagline||''}</div><ul>`+
|
| 209 |
(s.capabilities||[]).map(x=>`<li style="margin:4px 0">${x}</li>`).join('')+'</ul><div class="honest">'+(j.honesty||'')+'</div>';
|
|
|
|
| 220 |
const eu=await get("eu-ai-act/article-12");$('#fw-eu').innerHTML=`<h3>EU AI Act Article 12</h3>`+
|
| 221 |
`<div style="font-size:12px;color:var(--muted)">${eu.article||''}</div><pre style="max-height:200px;margin-top:8px">${JSON.stringify(eu.logging_mechanism||eu,null,1)}</pre>`+
|
| 222 |
`<div class="honest">${eu.honesty||''}</div><div class="sig">${sigLine(eu)}</div>`;
|
| 223 |
+
const fr=await get("fedramp/posture");$('#fw-fedramp').innerHTML=`<h3>FedRAMP Moderate — roadmap posture</h3>`+
|
| 224 |
+
`<div style="font-size:12px;color:var(--muted);margin-bottom:6px">${fr.baseline||'awaiting sweep'} · roadmap item, not an authorization</div>`+
|
| 225 |
(fr.families||[]).map(f=>`<div style="margin:4px 0">${badge(f.status==='supported'?true:f.status)} <b>${f.family}</b></div>`).join('')+
|
| 226 |
+
`<div class="honest">${fr.authorization_status||'not authorized — FedRAMP is a roadmap item, no ATO held'} ${fr.honesty||''}</div><div class="sig">${sigLine(fr)}</div>`;
|
| 227 |
}
|
| 228 |
$('#raw-pick').onchange=async e=>{$('#raw-out').textContent='…';const j=await get(e.target.value);$('#raw-out').textContent=JSON.stringify(j,null,2);};
|
| 229 |
+
(async()=>{try{await loadStig();await loadBB();await loadTW();await loadFW();
|
| 230 |
$('#raw-out').textContent=JSON.stringify(await get("stig/scan-report/killinchu"),null,2);}catch(e){console.error(e);}})();
|
| 231 |
</script>
|
| 232 |
</body>
|
static/uds.html
CHANGED
|
@@ -171,7 +171,7 @@
|
|
| 171 |
<span class="chip"><span class="dot"></span>4 ORGANS LIVE</span>
|
| 172 |
<span class="chip">SOLE FRONT DOOR · /api/killinchu/uds/v1/*</span>
|
| 173 |
<span class="sp"></span>
|
| 174 |
-
<span class="doc">DOCTRINE <b>v11</b> LOCKED · 749 · 14 · 163 · SLSA L1
|
| 175 |
</header>
|
| 176 |
|
| 177 |
<div class="body">
|
|
@@ -212,7 +212,7 @@
|
|
| 212 |
<div class="col center">
|
| 213 |
<div style="position:relative">
|
| 214 |
<div id="cesiumContainer"></div>
|
| 215 |
-
<div class="globe-tag" id="globetag">🦅 <b>Killinchu</b> in the field · airspace <b id="gt-class">
|
| 216 |
</div>
|
| 217 |
<div class="killstrip">
|
| 218 |
<div class="hd">
|
|
@@ -302,14 +302,14 @@
|
|
| 302 |
.then(function(j){
|
| 303 |
var links=(j.aggregated_receipt&&j.aggregated_receipt.chain)||[];
|
| 304 |
renderChain(links); links.forEach(function(l){setHero(l.organ,l.verdict,l.latency_ms);});
|
| 305 |
-
ORGANS.forEach(function(o){ if(!links.filter(function(l){return l.organ===o.k;})[0]) setHero(o.k,"
|
| 306 |
var v=j.verdict||"warn"; el("killverdict").className="v "+v; el("killverdict").textContent=v.toUpperCase();
|
| 307 |
lastSha=j.receipt_sha256;
|
| 308 |
var agg=j.aggregated_receipt||{}, sig=(agg.aggregate_signature||"").slice(0,42);
|
| 309 |
var R=el("receipt"); R.style.display="block";
|
| 310 |
-
R.innerHTML=kv("mission",j.uds_mission_id||"
|
| 311 |
-
kv("sha256",j.receipt_sha256||"
|
| 312 |
-
kv("keyid",agg.keyid||"szlholdings-cosign")+kv("sig",sig?sig+"…":"
|
| 313 |
el("verifyBtn").disabled=false;
|
| 314 |
if(action==="geofence_check"){ el("gt-class").textContent="checked"; }
|
| 315 |
})
|
|
|
|
| 171 |
<span class="chip"><span class="dot"></span>4 ORGANS LIVE</span>
|
| 172 |
<span class="chip">SOLE FRONT DOOR · /api/killinchu/uds/v1/*</span>
|
| 173 |
<span class="sp"></span>
|
| 174 |
+
<span class="doc">DOCTRINE <b>v11</b> LOCKED · 749 · 14 · 163 · SLSA L1 honest · L2 attested · L3 roadmap · Λ Conjecture (not a theorem)</span>
|
| 175 |
</header>
|
| 176 |
|
| 177 |
<div class="body">
|
|
|
|
| 212 |
<div class="col center">
|
| 213 |
<div style="position:relative">
|
| 214 |
<div id="cesiumContainer"></div>
|
| 215 |
+
<div class="globe-tag" id="globetag">🦅 <b>Killinchu</b> in the field · airspace <b id="gt-class">awaiting init</b> · tracks <b id="gt-tracks">simulated snapshot</b></div>
|
| 216 |
</div>
|
| 217 |
<div class="killstrip">
|
| 218 |
<div class="hd">
|
|
|
|
| 302 |
.then(function(j){
|
| 303 |
var links=(j.aggregated_receipt&&j.aggregated_receipt.chain)||[];
|
| 304 |
renderChain(links); links.forEach(function(l){setHero(l.organ,l.verdict,l.latency_ms);});
|
| 305 |
+
ORGANS.forEach(function(o){ if(!links.filter(function(l){return l.organ===o.k;})[0]) setHero(o.k,"not-run"); });
|
| 306 |
var v=j.verdict||"warn"; el("killverdict").className="v "+v; el("killverdict").textContent=v.toUpperCase();
|
| 307 |
lastSha=j.receipt_sha256;
|
| 308 |
var agg=j.aggregated_receipt||{}, sig=(agg.aggregate_signature||"").slice(0,42);
|
| 309 |
var R=el("receipt"); R.style.display="block";
|
| 310 |
+
R.innerHTML=kv("mission",j.uds_mission_id||"unavailable")+kv("verdict",(j.verdict||"warn").toUpperCase())+
|
| 311 |
+
kv("sha256",j.receipt_sha256||"unavailable","sha")+kv("signed",String(agg.aggregate_signed))+
|
| 312 |
+
kv("keyid",agg.keyid||"szlholdings-cosign")+kv("sig",sig?sig+"…":"unsigned (no key in runtime)","sig");
|
| 313 |
el("verifyBtn").disabled=false;
|
| 314 |
if(action==="geofence_check"){ el("gt-class").textContent="checked"; }
|
| 315 |
})
|