Spaces:
Running
Running
deploy(hf): sync szl-holdings/a11oy@7788830c8db3d2611f5df296a5103e2a6ed74dc5 derived COPY set
Browse filesReusable Dockerfile-COPY-derived deploy from szl-holdings/a11oy 7788830c8db3d2611f5df296a5103e2a6ed74dc5.
Files: 1187 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>
- a11oy_landing.html +197 -294
- govern_showcase.html +0 -0
- pages/assurance.html +93 -94
- pages/chaski.html +16 -17
- pages/console.html +0 -0
- pages/fabric.html +76 -76
- pages/pinn-console.html +53 -54
- pages/substrate.html +20 -20
- pages/verify.html +97 -98
a11oy_landing.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
a11oy — front door (scroll narrative). Served at the Space root "/" by serve.py.
|
| 6 |
SOVEREIGN: Three.js r160 (MIT) vendored in-image at /hero/vendor3d. 0 runtime CDN.
|
| 7 |
Fonts (Space Grotesk / JetBrains Mono) vendored at /vendor/fonts/*.woff2.
|
| 8 |
-
HONESTY DOCTRINE v11 LOCKED — every
|
| 9 |
(REACHABLE / MEASURED / MODELED / SNAPSHOT / UNAVAILABLE). Nothing is fabricated. Λ = Conjecture 1 (advisory, NOT a theorem,
|
| 10 |
never 1.0, NEVER green). Locked-proven Lean kernel = EXACTLY 8 {F1,F4,F7,F11,F12,F18,F19,F22}.
|
| 11 |
The genome registry (144 entries) is grouped into 4 honesty tiers — a different, larger set.
|
|
@@ -19,27 +19,27 @@
|
|
| 19 |
<head>
|
| 20 |
<meta charset="utf-8" />
|
| 21 |
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
| 22 |
-
<title>a11oy —
|
| 23 |
-
<meta name="description" content="
|
| 24 |
<link rel="canonical" href="https://a-11-oy.com/" />
|
| 25 |
<meta property="og:type" content="website" />
|
| 26 |
<meta property="og:url" content="https://a-11-oy.com/" />
|
| 27 |
-
<meta property="og:title" content="a11oy —
|
| 28 |
-
<meta property="og:description" content="
|
| 29 |
-
<meta property="og:image" content="https://a-11-oy.com/social-preview-
|
| 30 |
<meta property="og:image:type" content="image/png" />
|
| 31 |
-
<meta property="og:image:width" content="
|
| 32 |
-
<meta property="og:image:height" content="
|
| 33 |
-
<meta property="og:image:alt" content="a11oy — evidence and
|
| 34 |
<meta name="twitter:card" content="summary_large_image" />
|
| 35 |
-
<meta name="twitter:image" content="https://a-11-oy.com/social-preview-
|
| 36 |
-
<meta name="twitter:image:alt" content="a11oy — evidence and
|
| 37 |
<link rel="icon" type="image/svg+xml" href="/social-preview-v5.svg" />
|
| 38 |
<script type="application/ld+json">
|
| 39 |
{
|
| 40 |
"@context": "https://schema.org",
|
| 41 |
"@type": "SoftwareApplication",
|
| 42 |
-
"name": "a11oy
|
| 43 |
"url": "https://a-11-oy.com/",
|
| 44 |
"applicationCategory": "DeveloperApplication",
|
| 45 |
"operatingSystem": "Web",
|
|
@@ -258,38 +258,6 @@
|
|
| 258 |
.vcard .lam .val{font-family:var(--mono);font-size:1.7rem;font-weight:600;color:var(--ink)}
|
| 259 |
.vcard .lam .cap{font-size:11px;color:var(--ghost);text-transform:uppercase;letter-spacing:1px}
|
| 260 |
|
| 261 |
-
/* investor architecture: one product loop, then six solution views on the same substrate */
|
| 262 |
-
.operating-loop{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:30px;
|
| 263 |
-
border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--border)}
|
| 264 |
-
.loop-step{position:relative;min-width:0;padding:24px;background:linear-gradient(155deg,#101a2c,#0b1220)}
|
| 265 |
-
.loop-step .step-no{display:block;color:var(--proof);font:600 11px var(--mono);letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px}
|
| 266 |
-
.loop-step h3{margin:0 0 8px;font-size:1.12rem}.loop-step p{margin:0;color:var(--sub);font-size:.91rem}
|
| 267 |
-
.loop-step a{display:inline-block;margin-top:14px;color:var(--proof);font:11.5px var(--mono)}
|
| 268 |
-
.loop-step:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:50%;z-index:2;
|
| 269 |
-
width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;
|
| 270 |
-
background:var(--void);color:var(--proof);font-family:var(--mono);transform:translateY(-50%)}
|
| 271 |
-
.platform-boundary{margin-top:18px;padding:14px 16px;border-left:2px solid var(--lattice);
|
| 272 |
-
background:var(--lattice-soft);color:var(--sub);font-size:.9rem;border-radius:0 10px 10px 0}
|
| 273 |
-
.platform-boundary b{color:var(--ink)}
|
| 274 |
-
@media(max-width:900px){.operating-loop{grid-template-columns:repeat(2,1fr)}.loop-step::after{display:none!important}}
|
| 275 |
-
@media(max-width:520px){.operating-loop{grid-template-columns:1fr}}
|
| 276 |
-
|
| 277 |
-
.solution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
|
| 278 |
-
.solution-card{display:flex;min-width:0;flex-direction:column;gap:10px;padding:22px;border:1px solid var(--border);
|
| 279 |
-
border-radius:var(--r);background:linear-gradient(155deg,rgba(16,27,46,.92),rgba(9,16,29,.96));
|
| 280 |
-
transition:border-color .18s,transform .18s}
|
| 281 |
-
.solution-card:hover{border-color:rgba(58,244,200,.42);transform:translateY(-2px)}
|
| 282 |
-
.solution-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
|
| 283 |
-
.solution-code{color:var(--lattice);font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}
|
| 284 |
-
.solution-card h3{margin:0;font-size:1.18rem}.solution-card p{margin:0;color:var(--sub);font-size:.92rem;line-height:1.55}
|
| 285 |
-
.solution-flow{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);color:var(--ghost);
|
| 286 |
-
font:10.5px var(--mono);letter-spacing:.03em}
|
| 287 |
-
.solution-go{color:var(--proof);font:12px var(--mono)}
|
| 288 |
-
.solution-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;color:var(--ghost);font:11px var(--mono)}
|
| 289 |
-
.anchor-alias{display:block;position:relative;top:-70px;visibility:hidden}
|
| 290 |
-
@media(max-width:900px){.solution-grid{grid-template-columns:repeat(2,1fr)}}
|
| 291 |
-
@media(max-width:560px){.solution-grid{grid-template-columns:1fr}.solution-card{padding:19px}}
|
| 292 |
-
|
| 293 |
/* living body */
|
| 294 |
.body-embed{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--border);
|
| 295 |
background:radial-gradient(ellipse 70% 80% at 50% 30%, rgba(91,141,238,0.12), transparent 70%), var(--deep);
|
|
@@ -351,8 +319,9 @@
|
|
| 351 |
background:linear-gradient(155deg,rgba(17,30,50,.72),rgba(8,16,29,.88))}
|
| 352 |
.estate-cell b{display:block;color:var(--proof);font:600 1.45rem var(--mono);margin-bottom:4px}
|
| 353 |
.estate-cell span{color:var(--ghost);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}
|
|
|
|
|
|
|
| 354 |
.estate-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
|
| 355 |
-
.estate-observed{color:var(--ghost);font:11px var(--mono);margin:12px 0 0}
|
| 356 |
@media(max-width:900px){.estate-grid{grid-template-columns:repeat(3,1fr)}}
|
| 357 |
@media(max-width:520px){.estate-grid{grid-template-columns:repeat(2,1fr)}}
|
| 358 |
|
|
@@ -418,15 +387,17 @@
|
|
| 418 |
<circle cx="16" cy="16" r="5" fill="url(#lg)"/>
|
| 419 |
<path d="M16 3v8M16 21v8M3 16h8M21 16h8" stroke="url(#lg)" stroke-width="1.6" opacity=".7"/>
|
| 420 |
</svg>
|
| 421 |
-
<span>a11oy<span class="sub" style="margin-left:9px">
|
| 422 |
</a>
|
| 423 |
<nav>
|
| 424 |
-
<a class="hide-sm" href="#
|
| 425 |
-
<a class="hide-sm" href="
|
| 426 |
-
<a class="hide-sm" href="
|
| 427 |
-
<a class="hide-sm" href="
|
| 428 |
-
<a class="hide-sm" href="
|
| 429 |
-
<a href="/
|
|
|
|
|
|
|
| 430 |
<a class="btn btn-primary" href="/console" aria-label="Open the command center"><span class="nav-cta-full">Open the command center</span><span class="nav-cta-short" aria-hidden="true">Command center</span> →</a>
|
| 431 |
</nav>
|
| 432 |
</div>
|
|
@@ -440,21 +411,22 @@
|
|
| 440 |
<div class="hero-fallback" id="hero-fallback"></div>
|
| 441 |
<div class="wrap">
|
| 442 |
<div class="hero-inner">
|
| 443 |
-
<span class="eyebrow"><span class="dot"></span>
|
| 444 |
-
<h1 class="title">
|
| 445 |
-
<p class="lede">
|
| 446 |
-
|
| 447 |
-
|
| 448 |
-
|
|
|
|
| 449 |
<div class="cta-row">
|
| 450 |
-
<a class="btn btn-primary" href="/console
|
| 451 |
-
<a class="btn btn-lattice" href="
|
| 452 |
-
<a class="btn btn-ghost" href="/
|
| 453 |
</div>
|
| 454 |
<div class="hero-stats">
|
| 455 |
<div class="stat">
|
| 456 |
<div class="k proof" id="hs-receipts">—</div>
|
| 457 |
-
<div class="l">
|
| 458 |
</div>
|
| 459 |
<div class="stat">
|
| 460 |
<div class="k gray" id="hs-lambda">Conjecture 1</div>
|
|
@@ -501,27 +473,28 @@
|
|
| 501 |
<div class="pulse-grid" aria-live="polite">
|
| 502 |
<article class="pulse-card"><div class="pulse-head"><h3>Platform health</h3><span class="data-state" id="pulse-health-state">CHECKING</span></div><p id="pulse-health-detail">Checking the deployed runtime.</p><a href="/healthz">Source /healthz →</a></article>
|
| 503 |
<article class="pulse-card"><div class="pulse-head"><h3>Tab contract</h3><span class="data-state" id="pulse-contract-state">CHECKING</span></div><p id="pulse-contract-detail">Checking the published tab inventory.</p><a href="/api/a11oy/v1/readiness/tab-matrix">Source tab matrix →</a></article>
|
| 504 |
-
<article class="pulse-card"><div class="pulse-head"><h3>Receipt
|
| 505 |
<article class="pulse-card"><div class="pulse-head"><h3>Sovereign mesh</h3><span class="data-state" id="pulse-mesh-state">CHECKING</span></div><p id="pulse-mesh-detail">Checking the current mesh posture.</p><a href="/api/a11oy/v1/mesh/state">Source mesh state →</a></article>
|
| 506 |
</div>
|
| 507 |
<p class="pulse-time" id="pulse-checked">Checks have not completed.</p>
|
| 508 |
</section>
|
| 509 |
|
| 510 |
-
<!-- ====================== (
|
| 511 |
-
<section class="band wrap" id="
|
| 512 |
-
<
|
| 513 |
-
<
|
| 514 |
-
<
|
| 515 |
-
<
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
<
|
| 519 |
-
<
|
| 520 |
-
<
|
| 521 |
-
<
|
|
|
|
|
|
|
|
|
|
| 522 |
</div>
|
| 523 |
-
<p class="platform-boundary"><b>One substrate, not six separate products.</b> Solutions below are
|
| 524 |
-
buyer-specific views over the same object graph: actor → policy → decision → action → outcome → receipt.</p>
|
| 525 |
</section>
|
| 526 |
|
| 527 |
<div class="wrap"><div class="divider"></div></div>
|
|
@@ -530,17 +503,19 @@
|
|
| 530 |
<section class="band wrap" id="thesis">
|
| 531 |
<p class="kick">The thesis</p>
|
| 532 |
<h2>Governed AI you can prove — not AI you're asked to trust.</h2>
|
| 533 |
-
<p class="intro">Most AI asks for trust.
|
| 534 |
-
|
| 535 |
-
|
| 536 |
-
|
|
|
|
|
|
|
| 537 |
<div class="pillars">
|
| 538 |
<div class="pillar">
|
| 539 |
-
<div class="pk">01 ·
|
| 540 |
-
<h3>It
|
| 541 |
-
<p>
|
| 542 |
-
|
| 543 |
-
|
| 544 |
</div>
|
| 545 |
<div class="pillar">
|
| 546 |
<div class="pk">02 · REFUSES</div>
|
|
@@ -593,58 +568,67 @@
|
|
| 593 |
</div>
|
| 594 |
</div>
|
| 595 |
<div class="cta-row" style="margin-top:34px">
|
| 596 |
-
<a class="btn btn-primary" href="https://szlholdings-immune.hf.space" target="_blank" rel="noopener">
|
| 597 |
<a class="btn btn-ghost" href="/console#genome">Browse the genome →</a>
|
| 598 |
<a class="btn btn-ghost" href="/trust">Read the trust center →</a>
|
| 599 |
</div>
|
| 600 |
-
<p class="intro" style="margin-top:16px;opacity:.85">IMMUNE is a
|
| 601 |
-
|
| 602 |
-
|
| 603 |
</section>
|
| 604 |
|
| 605 |
-
<!-- ====================== (4)
|
| 606 |
-
<section class="band" id="
|
| 607 |
<div class="wrap">
|
| 608 |
-
<
|
| 609 |
-
<
|
| 610 |
-
<
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
|
| 614 |
-
|
| 615 |
-
|
| 616 |
-
<
|
| 617 |
-
<
|
| 618 |
-
<
|
| 619 |
-
|
| 620 |
-
<
|
| 621 |
-
|
| 622 |
-
<
|
| 623 |
-
<
|
| 624 |
-
|
| 625 |
-
|
| 626 |
-
<div class="
|
| 627 |
-
|
| 628 |
-
|
| 629 |
-
|
| 630 |
-
|
| 631 |
-
<div class="
|
| 632 |
-
<
|
| 633 |
-
<
|
| 634 |
-
</
|
| 635 |
-
<
|
| 636 |
-
<div class="
|
| 637 |
-
<h3>
|
| 638 |
-
<
|
| 639 |
-
|
| 640 |
-
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
<
|
| 644 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 645 |
</div>
|
| 646 |
-
<div class="solution-summary" aria-live="polite"><span class="data-state" id="solutions-state">CHECKING</span><span id="solutions-checked">Checking six read-only source contracts.</span></div>
|
| 647 |
-
<div class="cta-row" style="margin-top:24px"><a class="btn btn-primary" href="/company#contact">Request a governed-workflow pilot →</a><a class="btn btn-ghost" href="/console#launcher">Browse every operator view</a></div>
|
| 648 |
</div>
|
| 649 |
</section>
|
| 650 |
|
|
@@ -652,21 +636,22 @@
|
|
| 652 |
<section class="band wrap" id="body">
|
| 653 |
<p class="kick">The living body</p>
|
| 654 |
<h2>Watch the governed organism breathe.</h2>
|
| 655 |
-
<p class="intro">The
|
| 656 |
-
|
| 657 |
-
|
|
|
|
| 658 |
<div class="body-embed" id="body-embed">
|
| 659 |
<div class="poster" id="body-poster">
|
| 660 |
<div class="pulse-ring" aria-hidden="true"></div>
|
| 661 |
<h3>The Living Brain & Body · Anatomy v5</h3>
|
| 662 |
-
<p>Two
|
| 663 |
-
are wired to public reads (Hub assets, GitHub repos, proved theorems, organ vitals,
|
| 664 |
the harnessed open-weights frontier) — sculpt its cortex with your pointer —
|
| 665 |
and the full <b>living body</b> wired to the same probes as the console.</p>
|
| 666 |
<div class="cta-row" style="justify-content:center">
|
| 667 |
<button class="btn btn-lattice" id="brain-load" type="button">🧠 Mold the brain in-frame</button>
|
| 668 |
<button class="btn btn-ghost" id="body-load" type="button">Load the living body</button>
|
| 669 |
-
<a class="btn btn-primary" href="/anatomy-v5">Open the
|
| 670 |
<a class="btn btn-ghost" href="/living-anatomy" target="_blank" rel="noopener">Open full-screen →</a>
|
| 671 |
</div>
|
| 672 |
</div>
|
|
@@ -676,18 +661,17 @@
|
|
| 676 |
<!-- ====================== PUBLIC ECOSYSTEM ATLAS ====================== -->
|
| 677 |
<section class="band" id="ecosystem">
|
| 678 |
<div class="wrap">
|
| 679 |
-
<p class="kick">Public estate ·
|
| 680 |
<h2>Models, kernels, data, and Spaces — one evidence-labelled map.</h2>
|
| 681 |
-
<p class="sub" style="max-width:790px">The front door no longer hardcodes organization totals.
|
| 682 |
-
<div class="estate-grid" aria-label="
|
| 683 |
-
<
|
| 684 |
-
<
|
| 685 |
-
<
|
| 686 |
-
<
|
| 687 |
-
<
|
| 688 |
-
<
|
| 689 |
</div>
|
| 690 |
-
<p class="estate-observed" id="estate-observed">Inventory source has not answered this session.</p>
|
| 691 |
<div class="estate-links">
|
| 692 |
<a class="btn btn-primary" href="/ecosystem">Open ecosystem atlas →</a>
|
| 693 |
<a class="btn btn-lattice" href="/anatomy-v5">Open Anatomy v5</a>
|
|
@@ -703,15 +687,14 @@
|
|
| 703 |
<!-- ====================== (6) ONE CHAIN — live receipts/ledger ====================== -->
|
| 704 |
<section class="band" id="chain" style="background:linear-gradient(180deg,rgba(10,16,30,0),rgba(10,16,30,0.55))">
|
| 705 |
<div class="wrap">
|
| 706 |
-
<p class="kick">One chain ·
|
| 707 |
-
<h2>One
|
| 708 |
-
<p class="intro">
|
| 709 |
-
|
| 710 |
-
returned evidence and deployment configuration—not inferred from this dashboard.</p>
|
| 711 |
<div class="chainrow">
|
| 712 |
-
<div class="cstat"><div class="ck" id="chain-receipts">—</div><div class="cl"
|
| 713 |
<div class="cstat"><div class="ck ink mono" id="chain-alg">sha3_256</div><div class="cl">Chain algorithm</div></div>
|
| 714 |
-
<div class="cstat"><div class="ck" id="chain-depth">—</div><div class="cl">
|
| 715 |
<div class="cstat"><div class="ck ink mono" id="chain-head" style="font-size:.86rem">—</div><div class="cl">Last receipt id</div></div>
|
| 716 |
</div>
|
| 717 |
<div class="cta-row" style="margin-top:32px">
|
|
@@ -749,30 +732,32 @@
|
|
| 749 |
<circle cx="16" cy="16" r="13" stroke="url(#lg)" stroke-width="2"/>
|
| 750 |
<circle cx="16" cy="16" r="5" fill="url(#lg)"/></svg>
|
| 751 |
<span>a11oy<span class="sub" style="margin-left:9px">Alloy by SZL Holdings</span></span></a>
|
| 752 |
-
<p class="muted" style="margin:6px 0 0">
|
| 753 |
-
|
| 754 |
-
|
| 755 |
<p class="muted" style="margin:12px 0 0">Part of the SZL Holdings estate ·
|
| 756 |
<a href="https://github.com/szl-holdings" target="_blank" rel="noopener">github.com/szl-holdings</a></p>
|
| 757 |
</div>
|
| 758 |
<div class="lk"><strong style="color:var(--ink)">Product</strong>
|
| 759 |
-
<a href="/console
|
| 760 |
-
<a href="/console">Operator command center</a>
|
| 761 |
-
<a href="#solutions">Solutions</a>
|
| 762 |
-
<a href="/docs">Developer documentation</a>
|
| 763 |
<a href="/ecosystem">Ecosystem atlas</a>
|
| 764 |
-
<a href="/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 765 |
<div class="lk"><strong style="color:var(--ink)">Evidence</strong>
|
| 766 |
<a href="/trust">Trust center</a>
|
| 767 |
<a href="/api/a11oy/v1/ledger">Receipt ledger</a>
|
| 768 |
<a href="/api/a11oy/v1/honest">Honest status (JSON)</a>
|
| 769 |
<a href="https://github.com/szl-holdings/lutar-lean">lutar-lean proofs</a></div>
|
| 770 |
<div class="lk"><strong style="color:var(--ink)">Router & org</strong>
|
| 771 |
-
<a href="/static/viz/router/">LLM
|
| 772 |
-
<a href="https://huggingface.co/spaces/SZLHOLDINGS/llm-router-live" target="_blank" rel="noopener">
|
| 773 |
<a href="https://github.com/szl-holdings/szl-router" target="_blank" rel="noopener">SZL Router · OpenAI-compatible</a>
|
| 774 |
<a href="https://github.com/szl-holdings" target="_blank" rel="noopener">SZL Holdings · GitHub org</a>
|
| 775 |
-
<a href="
|
| 776 |
<div class="lk"><strong style="color:var(--ink)">Estate · open source</strong>
|
| 777 |
<a href="https://github.com/szl-holdings/ouroboros" target="_blank" rel="noopener">ouroboros · self-referential loop</a>
|
| 778 |
<a href="https://github.com/szl-holdings/szl-formula-ledger" target="_blank" rel="noopener">szl-formula-ledger · formula genome</a>
|
|
@@ -782,10 +767,11 @@
|
|
| 782 |
<p class="disc">Honesty doctrine v11 LOCKED. The locked-proven Lean kernel is exactly <b>8</b>
|
| 783 |
theorems {F1,F4,F7,F11,F12,F18,F19,F22}; the 144-entry genome registry is a separate, larger
|
| 784 |
set graded across four honesty tiers. The Λ trust gate is <b>Conjecture 1</b> — an
|
| 785 |
-
advisory bound, never a theorem and never 1.0.
|
| 786 |
-
|
| 787 |
-
MEASURED only with a live exporter delta,
|
| 788 |
-
|
|
|
|
| 789 |
<b style="color:var(--sub)">Alloy by SZL Holdings.</b>
|
| 790 |
© Stephen P. Lutar Jr. (ORCID 0009-0001-0110-4173) · Apache-2.0.</p>
|
| 791 |
</div>
|
|
@@ -910,20 +896,21 @@
|
|
| 910 |
$("pt-conjecture").textContent = (num(t.conjecture) === null) ? "N/A" : t.conjecture;
|
| 911 |
}
|
| 912 |
|
| 913 |
-
function
|
| 914 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 915 |
$("chain-receipts").textContent = (num(receipts)===null) ? "UNAVAILABLE" : receipts.toLocaleString();
|
| 916 |
$("hs-receipts").textContent = (num(receipts)===null) ? "—" : receipts.toLocaleString();
|
| 917 |
-
$("hs-receipts-chip").innerHTML = (num(receipts)===null) ? downChip("offline") : grayChip(
|
| 918 |
-
$("chain-alg").textContent = alg
|
| 919 |
-
const signed = !!(evidence && evidence.signed === true);
|
| 920 |
-
const chained = !!(evidence && evidence.chain_verified === true);
|
| 921 |
-
const digestOnly = !!(evidence && String(evidence.receipt_type||evidence.signature_state||"").toUpperCase().includes("DIGEST"));
|
| 922 |
-
$("chain-receipts-label").textContent = sample
|
| 923 |
-
? "SAMPLE hash-link records · not operational receipts"
|
| 924 |
-
: signed && chained
|
| 925 |
-
? "Signed receipts · chain verified by source"
|
| 926 |
-
: (digestOnly ? "UNSIGNED · DIGEST ONLY" : "Ledger receipts · signature unverified");
|
| 927 |
$("chain-depth").textContent = (num(depth)===null) ? "N/A" : depth.toLocaleString();
|
| 928 |
// Normalize head to the receipt id STRING. Some feeds (e.g. org/overview)
|
| 929 |
// return last_receipt as an object ({receipt_id, ...}); passing that straight
|
|
@@ -942,12 +929,18 @@
|
|
| 942 |
if(!o || o.status === "UNAVAILABLE") return false;
|
| 943 |
let any = false;
|
| 944 |
if(o.proof_tiers){ setTiers(o.proof_tiers); $("proof-src").innerHTML = liveChip("overview"); any = true; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 945 |
const ts = o.thesis_stats || {};
|
| 946 |
const ch = o.chain || {};
|
| 947 |
if(ts.signed_receipts !== undefined || ch.depth !== undefined){
|
| 948 |
-
setChain(num(ts.signed_receipts), ts.chain_alg ||
|
| 949 |
$("chain-src").innerHTML = liveChip("overview"); any = true;
|
| 950 |
}
|
|
|
|
| 951 |
return any;
|
| 952 |
}catch(e){ return false; }
|
| 953 |
}
|
|
@@ -965,20 +958,34 @@
|
|
| 965 |
setTiers({}); $("proof-src").innerHTML = downChip("UNAVAILABLE");
|
| 966 |
}
|
| 967 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 968 |
async function loadChain(){
|
| 969 |
-
let receipts=null, alg=
|
|
|
|
| 970 |
try{ const l = await getJSON("/api/a11oy/v1/ledger"); depth = num(l.count);
|
| 971 |
if(Array.isArray(l.receipts) && l.receipts.length){ head = l.receipts[l.receipts.length-1].receipt_id; }
|
| 972 |
-
|
| 973 |
-
setChain(receipts, alg, depth, head
|
| 974 |
-
$("chain-src").innerHTML = ok ? grayChip((
|
| 975 |
}
|
| 976 |
|
| 977 |
// ---- live estate pulse: reachability is reported separately from correctness ----
|
| 978 |
function pulseState(key, state, detail){
|
| 979 |
const chip = $("pulse-"+key+"-state");
|
| 980 |
const body = $("pulse-"+key+"-detail");
|
| 981 |
-
const amberStates = new Set(["CACHED","STALE_CACHE","SNAPSHOT","
|
| 982 |
if(chip){ chip.textContent = state; chip.className = "data-state "+((state === "LIVE" || state === "REACHABLE") ? "live" : (amberStates.has(state) ? "amber" : "down")); }
|
| 983 |
if(body) body.textContent = detail;
|
| 984 |
}
|
|
@@ -1001,10 +1008,7 @@
|
|
| 1001 |
const checked = Boolean(d.probe_verdict_available);
|
| 1002 |
pulseState("contract", checked ? "REACHABLE" : "SNAPSHOT", (s.tabs || "Published")+" tabs · "+(s.endpoints || "declared")+" endpoint contracts · "+(checked ? "deployment probe attached." : "static contract; deployment probe pending."));
|
| 1003 |
}).catch(() => pulseState("contract", "UNAVAILABLE", "Tab contract is not bundled with this deployment.")),
|
| 1004 |
-
pulseJSON("/api/a11oy/v1/ledger").then(d =>
|
| 1005 |
-
const sample = d && (d.operational === false || String(d.data_kind||d.state||"").toUpperCase() === "SAMPLE");
|
| 1006 |
-
pulseState("ledger", sample ? "SAMPLE" : "REACHABLE", (typeof d.count === "number" ? d.count : "Current")+(sample ? " deterministic sample hash records; excluded from operational receipt and ROI counts." : " receipts returned by the read; verify timestamp and chain state in the source."));
|
| 1007 |
-
})
|
| 1008 |
.catch(() => pulseState("ledger", "UNAVAILABLE", "Receipt ledger did not answer this session.")),
|
| 1009 |
pulseJSON("/api/a11oy/v1/mesh/state").then(d => {
|
| 1010 |
const nodes = Array.isArray(d.nodes) ? d.nodes.length : (Array.isArray(d.peers) ? d.peers.length : null);
|
|
@@ -1015,107 +1019,6 @@
|
|
| 1015 |
if($("pulse-checked")) $("pulse-checked").textContent = "Checked "+new Date().toLocaleString()+" · read-only · cache disabled";
|
| 1016 |
}
|
| 1017 |
|
| 1018 |
-
function solutionProbeState(contract,d){
|
| 1019 |
-
if(!d || typeof d!=="object" || Array.isArray(d)) throw new Error("non-object response");
|
| 1020 |
-
const states=[];
|
| 1021 |
-
function source(node,name){
|
| 1022 |
-
if(!node || typeof node!=="object" || Array.isArray(node) || !("value" in node)) throw new Error(name+" source envelope missing");
|
| 1023 |
-
const f=node.freshness;
|
| 1024 |
-
if(!f || typeof f!=="object" || typeof f.status!=="string") throw new Error(name+" freshness missing");
|
| 1025 |
-
const s=f.status.toUpperCase();
|
| 1026 |
-
if(["LIVE","CACHED","STALE","STALE_CACHE"].includes(s)){
|
| 1027 |
-
const ts=Number(f.fetched_at);
|
| 1028 |
-
if(!Number.isFinite(ts) || ts<=0 || ts>(Date.now()/1000)+300) throw new Error(name+" source clock invalid");
|
| 1029 |
-
}
|
| 1030 |
-
states.push(s);
|
| 1031 |
-
}
|
| 1032 |
-
function sourceMap(map,names,label){
|
| 1033 |
-
if(!map || typeof map!=="object" || Array.isArray(map)) throw new Error(label+" map missing");
|
| 1034 |
-
names.forEach(k => source(map[k],label+"."+k));
|
| 1035 |
-
}
|
| 1036 |
-
if(contract==="cyber"){
|
| 1037 |
-
if(d.vertical!=="cyber") throw new Error("cyber discriminator mismatch");
|
| 1038 |
-
["kev","nvd","gh_events","hf"].forEach(k => source(d[k],"cyber."+k));
|
| 1039 |
-
}else if(contract==="finance"){
|
| 1040 |
-
if(d.vertical!=="finance") throw new Error("finance discriminator mismatch");
|
| 1041 |
-
sourceMap(d.equities,["SPY","AAPL","MSFT","NVDA","^VIX"],"finance.equities");
|
| 1042 |
-
sourceMap(d.crypto,["BTC-USD","ETH-USD","SOL-USD"],"finance.crypto");
|
| 1043 |
-
source(d.fx,"finance.fx"); source(d.fintech_cve,"finance.fintech_cve");
|
| 1044 |
-
}else if(contract==="provenance"){
|
| 1045 |
-
if(typeof d.slsa!=="string" || !d.khipu_dsse || typeof d.khipu_dsse!=="object") throw new Error("provenance contract mismatch");
|
| 1046 |
-
return {label:"SLSA "+String(d.slsa).toUpperCase()+" SOURCE",kind:"amber",live:false};
|
| 1047 |
-
}else if(contract==="enterprise"){
|
| 1048 |
-
if(!Array.isArray(d.capabilities) || !d.capabilities.length || !d.mesh_reach || typeof d.mesh_reach!=="object") throw new Error("enterprise inventory missing");
|
| 1049 |
-
d.capabilities.forEach((p,i) => {
|
| 1050 |
-
if(!p || typeof p!=="object" || !(p.id||p.name) || typeof p.observed!=="boolean" || typeof p.status!=="string") throw new Error("enterprise capability "+i+" malformed");
|
| 1051 |
-
states.push(p.observed===true ? p.status.toUpperCase() : "INVENTORY");
|
| 1052 |
-
});
|
| 1053 |
-
}else if(contract==="realestate"){
|
| 1054 |
-
if(d.tab!=="pulse") throw new Error("real-estate discriminator mismatch");
|
| 1055 |
-
["hpd","dob","rates"].forEach(k => source(d[k],"realestate."+k));
|
| 1056 |
-
}else if(contract==="legal"){
|
| 1057 |
-
if(d.surface!=="matter" || typeof d.term!=="string" || !d.term.trim()) throw new Error("legal discriminator mismatch");
|
| 1058 |
-
source(d.opinions,"legal.opinions");
|
| 1059 |
-
}else{
|
| 1060 |
-
throw new Error("unknown response contract");
|
| 1061 |
-
}
|
| 1062 |
-
if(!states.length) throw new Error("required evidence states missing");
|
| 1063 |
-
const bad=new Set(["UNAVAILABLE","ERROR","FAILED","BLOCKED","DOWN","UNHEALTHY"]);
|
| 1064 |
-
const stale=new Set(["CACHED","STALE","STALE_CACHE","SNAPSHOT","MODELED","DEGRADED","INVENTORY"]);
|
| 1065 |
-
const good=new Set(["LIVE","OK","UP","HEALTHY"]);
|
| 1066 |
-
const nBad=states.filter(s=>bad.has(s)).length, nGood=states.filter(s=>good.has(s)).length;
|
| 1067 |
-
if(nBad && nGood) return {label:"DEGRADED",kind:"amber",live:false};
|
| 1068 |
-
if(nBad) return {label:"UNAVAILABLE",kind:"down",live:false};
|
| 1069 |
-
if(states.some(s=>stale.has(s))) return {label:states.find(s=>stale.has(s))||"QUALIFIED",kind:"amber",live:false};
|
| 1070 |
-
if(states.every(s=>good.has(s))) return {label:"LIVE",kind:"live",live:true};
|
| 1071 |
-
return {label:"QUALIFIED",kind:"amber",live:false};
|
| 1072 |
-
}
|
| 1073 |
-
|
| 1074 |
-
// ---- six solution views: validate route schema + evidence state without upgrading HTTP 200 to truth ----
|
| 1075 |
-
async function loadSolutionProbes(){
|
| 1076 |
-
const cards = Array.from(document.querySelectorAll("[data-solution-probe]"));
|
| 1077 |
-
const results = await Promise.all(cards.map(async card => {
|
| 1078 |
-
const chip = card.querySelector(".data-state");
|
| 1079 |
-
const url = card.getAttribute("data-solution-probe");
|
| 1080 |
-
const contract = card.getAttribute("data-solution-contract");
|
| 1081 |
-
try{
|
| 1082 |
-
const d = await pulseJSON(url);
|
| 1083 |
-
const state = solutionProbeState(contract,d);
|
| 1084 |
-
chip.textContent = state.label;
|
| 1085 |
-
chip.className = "data-state "+state.kind;
|
| 1086 |
-
card.title = "Read-only workflow contract validated this session: "+url+". Evidence state: "+state.label+". This is not a correctness, compliance, or customer claim.";
|
| 1087 |
-
return {valid:true,live:state.live};
|
| 1088 |
-
}catch(_){
|
| 1089 |
-
chip.textContent = "UNAVAILABLE"; chip.className = "data-state down";
|
| 1090 |
-
card.title = "Read-only workflow source did not answer with its expected contract inside this session's bounded probe: "+url;
|
| 1091 |
-
return {valid:false,live:false};
|
| 1092 |
-
}
|
| 1093 |
-
}));
|
| 1094 |
-
const valid = results.filter(r=>r.valid).length, live=results.filter(r=>r.live).length;
|
| 1095 |
-
const state = $("solutions-state");
|
| 1096 |
-
if(state){ state.textContent = valid+"/"+cards.length+" CONTRACTS · "+live+" LIVE"; state.className = "data-state "+(live===cards.length ? "live" : (valid ? "amber" : "down")); }
|
| 1097 |
-
if($("solutions-checked")) $("solutions-checked").textContent = "Checked "+new Date().toLocaleString()+" · read-only · schema and evidence-state validation.";
|
| 1098 |
-
}
|
| 1099 |
-
|
| 1100 |
-
// ---- public estate: never freeze inventory counts into marketing copy ----
|
| 1101 |
-
async function loadEstateInventory(){
|
| 1102 |
-
const keys = ["models","kernels","datasets","spaces","collections","buckets"];
|
| 1103 |
-
try{
|
| 1104 |
-
const d = await pulseJSON("/api/a11oy/v1/ecosystem/atlas");
|
| 1105 |
-
const counts = d && d.counts || {};
|
| 1106 |
-
keys.forEach(key => { const node = $("estate-"+key); if(node) node.textContent = num(counts[key])===null ? "N/A" : counts[key].toLocaleString(); });
|
| 1107 |
-
const stateName = String(d && d.state || "UNAVAILABLE").toUpperCase();
|
| 1108 |
-
const state = $("estate-source-state");
|
| 1109 |
-
const qualified = new Set(["CACHED","STALE_CACHE","SNAPSHOT"]);
|
| 1110 |
-
if(state){ state.innerHTML = '<span class="data-state '+(stateName==="LIVE" ? "live" : (qualified.has(stateName) ? "amber" : "down"))+'">'+esc(stateName)+'</span>'; }
|
| 1111 |
-
if($("estate-observed")) $("estate-observed").textContent = "Inventory observed "+(d.observed_at || "at an unreported time")+" · source state "+stateName+" · reachability does not prove GitHub/Hugging Face revision parity.";
|
| 1112 |
-
}catch(_){
|
| 1113 |
-
keys.forEach(key => { const node = $("estate-"+key); if(node) node.textContent = "N/A"; });
|
| 1114 |
-
if($("estate-source-state")) $("estate-source-state").innerHTML = '<span class="data-state down">UNAVAILABLE</span>';
|
| 1115 |
-
if($("estate-observed")) $("estate-observed").textContent = "Versioned inventory source did not answer this session; no stale count is promoted to current.";
|
| 1116 |
-
}
|
| 1117 |
-
}
|
| 1118 |
-
|
| 1119 |
// ---- (C) living body: load the anatomy Space in-frame only on click (perf + reduced-motion) ----
|
| 1120 |
const bl = $("body-load");
|
| 1121 |
if(bl){ bl.addEventListener("click", function(){
|
|
@@ -1143,16 +1046,16 @@
|
|
| 1143 |
// ---- orchestrate: overview first, fall back per-block for anything it didn't fill ----
|
| 1144 |
(async function(){
|
| 1145 |
loadEstatePulse();
|
| 1146 |
-
loadSolutionProbes();
|
| 1147 |
-
loadEstateInventory();
|
| 1148 |
loadOverclaimMetrics();
|
| 1149 |
const ov = await loadOverview();
|
| 1150 |
const filled = {
|
| 1151 |
tiers: $("proof-src").innerHTML.trim() !== "",
|
|
|
|
| 1152 |
chain: $("chain-src").innerHTML.trim() !== "",
|
| 1153 |
};
|
| 1154 |
const jobs = [];
|
| 1155 |
if(!filled.tiers) jobs.push(loadGenomeTiers());
|
|
|
|
| 1156 |
if(!filled.chain) jobs.push(loadChain());
|
| 1157 |
await Promise.allSettled(jobs);
|
| 1158 |
})();
|
|
|
|
| 5 |
a11oy — front door (scroll narrative). Served at the Space root "/" by serve.py.
|
| 6 |
SOVEREIGN: Three.js r160 (MIT) vendored in-image at /hero/vendor3d. 0 runtime CDN.
|
| 7 |
Fonts (Space Grotesk / JetBrains Mono) vendored at /vendor/fonts/*.woff2.
|
| 8 |
+
HONESTY DOCTRINE v11 LOCKED — every figure is fetched live and labelled honestly
|
| 9 |
(REACHABLE / MEASURED / MODELED / SNAPSHOT / UNAVAILABLE). Nothing is fabricated. Λ = Conjecture 1 (advisory, NOT a theorem,
|
| 10 |
never 1.0, NEVER green). Locked-proven Lean kernel = EXACTLY 8 {F1,F4,F7,F11,F12,F18,F19,F22}.
|
| 11 |
The genome registry (144 entries) is grouped into 4 honesty tiers — a different, larger set.
|
|
|
|
| 19 |
<head>
|
| 20 |
<meta charset="utf-8" />
|
| 21 |
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
| 22 |
+
<title>a11oy — Governed Inference · AI that proves its receipt state and refuses to lie</title>
|
| 23 |
+
<meta name="description" content="Governed Inference: AI that exposes receipt integrity, signer state, evidence, and refusal behavior. State-changing actions produce hash-chained receipts; DSSE signing is claimed only when persistent signer evidence is active and independently verified." />
|
| 24 |
<link rel="canonical" href="https://a-11-oy.com/" />
|
| 25 |
<meta property="og:type" content="website" />
|
| 26 |
<meta property="og:url" content="https://a-11-oy.com/" />
|
| 27 |
+
<meta property="og:title" content="a11oy — Governed Inference" />
|
| 28 |
+
<meta property="og:description" content="AI that exposes receipt integrity and signer state, shows its evidence, and refuses when it cannot support an answer." />
|
| 29 |
+
<meta property="og:image" content="https://a-11-oy.com/social-preview-v5.png" />
|
| 30 |
<meta property="og:image:type" content="image/png" />
|
| 31 |
+
<meta property="og:image:width" content="1280" />
|
| 32 |
+
<meta property="og:image:height" content="640" />
|
| 33 |
+
<meta property="og:image:alt" content="a11oy Governed Inference — evidence-labelled ecosystem and Anatomy v5" />
|
| 34 |
<meta name="twitter:card" content="summary_large_image" />
|
| 35 |
+
<meta name="twitter:image" content="https://a-11-oy.com/social-preview-v5.png" />
|
| 36 |
+
<meta name="twitter:image:alt" content="a11oy Governed Inference — evidence-labelled ecosystem and Anatomy v5" />
|
| 37 |
<link rel="icon" type="image/svg+xml" href="/social-preview-v5.svg" />
|
| 38 |
<script type="application/ld+json">
|
| 39 |
{
|
| 40 |
"@context": "https://schema.org",
|
| 41 |
"@type": "SoftwareApplication",
|
| 42 |
+
"name": "a11oy Governed Inference",
|
| 43 |
"url": "https://a-11-oy.com/",
|
| 44 |
"applicationCategory": "DeveloperApplication",
|
| 45 |
"operatingSystem": "Web",
|
|
|
|
| 258 |
.vcard .lam .val{font-family:var(--mono);font-size:1.7rem;font-weight:600;color:var(--ink)}
|
| 259 |
.vcard .lam .cap{font-size:11px;color:var(--ghost);text-transform:uppercase;letter-spacing:1px}
|
| 260 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 261 |
/* living body */
|
| 262 |
.body-embed{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--border);
|
| 263 |
background:radial-gradient(ellipse 70% 80% at 50% 30%, rgba(91,141,238,0.12), transparent 70%), var(--deep);
|
|
|
|
| 319 |
background:linear-gradient(155deg,rgba(17,30,50,.72),rgba(8,16,29,.88))}
|
| 320 |
.estate-cell b{display:block;color:var(--proof);font:600 1.45rem var(--mono);margin-bottom:4px}
|
| 321 |
.estate-cell span{color:var(--ghost);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}
|
| 322 |
+
a.estate-cell{transition:border-color .16s,transform .16s,background .16s}
|
| 323 |
+
a.estate-cell:hover{border-color:rgba(58,244,200,.45);transform:translateY(-1px);background:linear-gradient(155deg,rgba(17,40,55,.82),rgba(8,16,29,.92))}
|
| 324 |
.estate-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
|
|
|
|
| 325 |
@media(max-width:900px){.estate-grid{grid-template-columns:repeat(3,1fr)}}
|
| 326 |
@media(max-width:520px){.estate-grid{grid-template-columns:repeat(2,1fr)}}
|
| 327 |
|
|
|
|
| 387 |
<circle cx="16" cy="16" r="5" fill="url(#lg)"/>
|
| 388 |
<path d="M16 3v8M16 21v8M3 16h8M21 16h8" stroke="url(#lg)" stroke-width="1.6" opacity=".7"/>
|
| 389 |
</svg>
|
| 390 |
+
<span>a11oy<span class="sub" style="margin-left:9px">Governed Inference</span></span>
|
| 391 |
</a>
|
| 392 |
<nav>
|
| 393 |
+
<a class="hide-sm" href="#surfaces">Surfaces</a>
|
| 394 |
+
<a class="hide-sm" href="/ecosystem">Ecosystem</a>
|
| 395 |
+
<a class="hide-sm" href="/anatomy-v5">Anatomy v5</a>
|
| 396 |
+
<a class="hide-sm" href="#proof">The proof</a>
|
| 397 |
+
<a class="hide-sm" href="#honesty">Honesty</a>
|
| 398 |
+
<a class="hide-sm" href="/console#arena">Eval arena</a>
|
| 399 |
+
<a class="hide-sm" href="/observability">Observability</a>
|
| 400 |
+
<a href="/trust">Evidence</a>
|
| 401 |
<a class="btn btn-primary" href="/console" aria-label="Open the command center"><span class="nav-cta-full">Open the command center</span><span class="nav-cta-short" aria-hidden="true">Command center</span> →</a>
|
| 402 |
</nav>
|
| 403 |
</div>
|
|
|
|
| 411 |
<div class="hero-fallback" id="hero-fallback"></div>
|
| 412 |
<div class="wrap">
|
| 413 |
<div class="hero-inner">
|
| 414 |
+
<span class="eyebrow"><span class="dot"></span> Governed Inference · verifiable by anyone, offline</span>
|
| 415 |
+
<h1 class="title">AI that <span class="grad">proves its receipt state</span><br>and refuses to lie.</h1>
|
| 416 |
+
<p class="lede">Every governed state change produces a hash-chained receipt you can inspect
|
| 417 |
+
<b>offline, in your own browser</b>. The interface says <b>SIGNED</b> only when persistent
|
| 418 |
+
signer evidence is active and verification passes; otherwise it reports HASH-LINKED,
|
| 419 |
+
UNSIGNED, DISABLED, or UNAVAILABLE. When the model is not sure, it returns an honest
|
| 420 |
+
<b>BLOCKED</b> instead of a confident guess.</p>
|
| 421 |
<div class="cta-row">
|
| 422 |
+
<a class="btn btn-primary" href="/console">Open the command center →</a>
|
| 423 |
+
<a class="btn btn-lattice" href="/ecosystem">Explore the ecosystem</a>
|
| 424 |
+
<a class="btn btn-ghost" href="/verify">Verify a receipt offline</a>
|
| 425 |
</div>
|
| 426 |
<div class="hero-stats">
|
| 427 |
<div class="stat">
|
| 428 |
<div class="k proof" id="hs-receipts">—</div>
|
| 429 |
+
<div class="l">Receipts in the chain <span id="hs-receipts-chip"></span><br><span class="stat-note">ledger depth — a mechanism check, not customer traction</span></div>
|
| 430 |
</div>
|
| 431 |
<div class="stat">
|
| 432 |
<div class="k gray" id="hs-lambda">Conjecture 1</div>
|
|
|
|
| 473 |
<div class="pulse-grid" aria-live="polite">
|
| 474 |
<article class="pulse-card"><div class="pulse-head"><h3>Platform health</h3><span class="data-state" id="pulse-health-state">CHECKING</span></div><p id="pulse-health-detail">Checking the deployed runtime.</p><a href="/healthz">Source /healthz →</a></article>
|
| 475 |
<article class="pulse-card"><div class="pulse-head"><h3>Tab contract</h3><span class="data-state" id="pulse-contract-state">CHECKING</span></div><p id="pulse-contract-detail">Checking the published tab inventory.</p><a href="/api/a11oy/v1/readiness/tab-matrix">Source tab matrix →</a></article>
|
| 476 |
+
<article class="pulse-card"><div class="pulse-head"><h3>Receipt ledger</h3><span class="data-state" id="pulse-ledger-state">CHECKING</span></div><p id="pulse-ledger-detail">Checking the append-only evidence read.</p><a href="/api/a11oy/v1/ledger">Source receipt ledger →</a></article>
|
| 477 |
<article class="pulse-card"><div class="pulse-head"><h3>Sovereign mesh</h3><span class="data-state" id="pulse-mesh-state">CHECKING</span></div><p id="pulse-mesh-detail">Checking the current mesh posture.</p><a href="/api/a11oy/v1/mesh/state">Source mesh state →</a></article>
|
| 478 |
</div>
|
| 479 |
<p class="pulse-time" id="pulse-checked">Checks have not completed.</p>
|
| 480 |
</section>
|
| 481 |
|
| 482 |
+
<!-- ====================== (1c) EXPLORE THE SURFACES ====================== -->
|
| 483 |
+
<section class="band wrap" id="surfaces">
|
| 484 |
+
<p class="kick">Explore the estate</p>
|
| 485 |
+
<h2>Nine surfaces. One governed core.</h2>
|
| 486 |
+
<p class="intro">Every surface reads the same live endpoints and the same honesty doctrine. Jump straight in — the full working console is one click away.</p>
|
| 487 |
+
<div class="grid g3">
|
| 488 |
+
<a class="card surface-card" href="/console"><div class="ic">⌘</div><h3>Command Center</h3><p>The working console — receipt integrity, separately disclosed signer state, the self-doubt gate, the genome registry, and live organ vitals.</p><div class="golinks"><span class="go">Open /console →</span></div></a>
|
| 489 |
+
<a class="card surface-card" href="/superpowers"><div class="ic">✦</div><h3>Five Superpowers</h3><p>The five things governed inference does that ungoverned models can't — each linked to the live check that backs it.</p><div class="golinks"><span class="go">Open /superpowers →</span></div></a>
|
| 490 |
+
<a class="card surface-card" href="/console#arena"><div class="ic">⚔</div><h3>Adversarial assurance</h3><p>Run governed evaluations, inspect refusals, and trace every verdict to its evidence. The archived Warhacker route now resolves here.</p><div class="golinks"><span class="go">Open the eval arena →</span></div></a>
|
| 491 |
+
<a class="card surface-card" href="/observability"><div class="ic">◎</div><h3>Observability</h3><p>OpenTelemetry-style traces and health summaries across the organs — live, read-only, no sign-on-GET.</p><div class="golinks"><span class="go">Open /observability →</span></div></a>
|
| 492 |
+
<a class="card surface-card" href="/wires"><div class="ic">〜</div><h3>Wires</h3><p>The live wiring between organs — which probe feeds which surface, and whether it is up right now.</p><div class="golinks"><span class="go">Open /wires →</span></div></a>
|
| 493 |
+
<a class="card surface-card" href="/console#mesh"><div class="ic">◇</div><h3>Mesh</h3><p>The BFT-quorum mesh graph — 3-of-4 consensus, live state read from <span class="mono">/api/a11oy/v1/mesh/state</span>.</p><div class="golinks"><span class="go">Open the mesh →</span></div></a>
|
| 494 |
+
<a class="card surface-card" href="/formulas"><div class="ic">Σ</div><h3>Formulas</h3><p>The PURIQ agentic formula genome — live-recomputed values, each carrying its own Khipu receipt.</p><div class="golinks"><span class="go">Open /formulas →</span></div></a>
|
| 495 |
+
<a class="card surface-card" href="/trust"><div class="ic">✓</div><h3>Evidence</h3><p>The trust center: the locked-8 with truthful Lean refs, Theorem U vs Conjecture 1, the receipt ledger, offline verify.</p><div class="golinks"><span class="go">Open the evidence →</span></div></a>
|
| 496 |
+
<a class="card surface-card" href="/static/viz/router/"><div class="ic mono">⇄</div><h3>LLM Router</h3><p>The LLM-Router Live scene — per-tier routing stats polled every second, otherwise an honest DEMO MODE.</p><div class="golinks"><span class="go">Open the router →</span></div></a>
|
| 497 |
</div>
|
|
|
|
|
|
|
| 498 |
</section>
|
| 499 |
|
| 500 |
<div class="wrap"><div class="divider"></div></div>
|
|
|
|
| 503 |
<section class="band wrap" id="thesis">
|
| 504 |
<p class="kick">The thesis</p>
|
| 505 |
<h2>Governed AI you can prove — not AI you're asked to trust.</h2>
|
| 506 |
+
<p class="intro">Most AI asks for trust. a11oy earns it the way auditable systems do: every
|
| 507 |
+
governed state change is recorded in a hash-chained receipt, while signer state and signature
|
| 508 |
+
verification are disclosed separately and never inferred; a trust gate can only tighten an
|
| 509 |
+
answer, never wave it through; and the kernel rests on machine-checked theorems you can read.
|
| 510 |
+
The honest part is the product — when a claim isn't proven, we label it, and you can open the
|
| 511 |
+
check yourself.</p>
|
| 512 |
<div class="pillars">
|
| 513 |
<div class="pillar">
|
| 514 |
+
<div class="pk">01 · RECEIPTS</div>
|
| 515 |
+
<h3>It proves receipt integrity and signer state</h3>
|
| 516 |
+
<p>Every governed state change enters a SHA3-256 hash chain. DSSE / ECDSA-P256 is a separate
|
| 517 |
+
cryptographic state and is labeled SIGNED only when persistent signer evidence is active
|
| 518 |
+
and independent verification passes. Verify the disclosed state in your own browser.</p>
|
| 519 |
</div>
|
| 520 |
<div class="pillar">
|
| 521 |
<div class="pk">02 · REFUSES</div>
|
|
|
|
| 568 |
</div>
|
| 569 |
</div>
|
| 570 |
<div class="cta-row" style="margin-top:34px">
|
| 571 |
+
<a class="btn btn-primary" href="https://szlholdings-immune.hf.space" target="_blank" rel="noopener">See it run live · IMMUNE demo →</a>
|
| 572 |
<a class="btn btn-ghost" href="/console#genome">Browse the genome →</a>
|
| 573 |
<a class="btn btn-ghost" href="/trust">Read the trust center →</a>
|
| 574 |
</div>
|
| 575 |
+
<p class="intro" style="margin-top:16px;opacity:.85">IMMUNE is a live, interactive demo of the same thesis you can drive yourself — a
|
| 576 |
+
real hash-chained receipt ledger, a live Sigstore Rekor transparency anchor, and honest
|
| 577 |
+
<b>BLOCKED</b> / <b>UNAVAILABLE</b> states instead of confident guesses. Nothing on that page is fabricated.</p>
|
| 578 |
</section>
|
| 579 |
|
| 580 |
+
<!-- ====================== (4) THE VERTICALS — live /lambda/org ====================== -->
|
| 581 |
+
<section class="band" id="verticals" style="background:linear-gradient(180deg,rgba(10,16,30,0),rgba(10,16,30,0.55))">
|
| 582 |
<div class="wrap">
|
| 583 |
+
<p class="kick">The verticals · live Λ posture <span id="verticals-src"></span></p>
|
| 584 |
+
<h2>One governed core. Five places it earns its keep.</h2>
|
| 585 |
+
<p class="intro">The same governed inference core runs across five verticals. Each card reads
|
| 586 |
+
its live advisory Λ posture from the org-wide 13-axis gate (canonical floor 0.90). Λ is
|
| 587 |
+
Conjecture 1 — advisory, never a pass/fail oracle.</p>
|
| 588 |
+
<div class="grid g3">
|
| 589 |
+
<div class="vcard">
|
| 590 |
+
<div class="pmark">a11</div>
|
| 591 |
+
<h3>a11oy</h3>
|
| 592 |
+
<div class="tag">Core · governed inference</div>
|
| 593 |
+
<p>The platform itself — command center, receipt integrity, disclosed signer state, and the self-doubt gate.</p>
|
| 594 |
+
<div class="lam"><span class="val" id="v-core">—</span><span class="cap">advisory Λ</span><span id="v-core-chip"></span></div>
|
| 595 |
+
</div>
|
| 596 |
+
<div class="vcard">
|
| 597 |
+
<div class="pmark">kil</div>
|
| 598 |
+
<h3>killinchu</h3>
|
| 599 |
+
<div class="tag">Defense · counter-UAS</div>
|
| 600 |
+
<p>Auditable interdiction: receipt per decision, separately disclosed signing state, and 3-of-4 BFT consensus.</p>
|
| 601 |
+
<div class="lam"><span class="val" id="v-defense">—</span><span class="cap">advisory Λ</span><span id="v-defense-chip"></span></div>
|
| 602 |
+
</div>
|
| 603 |
+
<div class="vcard">
|
| 604 |
+
<div class="pmark">ins</div>
|
| 605 |
+
<h3>Insurance</h3>
|
| 606 |
+
<div class="tag">David Leads · lead scoring</div>
|
| 607 |
+
<p>Faithful David Leads scorer behind an F12 non-compensatory consent gate.</p>
|
| 608 |
+
<div class="lam"><span class="val" id="v-insurance">—</span><span class="cap">advisory Λ</span><span id="v-insurance-chip"></span></div>
|
| 609 |
+
</div>
|
| 610 |
+
<div class="vcard">
|
| 611 |
+
<div class="pmark">fin</div>
|
| 612 |
+
<h3>Finance</h3>
|
| 613 |
+
<div class="tag">Governed decisioning</div>
|
| 614 |
+
<p>Decision paths that must be reconstructable, receipt-bound, and conditionally signed only when verified signer evidence is active.</p>
|
| 615 |
+
<div class="lam"><span class="val" id="v-finance">—</span><span class="cap">advisory Λ</span><span id="v-finance-chip"></span></div>
|
| 616 |
+
</div>
|
| 617 |
+
<div class="vcard">
|
| 618 |
+
<div class="pmark">re</div>
|
| 619 |
+
<h3>Real estate</h3>
|
| 620 |
+
<div class="tag">Governed workflows</div>
|
| 621 |
+
<p>Workflow decisions captured into the same one-chain receipt ledger.</p>
|
| 622 |
+
<div class="lam"><span class="val" id="v-realestate">—</span><span class="cap">advisory Λ</span><span id="v-realestate-chip"></span></div>
|
| 623 |
+
</div>
|
| 624 |
+
<div class="vcard" style="border-style:dashed;align-items:flex-start;justify-content:center">
|
| 625 |
+
<div class="pmark" style="background:rgba(58,244,200,0.08);border-color:rgba(58,244,200,0.25);color:var(--proof)">Λ</div>
|
| 626 |
+
<h3>Org-wide Λ</h3>
|
| 627 |
+
<div class="tag">13-axis weighted geomean</div>
|
| 628 |
+
<p>The composite advisory posture across all verticals, with min≤Λ≤max SEMANTIC-VERIFIED.</p>
|
| 629 |
+
<div class="lam"><span class="val" id="v-org">—</span><span class="cap">floor 0.90</span><span id="v-org-chip"></span></div>
|
| 630 |
+
</div>
|
| 631 |
</div>
|
|
|
|
|
|
|
| 632 |
</div>
|
| 633 |
</section>
|
| 634 |
|
|
|
|
| 636 |
<section class="band wrap" id="body">
|
| 637 |
<p class="kick">The living body</p>
|
| 638 |
<h2>Watch the governed organism breathe.</h2>
|
| 639 |
+
<p class="intro">The same live endpoints render as a 3D anatomical organism — organs glow when
|
| 640 |
+
their probes are healthy and dim when they're not, and receipt events travel the vessels as
|
| 641 |
+
pulses. It is an operational projection of the platform state. Every pulse links to a real
|
| 642 |
+
receipt event; its signing state remains separately disclosed.</p>
|
| 643 |
<div class="body-embed" id="body-embed">
|
| 644 |
<div class="poster" id="body-poster">
|
| 645 |
<div class="pulse-ring" aria-hidden="true"></div>
|
| 646 |
<h3>The Living Brain & Body · Anatomy v5</h3>
|
| 647 |
+
<p>Two live 3D views of the same governed organism: a <b>moldable brain</b> whose eight lobes
|
| 648 |
+
are wired to live public reads (Hub assets, GitHub repos, proved theorems, organ vitals,
|
| 649 |
the harnessed open-weights frontier) — sculpt its cortex with your pointer —
|
| 650 |
and the full <b>living body</b> wired to the same probes as the console.</p>
|
| 651 |
<div class="cta-row" style="justify-content:center">
|
| 652 |
<button class="btn btn-lattice" id="brain-load" type="button">🧠 Mold the brain in-frame</button>
|
| 653 |
<button class="btn btn-ghost" id="body-load" type="button">Load the living body</button>
|
| 654 |
+
<a class="btn btn-primary" href="/anatomy-v5">Open the live digital twin →</a>
|
| 655 |
<a class="btn btn-ghost" href="/living-anatomy" target="_blank" rel="noopener">Open full-screen →</a>
|
| 656 |
</div>
|
| 657 |
</div>
|
|
|
|
| 661 |
<!-- ====================== PUBLIC ECOSYSTEM ATLAS ====================== -->
|
| 662 |
<section class="band" id="ecosystem">
|
| 663 |
<div class="wrap">
|
| 664 |
+
<p class="kick">Public estate · canonical live sources</p>
|
| 665 |
<h2>Models, kernels, data, and Spaces — one evidence-labelled map.</h2>
|
| 666 |
+
<p class="sub" style="max-width:790px">The front door no longer hardcodes organization totals. Open each canonical source for its current inventory; a reachable URL establishes reachability only, not source/runtime alignment or model quality.</p>
|
| 667 |
+
<div class="estate-grid" aria-label="Canonical public ecosystem sources">
|
| 668 |
+
<a class="estate-cell" href="https://huggingface.co/SZLHOLDINGS/models" target="_blank" rel="noopener"><b>OPEN</b><span>Models</span></a>
|
| 669 |
+
<a class="estate-cell" href="/kernels"><b>OPEN</b><span>Governed kernels</span></a>
|
| 670 |
+
<a class="estate-cell" href="https://huggingface.co/SZLHOLDINGS/datasets" target="_blank" rel="noopener"><b>OPEN</b><span>Datasets</span></a>
|
| 671 |
+
<a class="estate-cell" href="https://huggingface.co/SZLHOLDINGS/spaces" target="_blank" rel="noopener"><b>OPEN</b><span>Spaces</span></a>
|
| 672 |
+
<a class="estate-cell" href="https://huggingface.co/SZLHOLDINGS/collections" target="_blank" rel="noopener"><b>OPEN</b><span>Collections</span></a>
|
| 673 |
+
<a class="estate-cell" href="https://huggingface.co/SZLHOLDINGS" target="_blank" rel="noopener"><b>OPEN</b><span>Organization</span></a>
|
| 674 |
</div>
|
|
|
|
| 675 |
<div class="estate-links">
|
| 676 |
<a class="btn btn-primary" href="/ecosystem">Open ecosystem atlas →</a>
|
| 677 |
<a class="btn btn-lattice" href="/anatomy-v5">Open Anatomy v5</a>
|
|
|
|
| 687 |
<!-- ====================== (6) ONE CHAIN — live receipts/ledger ====================== -->
|
| 688 |
<section class="band" id="chain" style="background:linear-gradient(180deg,rgba(10,16,30,0),rgba(10,16,30,0.55))">
|
| 689 |
<div class="wrap">
|
| 690 |
+
<p class="kick">One chain · live ledger <span id="chain-src"></span></p>
|
| 691 |
+
<h2>One ledger. Every decision. Replayable to the byte.</h2>
|
| 692 |
+
<p class="intro">Every vertical emits into a single SHA3-256 hash-chain — append-only,
|
| 693 |
+
fsync-durable, replayable to a byte-identical root instead of trusting a dashboard.</p>
|
|
|
|
| 694 |
<div class="chainrow">
|
| 695 |
+
<div class="cstat"><div class="ck" id="chain-receipts">—</div><div class="cl">Receipt records · signer state separate</div></div>
|
| 696 |
<div class="cstat"><div class="ck ink mono" id="chain-alg">sha3_256</div><div class="cl">Chain algorithm</div></div>
|
| 697 |
+
<div class="cstat"><div class="ck" id="chain-depth">—</div><div class="cl">Chain depth (a11oy)</div></div>
|
| 698 |
<div class="cstat"><div class="ck ink mono" id="chain-head" style="font-size:.86rem">—</div><div class="cl">Last receipt id</div></div>
|
| 699 |
</div>
|
| 700 |
<div class="cta-row" style="margin-top:32px">
|
|
|
|
| 732 |
<circle cx="16" cy="16" r="13" stroke="url(#lg)" stroke-width="2"/>
|
| 733 |
<circle cx="16" cy="16" r="5" fill="url(#lg)"/></svg>
|
| 734 |
<span>a11oy<span class="sub" style="margin-left:9px">Alloy by SZL Holdings</span></span></a>
|
| 735 |
+
<p class="muted" style="margin:6px 0 0">Governed Inference — AI that exposes receipt
|
| 736 |
+
integrity, signer state, evidence, and refusal behavior. The sha3_256 receipt ledger is
|
| 737 |
+
independently inspectable; DSSE signing is claimed only when verification proves it.</p>
|
| 738 |
<p class="muted" style="margin:12px 0 0">Part of the SZL Holdings estate ·
|
| 739 |
<a href="https://github.com/szl-holdings" target="_blank" rel="noopener">github.com/szl-holdings</a></p>
|
| 740 |
</div>
|
| 741 |
<div class="lk"><strong style="color:var(--ink)">Product</strong>
|
| 742 |
+
<a href="/console">Command center</a>
|
|
|
|
|
|
|
|
|
|
| 743 |
<a href="/ecosystem">Ecosystem atlas</a>
|
| 744 |
+
<a href="/anatomy-v5">Anatomy v5 · digital twin</a>
|
| 745 |
+
<a href="/console#genome">Genome registry</a>
|
| 746 |
+
<a href="/verify">Verify a receipt</a>
|
| 747 |
+
<a href="/living-anatomy">Living anatomy · 3D</a>
|
| 748 |
+
<a href="/elite">killinchu · counter-UAS</a>
|
| 749 |
+
<a href="https://szlholdings-immune.hf.space" target="_blank" rel="noopener">IMMUNE · live investor demo</a></div>
|
| 750 |
<div class="lk"><strong style="color:var(--ink)">Evidence</strong>
|
| 751 |
<a href="/trust">Trust center</a>
|
| 752 |
<a href="/api/a11oy/v1/ledger">Receipt ledger</a>
|
| 753 |
<a href="/api/a11oy/v1/honest">Honest status (JSON)</a>
|
| 754 |
<a href="https://github.com/szl-holdings/lutar-lean">lutar-lean proofs</a></div>
|
| 755 |
<div class="lk"><strong style="color:var(--ink)">Router & org</strong>
|
| 756 |
+
<a href="/static/viz/router/">LLM-Router Live · 3D</a>
|
| 757 |
+
<a href="https://huggingface.co/spaces/SZLHOLDINGS/llm-router-live" target="_blank" rel="noopener">Status Space (live, drift-checked)</a>
|
| 758 |
<a href="https://github.com/szl-holdings/szl-router" target="_blank" rel="noopener">SZL Router · OpenAI-compatible</a>
|
| 759 |
<a href="https://github.com/szl-holdings" target="_blank" rel="noopener">SZL Holdings · GitHub org</a>
|
| 760 |
+
<a href="#surfaces">All nine surfaces</a></div>
|
| 761 |
<div class="lk"><strong style="color:var(--ink)">Estate · open source</strong>
|
| 762 |
<a href="https://github.com/szl-holdings/ouroboros" target="_blank" rel="noopener">ouroboros · self-referential loop</a>
|
| 763 |
<a href="https://github.com/szl-holdings/szl-formula-ledger" target="_blank" rel="noopener">szl-formula-ledger · formula genome</a>
|
|
|
|
| 767 |
<p class="disc">Honesty doctrine v11 LOCKED. The locked-proven Lean kernel is exactly <b>8</b>
|
| 768 |
theorems {F1,F4,F7,F11,F12,F18,F19,F22}; the 144-entry genome registry is a separate, larger
|
| 769 |
set graded across four honesty tiers. The Λ trust gate is <b>Conjecture 1</b> — an
|
| 770 |
+
advisory bound, never a theorem and never 1.0. Receipt-chain integrity and DSSE signing are
|
| 771 |
+
distinct states; signing is claimed only when persistent signer evidence is active and verification
|
| 772 |
+
passes. Read-only routes never mint receipts. Energy is MEASURED only with a live exporter delta,
|
| 773 |
+
otherwise honest SAMPLE. Supply
|
| 774 |
+
chain is SLSA L1 honest (L2 build-attested); FedRAMP / IL5 / ATO accreditation is ROADMAP.
|
| 775 |
<b style="color:var(--sub)">Alloy by SZL Holdings.</b>
|
| 776 |
© Stephen P. Lutar Jr. (ORCID 0009-0001-0110-4173) · Apache-2.0.</p>
|
| 777 |
</div>
|
|
|
|
| 896 |
$("pt-conjecture").textContent = (num(t.conjecture) === null) ? "N/A" : t.conjecture;
|
| 897 |
}
|
| 898 |
|
| 899 |
+
function setVerticals(v){
|
| 900 |
+
// v: {core,defense,insurance,finance,realestate} advisory Λ (numbers or null)
|
| 901 |
+
[["core","v-core"],["defense","v-defense"],["insurance","v-insurance"],
|
| 902 |
+
["finance","v-finance"],["realestate","v-realestate"]].forEach(([k,id])=>{
|
| 903 |
+
const val = fmtLam(v[k]);
|
| 904 |
+
$(id).textContent = (val===null) ? "N/A" : val;
|
| 905 |
+
lamChip(id+"-chip", num(v[k]));
|
| 906 |
+
});
|
| 907 |
+
}
|
| 908 |
+
|
| 909 |
+
function setChain(receipts, alg, depth, head){
|
| 910 |
$("chain-receipts").textContent = (num(receipts)===null) ? "UNAVAILABLE" : receipts.toLocaleString();
|
| 911 |
$("hs-receipts").textContent = (num(receipts)===null) ? "—" : receipts.toLocaleString();
|
| 912 |
+
$("hs-receipts-chip").innerHTML = (num(receipts)===null) ? downChip("offline") : grayChip((alg || "sha3_256") + " · CHAIN");
|
| 913 |
+
if(alg) $("chain-alg").textContent = alg;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 914 |
$("chain-depth").textContent = (num(depth)===null) ? "N/A" : depth.toLocaleString();
|
| 915 |
// Normalize head to the receipt id STRING. Some feeds (e.g. org/overview)
|
| 916 |
// return last_receipt as an object ({receipt_id, ...}); passing that straight
|
|
|
|
| 929 |
if(!o || o.status === "UNAVAILABLE") return false;
|
| 930 |
let any = false;
|
| 931 |
if(o.proof_tiers){ setTiers(o.proof_tiers); $("proof-src").innerHTML = liveChip("overview"); any = true; }
|
| 932 |
+
if(Array.isArray(o.verticals)){
|
| 933 |
+
const vm = {};
|
| 934 |
+
o.verticals.forEach(x => { if(x && x.name) vm[x.name] = num(x.lambda); });
|
| 935 |
+
setVerticals(vm); $("verticals-src").innerHTML = liveChip("overview"); any = true;
|
| 936 |
+
}
|
| 937 |
const ts = o.thesis_stats || {};
|
| 938 |
const ch = o.chain || {};
|
| 939 |
if(ts.signed_receipts !== undefined || ch.depth !== undefined){
|
| 940 |
+
setChain(num(ts.signed_receipts), ts.chain_alg || "sha3_256", num(ch.depth), ch.last_receipt);
|
| 941 |
$("chain-src").innerHTML = liveChip("overview"); any = true;
|
| 942 |
}
|
| 943 |
+
if(o.org_lambda !== undefined){ const v=fmtLam(o.org_lambda); $("v-org").textContent = v||"N/A"; lamChip("v-org-chip", num(o.org_lambda)); }
|
| 944 |
return any;
|
| 945 |
}catch(e){ return false; }
|
| 946 |
}
|
|
|
|
| 958 |
setTiers({}); $("proof-src").innerHTML = downChip("UNAVAILABLE");
|
| 959 |
}
|
| 960 |
}
|
| 961 |
+
async function loadLambdaOrg(){
|
| 962 |
+
try{
|
| 963 |
+
const d = await getJSON("/api/a11oy/v1/lambda/org");
|
| 964 |
+
const v = d.verticals || {};
|
| 965 |
+
setVerticals({ core:v.core, defense:v.defense, insurance:v.insurance,
|
| 966 |
+
finance:v.finance, realestate:v.realestate });
|
| 967 |
+
const ov = fmtLam(d.lambda_org); $("v-org").textContent = ov || "N/A"; lamChip("v-org-chip", num(d.lambda_org));
|
| 968 |
+
$("verticals-src").innerHTML = liveChip("lambda/org");
|
| 969 |
+
}catch(e){
|
| 970 |
+
setVerticals({}); $("v-org").textContent = "N/A"; $("v-org-chip").innerHTML = downChip("N/A");
|
| 971 |
+
$("verticals-src").innerHTML = downChip("UNAVAILABLE");
|
| 972 |
+
}
|
| 973 |
+
}
|
| 974 |
async function loadChain(){
|
| 975 |
+
let receipts=null, alg="sha3_256", depth=null, head=null, ok=false;
|
| 976 |
+
try{ const h = await getJSON("/api/lake/v1/health"); receipts = num(h.total_receipts); alg = h.chain_alg || alg; ok = true; }catch(e){}
|
| 977 |
try{ const l = await getJSON("/api/a11oy/v1/ledger"); depth = num(l.count);
|
| 978 |
if(Array.isArray(l.receipts) && l.receipts.length){ head = l.receipts[l.receipts.length-1].receipt_id; }
|
| 979 |
+
if(receipts === null) receipts = depth; ok = true; }catch(e){}
|
| 980 |
+
setChain(receipts, alg, depth, head);
|
| 981 |
+
$("chain-src").innerHTML = ok ? grayChip((alg || "sha3_256") + " · CHAIN") : downChip("UNAVAILABLE");
|
| 982 |
}
|
| 983 |
|
| 984 |
// ---- live estate pulse: reachability is reported separately from correctness ----
|
| 985 |
function pulseState(key, state, detail){
|
| 986 |
const chip = $("pulse-"+key+"-state");
|
| 987 |
const body = $("pulse-"+key+"-detail");
|
| 988 |
+
const amberStates = new Set(["CACHED","STALE_CACHE","SNAPSHOT","MODELED","OBSERVED","AVAILABLE","DEGRADED"]);
|
| 989 |
if(chip){ chip.textContent = state; chip.className = "data-state "+((state === "LIVE" || state === "REACHABLE") ? "live" : (amberStates.has(state) ? "amber" : "down")); }
|
| 990 |
if(body) body.textContent = detail;
|
| 991 |
}
|
|
|
|
| 1008 |
const checked = Boolean(d.probe_verdict_available);
|
| 1009 |
pulseState("contract", checked ? "REACHABLE" : "SNAPSHOT", (s.tabs || "Published")+" tabs · "+(s.endpoints || "declared")+" endpoint contracts · "+(checked ? "deployment probe attached." : "static contract; deployment probe pending."));
|
| 1010 |
}).catch(() => pulseState("contract", "UNAVAILABLE", "Tab contract is not bundled with this deployment.")),
|
| 1011 |
+
pulseJSON("/api/a11oy/v1/ledger").then(d => pulseState("ledger", "REACHABLE", (typeof d.count === "number" ? d.count : "Current")+" receipts returned by the read; verify timestamp and chain state in the source."))
|
|
|
|
|
|
|
|
|
|
| 1012 |
.catch(() => pulseState("ledger", "UNAVAILABLE", "Receipt ledger did not answer this session.")),
|
| 1013 |
pulseJSON("/api/a11oy/v1/mesh/state").then(d => {
|
| 1014 |
const nodes = Array.isArray(d.nodes) ? d.nodes.length : (Array.isArray(d.peers) ? d.peers.length : null);
|
|
|
|
| 1019 |
if($("pulse-checked")) $("pulse-checked").textContent = "Checked "+new Date().toLocaleString()+" · read-only · cache disabled";
|
| 1020 |
}
|
| 1021 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1022 |
// ---- (C) living body: load the anatomy Space in-frame only on click (perf + reduced-motion) ----
|
| 1023 |
const bl = $("body-load");
|
| 1024 |
if(bl){ bl.addEventListener("click", function(){
|
|
|
|
| 1046 |
// ---- orchestrate: overview first, fall back per-block for anything it didn't fill ----
|
| 1047 |
(async function(){
|
| 1048 |
loadEstatePulse();
|
|
|
|
|
|
|
| 1049 |
loadOverclaimMetrics();
|
| 1050 |
const ov = await loadOverview();
|
| 1051 |
const filled = {
|
| 1052 |
tiers: $("proof-src").innerHTML.trim() !== "",
|
| 1053 |
+
verts: $("verticals-src").innerHTML.trim() !== "",
|
| 1054 |
chain: $("chain-src").innerHTML.trim() !== "",
|
| 1055 |
};
|
| 1056 |
const jobs = [];
|
| 1057 |
if(!filled.tiers) jobs.push(loadGenomeTiers());
|
| 1058 |
+
if(!filled.verts) jobs.push(loadLambdaOrg());
|
| 1059 |
if(!filled.chain) jobs.push(loadChain());
|
| 1060 |
await Promise.allSettled(jobs);
|
| 1061 |
})();
|
govern_showcase.html
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
pages/assurance.html
CHANGED
|
@@ -1,13 +1,13 @@
|
|
| 1 |
-
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 6 |
-
<title>a11oy
|
| 7 |
<style>
|
| 8 |
/* =====================================================================
|
| 9 |
-
a11oy Assurance Surface
|
| 10 |
-
Dark palette
|
| 11 |
===================================================================== */
|
| 12 |
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,600;1,400&display=swap');
|
| 13 |
|
|
@@ -403,7 +403,7 @@
|
|
| 403 |
<nav class="nav-links">
|
| 404 |
<a href="/verify" class="nav-back">Verify Receipt</a>
|
| 405 |
<a href="/willay" class="nav-back">WILLAY</a>
|
| 406 |
-
<a href="/console" class="nav-back">
|
| 407 |
</nav>
|
| 408 |
</header>
|
| 409 |
|
|
@@ -411,39 +411,39 @@
|
|
| 411 |
<main class="page">
|
| 412 |
|
| 413 |
<!-- =====================================================================
|
| 414 |
-
A
|
| 415 |
===================================================================== -->
|
| 416 |
<section class="section">
|
| 417 |
<div class="hero">
|
| 418 |
-
<div class="hero-eyebrow">WDP
|
| 419 |
<h1>Verifiable AI Assurance<br>for the <span class="hl">War Data Platform</span> era.</h1>
|
| 420 |
<p class="hero-sub">
|
| 421 |
The Jan-2026 DoD memo restructuring Advana into WDP calls for
|
| 422 |
<strong>agentic AI</strong> + <strong>enhanced auditability</strong>.
|
| 423 |
a11oy is the governance + verifiable-provenance overlay that produces
|
| 424 |
-
the auditability evidence CDAO/RMF demands
|
| 425 |
signed receipt per AI decision, buyer-verifiable offline.
|
| 426 |
</p>
|
| 427 |
<div class="hero-honest">
|
| 428 |
-
<span class="hero-honest-icon">
|
| 429 |
<span>
|
| 430 |
-
<strong>Honest status:</strong> a11oy is the assurance overlay
|
| 431 |
ATO / IL5 / FedRAMP-High accreditation: <span class="chip chip-roadmap">ROADMAP</span>.
|
| 432 |
-
Stated plainly
|
| 433 |
</span>
|
| 434 |
</div>
|
| 435 |
<div class="hero-chips">
|
| 436 |
-
<span class="chip chip-live">DSSE Signed Receipts
|
| 437 |
-
<span class="chip chip-live">WebCrypto Verify
|
| 438 |
-
<span class="chip chip-live">Policy Gates
|
| 439 |
-
<span class="chip chip-roadmap">ATO / IL5 / FedRAMP
|
| 440 |
-
<span class="chip chip-info">a11oy = Overlay
|
| 441 |
</div>
|
| 442 |
</div>
|
| 443 |
</section>
|
| 444 |
|
| 445 |
<!-- =====================================================================
|
| 446 |
-
B
|
| 447 |
===================================================================== -->
|
| 448 |
<section class="section" id="section-matrix">
|
| 449 |
<div class="section-head">
|
|
@@ -451,24 +451,24 @@
|
|
| 451 |
<div>
|
| 452 |
<div class="section-title">CDAO / DoD AI Assurance Requirements Matrix</div>
|
| 453 |
<div class="section-desc">
|
| 454 |
-
Each row: a real CDAO/DoD/OMB requirement
|
| 455 |
-
with honest status. ROADMAP items are labeled plainly
|
| 456 |
</div>
|
| 457 |
</div>
|
| 458 |
</div>
|
| 459 |
|
| 460 |
<div id="matrix-container">
|
| 461 |
<div class="matrix-loading">
|
| 462 |
-
<span class="spinner"></span> Loading assurance matrix from /api/a11oy/v1/assurance/
|
| 463 |
</div>
|
| 464 |
</div>
|
| 465 |
|
| 466 |
<div style="margin-top:14px; font-size:12px; color:var(--text-mute);">
|
| 467 |
Status key:
|
| 468 |
-
<span class="chip chip-live">LIVE</span> operational today
|
| 469 |
-
<span class="chip chip-measured">MEASURED</span> real data
|
| 470 |
-
<span class="chip chip-sample">SAMPLE</span> demo only
|
| 471 |
-
<span class="chip chip-modeled">MODELED</span> model-derived
|
| 472 |
<span class="chip chip-roadmap">ROADMAP</span> planned / not yet delivered
|
| 473 |
</div>
|
| 474 |
|
|
@@ -480,29 +480,29 @@
|
|
| 480 |
<div style="font-size:12px;color:var(--text-dim);margin-bottom:12px;">
|
| 481 |
One signed, offline-verifiable JSON bundling the assurance matrix, khipu chain heads
|
| 482 |
(re-walked <code>links_intact</code>), the lake health snapshot, and the doctrine
|
| 483 |
-
snapshot
|
| 484 |
Honest: integrity is COMPUTED, not asserted; signature is the demo key (NOT production cosign).
|
| 485 |
</div>
|
| 486 |
<div class="btn-row">
|
| 487 |
<button class="btn btn-primary" id="evidence-pack-btn" onclick="downloadEvidencePack()">
|
| 488 |
Download Evidence Pack
|
| 489 |
</button>
|
| 490 |
-
<a class="btn" href="/api/a11oy/v1/assurance/evidence-pack" target="_blank">View JSON
|
| 491 |
</div>
|
| 492 |
<div id="evidence-pack-status" class="status-line"></div>
|
| 493 |
</div>
|
| 494 |
</section>
|
| 495 |
|
| 496 |
<!-- =====================================================================
|
| 497 |
-
C
|
| 498 |
===================================================================== -->
|
| 499 |
<section class="section" id="section-proof">
|
| 500 |
<div class="section-head">
|
| 501 |
<div class="section-letter">C</div>
|
| 502 |
<div>
|
| 503 |
-
<div class="section-title">Live Proof: Run
|
| 504 |
<div class="section-desc">
|
| 505 |
-
Run a governed
|
| 506 |
verify the ECDSA-P256 signature in-browser via WebCrypto (zero server round-trip for verification).
|
| 507 |
</div>
|
| 508 |
</div>
|
|
@@ -523,31 +523,31 @@
|
|
| 523 |
<div class="proof-body">
|
| 524 |
<div class="btn-row">
|
| 525 |
<button class="btn btn-primary" id="proof-run-btn" onclick="runProof()">
|
| 526 |
-
Run Governed Decision
|
| 527 |
</button>
|
| 528 |
</div>
|
| 529 |
<div id="proof-status" class="status-line"></div>
|
| 530 |
<div id="proof-verdict" style="display:none"></div>
|
| 531 |
<div id="proof-output" class="output" style="display:none"></div>
|
| 532 |
<div style="margin-top:14px; font-size:12px; color:var(--text-mute);">
|
| 533 |
-
<span class="conj">
|
| 534 |
-
|
| 535 |
-
<a href="/verify" style="font-size:12px">Open full /verify page
|
| 536 |
</div>
|
| 537 |
</div>
|
| 538 |
</div>
|
| 539 |
</section>
|
| 540 |
|
| 541 |
<!-- =====================================================================
|
| 542 |
-
D
|
| 543 |
===================================================================== -->
|
| 544 |
<section class="section" id="section-willay">
|
| 545 |
<div class="section-head">
|
| 546 |
<div class="section-letter">D</div>
|
| 547 |
<div>
|
| 548 |
-
<div class="section-title">WILLAY
|
| 549 |
<div class="section-desc">
|
| 550 |
-
An agent that can refuse
|
| 551 |
Critical for agentic AI in defense: every denial is a
|
| 552 |
cryptographically-signed, auditable artifact.
|
| 553 |
</div>
|
|
@@ -555,7 +555,7 @@
|
|
| 555 |
</div>
|
| 556 |
|
| 557 |
<div class="willay-card">
|
| 558 |
-
<div class="willay-icon">
|
| 559 |
<div class="willay-content">
|
| 560 |
<h3>What Makes a Signed Refusal Different</h3>
|
| 561 |
<div class="willay-quote">
|
|
@@ -564,23 +564,23 @@
|
|
| 564 |
WILLAY produces a DSSE-signed denial receipt that any auditor can verify.
|
| 565 |
</div>
|
| 566 |
<p>
|
| 567 |
-
Every WILLAY denial embeds: the triggering gate name, the
|
| 568 |
-
(Conjecture 1 label), the hash-chain link (
|
| 569 |
all under ECDSA-P256 signature. The authorization package has a machine-verifiable
|
| 570 |
TEVV artifact for every denied call, not just allowed ones.
|
| 571 |
</p>
|
| 572 |
<div style="display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px">
|
| 573 |
-
<span class="chip chip-live">Signed denial receipts
|
| 574 |
-
<span class="conj">
|
| 575 |
<span class="chip chip-info">Auditor-verifiable offline</span>
|
| 576 |
</div>
|
| 577 |
-
<a href="/willay" class="btn-willay">Open WILLAY
|
| 578 |
</div>
|
| 579 |
</div>
|
| 580 |
</section>
|
| 581 |
|
| 582 |
<!-- =====================================================================
|
| 583 |
-
E
|
| 584 |
===================================================================== -->
|
| 585 |
<section class="section" id="section-fit">
|
| 586 |
<div class="section-head">
|
|
@@ -603,16 +603,16 @@
|
|
| 603 |
<rect x="20" y="12" width="600" height="70" rx="10" fill="#0c1a33" stroke="#1e3a8a" stroke-width="1.5"/>
|
| 604 |
<text x="36" y="36" font-family="'JetBrains Mono', monospace" font-size="10" fill="#6c8ef5" font-weight="700" letter-spacing="1">GOVERNANCE + TRUST OVERLAY</text>
|
| 605 |
<text x="36" y="56" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="16" fill="#e8eaf0" font-weight="800">a11oy</text>
|
| 606 |
-
<text x="100" y="56" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="13" fill="#8891a8">signed receipts
|
| 607 |
-
<text x="36" y="73" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="11" fill="#4a5068">DSSE
|
| 608 |
<!-- Arrow -->
|
| 609 |
-
<text x="280" y="103" font-family="monospace" font-size="12" fill="#4a5068" text-anchor="middle">sits on top of
|
| 610 |
<!-- Platform layer -->
|
| 611 |
<rect x="20" y="116" width="600" height="70" rx="10" fill="#0d1a0d" stroke="#2a3a1a" stroke-width="1.5"/>
|
| 612 |
<text x="36" y="136" font-family="'JetBrains Mono', monospace" font-size="10" fill="#86efac" font-weight="700" letter-spacing="1">SYSTEM OF RECORD</text>
|
| 613 |
<text x="36" y="158" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="14" fill="#86efac" font-weight="800">WDP / Advana</text>
|
| 614 |
-
<text x="150" y="158" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="13" fill="#8891a8">
|
| 615 |
-
<text x="36" y="175" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="11" fill="#4a5068">data
|
| 616 |
</svg>
|
| 617 |
|
| 618 |
<div class="fit-list">
|
|
@@ -630,7 +630,7 @@
|
|
| 630 |
</div>
|
| 631 |
<div class="fit-item fit-item-yes">
|
| 632 |
<div class="fit-item-label yes">a11oy IS</div>
|
| 633 |
-
Signed refusal explainer (WILLAY)
|
| 634 |
</div>
|
| 635 |
<div class="fit-item fit-item-no">
|
| 636 |
<div class="fit-item-label no">a11oy IS NOT</div>
|
|
@@ -642,11 +642,11 @@
|
|
| 642 |
</div>
|
| 643 |
<div class="fit-item fit-item-no">
|
| 644 |
<div class="fit-item-label no">a11oy IS NOT</div>
|
| 645 |
-
An accredited system (ATO / IL5 / FedRAMP-High: ROADMAP
|
| 646 |
</div>
|
| 647 |
<div class="fit-item fit-item-no">
|
| 648 |
<div class="fit-item-label no">a11oy IS NOT</div>
|
| 649 |
-
A certified classifier
|
| 650 |
</div>
|
| 651 |
</div>
|
| 652 |
|
|
@@ -655,7 +655,7 @@
|
|
| 655 |
The Jan-2026 DoD memo explicitly calls for <em>agentic AI</em> + <em>enhanced auditability</em>
|
| 656 |
toward a clean FY27/FY28 audit.
|
| 657 |
Foundry shows data lineage. Unity Catalog shows column provenance.
|
| 658 |
-
a11oy gives you a cryptographic signature on the <em>AI decision itself</em>
|
| 659 |
something the buyer can verify offline, without trusting the provider.
|
| 660 |
</div>
|
| 661 |
</div>
|
|
@@ -664,7 +664,7 @@
|
|
| 664 |
<div style="background:var(--bg-panel); border-top:1px solid var(--border); padding:14px 24px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;">
|
| 665 |
<span style="font-size:11px; color:var(--text-mute); font-weight:700; text-transform:uppercase; letter-spacing:.07em">API</span>
|
| 666 |
<a href="/api/a11oy/v1/assurance/fit" style="font-size:12px; font-family:var(--mono);" target="_blank">/api/a11oy/v1/assurance/fit</a>
|
| 667 |
-
<span style="font-size:11px; color:var(--text-mute)">
|
| 668 |
<span id="fit-status" style="font-size:11px; color:var(--text-mute); margin-left:auto"></span>
|
| 669 |
</div>
|
| 670 |
</div>
|
|
@@ -675,17 +675,17 @@
|
|
| 675 |
<!-- ===== FOOTER ===== -->
|
| 676 |
<footer class="footer">
|
| 677 |
<p>
|
| 678 |
-
SZL Holdings
|
| 679 |
-
|
| 680 |
-
ATO/IL5/FedRAMP = ROADMAP (not accredited)
|
| 681 |
-
<a href="/api/a11oy/v1/assurance/matrix" target="_blank">Assurance Matrix API</a>
|
| 682 |
-
<a href="/verify" target="_blank">Verify a Receipt</a>
|
| 683 |
<a href="/cosign.pub" target="_blank">cosign.pub</a>
|
| 684 |
</p>
|
| 685 |
</footer>
|
| 686 |
|
| 687 |
<!-- ===================================================================
|
| 688 |
-
JAVASCRIPT
|
| 689 |
=================================================================== -->
|
| 690 |
<script>
|
| 691 |
"use strict";
|
|
@@ -717,7 +717,7 @@ function statusChip(status) {
|
|
| 717 |
}
|
| 718 |
|
| 719 |
/* ==================================================================
|
| 720 |
-
SECTION B
|
| 721 |
================================================================== */
|
| 722 |
async function loadMatrix() {
|
| 723 |
var container = el('matrix-container');
|
|
@@ -729,8 +729,8 @@ async function loadMatrix() {
|
|
| 729 |
data = await resp.json();
|
| 730 |
} catch(e) {
|
| 731 |
container.innerHTML = '<div class="matrix-loading" style="color:var(--amber)">'+
|
| 732 |
-
'
|
| 733 |
-
'<a href="/api/a11oy/v1/assurance/matrix" target="_blank" style="font-size:12px">Try API directly
|
| 734 |
'</div>';
|
| 735 |
return;
|
| 736 |
}
|
|
@@ -751,7 +751,7 @@ async function loadMatrix() {
|
|
| 751 |
: '';
|
| 752 |
var sourceLink = r.source_url
|
| 753 |
? '<a class="source-link" href="'+escHTML(r.source_url)+'" target="_blank" rel="noopener">'+escHTML(r.source)+'</a>'
|
| 754 |
-
: escHTML(r.source || '
|
| 755 |
|
| 756 |
html += '<tr>'+
|
| 757 |
'<td class="status-col"><span class="req-id-badge">'+escHTML(r.req_id)+'</span></td>'+
|
|
@@ -769,7 +769,7 @@ async function loadMatrix() {
|
|
| 769 |
// Honest note banner
|
| 770 |
if (data.honest_note) {
|
| 771 |
html += '<div style="margin-top:12px;background:var(--amber-dark);border:1px solid var(--amber-mid);border-radius:var(--radius);padding:12px 16px;font-size:12px;color:var(--amber)">'+
|
| 772 |
-
'
|
| 773 |
}
|
| 774 |
|
| 775 |
container.innerHTML = html;
|
|
@@ -825,14 +825,14 @@ async function importPubKeyFromPEM(pem) {
|
|
| 825 |
}
|
| 826 |
|
| 827 |
/* ==================================================================
|
| 828 |
-
SECTION C
|
| 829 |
================================================================== */
|
| 830 |
async function runProof() {
|
| 831 |
var btn = el('proof-run-btn');
|
| 832 |
btn.disabled = true;
|
| 833 |
hide('proof-verdict');
|
| 834 |
hide('proof-output');
|
| 835 |
-
setStatus('proof-status', 'Calling /api/a11oy/v1/govern/infer
|
| 836 |
|
| 837 |
var data;
|
| 838 |
try {
|
|
@@ -847,7 +847,7 @@ async function runProof() {
|
|
| 847 |
btn.disabled = false; return;
|
| 848 |
}
|
| 849 |
|
| 850 |
-
setStatus('proof-status', 'Fetching cosign.pub and verifying signature via WebCrypto
|
| 851 |
|
| 852 |
var dsse = data.dsse || {};
|
| 853 |
var receipt = data.receipt || {};
|
|
@@ -876,7 +876,7 @@ async function runProof() {
|
|
| 876 |
var verified = false, verifyError = '', sigKeyid = '';
|
| 877 |
|
| 878 |
if (!dsse.signed) {
|
| 879 |
-
verifyError = 'UNSIGNED envelope
|
| 880 |
} else if (!sigs.length) {
|
| 881 |
verifyError = 'No signatures in envelope.';
|
| 882 |
} else {
|
|
@@ -884,7 +884,7 @@ async function runProof() {
|
|
| 884 |
try {
|
| 885 |
var sigBytes = b64Decode(sigEntry.sig||'');
|
| 886 |
var rawSig = sigBytes;
|
| 887 |
-
if(sigBytes[0]===0x30){try{rawSig=derToRaw(sigBytes);}catch(e2){verifyError='
|
| 888 |
if(!verifyError){
|
| 889 |
verified = await crypto.subtle.verify({name:'ECDSA',hash:'SHA-256'}, pubKey, rawSig.buffer, paeBytes.buffer);
|
| 890 |
if(!verified && sigBytes[0]===0x30){
|
|
@@ -901,29 +901,29 @@ async function runProof() {
|
|
| 901 |
|
| 902 |
var verdictHTML = '';
|
| 903 |
if(verified){
|
| 904 |
-
verdictHTML='<div class="verdict-banner verdict-ok">
|
| 905 |
} else if(!dsse.signed){
|
| 906 |
-
verdictHTML='<div class="verdict-banner verdict-dim">
|
| 907 |
} else {
|
| 908 |
-
verdictHTML='<div class="verdict-banner verdict-fail">
|
| 909 |
}
|
| 910 |
|
| 911 |
var digestMatch = payloadDigestComputed===receiptDigest.substring(0,64);
|
| 912 |
verdictHTML += '<div style="margin-bottom:12px">'+
|
| 913 |
'<div class="hash-row"><span class="hash-label">Payload digest:</span>'+
|
| 914 |
-
'<span class="hash-val '+(digestMatch?'hash-match':'hash-mismatch')+'">'+payloadDigestComputed.substring(0,32)+'
|
| 915 |
'<span class="chip '+(digestMatch?'chip-ok':'chip-err')+'">'+(digestMatch?'MATCH':'MISMATCH')+'</span></div>'+
|
| 916 |
'<div class="hash-row"><span class="hash-label">PAE SHA-256:</span>'+
|
| 917 |
-
'<span class="hash-val">'+paeSHA.substring(0,32)+'
|
| 918 |
'<div class="hash-row"><span class="hash-label">Chain prev:</span>'+
|
| 919 |
-
'<span class="hash-val">'+escHTML(String(chainPrev).substring(0,32))+'
|
| 920 |
'<div class="hash-row"><span class="hash-label">Chain digest:</span>'+
|
| 921 |
-
'<span class="hash-val">'+escHTML(String(chainDigest).substring(0,32))+'
|
| 922 |
'</div>'+
|
| 923 |
'<div style="font-size:12px;color:var(--text-dim)">'+
|
| 924 |
-
'<span class="conj">
|
| 925 |
-
'
|
| 926 |
-
'
|
| 927 |
'</div>';
|
| 928 |
|
| 929 |
el('proof-verdict').innerHTML = verdictHTML;
|
|
@@ -934,13 +934,13 @@ async function runProof() {
|
|
| 934 |
'governance.lambda': (data.governance||{}).lambda,
|
| 935 |
'governance.lambda_kind': (data.governance||{}).lambda_kind,
|
| 936 |
'receipt.seq': receipt.seq,
|
| 937 |
-
'receipt.prev': String(chainPrev).substring(0,32)+'
|
| 938 |
-
'receipt.digest': String(chainDigest).substring(0,32)+'
|
| 939 |
'dsse.signed': dsse.signed,
|
| 940 |
'dsse.payloadType': dsse.payloadType,
|
| 941 |
-
'verify.payload_sha256': payloadDigestComputed.substring(0,32)+'
|
| 942 |
-
'verify.pae_sha256': paeSHA.substring(0,32)+'
|
| 943 |
-
'verify.result': verified ? 'VERIFIED
|
| 944 |
'energy.label': (data.energy||{}).label,
|
| 945 |
'honesty': data.honesty,
|
| 946 |
};
|
|
@@ -949,14 +949,14 @@ async function runProof() {
|
|
| 949 |
show('proof-output');
|
| 950 |
|
| 951 |
setStatus('proof-status',
|
| 952 |
-
verified ? '
|
| 953 |
(dsse.signed===false ? 'Unsigned receipt (key absent from runtime). Chain valid.' :
|
| 954 |
'Verification result: '+verifyError));
|
| 955 |
btn.disabled = false;
|
| 956 |
}
|
| 957 |
|
| 958 |
/* ==================================================================
|
| 959 |
-
SECTION E
|
| 960 |
================================================================== */
|
| 961 |
async function checkFit() {
|
| 962 |
var s = el('fit-status'); if(!s) return;
|
|
@@ -973,12 +973,12 @@ async function checkFit() {
|
|
| 973 |
}
|
| 974 |
|
| 975 |
/* ==================================================================
|
| 976 |
-
SECTION B'
|
| 977 |
================================================================== */
|
| 978 |
async function downloadEvidencePack() {
|
| 979 |
var btn = el('evidence-pack-btn');
|
| 980 |
if (btn) btn.disabled = true;
|
| 981 |
-
setStatus('evidence-pack-status', 'Assembling evidence pack from live
|
| 982 |
try {
|
| 983 |
var resp = await fetch('/api/a11oy/v1/assurance/evidence-pack');
|
| 984 |
var data = await resp.json();
|
|
@@ -996,16 +996,16 @@ async function downloadEvidencePack() {
|
|
| 996 |
setTimeout(function(){ URL.revokeObjectURL(url); }, 4000);
|
| 997 |
|
| 998 |
// We do NOT recompute sha3_256 in-browser (WebCrypto has no SHA3, and shipping a
|
| 999 |
-
// hand-rolled hash would risk a false result
|
| 1000 |
// The digest + exact canonicalization are in the pack so an auditor re-verifies
|
| 1001 |
// offline with a trusted sha3_256 tool. We only surface what the server reported.
|
| 1002 |
var sig = (data.signature || {});
|
| 1003 |
-
var sigMsg = sig.signed ? ('
|
| 1004 |
setStatus('evidence-pack-status',
|
| 1005 |
-
'
|
| 1006 |
-
'
|
| 1007 |
} catch(e) {
|
| 1008 |
-
setStatus('evidence-pack-status', '
|
| 1009 |
} finally {
|
| 1010 |
if (btn) btn.disabled = false;
|
| 1011 |
}
|
|
@@ -1020,4 +1020,3 @@ window.addEventListener('DOMContentLoaded', function() {
|
|
| 1020 |
|
| 1021 |
</body>
|
| 1022 |
</html>
|
| 1023 |
-
|
|
|
|
| 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" />
|
| 6 |
+
<title>a11oy — AI Assurance for WDP-era Agentic AI</title>
|
| 7 |
<style>
|
| 8 |
/* =====================================================================
|
| 9 |
+
a11oy Assurance Surface — elite showcase aesthetic
|
| 10 |
+
Dark palette · Cabinet Grotesk / JetBrains Mono · honest-label chips
|
| 11 |
===================================================================== */
|
| 12 |
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,600;1,400&display=swap');
|
| 13 |
|
|
|
|
| 403 |
<nav class="nav-links">
|
| 404 |
<a href="/verify" class="nav-back">Verify Receipt</a>
|
| 405 |
<a href="/willay" class="nav-back">WILLAY</a>
|
| 406 |
+
<a href="/console" class="nav-back">← Console</a>
|
| 407 |
</nav>
|
| 408 |
</header>
|
| 409 |
|
|
|
|
| 411 |
<main class="page">
|
| 412 |
|
| 413 |
<!-- =====================================================================
|
| 414 |
+
A — HERO
|
| 415 |
===================================================================== -->
|
| 416 |
<section class="section">
|
| 417 |
<div class="hero">
|
| 418 |
+
<div class="hero-eyebrow">WDP · Advana · CDAO · Agentic AI</div>
|
| 419 |
<h1>Verifiable AI Assurance<br>for the <span class="hl">War Data Platform</span> era.</h1>
|
| 420 |
<p class="hero-sub">
|
| 421 |
The Jan-2026 DoD memo restructuring Advana into WDP calls for
|
| 422 |
<strong>agentic AI</strong> + <strong>enhanced auditability</strong>.
|
| 423 |
a11oy is the governance + verifiable-provenance overlay that produces
|
| 424 |
+
the auditability evidence CDAO/RMF demands — one cryptographically
|
| 425 |
signed receipt per AI decision, buyer-verifiable offline.
|
| 426 |
</p>
|
| 427 |
<div class="hero-honest">
|
| 428 |
+
<span class="hero-honest-icon">⚠</span>
|
| 429 |
<span>
|
| 430 |
+
<strong>Honest status:</strong> a11oy is the assurance overlay — NOT an ATO-authorized system.
|
| 431 |
ATO / IL5 / FedRAMP-High accreditation: <span class="chip chip-roadmap">ROADMAP</span>.
|
| 432 |
+
Stated plainly — the honesty is the sell to an auditor audience.
|
| 433 |
</span>
|
| 434 |
</div>
|
| 435 |
<div class="hero-chips">
|
| 436 |
+
<span class="chip chip-live">DSSE Signed Receipts · LIVE</span>
|
| 437 |
+
<span class="chip chip-live">WebCrypto Verify · LIVE</span>
|
| 438 |
+
<span class="chip chip-live">Policy Gates · LIVE</span>
|
| 439 |
+
<span class="chip chip-roadmap">ATO / IL5 / FedRAMP · ROADMAP</span>
|
| 440 |
+
<span class="chip chip-info">a11oy = Overlay · NOT Replacement</span>
|
| 441 |
</div>
|
| 442 |
</div>
|
| 443 |
</section>
|
| 444 |
|
| 445 |
<!-- =====================================================================
|
| 446 |
+
B — ASSURANCE MATRIX
|
| 447 |
===================================================================== -->
|
| 448 |
<section class="section" id="section-matrix">
|
| 449 |
<div class="section-head">
|
|
|
|
| 451 |
<div>
|
| 452 |
<div class="section-title">CDAO / DoD AI Assurance Requirements Matrix</div>
|
| 453 |
<div class="section-desc">
|
| 454 |
+
Each row: a real CDAO/DoD/OMB requirement → the a11oy artifact that satisfies it,
|
| 455 |
+
with honest status. ROADMAP items are labeled plainly — no fabricated compliance.
|
| 456 |
</div>
|
| 457 |
</div>
|
| 458 |
</div>
|
| 459 |
|
| 460 |
<div id="matrix-container">
|
| 461 |
<div class="matrix-loading">
|
| 462 |
+
<span class="spinner"></span> Loading assurance matrix from /api/a11oy/v1/assurance/matrix…
|
| 463 |
</div>
|
| 464 |
</div>
|
| 465 |
|
| 466 |
<div style="margin-top:14px; font-size:12px; color:var(--text-mute);">
|
| 467 |
Status key:
|
| 468 |
+
<span class="chip chip-live">LIVE</span> operational today ·
|
| 469 |
+
<span class="chip chip-measured">MEASURED</span> real data ·
|
| 470 |
+
<span class="chip chip-sample">SAMPLE</span> demo only ·
|
| 471 |
+
<span class="chip chip-modeled">MODELED</span> model-derived ·
|
| 472 |
<span class="chip chip-roadmap">ROADMAP</span> planned / not yet delivered
|
| 473 |
</div>
|
| 474 |
|
|
|
|
| 480 |
<div style="font-size:12px;color:var(--text-dim);margin-bottom:12px;">
|
| 481 |
One signed, offline-verifiable JSON bundling the assurance matrix, khipu chain heads
|
| 482 |
(re-walked <code>links_intact</code>), the lake health snapshot, and the doctrine
|
| 483 |
+
snapshot — self-hashed with <strong>sha3_256</strong> so an auditor re-verifies offline.
|
| 484 |
Honest: integrity is COMPUTED, not asserted; signature is the demo key (NOT production cosign).
|
| 485 |
</div>
|
| 486 |
<div class="btn-row">
|
| 487 |
<button class="btn btn-primary" id="evidence-pack-btn" onclick="downloadEvidencePack()">
|
| 488 |
Download Evidence Pack
|
| 489 |
</button>
|
| 490 |
+
<a class="btn" href="/api/a11oy/v1/assurance/evidence-pack" target="_blank">View JSON →</a>
|
| 491 |
</div>
|
| 492 |
<div id="evidence-pack-status" class="status-line"></div>
|
| 493 |
</div>
|
| 494 |
</section>
|
| 495 |
|
| 496 |
<!-- =====================================================================
|
| 497 |
+
C — LIVE PROOF WIDGET (run governed decision → sign → verify)
|
| 498 |
===================================================================== -->
|
| 499 |
<section class="section" id="section-proof">
|
| 500 |
<div class="section-head">
|
| 501 |
<div class="section-letter">C</div>
|
| 502 |
<div>
|
| 503 |
+
<div class="section-title">Live Proof: Run → Sign → Verify Yourself</div>
|
| 504 |
<div class="section-desc">
|
| 505 |
+
Run a governed inference → receive a DSSE-signed Khipu receipt →
|
| 506 |
verify the ECDSA-P256 signature in-browser via WebCrypto (zero server round-trip for verification).
|
| 507 |
</div>
|
| 508 |
</div>
|
|
|
|
| 523 |
<div class="proof-body">
|
| 524 |
<div class="btn-row">
|
| 525 |
<button class="btn btn-primary" id="proof-run-btn" onclick="runProof()">
|
| 526 |
+
Run Governed Decision → Get Signed Receipt → Verify
|
| 527 |
</button>
|
| 528 |
</div>
|
| 529 |
<div id="proof-status" class="status-line"></div>
|
| 530 |
<div id="proof-verdict" style="display:none"></div>
|
| 531 |
<div id="proof-output" class="output" style="display:none"></div>
|
| 532 |
<div style="margin-top:14px; font-size:12px; color:var(--text-mute);">
|
| 533 |
+
<span class="conj">Λ Conjecture 1 — advisory, NOT a theorem</span>
|
| 534 |
+
·
|
| 535 |
+
<a href="/verify" style="font-size:12px">Open full /verify page →</a>
|
| 536 |
</div>
|
| 537 |
</div>
|
| 538 |
</div>
|
| 539 |
</section>
|
| 540 |
|
| 541 |
<!-- =====================================================================
|
| 542 |
+
D — WILLAY FOR DEFENSE
|
| 543 |
===================================================================== -->
|
| 544 |
<section class="section" id="section-willay">
|
| 545 |
<div class="section-head">
|
| 546 |
<div class="section-letter">D</div>
|
| 547 |
<div>
|
| 548 |
+
<div class="section-title">WILLAY — Signed Refusals for Defense</div>
|
| 549 |
<div class="section-desc">
|
| 550 |
+
An agent that can refuse — and prove why, signed.
|
| 551 |
Critical for agentic AI in defense: every denial is a
|
| 552 |
cryptographically-signed, auditable artifact.
|
| 553 |
</div>
|
|
|
|
| 555 |
</div>
|
| 556 |
|
| 557 |
<div class="willay-card">
|
| 558 |
+
<div class="willay-icon">⚡</div>
|
| 559 |
<div class="willay-content">
|
| 560 |
<h3>What Makes a Signed Refusal Different</h3>
|
| 561 |
<div class="willay-quote">
|
|
|
|
| 564 |
WILLAY produces a DSSE-signed denial receipt that any auditor can verify.
|
| 565 |
</div>
|
| 566 |
<p>
|
| 567 |
+
Every WILLAY denial embeds: the triggering gate name, the Λ advisory score
|
| 568 |
+
(Conjecture 1 label), the hash-chain link (prev→digest), and the timestamp —
|
| 569 |
all under ECDSA-P256 signature. The authorization package has a machine-verifiable
|
| 570 |
TEVV artifact for every denied call, not just allowed ones.
|
| 571 |
</p>
|
| 572 |
<div style="display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px">
|
| 573 |
+
<span class="chip chip-live">Signed denial receipts · LIVE</span>
|
| 574 |
+
<span class="conj">Λ Conjecture 1 — advisory</span>
|
| 575 |
<span class="chip chip-info">Auditor-verifiable offline</span>
|
| 576 |
</div>
|
| 577 |
+
<a href="/willay" class="btn-willay">Open WILLAY — Signed Refusals →</a>
|
| 578 |
</div>
|
| 579 |
</div>
|
| 580 |
</section>
|
| 581 |
|
| 582 |
<!-- =====================================================================
|
| 583 |
+
E — WHERE A11OY FITS (honest diagram)
|
| 584 |
===================================================================== -->
|
| 585 |
<section class="section" id="section-fit">
|
| 586 |
<div class="section-head">
|
|
|
|
| 603 |
<rect x="20" y="12" width="600" height="70" rx="10" fill="#0c1a33" stroke="#1e3a8a" stroke-width="1.5"/>
|
| 604 |
<text x="36" y="36" font-family="'JetBrains Mono', monospace" font-size="10" fill="#6c8ef5" font-weight="700" letter-spacing="1">GOVERNANCE + TRUST OVERLAY</text>
|
| 605 |
<text x="36" y="56" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="16" fill="#e8eaf0" font-weight="800">a11oy</text>
|
| 606 |
+
<text x="100" y="56" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="13" fill="#8891a8">signed receipts · policy gates · honest labels · WILLAY refusals</text>
|
| 607 |
+
<text x="36" y="73" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="11" fill="#4a5068">DSSE · ECDSA-P256 · WebCrypto-verifiable · Λ advisory (Conjecture 1)</text>
|
| 608 |
<!-- Arrow -->
|
| 609 |
+
<text x="280" y="103" font-family="monospace" font-size="12" fill="#4a5068" text-anchor="middle">sits on top of ↓</text>
|
| 610 |
<!-- Platform layer -->
|
| 611 |
<rect x="20" y="116" width="600" height="70" rx="10" fill="#0d1a0d" stroke="#2a3a1a" stroke-width="1.5"/>
|
| 612 |
<text x="36" y="136" font-family="'JetBrains Mono', monospace" font-size="10" fill="#86efac" font-weight="700" letter-spacing="1">SYSTEM OF RECORD</text>
|
| 613 |
<text x="36" y="158" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="14" fill="#86efac" font-weight="800">WDP / Advana</text>
|
| 614 |
+
<text x="150" y="158" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="13" fill="#8891a8"> · Palantir Foundry · Databricks Unity Catalog</text>
|
| 615 |
+
<text x="36" y="175" font-family="'Cabinet Grotesk', 'Inter', sans-serif" font-size="11" fill="#4a5068">data · ontology · lineage · column governance → stays authoritative</text>
|
| 616 |
</svg>
|
| 617 |
|
| 618 |
<div class="fit-list">
|
|
|
|
| 630 |
</div>
|
| 631 |
<div class="fit-item fit-item-yes">
|
| 632 |
<div class="fit-item-label yes">a11oy IS</div>
|
| 633 |
+
Signed refusal explainer (WILLAY) — not a black-box boolean gate
|
| 634 |
</div>
|
| 635 |
<div class="fit-item fit-item-no">
|
| 636 |
<div class="fit-item-label no">a11oy IS NOT</div>
|
|
|
|
| 642 |
</div>
|
| 643 |
<div class="fit-item fit-item-no">
|
| 644 |
<div class="fit-item-label no">a11oy IS NOT</div>
|
| 645 |
+
An accredited system (ATO / IL5 / FedRAMP-High: ROADMAP — stated plainly)
|
| 646 |
</div>
|
| 647 |
<div class="fit-item fit-item-no">
|
| 648 |
<div class="fit-item-label no">a11oy IS NOT</div>
|
| 649 |
+
A certified classifier — Λ is Conjecture 1 (advisory; NOT a theorem)
|
| 650 |
</div>
|
| 651 |
</div>
|
| 652 |
|
|
|
|
| 655 |
The Jan-2026 DoD memo explicitly calls for <em>agentic AI</em> + <em>enhanced auditability</em>
|
| 656 |
toward a clean FY27/FY28 audit.
|
| 657 |
Foundry shows data lineage. Unity Catalog shows column provenance.
|
| 658 |
+
a11oy gives you a cryptographic signature on the <em>AI decision itself</em> —
|
| 659 |
something the buyer can verify offline, without trusting the provider.
|
| 660 |
</div>
|
| 661 |
</div>
|
|
|
|
| 664 |
<div style="background:var(--bg-panel); border-top:1px solid var(--border); padding:14px 24px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;">
|
| 665 |
<span style="font-size:11px; color:var(--text-mute); font-weight:700; text-transform:uppercase; letter-spacing:.07em">API</span>
|
| 666 |
<a href="/api/a11oy/v1/assurance/fit" style="font-size:12px; font-family:var(--mono);" target="_blank">/api/a11oy/v1/assurance/fit</a>
|
| 667 |
+
<span style="font-size:11px; color:var(--text-mute)">→ full machine-readable fit statement</span>
|
| 668 |
<span id="fit-status" style="font-size:11px; color:var(--text-mute); margin-left:auto"></span>
|
| 669 |
</div>
|
| 670 |
</div>
|
|
|
|
| 675 |
<!-- ===== FOOTER ===== -->
|
| 676 |
<footer class="footer">
|
| 677 |
<p>
|
| 678 |
+
SZL Holdings · a11oy · Doctrine v11 · 8 kernel-proven formulas @ c7c0ba17 ·
|
| 679 |
+
Λ = Conjecture 1 (advisory) · Khipu BFT = Conjecture 2 ·
|
| 680 |
+
ATO/IL5/FedRAMP = ROADMAP (not accredited) ·
|
| 681 |
+
<a href="/api/a11oy/v1/assurance/matrix" target="_blank">Assurance Matrix API</a> ·
|
| 682 |
+
<a href="/verify" target="_blank">Verify a Receipt</a> ·
|
| 683 |
<a href="/cosign.pub" target="_blank">cosign.pub</a>
|
| 684 |
</p>
|
| 685 |
</footer>
|
| 686 |
|
| 687 |
<!-- ===================================================================
|
| 688 |
+
JAVASCRIPT — all in-browser, 0 CDN
|
| 689 |
=================================================================== -->
|
| 690 |
<script>
|
| 691 |
"use strict";
|
|
|
|
| 717 |
}
|
| 718 |
|
| 719 |
/* ==================================================================
|
| 720 |
+
SECTION B — Load assurance matrix
|
| 721 |
================================================================== */
|
| 722 |
async function loadMatrix() {
|
| 723 |
var container = el('matrix-container');
|
|
|
|
| 729 |
data = await resp.json();
|
| 730 |
} catch(e) {
|
| 731 |
container.innerHTML = '<div class="matrix-loading" style="color:var(--amber)">'+
|
| 732 |
+
'⚠ Could not load matrix: '+escHTML(e.message)+'<br>'+
|
| 733 |
+
'<a href="/api/a11oy/v1/assurance/matrix" target="_blank" style="font-size:12px">Try API directly →</a>'+
|
| 734 |
'</div>';
|
| 735 |
return;
|
| 736 |
}
|
|
|
|
| 751 |
: '';
|
| 752 |
var sourceLink = r.source_url
|
| 753 |
? '<a class="source-link" href="'+escHTML(r.source_url)+'" target="_blank" rel="noopener">'+escHTML(r.source)+'</a>'
|
| 754 |
+
: escHTML(r.source || '—');
|
| 755 |
|
| 756 |
html += '<tr>'+
|
| 757 |
'<td class="status-col"><span class="req-id-badge">'+escHTML(r.req_id)+'</span></td>'+
|
|
|
|
| 769 |
// Honest note banner
|
| 770 |
if (data.honest_note) {
|
| 771 |
html += '<div style="margin-top:12px;background:var(--amber-dark);border:1px solid var(--amber-mid);border-radius:var(--radius);padding:12px 16px;font-size:12px;color:var(--amber)">'+
|
| 772 |
+
'⚠ '+escHTML(data.honest_note)+'</div>';
|
| 773 |
}
|
| 774 |
|
| 775 |
container.innerHTML = html;
|
|
|
|
| 825 |
}
|
| 826 |
|
| 827 |
/* ==================================================================
|
| 828 |
+
SECTION C — Run governed decision → verify receipt
|
| 829 |
================================================================== */
|
| 830 |
async function runProof() {
|
| 831 |
var btn = el('proof-run-btn');
|
| 832 |
btn.disabled = true;
|
| 833 |
hide('proof-verdict');
|
| 834 |
hide('proof-output');
|
| 835 |
+
setStatus('proof-status', 'Calling /api/a11oy/v1/govern/infer …', true);
|
| 836 |
|
| 837 |
var data;
|
| 838 |
try {
|
|
|
|
| 847 |
btn.disabled = false; return;
|
| 848 |
}
|
| 849 |
|
| 850 |
+
setStatus('proof-status', 'Fetching cosign.pub and verifying signature via WebCrypto …', true);
|
| 851 |
|
| 852 |
var dsse = data.dsse || {};
|
| 853 |
var receipt = data.receipt || {};
|
|
|
|
| 876 |
var verified = false, verifyError = '', sigKeyid = '';
|
| 877 |
|
| 878 |
if (!dsse.signed) {
|
| 879 |
+
verifyError = 'UNSIGNED envelope — private key not in runtime. Receipt chain still valid.';
|
| 880 |
} else if (!sigs.length) {
|
| 881 |
verifyError = 'No signatures in envelope.';
|
| 882 |
} else {
|
|
|
|
| 884 |
try {
|
| 885 |
var sigBytes = b64Decode(sigEntry.sig||'');
|
| 886 |
var rawSig = sigBytes;
|
| 887 |
+
if(sigBytes[0]===0x30){try{rawSig=derToRaw(sigBytes);}catch(e2){verifyError='DER→raw failed: '+e2.message;}}
|
| 888 |
if(!verifyError){
|
| 889 |
verified = await crypto.subtle.verify({name:'ECDSA',hash:'SHA-256'}, pubKey, rawSig.buffer, paeBytes.buffer);
|
| 890 |
if(!verified && sigBytes[0]===0x30){
|
|
|
|
| 901 |
|
| 902 |
var verdictHTML = '';
|
| 903 |
if(verified){
|
| 904 |
+
verdictHTML='<div class="verdict-banner verdict-ok">✓ VERIFIED — WebCrypto ECDSA-P256 signature valid <span class="chip chip-ok">keyid: '+escHTML(sigKeyid)+'</span></div>';
|
| 905 |
} else if(!dsse.signed){
|
| 906 |
+
verdictHTML='<div class="verdict-banner verdict-dim">⚠ UNSIGNED — private key not in runtime; receipt chain still valid</div>';
|
| 907 |
} else {
|
| 908 |
+
verdictHTML='<div class="verdict-banner verdict-fail">✗ VERIFICATION FAILED — '+escHTML(verifyError)+'</div>';
|
| 909 |
}
|
| 910 |
|
| 911 |
var digestMatch = payloadDigestComputed===receiptDigest.substring(0,64);
|
| 912 |
verdictHTML += '<div style="margin-bottom:12px">'+
|
| 913 |
'<div class="hash-row"><span class="hash-label">Payload digest:</span>'+
|
| 914 |
+
'<span class="hash-val '+(digestMatch?'hash-match':'hash-mismatch')+'">'+payloadDigestComputed.substring(0,32)+'…</span>'+
|
| 915 |
'<span class="chip '+(digestMatch?'chip-ok':'chip-err')+'">'+(digestMatch?'MATCH':'MISMATCH')+'</span></div>'+
|
| 916 |
'<div class="hash-row"><span class="hash-label">PAE SHA-256:</span>'+
|
| 917 |
+
'<span class="hash-val">'+paeSHA.substring(0,32)+'…</span></div>'+
|
| 918 |
'<div class="hash-row"><span class="hash-label">Chain prev:</span>'+
|
| 919 |
+
'<span class="hash-val">'+escHTML(String(chainPrev).substring(0,32))+'…</span></div>'+
|
| 920 |
'<div class="hash-row"><span class="hash-label">Chain digest:</span>'+
|
| 921 |
+
'<span class="hash-val">'+escHTML(String(chainDigest).substring(0,32))+'…</span></div>'+
|
| 922 |
'</div>'+
|
| 923 |
'<div style="font-size:12px;color:var(--text-dim)">'+
|
| 924 |
+
'<span class="conj">Λ Conjecture 1 — advisory</span>'+
|
| 925 |
+
' Λ = '+escHTML(String((data.governance||{}).lambda ?? 'N/A'))+
|
| 926 |
+
' · Energy: <span class="chip chip-dim">'+escHTML(((data.energy||{}).label)||'UNAVAILABLE')+'</span>'+
|
| 927 |
'</div>';
|
| 928 |
|
| 929 |
el('proof-verdict').innerHTML = verdictHTML;
|
|
|
|
| 934 |
'governance.lambda': (data.governance||{}).lambda,
|
| 935 |
'governance.lambda_kind': (data.governance||{}).lambda_kind,
|
| 936 |
'receipt.seq': receipt.seq,
|
| 937 |
+
'receipt.prev': String(chainPrev).substring(0,32)+'…',
|
| 938 |
+
'receipt.digest': String(chainDigest).substring(0,32)+'…',
|
| 939 |
'dsse.signed': dsse.signed,
|
| 940 |
'dsse.payloadType': dsse.payloadType,
|
| 941 |
+
'verify.payload_sha256': payloadDigestComputed.substring(0,32)+'…',
|
| 942 |
+
'verify.pae_sha256': paeSHA.substring(0,32)+'…',
|
| 943 |
+
'verify.result': verified ? 'VERIFIED ✓' : (dsse.signed===false ? 'UNSIGNED (no key in runtime)' : 'FAILED: '+verifyError),
|
| 944 |
'energy.label': (data.energy||{}).label,
|
| 945 |
'honesty': data.honesty,
|
| 946 |
};
|
|
|
|
| 949 |
show('proof-output');
|
| 950 |
|
| 951 |
setStatus('proof-status',
|
| 952 |
+
verified ? '✓ WebCrypto verified — real ECDSA-P256 signature over DSSE PAE.' :
|
| 953 |
(dsse.signed===false ? 'Unsigned receipt (key absent from runtime). Chain valid.' :
|
| 954 |
'Verification result: '+verifyError));
|
| 955 |
btn.disabled = false;
|
| 956 |
}
|
| 957 |
|
| 958 |
/* ==================================================================
|
| 959 |
+
SECTION E — Load fit data and mark live
|
| 960 |
================================================================== */
|
| 961 |
async function checkFit() {
|
| 962 |
var s = el('fit-status'); if(!s) return;
|
|
|
|
| 973 |
}
|
| 974 |
|
| 975 |
/* ==================================================================
|
| 976 |
+
SECTION B' — Download Auditor Evidence Pack (sha3_256 self-verifiable)
|
| 977 |
================================================================== */
|
| 978 |
async function downloadEvidencePack() {
|
| 979 |
var btn = el('evidence-pack-btn');
|
| 980 |
if (btn) btn.disabled = true;
|
| 981 |
+
setStatus('evidence-pack-status', 'Assembling evidence pack from live surfaces…', true);
|
| 982 |
try {
|
| 983 |
var resp = await fetch('/api/a11oy/v1/assurance/evidence-pack');
|
| 984 |
var data = await resp.json();
|
|
|
|
| 996 |
setTimeout(function(){ URL.revokeObjectURL(url); }, 4000);
|
| 997 |
|
| 998 |
// We do NOT recompute sha3_256 in-browser (WebCrypto has no SHA3, and shipping a
|
| 999 |
+
// hand-rolled hash would risk a false result — honesty over a fake green check).
|
| 1000 |
// The digest + exact canonicalization are in the pack so an auditor re-verifies
|
| 1001 |
// offline with a trusted sha3_256 tool. We only surface what the server reported.
|
| 1002 |
var sig = (data.signature || {});
|
| 1003 |
+
var sigMsg = sig.signed ? (' · signed [' + (sig.keyid || 'demo') + ']') : ' · honest-unsigned (DSSE_PLACEHOLDER)';
|
| 1004 |
setStatus('evidence-pack-status',
|
| 1005 |
+
'✓ Downloaded. sha3_256=' + String(data.pack_sha3_256 || '').substring(0, 24) + '…' + sigMsg +
|
| 1006 |
+
' · re-verify offline per the pack’s digest_canonicalization note.', false);
|
| 1007 |
} catch(e) {
|
| 1008 |
+
setStatus('evidence-pack-status', '⚠ Could not assemble evidence pack: ' + e.message, false);
|
| 1009 |
} finally {
|
| 1010 |
if (btn) btn.disabled = false;
|
| 1011 |
}
|
|
|
|
| 1020 |
|
| 1021 |
</body>
|
| 1022 |
</html>
|
|
|
pages/chaski.html
CHANGED
|
@@ -1,11 +1,11 @@
|
|
| 1 |
-
|
| 2 |
-
<!-- SPDX-License-Identifier: Apache-2.0
|
| 3 |
-
<!-- CHASKI surface
|
| 4 |
<html lang="en">
|
| 5 |
<head>
|
| 6 |
<meta charset="utf-8"/>
|
| 7 |
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
| 8 |
-
<title>a11oy
|
| 9 |
<style>
|
| 10 |
:root{--bg:#0b0d12;--panel:#12151d;--ink:#e7ecf3;--mut:#8a93a6;--acc:#7cc4ff;--ok:#54d18c;--warn:#ffcf5c;--bad:#ff6b6b;--line:#222838;--mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace}
|
| 11 |
*{box-sizing:border-box}
|
|
@@ -41,12 +41,12 @@ footer{margin-top:34px;border-top:1px solid var(--line);padding-top:14px;color:v
|
|
| 41 |
<body>
|
| 42 |
<div class="wrap">
|
| 43 |
<div class="top">
|
| 44 |
-
<div><span class="brand">a11oy</span> <span class="tag">
|
| 45 |
<div class="nav"><a href="/">home</a><a href="/chaski">routing</a><a href="/willay">willay</a><a href="/verify">verify</a></div>
|
| 46 |
</div>
|
| 47 |
|
| 48 |
<h1>Intelligent Request Routing</h1>
|
| 49 |
-
<p class="sub">The a11oy reception layer: greets visitors, explains what a11oy does in one breath, and routes each request to the right capability by stated need. Routing factor: <code>exp(-
|
| 50 |
|
| 51 |
<div class="scene"><canvas id="welcome3d" style="width:100%;height:100%;display:block;border-radius:12px"></canvas></div>
|
| 52 |
<p class="mut" style="text-align:center;margin-top:-6px">The router delivers each visitor to the right capability node. Drag to orbit.</p>
|
|
@@ -56,36 +56,36 @@ footer{margin-top:34px;border-top:1px solid var(--line);padding-top:14px;color:v
|
|
| 56 |
<div class="path">GET /api/a11oy/chaski/welcome</div>
|
| 57 |
<button onclick="callWelcome()">Greet me</button>
|
| 58 |
<div id="flags"></div>
|
| 59 |
-
<pre id="welcomeout">
|
| 60 |
</div>
|
| 61 |
|
| 62 |
<div class="card">
|
| 63 |
-
<h3>Onboard
|
| 64 |
-
<div class="path">GET /onboard/start
|
| 65 |
<input id="need" placeholder="what do you want to do? e.g. 'sync data', 'fly a drone'" size="46"/>
|
| 66 |
-
<button onclick="runOnboard()">Run onboarding
|
| 67 |
-
<pre id="onboardout">
|
| 68 |
</div>
|
| 69 |
|
| 70 |
<div class="card">
|
| 71 |
<h3>First-touch heatmap (UX metrics)</h3>
|
| 72 |
<div class="path">GET /api/a11oy/chaski/heatmap</div>
|
| 73 |
<button onclick="callHeat()">Load heatmap</button>
|
| 74 |
-
<pre id="heatout">
|
| 75 |
</div>
|
| 76 |
|
| 77 |
<div class="honest">
|
| 78 |
-
<b>Honest labels (Doctrine v13
|
| 79 |
</div>
|
| 80 |
|
| 81 |
-
<footer>a11oy
|
| 82 |
</div>
|
| 83 |
|
| 84 |
<script>
|
| 85 |
const API='/api/a11oy/chaski';
|
| 86 |
function show(id,o){document.getElementById(id).textContent=typeof o==='string'?o:JSON.stringify(o,null,2);}
|
| 87 |
async function callWelcome(){try{const r=await fetch(API+'/welcome');const j=await r.json();show('welcomeout',j);
|
| 88 |
-
document.getElementById('flags').innerHTML=Object.entries(j.flagships||{}).map(([k,v])=>`<span class="flag">${k}
|
| 89 |
}catch(e){show('welcomeout','error: '+e);}}
|
| 90 |
async function runOnboard(){try{const need=document.getElementById('need').value||'route an llm';
|
| 91 |
const s=await(await fetch(API+'/onboard/start')).json();const sid=s.session_id;let last;
|
|
@@ -115,7 +115,7 @@ const body=new THREE.Mesh(new THREE.CapsuleGeometry(0.35,0.9,8,16),mat);scene.ad
|
|
| 115 |
const head=new THREE.Mesh(new THREE.SphereGeometry(0.28,24,24),mat);head.position.y=0.95;scene.add(head);
|
| 116 |
const glow=new THREE.Mesh(new THREE.SphereGeometry(0.16,16,16),new THREE.MeshStandardMaterial({color:0x54d18c,emissive:0x54d18c,emissiveIntensity:1.6}));glow.position.set(0.55,1.0,0);scene.add(glow);
|
| 117 |
// Five flagship nodes arranged in an arc (the chaskiwasi the messenger runs between)
|
| 118 |
-
const labels=['governed
|
| 119 |
labels.forEach((lab,i)=>{const a=(-0.9+i*0.45);const x=Math.sin(a)*3.4,z=Math.cos(a)*-1.0-1.0;
|
| 120 |
const n=new THREE.Mesh(new THREE.IcosahedronGeometry(0.26,0),new THREE.MeshStandardMaterial({color:0xffcf5c,emissive:0x6b5410,emissiveIntensity:0.7}));
|
| 121 |
n.position.set(x,0.2,z);scene.add(n);nodes.push(n);
|
|
@@ -127,4 +127,3 @@ size();window.addEventListener('resize',()=>{size();cam.aspect=canvas.clientWidt
|
|
| 127 |
</script>
|
| 128 |
</body>
|
| 129 |
</html>
|
| 130 |
-
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<!-- SPDX-License-Identifier: Apache-2.0 © 2026 Lutar, Stephen P. — SZL Holdings · Doctrine v13 -->
|
| 3 |
+
<!-- CHASKI surface — reception/onboarding/first-touch organ. ADDITIVE per Doctrine v13 §2.1. -->
|
| 4 |
<html lang="en">
|
| 5 |
<head>
|
| 6 |
<meta charset="utf-8"/>
|
| 7 |
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
| 8 |
+
<title>a11oy · Smart Routing — Intelligent Request Dispatch</title>
|
| 9 |
<style>
|
| 10 |
:root{--bg:#0b0d12;--panel:#12151d;--ink:#e7ecf3;--mut:#8a93a6;--acc:#7cc4ff;--ok:#54d18c;--warn:#ffcf5c;--bad:#ff6b6b;--line:#222838;--mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace}
|
| 11 |
*{box-sizing:border-box}
|
|
|
|
| 41 |
<body>
|
| 42 |
<div class="wrap">
|
| 43 |
<div class="top">
|
| 44 |
+
<div><span class="brand">a11oy</span> <span class="tag">· Reception & Routing · Doctrine v13 §2.1</span></div>
|
| 45 |
<div class="nav"><a href="/">home</a><a href="/chaski">routing</a><a href="/willay">willay</a><a href="/verify">verify</a></div>
|
| 46 |
</div>
|
| 47 |
|
| 48 |
<h1>Intelligent Request Routing</h1>
|
| 49 |
+
<p class="sub">The a11oy reception layer: greets visitors, explains what a11oy does in one breath, and routes each request to the right capability by stated need. Routing factor: <code>exp(-κ·backpressure)·𝟙[routable] ∈ [0,1]</code> — the F7 admission gate (admissible multiplier: can only gate harder, never inflate utility).</p>
|
| 50 |
|
| 51 |
<div class="scene"><canvas id="welcome3d" style="width:100%;height:100%;display:block;border-radius:12px"></canvas></div>
|
| 52 |
<p class="mut" style="text-align:center;margin-top:-6px">The router delivers each visitor to the right capability node. Drag to orbit.</p>
|
|
|
|
| 56 |
<div class="path">GET /api/a11oy/chaski/welcome</div>
|
| 57 |
<button onclick="callWelcome()">Greet me</button>
|
| 58 |
<div id="flags"></div>
|
| 59 |
+
<pre id="welcomeout">— click to receive the first-touch greeting + flagship map —</pre>
|
| 60 |
</div>
|
| 61 |
|
| 62 |
<div class="card">
|
| 63 |
+
<h3>Onboard — route by stated need</h3>
|
| 64 |
+
<div class="path">GET /onboard/start · POST /onboard/step</div>
|
| 65 |
<input id="need" placeholder="what do you want to do? e.g. 'sync data', 'fly a drone'" size="46"/>
|
| 66 |
+
<button onclick="runOnboard()">Run onboarding → route me</button>
|
| 67 |
+
<pre id="onboardout">— enter a need and the router will dispatch you, applying the reception gate —</pre>
|
| 68 |
</div>
|
| 69 |
|
| 70 |
<div class="card">
|
| 71 |
<h3>First-touch heatmap (UX metrics)</h3>
|
| 72 |
<div class="path">GET /api/a11oy/chaski/heatmap</div>
|
| 73 |
<button onclick="callHeat()">Load heatmap</button>
|
| 74 |
+
<pre id="heatout">— first-touch event counts, route distribution, completion rate, Khipu depth —</pre>
|
| 75 |
</div>
|
| 76 |
|
| 77 |
<div class="honest">
|
| 78 |
+
<b>Honest labels (Doctrine v13 §5):</b> every routing action emits a <b>signed-receipt</b> (SHA3-256 hash-chain). The routing factor is an <b>admissible</b> multiplier ∈ [0,1] — it can only gate harder, never inflate utility. The memory-cortex sync courier is a distinct lower layer.
|
| 79 |
</div>
|
| 80 |
|
| 81 |
+
<footer>a11oy · reception & routing layer · Doctrine v13 (additive over v12 / v11 LOCKED 749/14/163 · 13-axis · replay <code>bacf5443…631fc5</code>) · — Yachay</footer>
|
| 82 |
</div>
|
| 83 |
|
| 84 |
<script>
|
| 85 |
const API='/api/a11oy/chaski';
|
| 86 |
function show(id,o){document.getElementById(id).textContent=typeof o==='string'?o:JSON.stringify(o,null,2);}
|
| 87 |
async function callWelcome(){try{const r=await fetch(API+'/welcome');const j=await r.json();show('welcomeout',j);
|
| 88 |
+
document.getElementById('flags').innerHTML=Object.entries(j.flagships||{}).map(([k,v])=>`<span class="flag">${k} · ${v.organ}</span>`).join('');
|
| 89 |
}catch(e){show('welcomeout','error: '+e);}}
|
| 90 |
async function runOnboard(){try{const need=document.getElementById('need').value||'route an llm';
|
| 91 |
const s=await(await fetch(API+'/onboard/start')).json();const sid=s.session_id;let last;
|
|
|
|
| 115 |
const head=new THREE.Mesh(new THREE.SphereGeometry(0.28,24,24),mat);head.position.y=0.95;scene.add(head);
|
| 116 |
const glow=new THREE.Mesh(new THREE.SphereGeometry(0.16,16,16),new THREE.MeshStandardMaterial({color:0x54d18c,emissive:0x54d18c,emissiveIntensity:1.6}));glow.position.set(0.55,1.0,0);scene.add(glow);
|
| 117 |
// Five flagship nodes arranged in an arc (the chaskiwasi the messenger runs between)
|
| 118 |
+
const labels=['governed inference','agents','killinchu','observability','a11oy'];const nodes=[];
|
| 119 |
labels.forEach((lab,i)=>{const a=(-0.9+i*0.45);const x=Math.sin(a)*3.4,z=Math.cos(a)*-1.0-1.0;
|
| 120 |
const n=new THREE.Mesh(new THREE.IcosahedronGeometry(0.26,0),new THREE.MeshStandardMaterial({color:0xffcf5c,emissive:0x6b5410,emissiveIntensity:0.7}));
|
| 121 |
n.position.set(x,0.2,z);scene.add(n);nodes.push(n);
|
|
|
|
| 127 |
</script>
|
| 128 |
</body>
|
| 129 |
</html>
|
|
|
pages/console.html
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
pages/fabric.html
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
-
|
| 2 |
<html lang="en"><head>
|
| 3 |
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
|
| 4 |
-
<title>Governed Distributed Compute Fabric
|
| 5 |
-
<meta name="description" content="The Governed Distributed Compute Fabric
|
| 6 |
<!-- SZL Estate shared modules (byte-identical cross-app), served in-image at /static/shared (0 CDN). -->
|
| 7 |
<script src="/static/shared/szl_label_engine.js"></script>
|
| 8 |
<script src="/static/shared/szl_holo3d.js"></script>
|
|
@@ -76,51 +76,51 @@ th{color:var(--mut);font-weight:600}
|
|
| 76 |
<nav class="note"><a href="/">home</a><a href="/mesh">/mesh</a><a href="/wires">/wires</a><a href="/observability">/observability</a><a href="/holo">/holo</a></nav>
|
| 77 |
<h1>Governed Distributed Compute Fabric</h1>
|
| 78 |
<p class="sub" style="font-weight:700;color:var(--acc);margin-bottom:6px">Sovereign signal. Signed receipt. No node left dark.</p>
|
| 79 |
-
<p class="sub">The <b>Governed Distributed Compute Fabric</b> as one unified system-of-systems view. Sovereign GPU mesh + honest TCP reachability + joules <b>MEASURED</b> per node + one governed OpenAI-compatible router + doctrine-locked provenance. <span class="hl">Terrestrial governed mesh is the proven core; orbital is a clearly-labeled ROADMAP frame.</span> Doctrine v11
|
| 80 |
-
<p class="note" style="margin:0 0 14px">The fabric unites your sovereign nodes
|
| 81 |
|
| 82 |
<div class="card">
|
| 83 |
<div style="display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px">
|
| 84 |
-
<div class="note">Live sources (no fabrication): <code>/api/a11oy/v1/compute-pool-hardened</code>
|
| 85 |
-
<button class="refresh" onclick="loadAll()">
|
| 86 |
</div>
|
| 87 |
-
<div class="stamp" id="stamp" style="margin-top:8px">loading live fabric
|
| 88 |
</div>
|
| 89 |
|
| 90 |
-
<h2>1
|
| 91 |
<div class="card">
|
| 92 |
-
<div class="kpis" id="kpis"><div class="note">
|
| 93 |
-
<p class="note" style="margin-top:14px">Every figure is honestly labeled. <b>Reachability</b> is a real TCP probe THIS sweep
|
| 94 |
</div>
|
| 95 |
|
| 96 |
-
<h2>2
|
| 97 |
<div class="card">
|
| 98 |
-
<p class="note" style="margin:0 0 12px">The mesh does not just <i>prove it exists</i>
|
| 99 |
<div class="work" id="work">
|
| 100 |
<div class="wk" id="wk-kverify">
|
| 101 |
-
<h3>K-Verify
|
| 102 |
<p class="cap">A signed inference run over <code>k-verify-benchmark-v1</code>: N items, pass-rate, joules MEASURED, and a receipt hash you can verify.</p>
|
| 103 |
-
<div class="state" id="kv-state"><span class="pending">PENDING<span class="why">probing live
|
| 104 |
</div>
|
| 105 |
<div class="wk" id="wk-rag">
|
| 106 |
-
<h3>Govern-RAG
|
| 107 |
<p class="cap">Ask a question; the fabric answers <b>only</b> from its own governed corpus, with citations. No corpus hit = honest "insufficient grounding," never a guess.</p>
|
| 108 |
<div class="qa" id="rag-qa" style="display:none">
|
| 109 |
<input id="rag-q" type="text" placeholder="e.g. How many formulas are locked, and at what kernel?" autocomplete="off">
|
| 110 |
<button id="rag-ask" type="button" onclick="askRag()">ask</button>
|
| 111 |
</div>
|
| 112 |
-
<div class="state" id="rag-state"><span class="pending">PENDING<span class="why">probing live
|
| 113 |
</div>
|
| 114 |
<div class="wk" id="wk-watt">
|
| 115 |
-
<h3>Cheapest-watt routing
|
| 116 |
-
<p class="cap">The governed router places each job on the lowest-
|
| 117 |
-
<div class="state" id="watt-state"><span class="pending">PENDING<span class="why">probing live
|
| 118 |
</div>
|
| 119 |
</div>
|
| 120 |
-
<p class="note" style="margin-top:12px">Honesty contract: a tile only shows a <b>result</b> when its endpoint actually returned one this sweep. Joules are <b>MEASURED</b> only on the on-box exporter node; routing savings are <b>MEASURED</b> where a meter exists and <b>MODELED</b> (clearly labeled) otherwise. Receipts are <b>tamper-EVIDENT</b> (SHA3 hash-chain), not tamper-proof. No fused VRAM is implied by any "work" shown here
|
| 121 |
</div>
|
| 122 |
|
| 123 |
-
<h2>3
|
| 124 |
<div class="card">
|
| 125 |
<div class="holo" id="holo"></div>
|
| 126 |
<div class="legend">
|
|
@@ -129,47 +129,47 @@ th{color:var(--mut);font-weight:600}
|
|
| 129 |
<span><span class="sw" style="background:#7aa2ff"></span>sovereign owned GPU/CPU</span>
|
| 130 |
<span><span class="sw" style="background:#e0c060"></span>hosted-inference failover (non-sovereign)</span>
|
| 131 |
</div>
|
| 132 |
-
<p class="note" style="margin-top:12px"><b>Scaling model
|
| 133 |
</div>
|
| 134 |
|
| 135 |
-
<h2>4
|
| 136 |
-
<div class="nodegrid" id="nodes"><div class="note">
|
| 137 |
|
| 138 |
-
<h2>5
|
| 139 |
<div class="card">
|
| 140 |
-
<div class="kpis" id="energy"><div class="note">
|
| 141 |
<table id="byNode" style="margin-top:14px"><tr><th>node</th><th>jobs</th><th>tokens</th><th>joules</th><th>label</th></tr></table>
|
| 142 |
-
<p class="note" style="margin-top:12px">Joules are MEASURED via the on-box exporter (node <code id="expnode">betterwithage</code>). Nodes without a local exporter contribute SAMPLE jobs (joules unmeasured)
|
| 143 |
</div>
|
| 144 |
|
| 145 |
-
<h2>6
|
| 146 |
<div class="card">
|
| 147 |
<div class="flow">
|
| 148 |
-
<span class="node">request</span><span class="arr">
|
| 149 |
-
<span class="node">governed router</span><span class="arr">
|
| 150 |
-
<span class="node">placement (
|
| 151 |
-
<span class="node">sovereign node / failover</span><span class="arr">
|
| 152 |
-
<span class="node">signed receipt
|
| 153 |
</div>
|
| 154 |
-
<div id="prov" class="note" style="margin-top:8px">
|
| 155 |
</div>
|
| 156 |
|
| 157 |
<div class="orbit">
|
| 158 |
<div class="band">
|
| 159 |
-
<span class="banner">Roadmap
|
| 160 |
<span id="orbitBadge"></span>
|
| 161 |
</div>
|
| 162 |
-
<h2 style="margin-top:6px">7
|
| 163 |
-
<p class="note">The same governance primitives the terrestrial mesh PROVES on real metal
|
| 164 |
<div class="kpis" id="orbit">
|
| 165 |
-
<div class="kpi"><div class="k">Terrestrial governed mesh</div><div class="v" id="orbReach">
|
| 166 |
<div class="kpi"><div class="k">Per-node energy accounting</div><div class="v">joules</div><div class="l" id="orbJ"></div></div>
|
| 167 |
<div class="kpi"><div class="k">Edge / orbital placement</div><div class="v">vision</div><div class="l" id="orbRm"></div></div>
|
| 168 |
</div>
|
| 169 |
</div>
|
| 170 |
|
| 171 |
<div class="foot" id="foot">
|
| 172 |
-
HONEST: all numbers above carry an explicit label
|
| 173 |
</div>
|
| 174 |
</div>
|
| 175 |
|
|
@@ -177,16 +177,16 @@ HONEST: all numbers above carry an explicit label — LIVE (real backend wi
|
|
| 177 |
"use strict";
|
| 178 |
var L = (window.SZLLabels && window.SZLLabels.badgeHTML) ? function(k,t){ return window.SZLLabels.badgeHTML(k, t?{label:t}:undefined); } : function(k,t){ return '<span class="szl-pill">'+(t||k)+'</span>'; };
|
| 179 |
function $(id){ return document.getElementById(id); }
|
| 180 |
-
function fmt(n){ if(n==null||isNaN(n)) return '
|
| 181 |
-
function fmt1(n){ if(n==null||isNaN(n)) return '
|
| 182 |
async function getJSON(url){ var r = await fetch(url, {headers:{'accept':'application/json'}}); if(!r.ok) throw new Error(url+' HTTP '+r.status); return r.json(); }
|
| 183 |
|
| 184 |
var holoScene = null;
|
| 185 |
function buildHolo(pool){
|
| 186 |
var mount = $('holo');
|
| 187 |
-
if(!window.SZLHolo || !window.SZLHolo.Scene){ mount.innerHTML = '<p class="note" style="padding:18px">3D kit unavailable
|
| 188 |
mount.innerHTML = '';
|
| 189 |
-
//
|
| 190 |
holoScene = new window.SZLHolo.Scene(mount, { title: 'GOVERNED DISTRIBUTED COMPUTE FABRIC', lambda: 0.42, autoRotate: true });
|
| 191 |
var nodes = (pool.nodes||[]);
|
| 192 |
// hub = the governed router (the host running this service / hetzner-box-cpu self node anchors center)
|
|
@@ -197,7 +197,7 @@ function buildHolo(pool){
|
|
| 197 |
var y = (n.kind === 'hosted-inference') ? 0.55 : -0.25; // failover ring sits above
|
| 198 |
specNodes.push({
|
| 199 |
id: n.name,
|
| 200 |
-
label: n.name + (n.reachable ? '
|
| 201 |
pos: [R*Math.cos(ang), y, R*Math.sin(ang)],
|
| 202 |
// lower lambda => greener/larger (more trust); reachable+sovereign = most trusted
|
| 203 |
lambda: n.reachable ? (n.sovereign ? 0.22 : 0.40) : 0.80
|
|
@@ -246,7 +246,7 @@ function renderNodes(pool, energy){
|
|
| 246 |
'<div class="row">'+reach+'</div>'+
|
| 247 |
'<div class="row">'+sov+'</div>'+
|
| 248 |
'<div class="joule">energy: '+jVal+' '+jLabel+
|
| 249 |
-
(bn.jobs!=null ? ' <span class="muted-num">
|
| 250 |
'</div></div>';
|
| 251 |
});
|
| 252 |
$('nodes').innerHTML = html;
|
|
@@ -258,7 +258,7 @@ function renderEnergy(energy){
|
|
| 258 |
html += kpi('Measured token-joules', fmt(energy.measured_token_joules), L('MEASURED'));
|
| 259 |
html += kpi('Measured jobs', fmt(energy.measured_jobs), L('MEASURED'));
|
| 260 |
html += kpi('Sample jobs (unmeasured)', fmt(energy.sample_jobs), L('SAMPLE'));
|
| 261 |
-
html += kpi('Grid price', fmt1(energy.grid_price_eur_mwh)+'
|
| 262 |
html += kpi('Power sample', fmt1(energy.power_w_sample)+' W', L('SAMPLE'));
|
| 263 |
$('energy').innerHTML = html;
|
| 264 |
if(energy.exporter_node) $('expnode').textContent = energy.exporter_node;
|
|
@@ -275,12 +275,12 @@ function renderProv(prov, honest){
|
|
| 275 |
var slsa = (honest && honest.footer) ? '' : '';
|
| 276 |
var dl = (honest && honest.doctrine_lock) || {};
|
| 277 |
var html = '';
|
| 278 |
-
html += '<p>SLSA: <b>'+(prov.slsa||'L1')+'</b>
|
| 279 |
if(prov.khipu_dsse){
|
| 280 |
-
html += '<p>Provenance per answer: signed-receipt substrate
|
| 281 |
}
|
| 282 |
if(dl.locked_formula_ids){
|
| 283 |
-
html += '<p>Doctrine lock: <code>'+(dl.declarations||749)+'/'+(dl.axioms||14)+'/'+(dl.sorries||163)+'</code> @ kernel <code>'+(dl.commit||'c7c0ba17')+'</code>
|
| 284 |
if(dl.commit) $('kernel').textContent = dl.commit;
|
| 285 |
}
|
| 286 |
$('prov').innerHTML = html;
|
|
@@ -288,7 +288,7 @@ function renderProv(prov, honest){
|
|
| 288 |
|
| 289 |
function renderOrbit(pool, energy){
|
| 290 |
var c = pool.counts || {};
|
| 291 |
-
$('orbitBadge').innerHTML = L('ROADMAP','VISION FRAME
|
| 292 |
$('orbReach').textContent = fmt(c.nodes_reachable) + '/' + fmt(c.nodes_total);
|
| 293 |
$('orbReachL').innerHTML = L('LIVE','PROVEN ON METAL');
|
| 294 |
$('orbJ').innerHTML = L('MEASURED','PER-NODE, REAL');
|
|
@@ -296,7 +296,7 @@ function renderOrbit(pool, energy){
|
|
| 296 |
}
|
| 297 |
|
| 298 |
// ---- Live-work panel: probe each new capability honestly; render result OR honest PENDING ----
|
| 299 |
-
// Candidate endpoint lists
|
| 300 |
// We take the FIRST that returns valid JSON this sweep; if none do, we render PENDING.
|
| 301 |
var KV_EPS = ['/api/a11oy/v1/kverify/summary','/api/a11oy/v1/kverify/status','/api/a11oy/v1/k-verify/summary','/api/a11oy/v1/k-verify/status','/api/a11oy/v1/verify/run/last','/api/a11oy/v1/kverify/last'];
|
| 302 |
var RAG_EPS = ['/api/a11oy/v1/rag/status','/api/a11oy/v1/rag/last','/api/a11oy/v1/govern-rag/status','/api/a11oy/rag/status','/api/a11oy/v1/rag/health'];
|
|
@@ -304,8 +304,8 @@ var WATT_EPS = ['/api/a11oy/v1/energy/cheapest-watt','/api/a11oy/v1/routing/chea
|
|
| 304 |
var RAG_ASK_EPS = ['/api/a11oy/v1/rag/query','/api/a11oy/v1/rag/ask','/api/a11oy/v1/govern-rag/ask','/api/a11oy/rag/query'];
|
| 305 |
var RAG_ASK_URL = null; // resolved once a status probe identifies a live RAG surface
|
| 306 |
|
| 307 |
-
function pendingHTML(why){ return '<span class="pending">PENDING<span class="why">'+(why||'endpoint not yet live
|
| 308 |
-
function shortHash(h){ if(!h) return null; h=String(h); return h.length>20 ? h.slice(0,10)+'
|
| 309 |
|
| 310 |
// Try a list of endpoints; resolve with {url,data} of the first that returns ok JSON, else null.
|
| 311 |
async function firstLive(urls){
|
|
@@ -319,12 +319,12 @@ function renderKVerify(hit){
|
|
| 319 |
if(!hit){ el.innerHTML = pendingHTML('K-Verify endpoint not live this sweep'); return false; }
|
| 320 |
var d = hit.data || {};
|
| 321 |
// Honest idle state: endpoint is LIVE but no run has executed yet this process.
|
| 322 |
-
// Surface that truthfully
|
| 323 |
var runData = d.run || d.last_run || d.summary || d;
|
| 324 |
var hasRun = (d.ran === true) || (d.ran == null && (runData.n!=null || runData.count!=null || runData.items!=null || runData.total!=null || runData.pass!=null));
|
| 325 |
if(!hasRun){
|
| 326 |
-
el.innerHTML = '<div class="sub2"><b>endpoint live</b> '+L('LIVE','
|
| 327 |
-
'<div class="sub2">no run yet this process
|
| 328 |
return true;
|
| 329 |
}
|
| 330 |
d = runData;
|
|
@@ -336,20 +336,20 @@ function renderKVerify(hit){
|
|
| 336 |
var rh = d.receipt_hash || d.receipt || d.digest || (d.receipt_digest) || ((d.khipu&&d.khipu.hash)||null);
|
| 337 |
var verify= d.verify_endpoint || d.receipt_verify_at || '/api/a11oy/khipu/verify';
|
| 338 |
if(rate==null && typeof pass==='number' && typeof n==='number' && n>0) rate = pass/n;
|
| 339 |
-
var passStr = (typeof pass==='number' && typeof n==='number') ? (fmt(pass)+'/'+fmt(n)) : (n!=null?fmt(n)+' items':'
|
| 340 |
-
var rateStr = (typeof rate==='number') ? ('
|
| 341 |
var html = '<div class="big">'+passStr+'</div>';
|
| 342 |
html += '<div class="sub2">items run / passed'+rateStr+'</div>';
|
| 343 |
-
html += '<hr><div class="sub2">energy: <b>'+(joules!=null?fmt(joules)+' J':'
|
| 344 |
if(rh){ html += '<div class="receipt">receipt '+shortHash(rh)+'</div>'; html += '<div class="sub2">verify: <code>'+verify+'</code> '+L('LIVE')+'</div>'; }
|
| 345 |
-
html += '<div class="lbls">'+L('LIVE','
|
| 346 |
el.innerHTML = html;
|
| 347 |
return true;
|
| 348 |
}
|
| 349 |
|
| 350 |
function renderRag(hit){
|
| 351 |
var el = $('rag-state'); var qa = $('rag-qa');
|
| 352 |
-
if(!hit){ qa.style.display='none'; el.innerHTML = pendingHTML('Govern-RAG endpoint not live this sweep
|
| 353 |
var d = hit.data || {};
|
| 354 |
// Resolve an ask URL: explicit field, sibling of the status path, or default candidate.
|
| 355 |
RAG_ASK_URL = d.query_endpoint || d.ask_endpoint || hit.url.replace(/\/(status|health|last)$/,'/query') || RAG_ASK_EPS[0];
|
|
@@ -365,14 +365,14 @@ function renderRag(hit){
|
|
| 365 |
if(chunks!=null) stat.push(fmt(chunks)+' chunks');
|
| 366 |
if(files!=null) stat.push(fmt(files)+' files');
|
| 367 |
if(repos!=null) stat.push(fmt(repos)+' repos');
|
| 368 |
-
var html = '<div class="sub2">governed corpus indexed: <b>'+(stat.length?stat.join('
|
| 369 |
// Only show a 'last answer' if it carries a real grounded answer string (status citations are not answers).
|
| 370 |
if(lastA && typeof lastA==='string'){
|
| 371 |
html += '<div class="ans">'+(lastQ?'<b>Q:</b> '+escapeHTML(lastQ)+'<br>':'')+'<b>A:</b> '+escapeHTML(String(lastA))+'</div>';
|
| 372 |
-
if(cites && cites.length){ html += '<div class="cite">cited: '+cites.map(function(c){ return escapeHTML(typeof c==='string'?c:(c.citation||c.path||c.source||c.id||c.doc||JSON.stringify(c))); }).join('
|
| 373 |
html += '<div class="lbls">'+L('LIVE','GROUNDED + CITED')+'</div>';
|
| 374 |
} else {
|
| 375 |
-
html += '<div class="sub2">Ask the doctrine
|
| 376 |
}
|
| 377 |
el.innerHTML = html;
|
| 378 |
return true;
|
|
@@ -383,7 +383,7 @@ async function askRag(){
|
|
| 383 |
var btn = $('rag-ask'); var el = $('rag-state');
|
| 384 |
if(!q){ return; }
|
| 385 |
if(!RAG_ASK_URL){ el.innerHTML = pendingHTML('RAG query endpoint not live'); return; }
|
| 386 |
-
btn.disabled = true; el.innerHTML = '<div class="sub2">asking the governed corpus
|
| 387 |
try {
|
| 388 |
var r = await fetch(RAG_ASK_URL, {method:'POST', headers:{'content-type':'application/json','accept':'application/json'}, body: JSON.stringify({question:q, query:q})});
|
| 389 |
if(!r.ok) throw new Error('HTTP '+r.status);
|
|
@@ -394,10 +394,10 @@ async function askRag(){
|
|
| 394 |
var html = '';
|
| 395 |
if(grounded){
|
| 396 |
html += '<div class="ans"><b>Q:</b> '+escapeHTML(q)+'<br><b>A:</b> '+escapeHTML(String(ans))+'</div>';
|
| 397 |
-
if(cites && cites.length){ html += '<div class="cite">cited: '+cites.map(function(c){ return escapeHTML(typeof c==='string'?c:(c.id||c.source||c.doc||JSON.stringify(c))); }).join('
|
| 398 |
html += '<div class="lbls">'+L('LIVE','GROUNDED + CITED')+'</div>';
|
| 399 |
} else {
|
| 400 |
-
html += '<div class="ans"><b>Q:</b> '+escapeHTML(q)+'<br><b>A:</b> insufficient grounding in the governed corpus
|
| 401 |
html += '<div class="lbls">'+L('LIVE','HONEST: NO GUESS')+'</div>';
|
| 402 |
}
|
| 403 |
el.innerHTML = html;
|
|
@@ -421,21 +421,21 @@ function renderWatt(hit){
|
|
| 421 |
var reason = dec.reason || dec.detail || null;
|
| 422 |
var chHead = (d.chain && d.chain.head) || dec.receipt_hash || dec.receipt || dec.digest || null;
|
| 423 |
var html = '';
|
| 424 |
-
html += '<div class="big">'+(price!=null?fmt1(price)+'
|
| 425 |
html += '<div class="sub2">live grid price at decision '+(priceL==='MEASURED'?L('MEASURED'):L('LIVE'))+'</div>';
|
| 426 |
if(node){
|
| 427 |
-
html += '<hr><div class="sub2">chosen node: <b>'+escapeHTML(node)+'</b> '+L('LIVE','LOWEST-
|
| 428 |
if(save!=null){
|
| 429 |
var sv = (typeof save==='number') ? ((save<=1?(save*100):save).toFixed(1)+'%') : escapeHTML(String(save));
|
| 430 |
var lk = (saveLabel==='MEASURED') ? L('MEASURED') : L('MODELED','ROUTING LAW');
|
| 431 |
html += '<div class="sub2">honest savings vs most-expensive comparable: <b>'+sv+'</b> '+lk+'</div>';
|
| 432 |
}
|
| 433 |
} else {
|
| 434 |
-
// No placement this tick is an HONEST outcome, not a gap
|
| 435 |
html += '<hr><div class="sub2"><b>no placement this tick</b> '+L('LIVE','HONEST: NO FABRICATED SAVING')+'</div>';
|
| 436 |
if(reason) html += '<div class="sub2">'+escapeHTML(reason)+'</div>';
|
| 437 |
}
|
| 438 |
-
if(chHead){ html += '<div class="receipt">receipt-chain '+shortHash(chHead)+(d.chain&&d.chain.length!=null?'
|
| 439 |
el.innerHTML = html;
|
| 440 |
return true;
|
| 441 |
}
|
|
@@ -455,7 +455,7 @@ async function loadWork(){
|
|
| 455 |
}
|
| 456 |
|
| 457 |
async function loadAll(){
|
| 458 |
-
$('stamp').textContent = 'fetching live fabric
|
| 459 |
try {
|
| 460 |
var results = await Promise.allSettled([
|
| 461 |
getJSON('/api/a11oy/v1/compute-pool-hardened'),
|
|
@@ -481,9 +481,9 @@ async function loadAll(){
|
|
| 481 |
|
| 482 |
var errs = results.filter(function(r){return r.status==='rejected';});
|
| 483 |
var ts = pool.cached_at || new Date().toISOString();
|
| 484 |
-
$('stamp').innerHTML = 'live as of <code>'+ts+'</code>
|
| 485 |
-
'
|
| 486 |
-
(errs.length ? ' <span class="err">
|
| 487 |
} catch(e){
|
| 488 |
$('stamp').innerHTML = '<span class="err">fabric load error: '+e+'</span>';
|
| 489 |
}
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
<html lang="en"><head>
|
| 3 |
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
|
| 4 |
+
<title>Governed Distributed Compute Fabric · a11oy</title>
|
| 5 |
+
<meta name="description" content="The Governed Distributed Compute Fabric — one unified system-of-systems view. Sovereign signal. Signed receipt. No node left dark. Sovereign GPU mesh under one governed router, honest TCP reachability, joules MEASURED per node, doctrine-locked. Terrestrial-proven core; orbital is a clearly-labeled ROADMAP frame. 0 runtime CDN.">
|
| 6 |
<!-- SZL Estate shared modules (byte-identical cross-app), served in-image at /static/shared (0 CDN). -->
|
| 7 |
<script src="/static/shared/szl_label_engine.js"></script>
|
| 8 |
<script src="/static/shared/szl_holo3d.js"></script>
|
|
|
|
| 76 |
<nav class="note"><a href="/">home</a><a href="/mesh">/mesh</a><a href="/wires">/wires</a><a href="/observability">/observability</a><a href="/holo">/holo</a></nav>
|
| 77 |
<h1>Governed Distributed Compute Fabric</h1>
|
| 78 |
<p class="sub" style="font-weight:700;color:var(--acc);margin-bottom:6px">Sovereign signal. Signed receipt. No node left dark.</p>
|
| 79 |
+
<p class="sub">The <b>Governed Distributed Compute Fabric</b> as one unified system-of-systems view. Sovereign GPU mesh + honest TCP reachability + joules <b>MEASURED</b> per node + one governed OpenAI-compatible router + doctrine-locked provenance. <span class="hl">Terrestrial governed mesh is the proven core; orbital is a clearly-labeled ROADMAP frame.</span> Doctrine v11 · Λ = Conjecture 1 · 0 runtime CDN.</p>
|
| 80 |
+
<p class="note" style="margin:0 0 14px">The fabric unites your sovereign nodes — each request governed by the trust score (Λ), recorded in the signed-receipt ledger, and relayed under one governed router — into a single honest system-of-systems.</p>
|
| 81 |
|
| 82 |
<div class="card">
|
| 83 |
<div style="display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px">
|
| 84 |
+
<div class="note">Live sources (no fabrication): <code>/api/a11oy/v1/compute-pool-hardened</code> · <code>/api/a11oy/v1/energy/operator/status</code> · <code>/api/a11oy/v1/honest</code> · <code>/api/a11oy/provenance</code> · <span class="hl">live-work</span> (K-Verify · Govern-RAG · cheapest-watt, each probed independently, honestly PENDING until deployed)</div>
|
| 85 |
+
<button class="refresh" onclick="loadAll()">↻ refresh live</button>
|
| 86 |
</div>
|
| 87 |
+
<div class="stamp" id="stamp" style="margin-top:8px">loading live fabric state…</div>
|
| 88 |
</div>
|
| 89 |
|
| 90 |
+
<h2>1 · Fabric at a glance</h2>
|
| 91 |
<div class="card">
|
| 92 |
+
<div class="kpis" id="kpis"><div class="note">…</div></div>
|
| 93 |
+
<p class="note" style="margin-top:14px">Every figure is honestly labeled. <b>Reachability</b> is a real TCP probe THIS sweep — a timeout/refusal is reachable=false with the reason, never fabricated. <b>Joules</b> are MEASURED only via the on-box exporter (nodes with no exporter read SAMPLE / 0). <b>Sovereign</b> is a property of owned hardware, passed through, never inferred from reachability.</p>
|
| 94 |
</div>
|
| 95 |
|
| 96 |
+
<h2>2 · Live work — the fabric DOES verifiable work</h2>
|
| 97 |
<div class="card">
|
| 98 |
+
<p class="note" style="margin:0 0 12px">The mesh does not just <i>prove it exists</i> — it does governed, receipted work. Three new capabilities surface here <b>as they go live</b>. Each tile probes its own endpoint independently via <code>Promise.allSettled</code>: a capability that is not yet deployed renders an honest <span style="color:var(--warn);font-weight:700">PENDING</span> with the reason — <b>never a fabricated result</b>.</p>
|
| 99 |
<div class="work" id="work">
|
| 100 |
<div class="wk" id="wk-kverify">
|
| 101 |
+
<h3>K-Verify · governed inference</h3>
|
| 102 |
<p class="cap">A signed inference run over <code>k-verify-benchmark-v1</code>: N items, pass-rate, joules MEASURED, and a receipt hash you can verify.</p>
|
| 103 |
+
<div class="state" id="kv-state"><span class="pending">PENDING<span class="why">probing live endpoint…</span></span></div>
|
| 104 |
</div>
|
| 105 |
<div class="wk" id="wk-rag">
|
| 106 |
+
<h3>Govern-RAG · ask the doctrine</h3>
|
| 107 |
<p class="cap">Ask a question; the fabric answers <b>only</b> from its own governed corpus, with citations. No corpus hit = honest "insufficient grounding," never a guess.</p>
|
| 108 |
<div class="qa" id="rag-qa" style="display:none">
|
| 109 |
<input id="rag-q" type="text" placeholder="e.g. How many formulas are locked, and at what kernel?" autocomplete="off">
|
| 110 |
<button id="rag-ask" type="button" onclick="askRag()">ask</button>
|
| 111 |
</div>
|
| 112 |
+
<div class="state" id="rag-state"><span class="pending">PENDING<span class="why">probing live endpoint…</span></span></div>
|
| 113 |
</div>
|
| 114 |
<div class="wk" id="wk-watt">
|
| 115 |
+
<h3>Cheapest-watt routing · last decision</h3>
|
| 116 |
+
<p class="cap">The governed router places each job on the lowest-€/MWh reachable node. Savings are labeled <b>honestly</b> — MEASURED only where a meter exists, else MODELED.</p>
|
| 117 |
+
<div class="state" id="watt-state"><span class="pending">PENDING<span class="why">probing live endpoint…</span></span></div>
|
| 118 |
</div>
|
| 119 |
</div>
|
| 120 |
+
<p class="note" style="margin-top:12px">Honesty contract: a tile only shows a <b>result</b> when its endpoint actually returned one this sweep. Joules are <b>MEASURED</b> only on the on-box exporter node; routing savings are <b>MEASURED</b> where a meter exists and <b>MODELED</b> (clearly labeled) otherwise. Receipts are <b>tamper-EVIDENT</b> (SHA3 hash-chain), not tamper-proof. No fused VRAM is implied by any "work" shown here — placement is horizontal.</p>
|
| 121 |
</div>
|
| 122 |
|
| 123 |
+
<h2>3 · System-of-systems mesh (3D)</h2>
|
| 124 |
<div class="card">
|
| 125 |
<div class="holo" id="holo"></div>
|
| 126 |
<div class="legend">
|
|
|
|
| 129 |
<span><span class="sw" style="background:#7aa2ff"></span>sovereign owned GPU/CPU</span>
|
| 130 |
<span><span class="sw" style="background:#e0c060"></span>hosted-inference failover (non-sovereign)</span>
|
| 131 |
</div>
|
| 132 |
+
<p class="note" style="margin-top:12px"><b>Scaling model — honest:</b> nodes scale <span class="hl">horizontally (placement + load-balance)</span> under one governed router. VRAM does <b>NOT</b> merge across the network — there is <b>no fused/combined VRAM</b>. The router places each job on a reachable node; it does not pool memory across machines.</p>
|
| 133 |
</div>
|
| 134 |
|
| 135 |
+
<h2>4 · Nodes — honest per-node board</h2>
|
| 136 |
+
<div class="nodegrid" id="nodes"><div class="note">…</div></div>
|
| 137 |
|
| 138 |
+
<h2>5 · Energy — joules MEASURED, climbing</h2>
|
| 139 |
<div class="card">
|
| 140 |
+
<div class="kpis" id="energy"><div class="note">…</div></div>
|
| 141 |
<table id="byNode" style="margin-top:14px"><tr><th>node</th><th>jobs</th><th>tokens</th><th>joules</th><th>label</th></tr></table>
|
| 142 |
+
<p class="note" style="margin-top:12px">Joules are MEASURED via the on-box exporter (node <code id="expnode">betterwithage</code>). Nodes without a local exporter contribute SAMPLE jobs (joules unmeasured) — shown honestly, never imputed. Signed receipts fold into the signed-receipt ledger: <code>/api/a11oy/v1/energy/provenance</code>.</p>
|
| 143 |
</div>
|
| 144 |
|
| 145 |
+
<h2>6 · Governed router + provenance</h2>
|
| 146 |
<div class="card">
|
| 147 |
<div class="flow">
|
| 148 |
+
<span class="node">request</span><span class="arr">→</span>
|
| 149 |
+
<span class="node">governed router</span><span class="arr">→</span>
|
| 150 |
+
<span class="node">placement (Λ-gated)</span><span class="arr">→</span>
|
| 151 |
+
<span class="node">sovereign node / failover</span><span class="arr">→</span>
|
| 152 |
+
<span class="node">signed receipt → ledger</span>
|
| 153 |
</div>
|
| 154 |
+
<div id="prov" class="note" style="margin-top:8px">…</div>
|
| 155 |
</div>
|
| 156 |
|
| 157 |
<div class="orbit">
|
| 158 |
<div class="band">
|
| 159 |
+
<span class="banner">Roadmap · orbital framing</span>
|
| 160 |
<span id="orbitBadge"></span>
|
| 161 |
</div>
|
| 162 |
+
<h2 style="margin-top:6px">7 · Orbital system-of-systems — ROADMAP / analogy (we do NOT run satellites)</h2>
|
| 163 |
+
<p class="note">The same governance primitives the terrestrial mesh PROVES on real metal — honest reachability, joules MEASURED per node, Λ-gated placement, signed-receipt provenance — are exactly what distributed / edge / <b>orbital</b> compute system-of-systems will require. <span style="color:#cdb4ff;font-weight:700">This band is the vision frame, clearly labeled ROADMAP.</span> SZL does <b>not</b> operate satellites; nothing in the mesh above is orbital. We prove on terrestrial metal what the orbital-architecture crowd only asserts.</p>
|
| 164 |
<div class="kpis" id="orbit">
|
| 165 |
+
<div class="kpi"><div class="k">Terrestrial governed mesh</div><div class="v" id="orbReach">—</div><div class="l" id="orbReachL"></div></div>
|
| 166 |
<div class="kpi"><div class="k">Per-node energy accounting</div><div class="v">joules</div><div class="l" id="orbJ"></div></div>
|
| 167 |
<div class="kpi"><div class="k">Edge / orbital placement</div><div class="v">vision</div><div class="l" id="orbRm"></div></div>
|
| 168 |
</div>
|
| 169 |
</div>
|
| 170 |
|
| 171 |
<div class="foot" id="foot">
|
| 172 |
+
HONEST: all numbers above carry an explicit label — LIVE (real backend wired) · MEASURED (on-box exporter) · MODELED (deterministic, labeled) · ROADMAP (vision, not deployed). No fused/combined VRAM is claimed anywhere — nodes scale horizontally (placement + load-balance); memory does not merge across the network. The <b>live-work</b> tiles surface a capability only when its endpoint returns a real result this sweep; otherwise they render an honest PENDING and never fabricate. Orbital is analogy/ROADMAP; SZL does not run satellites. Reachability is a real TCP probe, never fabricated. trust < 100% · tamper-EVIDENT not tamper-proof · Λ = Conjecture 1 · locked = 8 {F1,F4,F7,F11,F12,F18,F19,F22} @ kernel <code id="kernel">c7c0ba17</code> (749/14/163). SLSA L1 honest · L2 attested · L3 roadmap. Canonical numbers <a href="https://github.com/szl-holdings/.github/blob/main/.github/data/lean_numbers.json" target="_blank" rel="noopener">lean_numbers.json</a>.
|
| 173 |
</div>
|
| 174 |
</div>
|
| 175 |
|
|
|
|
| 177 |
"use strict";
|
| 178 |
var L = (window.SZLLabels && window.SZLLabels.badgeHTML) ? function(k,t){ return window.SZLLabels.badgeHTML(k, t?{label:t}:undefined); } : function(k,t){ return '<span class="szl-pill">'+(t||k)+'</span>'; };
|
| 179 |
function $(id){ return document.getElementById(id); }
|
| 180 |
+
function fmt(n){ if(n==null||isNaN(n)) return '—'; return Number(n).toLocaleString('en-US',{maximumFractionDigits:0}); }
|
| 181 |
+
function fmt1(n){ if(n==null||isNaN(n)) return '—'; return Number(n).toLocaleString('en-US',{maximumFractionDigits:1}); }
|
| 182 |
async function getJSON(url){ var r = await fetch(url, {headers:{'accept':'application/json'}}); if(!r.ok) throw new Error(url+' HTTP '+r.status); return r.json(); }
|
| 183 |
|
| 184 |
var holoScene = null;
|
| 185 |
function buildHolo(pool){
|
| 186 |
var mount = $('holo');
|
| 187 |
+
if(!window.SZLHolo || !window.SZLHolo.Scene){ mount.innerHTML = '<p class="note" style="padding:18px">3D kit unavailable — node board below carries the full honest state.</p>'; return; }
|
| 188 |
mount.innerHTML = '';
|
| 189 |
+
// λ here is a presentation parameter (Conjecture 1, <1.0), NOT a measured value.
|
| 190 |
holoScene = new window.SZLHolo.Scene(mount, { title: 'GOVERNED DISTRIBUTED COMPUTE FABRIC', lambda: 0.42, autoRotate: true });
|
| 191 |
var nodes = (pool.nodes||[]);
|
| 192 |
// hub = the governed router (the host running this service / hetzner-box-cpu self node anchors center)
|
|
|
|
| 197 |
var y = (n.kind === 'hosted-inference') ? 0.55 : -0.25; // failover ring sits above
|
| 198 |
specNodes.push({
|
| 199 |
id: n.name,
|
| 200 |
+
label: n.name + (n.reachable ? ' ✓' : ' ✕'),
|
| 201 |
pos: [R*Math.cos(ang), y, R*Math.sin(ang)],
|
| 202 |
// lower lambda => greener/larger (more trust); reachable+sovereign = most trusted
|
| 203 |
lambda: n.reachable ? (n.sovereign ? 0.22 : 0.40) : 0.80
|
|
|
|
| 246 |
'<div class="row">'+reach+'</div>'+
|
| 247 |
'<div class="row">'+sov+'</div>'+
|
| 248 |
'<div class="joule">energy: '+jVal+' '+jLabel+
|
| 249 |
+
(bn.jobs!=null ? ' <span class="muted-num">· '+fmt(bn.jobs)+' jobs · '+fmt(bn.tokens)+' tok</span>' : '')+
|
| 250 |
'</div></div>';
|
| 251 |
});
|
| 252 |
$('nodes').innerHTML = html;
|
|
|
|
| 258 |
html += kpi('Measured token-joules', fmt(energy.measured_token_joules), L('MEASURED'));
|
| 259 |
html += kpi('Measured jobs', fmt(energy.measured_jobs), L('MEASURED'));
|
| 260 |
html += kpi('Sample jobs (unmeasured)', fmt(energy.sample_jobs), L('SAMPLE'));
|
| 261 |
+
html += kpi('Grid price', fmt1(energy.grid_price_eur_mwh)+' €/MWh', L('LIVE'));
|
| 262 |
html += kpi('Power sample', fmt1(energy.power_w_sample)+' W', L('SAMPLE'));
|
| 263 |
$('energy').innerHTML = html;
|
| 264 |
if(energy.exporter_node) $('expnode').textContent = energy.exporter_node;
|
|
|
|
| 275 |
var slsa = (honest && honest.footer) ? '' : '';
|
| 276 |
var dl = (honest && honest.doctrine_lock) || {};
|
| 277 |
var html = '';
|
| 278 |
+
html += '<p>SLSA: <b>'+(prov.slsa||'L1')+'</b> — L1 honest · L2 attested · L3 roadmap. '+L('LIVE')+' Λ = '+(dl.lambda||'Conjecture 1')+' '+L('LIVE','CONJECTURE 1')+'</p>';
|
| 279 |
if(prov.khipu_dsse){
|
| 280 |
+
html += '<p>Provenance per answer: signed-receipt substrate · keyid <code>'+(prov.khipu_dsse.keyid||'?')+'</code> · verify at <code>'+(prov.khipu_dsse.verify_endpoint||'/api/a11oy/v1/govern/verify')+'</code>. tamper-EVIDENT (SHA3-256 hash-chain), not tamper-proof.</p>';
|
| 281 |
}
|
| 282 |
if(dl.locked_formula_ids){
|
| 283 |
+
html += '<p>Doctrine lock: <code>'+(dl.declarations||749)+'/'+(dl.axioms||14)+'/'+(dl.sorries||163)+'</code> @ kernel <code>'+(dl.commit||'c7c0ba17')+'</code> · locked = '+(dl.locked_formula_count||8)+' {'+(dl.locked_formula_ids||[]).join(',')+'} '+L('LIVE')+'</p>';
|
| 284 |
if(dl.commit) $('kernel').textContent = dl.commit;
|
| 285 |
}
|
| 286 |
$('prov').innerHTML = html;
|
|
|
|
| 288 |
|
| 289 |
function renderOrbit(pool, energy){
|
| 290 |
var c = pool.counts || {};
|
| 291 |
+
$('orbitBadge').innerHTML = L('ROADMAP','VISION FRAME — NOT DEPLOYED');
|
| 292 |
$('orbReach').textContent = fmt(c.nodes_reachable) + '/' + fmt(c.nodes_total);
|
| 293 |
$('orbReachL').innerHTML = L('LIVE','PROVEN ON METAL');
|
| 294 |
$('orbJ').innerHTML = L('MEASURED','PER-NODE, REAL');
|
|
|
|
| 296 |
}
|
| 297 |
|
| 298 |
// ---- Live-work panel: probe each new capability honestly; render result OR honest PENDING ----
|
| 299 |
+
// Candidate endpoint lists — siblings (PowerD1-D4) may ship under any of these.
|
| 300 |
// We take the FIRST that returns valid JSON this sweep; if none do, we render PENDING.
|
| 301 |
var KV_EPS = ['/api/a11oy/v1/kverify/summary','/api/a11oy/v1/kverify/status','/api/a11oy/v1/k-verify/summary','/api/a11oy/v1/k-verify/status','/api/a11oy/v1/verify/run/last','/api/a11oy/v1/kverify/last'];
|
| 302 |
var RAG_EPS = ['/api/a11oy/v1/rag/status','/api/a11oy/v1/rag/last','/api/a11oy/v1/govern-rag/status','/api/a11oy/rag/status','/api/a11oy/v1/rag/health'];
|
|
|
|
| 304 |
var RAG_ASK_EPS = ['/api/a11oy/v1/rag/query','/api/a11oy/v1/rag/ask','/api/a11oy/v1/govern-rag/ask','/api/a11oy/rag/query'];
|
| 305 |
var RAG_ASK_URL = null; // resolved once a status probe identifies a live RAG surface
|
| 306 |
|
| 307 |
+
function pendingHTML(why){ return '<span class="pending">PENDING<span class="why">'+(why||'endpoint not yet live — shown honestly, not fabricated')+'</span></span>'; }
|
| 308 |
+
function shortHash(h){ if(!h) return null; h=String(h); return h.length>20 ? h.slice(0,10)+'…'+h.slice(-6) : h; }
|
| 309 |
|
| 310 |
// Try a list of endpoints; resolve with {url,data} of the first that returns ok JSON, else null.
|
| 311 |
async function firstLive(urls){
|
|
|
|
| 319 |
if(!hit){ el.innerHTML = pendingHTML('K-Verify endpoint not live this sweep'); return false; }
|
| 320 |
var d = hit.data || {};
|
| 321 |
// Honest idle state: endpoint is LIVE but no run has executed yet this process.
|
| 322 |
+
// Surface that truthfully — never synthesize a zero-item "run" that didn't happen.
|
| 323 |
var runData = d.run || d.last_run || d.summary || d;
|
| 324 |
var hasRun = (d.ran === true) || (d.ran == null && (runData.n!=null || runData.count!=null || runData.items!=null || runData.total!=null || runData.pass!=null));
|
| 325 |
if(!hasRun){
|
| 326 |
+
el.innerHTML = '<div class="sub2"><b>endpoint live</b> '+L('LIVE','GOVERNED INFERENCE')+'</div>'+
|
| 327 |
+
'<div class="sub2">no run yet this process — a signed run posts N items, pass-rate, joules MEASURED + a receipt hash. Shown honestly: no fabricated run.</div>';
|
| 328 |
return true;
|
| 329 |
}
|
| 330 |
d = runData;
|
|
|
|
| 336 |
var rh = d.receipt_hash || d.receipt || d.digest || (d.receipt_digest) || ((d.khipu&&d.khipu.hash)||null);
|
| 337 |
var verify= d.verify_endpoint || d.receipt_verify_at || '/api/a11oy/khipu/verify';
|
| 338 |
if(rate==null && typeof pass==='number' && typeof n==='number' && n>0) rate = pass/n;
|
| 339 |
+
var passStr = (typeof pass==='number' && typeof n==='number') ? (fmt(pass)+'/'+fmt(n)) : (n!=null?fmt(n)+' items':'—');
|
| 340 |
+
var rateStr = (typeof rate==='number') ? (' · '+(rate*100).toFixed(1)+'% pass') : '';
|
| 341 |
var html = '<div class="big">'+passStr+'</div>';
|
| 342 |
html += '<div class="sub2">items run / passed'+rateStr+'</div>';
|
| 343 |
+
html += '<hr><div class="sub2">energy: <b>'+(joules!=null?fmt(joules)+' J':'—')+'</b> '+(jmeas?L('MEASURED'):L('SAMPLE'))+'</div>';
|
| 344 |
if(rh){ html += '<div class="receipt">receipt '+shortHash(rh)+'</div>'; html += '<div class="sub2">verify: <code>'+verify+'</code> '+L('LIVE')+'</div>'; }
|
| 345 |
+
html += '<div class="lbls">'+L('LIVE','GOVERNED INFERENCE')+'</div>';
|
| 346 |
el.innerHTML = html;
|
| 347 |
return true;
|
| 348 |
}
|
| 349 |
|
| 350 |
function renderRag(hit){
|
| 351 |
var el = $('rag-state'); var qa = $('rag-qa');
|
| 352 |
+
if(!hit){ qa.style.display='none'; el.innerHTML = pendingHTML('Govern-RAG endpoint not live this sweep — ask-box activates when it is'); RAG_ASK_URL=null; return false; }
|
| 353 |
var d = hit.data || {};
|
| 354 |
// Resolve an ask URL: explicit field, sibling of the status path, or default candidate.
|
| 355 |
RAG_ASK_URL = d.query_endpoint || d.ask_endpoint || hit.url.replace(/\/(status|health|last)$/,'/query') || RAG_ASK_EPS[0];
|
|
|
|
| 365 |
if(chunks!=null) stat.push(fmt(chunks)+' chunks');
|
| 366 |
if(files!=null) stat.push(fmt(files)+' files');
|
| 367 |
if(repos!=null) stat.push(fmt(repos)+' repos');
|
| 368 |
+
var html = '<div class="sub2">governed corpus indexed: <b>'+(stat.length?stat.join(' · '):'ready')+'</b> '+L('LIVE')+'</div>';
|
| 369 |
// Only show a 'last answer' if it carries a real grounded answer string (status citations are not answers).
|
| 370 |
if(lastA && typeof lastA==='string'){
|
| 371 |
html += '<div class="ans">'+(lastQ?'<b>Q:</b> '+escapeHTML(lastQ)+'<br>':'')+'<b>A:</b> '+escapeHTML(String(lastA))+'</div>';
|
| 372 |
+
if(cites && cites.length){ html += '<div class="cite">cited: '+cites.map(function(c){ return escapeHTML(typeof c==='string'?c:(c.citation||c.path||c.source||c.id||c.doc||JSON.stringify(c))); }).join(' · ')+'</div>'; }
|
| 373 |
html += '<div class="lbls">'+L('LIVE','GROUNDED + CITED')+'</div>';
|
| 374 |
} else {
|
| 375 |
+
html += '<div class="sub2">Ask the doctrine — answers come only from the governed corpus, with citations; off-corpus returns insufficient grounding.</div>';
|
| 376 |
}
|
| 377 |
el.innerHTML = html;
|
| 378 |
return true;
|
|
|
|
| 383 |
var btn = $('rag-ask'); var el = $('rag-state');
|
| 384 |
if(!q){ return; }
|
| 385 |
if(!RAG_ASK_URL){ el.innerHTML = pendingHTML('RAG query endpoint not live'); return; }
|
| 386 |
+
btn.disabled = true; var prev = el.innerHTML; el.innerHTML = '<div class="sub2">asking the governed corpus…</div>';
|
| 387 |
try {
|
| 388 |
var r = await fetch(RAG_ASK_URL, {method:'POST', headers:{'content-type':'application/json','accept':'application/json'}, body: JSON.stringify({question:q, query:q})});
|
| 389 |
if(!r.ok) throw new Error('HTTP '+r.status);
|
|
|
|
| 394 |
var html = '';
|
| 395 |
if(grounded){
|
| 396 |
html += '<div class="ans"><b>Q:</b> '+escapeHTML(q)+'<br><b>A:</b> '+escapeHTML(String(ans))+'</div>';
|
| 397 |
+
if(cites && cites.length){ html += '<div class="cite">cited: '+cites.map(function(c){ return escapeHTML(typeof c==='string'?c:(c.id||c.source||c.doc||JSON.stringify(c))); }).join(' · ')+'</div>'; }
|
| 398 |
html += '<div class="lbls">'+L('LIVE','GROUNDED + CITED')+'</div>';
|
| 399 |
} else {
|
| 400 |
+
html += '<div class="ans"><b>Q:</b> '+escapeHTML(q)+'<br><b>A:</b> insufficient grounding in the governed corpus — no answer returned.</div>';
|
| 401 |
html += '<div class="lbls">'+L('LIVE','HONEST: NO GUESS')+'</div>';
|
| 402 |
}
|
| 403 |
el.innerHTML = html;
|
|
|
|
| 421 |
var reason = dec.reason || dec.detail || null;
|
| 422 |
var chHead = (d.chain && d.chain.head) || dec.receipt_hash || dec.receipt || dec.digest || null;
|
| 423 |
var html = '';
|
| 424 |
+
html += '<div class="big">'+(price!=null?fmt1(price)+' €/MWh':'—')+'</div>';
|
| 425 |
html += '<div class="sub2">live grid price at decision '+(priceL==='MEASURED'?L('MEASURED'):L('LIVE'))+'</div>';
|
| 426 |
if(node){
|
| 427 |
+
html += '<hr><div class="sub2">chosen node: <b>'+escapeHTML(node)+'</b> '+L('LIVE','LOWEST-€ REACHABLE')+'</div>';
|
| 428 |
if(save!=null){
|
| 429 |
var sv = (typeof save==='number') ? ((save<=1?(save*100):save).toFixed(1)+'%') : escapeHTML(String(save));
|
| 430 |
var lk = (saveLabel==='MEASURED') ? L('MEASURED') : L('MODELED','ROUTING LAW');
|
| 431 |
html += '<div class="sub2">honest savings vs most-expensive comparable: <b>'+sv+'</b> '+lk+'</div>';
|
| 432 |
}
|
| 433 |
} else {
|
| 434 |
+
// No placement this tick is an HONEST outcome, not a gap — surface the reason verbatim.
|
| 435 |
html += '<hr><div class="sub2"><b>no placement this tick</b> '+L('LIVE','HONEST: NO FABRICATED SAVING')+'</div>';
|
| 436 |
if(reason) html += '<div class="sub2">'+escapeHTML(reason)+'</div>';
|
| 437 |
}
|
| 438 |
+
if(chHead){ html += '<div class="receipt">receipt-chain '+shortHash(chHead)+(d.chain&&d.chain.length!=null?' · len '+fmt(d.chain.length):'')+'</div>'; }
|
| 439 |
el.innerHTML = html;
|
| 440 |
return true;
|
| 441 |
}
|
|
|
|
| 455 |
}
|
| 456 |
|
| 457 |
async function loadAll(){
|
| 458 |
+
$('stamp').textContent = 'fetching live fabric state…';
|
| 459 |
try {
|
| 460 |
var results = await Promise.allSettled([
|
| 461 |
getJSON('/api/a11oy/v1/compute-pool-hardened'),
|
|
|
|
| 481 |
|
| 482 |
var errs = results.filter(function(r){return r.status==='rejected';});
|
| 483 |
var ts = pool.cached_at || new Date().toISOString();
|
| 484 |
+
$('stamp').innerHTML = 'live as of <code>'+ts+'</code> · '+L('LIVE','4 ENDPOINTS WIRED') +
|
| 485 |
+
' · live work: <b>'+workLive+'/3</b> capabilities surfaced'+(workLive<3?' <span class="note">('+(3-workLive)+' honestly PENDING)</span>':'') +
|
| 486 |
+
(errs.length ? ' <span class="err">· '+errs.length+' source(s) unavailable (shown honestly empty)</span>' : '');
|
| 487 |
} catch(e){
|
| 488 |
$('stamp').innerHTML = '<span class="err">fabric load error: '+e+'</span>';
|
| 489 |
}
|
pages/pinn-console.html
CHANGED
|
@@ -1,11 +1,11 @@
|
|
| 1 |
-
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 6 |
-
<title>a11oy
|
| 7 |
<!--
|
| 8 |
-
Governed Inverse-PINN Console
|
| 9 |
engine at POST /api/a11oy/v1/pinn/identify and SHOWS the governance:
|
| 10 |
the discovered parameter(s) with 95% CI, the GREEN/YELLOW/RED convergence
|
| 11 |
badge, the FIM identifiability / self-doubt result (the REFUSAL is the hero
|
|
@@ -15,7 +15,7 @@
|
|
| 15 |
|
| 16 |
Doctrine v11 LOCKED. Values are MODELED (a fit to data, never MEASURED).
|
| 17 |
Locked-proven = 8 {F1,F4,F7,F11,F12,F18,F19,F22}. Lambda = Conjecture 1.
|
| 18 |
-
Pure HTML/JS/CSS
|
| 19 |
pages/verify.html design system (CSS variables, JetBrains Mono, chips).
|
| 20 |
-->
|
| 21 |
<style>
|
|
@@ -250,8 +250,8 @@
|
|
| 250 |
<circle cx="16" cy="16" r="2.5" fill="#8aaaf8"/>
|
| 251 |
</svg>
|
| 252 |
<span class="site-title">a11oy</span>
|
| 253 |
-
<span class="site-tagline">
|
| 254 |
-
<a href="/console" class="nav-back">
|
| 255 |
</header>
|
| 256 |
|
| 257 |
<!-- ===== MAIN ===== -->
|
|
@@ -260,13 +260,13 @@
|
|
| 260 |
<div class="page-hero">
|
| 261 |
<h1>Governed Inverse-PINN Console</h1>
|
| 262 |
<p>
|
| 263 |
-
Discover an unknown <strong>physical</strong> parameter of an ODE from data + physics
|
| 264 |
then watch the governance work. Every discovered value is <span class="chip chip-info">MODELED</span>
|
| 265 |
(a fit to data, never MEASURED), carries a 95% confidence interval, a GREEN/YELLOW/RED convergence
|
| 266 |
badge, a Fisher-information self-doubt gate that <em>refuses</em> non-identifiable parameters,
|
| 267 |
-
a
|
| 268 |
</p>
|
| 269 |
-
<span class="eq">Duffing oscillator
|
| 270 |
</div>
|
| 271 |
|
| 272 |
<!-- ===== RUN ===== -->
|
|
@@ -282,11 +282,11 @@
|
|
| 282 |
<div class="btn-row">
|
| 283 |
<button class="btn btn-green" id="btn-green" onclick="runIdentify('green')">
|
| 284 |
Run Duffing demo (GREEN)
|
| 285 |
-
<span class="btn-sub">identify
|
| 286 |
</button>
|
| 287 |
<button class="btn btn-red" id="btn-red" onclick="runIdentify('red')">
|
| 288 |
-
Run non-identifiable case (RED
|
| 289 |
-
<span class="btn-sub">ask for
|
| 290 |
</button>
|
| 291 |
</div>
|
| 292 |
<div id="status" class="status-line"></div>
|
|
@@ -303,7 +303,7 @@
|
|
| 303 |
<p>The 3-state governance verdict from the causal-weight / gradient / FIM-conditioning criteria.</p>
|
| 304 |
</div>
|
| 305 |
<div class="section-body">
|
| 306 |
-
<div id="verdict" class="verdict-banner verdict-dim">
|
| 307 |
<div class="metric-grid" id="conv-metrics"></div>
|
| 308 |
</div>
|
| 309 |
</section>
|
|
@@ -314,7 +314,7 @@
|
|
| 314 |
<h2><span class="section-label">2</span> Discovered parameter(s)</h2>
|
| 315 |
<p>
|
| 316 |
Each value is <span class="chip chip-info">MODELED</span> with a 95% CI. A parameter the
|
| 317 |
-
self-doubt gate cannot support is <strong>REFUSED</strong> verbatim
|
| 318 |
</p>
|
| 319 |
<p class="moat-line">"We don't report what we can't support."</p>
|
| 320 |
</div>
|
|
@@ -326,10 +326,10 @@
|
|
| 326 |
<!-- self-doubt / FIM -->
|
| 327 |
<section class="section">
|
| 328 |
<div class="section-head">
|
| 329 |
-
<h2><span class="section-label">3</span> Identifiability
|
| 330 |
<p>
|
| 331 |
Fisher Information Matrix conditioning decides whether the data actually constrain the
|
| 332 |
-
parameter.
|
| 333 |
</p>
|
| 334 |
</div>
|
| 335 |
<div class="section-body">
|
|
@@ -340,16 +340,16 @@
|
|
| 340 |
<!-- lambda advisory -->
|
| 341 |
<section class="section">
|
| 342 |
<div class="section-head">
|
| 343 |
-
<h2><span class="section-label">4</span>
|
| 344 |
<p>
|
| 345 |
-
A single advisory trust score. <span class="conj">Conjecture 1
|
| 346 |
-
|
| 347 |
</p>
|
| 348 |
</div>
|
| 349 |
<div class="section-body">
|
| 350 |
<div style="display:flex; align-items:center; gap:24px; flex-wrap:wrap;">
|
| 351 |
<div>
|
| 352 |
-
<div class="lambda-big" id="lambda-val">
|
| 353 |
<div class="small" id="lambda-status"></div>
|
| 354 |
</div>
|
| 355 |
<div class="small" id="lambda-basis" style="max-width:420px;"></div>
|
|
@@ -363,13 +363,13 @@
|
|
| 363 |
<div class="section-head">
|
| 364 |
<h2><span class="section-label">5</span> F19 / Bekenstein check</h2>
|
| 365 |
<p>
|
| 366 |
-
The Bekenstein bound (F19) is a <strong>locked-proven inequality</strong>
|
| 367 |
<em>applied</em>, not re-claimed. It checks the discovery doesn't encode more information
|
| 368 |
than the system can physically hold.
|
| 369 |
</p>
|
| 370 |
</div>
|
| 371 |
<div class="section-body">
|
| 372 |
-
<div id="bek" class="small">
|
| 373 |
</div>
|
| 374 |
</section>
|
| 375 |
|
|
@@ -379,7 +379,7 @@
|
|
| 379 |
<h2><span class="section-label">6</span> Signed receipt + ledger</h2>
|
| 380 |
<p>
|
| 381 |
The discovery is sealed as a DSSE-enveloped Khipu receipt in the unified ledger organ
|
| 382 |
-
<code>a11oy-pinn</code>. Signature state is shown exactly as returned
|
| 383 |
</p>
|
| 384 |
</div>
|
| 385 |
<div class="section-body">
|
|
@@ -392,14 +392,14 @@
|
|
| 392 |
<section class="section">
|
| 393 |
<div class="section-head">
|
| 394 |
<h2><span class="section-label">Doctrine</span> Honest labels</h2>
|
| 395 |
-
<p>What is proven, what is wired, what is advisory. The half-state
|
| 396 |
</div>
|
| 397 |
<div class="section-body">
|
| 398 |
<div class="corpus-diagram">
|
| 399 |
<div class="corpus-tier">
|
| 400 |
<div class="corpus-count proven">8</div>
|
| 401 |
<div class="corpus-tier-label">Locked-proven</div>
|
| 402 |
-
<div class="corpus-tier-desc">No-axiom theorems {F1,F4,F7,F11,F12,F18,F19,F22}. F19 Bekenstein is one of them
|
| 403 |
</div>
|
| 404 |
<div class="corpus-tier">
|
| 405 |
<div class="corpus-count wired">~35</div>
|
|
@@ -413,10 +413,10 @@
|
|
| 413 |
</div>
|
| 414 |
</div>
|
| 415 |
<div class="never-claim">
|
| 416 |
-
Discovered values are <strong>MODELED</strong> (a fit to data, never MEASURED).
|
| 417 |
-
<strong>Conjecture 1</strong>
|
| 418 |
bound is a PROVEN inequality whose <em>application</em> here is MODELED. Receipts are signed or
|
| 419 |
-
unsigned exactly as the engine returns
|
| 420 |
</div>
|
| 421 |
</div>
|
| 422 |
</section>
|
|
@@ -424,8 +424,8 @@
|
|
| 424 |
</main>
|
| 425 |
|
| 426 |
<footer class="footer">
|
| 427 |
-
a11oy
|
| 428 |
-
<a href="/console">Console</a>
|
| 429 |
</footer>
|
| 430 |
|
| 431 |
<script>
|
|
@@ -458,7 +458,7 @@ function badgeClass(label) {
|
|
| 458 |
async function runIdentify(kind) {
|
| 459 |
const bg = el("btn-green"), br = el("btn-red");
|
| 460 |
bg.disabled = true; br.disabled = true;
|
| 461 |
-
el("status").innerHTML = '<span class="spinner"></span>Calling the live governed engine at ' + API + '
|
| 462 |
el("results").classList.add("hidden");
|
| 463 |
try {
|
| 464 |
const res = await fetch(API, {
|
|
@@ -469,12 +469,12 @@ async function runIdentify(kind) {
|
|
| 469 |
const data = await res.json();
|
| 470 |
if (!res.ok && !data.convergence) {
|
| 471 |
el("status").innerHTML = '<span style="color:var(--red)">Engine returned ' + res.status +
|
| 472 |
-
'
|
| 473 |
return;
|
| 474 |
}
|
| 475 |
render(data);
|
| 476 |
el("status").innerHTML = 'Live response received (HTTP ' + res.status +
|
| 477 |
-
')
|
| 478 |
} catch (e) {
|
| 479 |
el("status").innerHTML = '<span style="color:var(--red)">Network error: ' + e + '</span>';
|
| 480 |
} finally {
|
|
@@ -485,15 +485,15 @@ async function runIdentify(kind) {
|
|
| 485 |
function render(d) {
|
| 486 |
el("results").classList.remove("hidden");
|
| 487 |
const conv = d.convergence || {};
|
| 488 |
-
const label = conv.label || "
|
| 489 |
|
| 490 |
// ---- verdict ----
|
| 491 |
const v = el("verdict");
|
| 492 |
v.className = "verdict-banner verdict-" + badgeClass(label);
|
| 493 |
let head = "Convergence: " + label;
|
| 494 |
-
if (label === "GREEN") head += "
|
| 495 |
-
else if (label === "RED") head += "
|
| 496 |
-
else if (label === "YELLOW") head += "
|
| 497 |
v.innerHTML = '<span class="chip chip-' + badgeClass(label) + '">' + label + '</span>' +
|
| 498 |
'<span>' + head + '</span>' +
|
| 499 |
'<span class="vsub">' + (conv.epochs_run != null ? conv.epochs_run + " epochs" : "") + '</span>';
|
|
@@ -503,8 +503,8 @@ function render(d) {
|
|
| 503 |
const cmRows = [
|
| 504 |
["min causal weight", cm.min_causal_weight || fmt(conv.min_causal_weight)],
|
| 505 |
["grad norm", cm.grad_norm || fmt(conv.grad_norm)],
|
| 506 |
-
["
|
| 507 |
-
["min Fisher", cm.min_fisher || "
|
| 508 |
["residual rms", fmt(conv.residual_rms)],
|
| 509 |
["data rms", fmt(conv.data_rms)]
|
| 510 |
];
|
|
@@ -521,15 +521,15 @@ function render(d) {
|
|
| 521 |
return '<div class="param-card asserted">' +
|
| 522 |
'<div class="param-card-head">' +
|
| 523 |
'<span class="param-name">' + p.name + '</span>' +
|
| 524 |
-
'<span class="chip chip-' + pl + '">' + (p.convergence_label || "
|
| 525 |
'<span class="chip chip-info">MODELED</span>' +
|
| 526 |
'<span class="chip chip-green">IDENTIFIABLE</span>' +
|
| 527 |
'</div>' +
|
| 528 |
'<div class="param-value">' + fmt(p.value) + '</div>' +
|
| 529 |
-
'<div class="param-ci">' + ci + (p.std != null ? '
|
| 530 |
'</div>';
|
| 531 |
}
|
| 532 |
-
// REFUSED
|
| 533 |
return '<div class="param-card refused">' +
|
| 534 |
'<div class="param-card-head">' +
|
| 535 |
'<span class="param-name">' + p.name + '</span>' +
|
|
@@ -537,7 +537,7 @@ function render(d) {
|
|
| 537 |
'<span class="chip chip-red">REFUSED</span>' +
|
| 538 |
'</div>' +
|
| 539 |
'<div class="param-value null">value = null</div>' +
|
| 540 |
-
'<div class="refusal-box"><span class="rh">Self-doubt gate
|
| 541 |
(p.refusal || "UNIDENTIFIABLE: the engine refuses to assert this parameter.") + '</div>' +
|
| 542 |
'</div>';
|
| 543 |
}).join("");
|
|
@@ -545,9 +545,9 @@ function render(d) {
|
|
| 545 |
// ---- FIM / self-doubt ----
|
| 546 |
const anyRefused = params.some(p => !p.asserted);
|
| 547 |
const fimRows = [
|
| 548 |
-
["
|
| 549 |
-
["min Fisher", cm.min_fisher || "
|
| 550 |
-
["gate", anyRefused ? "REFUSED
|
| 551 |
anyRefused ? "red" : "green"]
|
| 552 |
];
|
| 553 |
el("fim-metrics").innerHTML = fimRows.map(r =>
|
|
@@ -556,9 +556,9 @@ function render(d) {
|
|
| 556 |
|
| 557 |
// ---- lambda ----
|
| 558 |
const lam = d.lambda_advisory || {};
|
| 559 |
-
el("lambda-val").textContent = (lam.value != null) ? fmt(lam.value, 4) : "
|
| 560 |
el("lambda-status").innerHTML = '<span class="conj">' + (lam.status || "ADVISORY") + '</span>';
|
| 561 |
-
el("lambda-basis").textContent = lam.basis || "
|
| 562 |
const lf = lam.factors || {};
|
| 563 |
el("lambda-factors").innerHTML = Object.keys(lf).map(k =>
|
| 564 |
'<div class="metric"><div class="metric-k">' + k + '</div><div class="metric-v">' + fmt(lf[k], 4) + '</div></div>'
|
|
@@ -579,7 +579,7 @@ function render(d) {
|
|
| 579 |
'</div>' +
|
| 580 |
'<div class="small" style="margin-top:10px;">' + (b.basis || "") + '</div>';
|
| 581 |
} else {
|
| 582 |
-
el("bek").innerHTML = '<span class="small">No asserted parameter to check
|
| 583 |
}
|
| 584 |
|
| 585 |
// ---- receipt ----
|
|
@@ -591,20 +591,20 @@ function render(d) {
|
|
| 591 |
let html =
|
| 592 |
'<div class="hash-row"><span class="hash-label">signature</span>' +
|
| 593 |
'<span class="chip chip-' + (signed ? "green" : "amber") + '">' + (signed ? "SIGNED" : "UNSIGNED") + '</span>' +
|
| 594 |
-
'<span class="small">' + (signed ? "DSSE envelope present (payloadType " + ((r.dsse||{}).payloadType || "application/vnd.szl.ipinn+json") + ")" : "honest UNSIGNED
|
| 595 |
'</div>' +
|
| 596 |
'<div class="hash-row"><span class="hash-label">ledger</span>' +
|
| 597 |
'<span class="chip chip-' + (ledger.recorded ? "green" : "dim") + '">' + (ledger.recorded ? "RECORDED" : "NOT RECORDED") + '</span>' +
|
| 598 |
'<span class="small">organ <code>a11oy-pinn</code>' +
|
| 599 |
-
(lres.chain_index != null ? '
|
| 600 |
'</div>';
|
| 601 |
if (rid) {
|
| 602 |
html += '<div class="hash-row"><span class="hash-label">receipt id</span>' +
|
| 603 |
'<span class="hash-val">' + rid + '</span></div>' +
|
| 604 |
'<div class="hash-row"><span class="hash-label">verify</span>' +
|
| 605 |
'<a class="hash-val" href="' + VERIFY_BASE + rid + '" target="_blank" rel="noopener">' +
|
| 606 |
-
VERIFY_BASE + rid + '
|
| 607 |
-
'<div class="small" style="margin-top:6px;">Re-verify independently
|
| 608 |
}
|
| 609 |
if (lres.chain_head) {
|
| 610 |
html += '<hr class="divider"><div class="hash-row"><span class="hash-label">chain head</span>' +
|
|
@@ -617,4 +617,3 @@ function render(d) {
|
|
| 617 |
</script>
|
| 618 |
</body>
|
| 619 |
</html>
|
| 620 |
-
|
|
|
|
| 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" />
|
| 6 |
+
<title>a11oy — Governed Inverse-PINN Console</title>
|
| 7 |
<!--
|
| 8 |
+
Governed Inverse-PINN Console — runs the LIVE governed parameter-discovery
|
| 9 |
engine at POST /api/a11oy/v1/pinn/identify and SHOWS the governance:
|
| 10 |
the discovered parameter(s) with 95% CI, the GREEN/YELLOW/RED convergence
|
| 11 |
badge, the FIM identifiability / self-doubt result (the REFUSAL is the hero
|
|
|
|
| 15 |
|
| 16 |
Doctrine v11 LOCKED. Values are MODELED (a fit to data, never MEASURED).
|
| 17 |
Locked-proven = 8 {F1,F4,F7,F11,F12,F18,F19,F22}. Lambda = Conjecture 1.
|
| 18 |
+
Pure HTML/JS/CSS — 0 runtime CDN, no server-side numpy. Reuses the
|
| 19 |
pages/verify.html design system (CSS variables, JetBrains Mono, chips).
|
| 20 |
-->
|
| 21 |
<style>
|
|
|
|
| 250 |
<circle cx="16" cy="16" r="2.5" fill="#8aaaf8"/>
|
| 251 |
</svg>
|
| 252 |
<span class="site-title">a11oy</span>
|
| 253 |
+
<span class="site-tagline">Governed Inference · Verifiable by Design</span>
|
| 254 |
+
<a href="/console" class="nav-back">← Console</a>
|
| 255 |
</header>
|
| 256 |
|
| 257 |
<!-- ===== MAIN ===== -->
|
|
|
|
| 260 |
<div class="page-hero">
|
| 261 |
<h1>Governed Inverse-PINN Console</h1>
|
| 262 |
<p>
|
| 263 |
+
Discover an unknown <strong>physical</strong> parameter of an ODE from data + physics —
|
| 264 |
then watch the governance work. Every discovered value is <span class="chip chip-info">MODELED</span>
|
| 265 |
(a fit to data, never MEASURED), carries a 95% confidence interval, a GREEN/YELLOW/RED convergence
|
| 266 |
badge, a Fisher-information self-doubt gate that <em>refuses</em> non-identifiable parameters,
|
| 267 |
+
a Λ advisory, an F19/Bekenstein plausibility check, and a signed Khipu receipt you can re-verify.
|
| 268 |
</p>
|
| 269 |
+
<span class="eq">Duffing oscillator m·x″ + c·x′ + δ·x + <strong>α</strong>·x³ = F·cos(ωt) — α is unknown</span>
|
| 270 |
</div>
|
| 271 |
|
| 272 |
<!-- ===== RUN ===== -->
|
|
|
|
| 282 |
<div class="btn-row">
|
| 283 |
<button class="btn btn-green" id="btn-green" onclick="runIdentify('green')">
|
| 284 |
Run Duffing demo (GREEN)
|
| 285 |
+
<span class="btn-sub">identify α — converges, asserts with CI</span>
|
| 286 |
</button>
|
| 287 |
<button class="btn btn-red" id="btn-red" onclick="runIdentify('red')">
|
| 288 |
+
Run non-identifiable case (RED — see it refuse)
|
| 289 |
+
<span class="btn-sub">ask for α + a ghost param — engine REFUSES</span>
|
| 290 |
</button>
|
| 291 |
</div>
|
| 292 |
<div id="status" class="status-line"></div>
|
|
|
|
| 303 |
<p>The 3-state governance verdict from the causal-weight / gradient / FIM-conditioning criteria.</p>
|
| 304 |
</div>
|
| 305 |
<div class="section-body">
|
| 306 |
+
<div id="verdict" class="verdict-banner verdict-dim">—</div>
|
| 307 |
<div class="metric-grid" id="conv-metrics"></div>
|
| 308 |
</div>
|
| 309 |
</section>
|
|
|
|
| 314 |
<h2><span class="section-label">2</span> Discovered parameter(s)</h2>
|
| 315 |
<p>
|
| 316 |
Each value is <span class="chip chip-info">MODELED</span> with a 95% CI. A parameter the
|
| 317 |
+
self-doubt gate cannot support is <strong>REFUSED</strong> verbatim — no value invented.
|
| 318 |
</p>
|
| 319 |
<p class="moat-line">"We don't report what we can't support."</p>
|
| 320 |
</div>
|
|
|
|
| 326 |
<!-- self-doubt / FIM -->
|
| 327 |
<section class="section">
|
| 328 |
<div class="section-head">
|
| 329 |
+
<h2><span class="section-label">3</span> Identifiability — the self-doubt gate</h2>
|
| 330 |
<p>
|
| 331 |
Fisher Information Matrix conditioning decides whether the data actually constrain the
|
| 332 |
+
parameter. κ(FIM) → ∞ or Fisher below floor ⇒ <strong>UNIDENTIFIABLE</strong> ⇒ the engine refuses.
|
| 333 |
</p>
|
| 334 |
</div>
|
| 335 |
<div class="section-body">
|
|
|
|
| 340 |
<!-- lambda advisory -->
|
| 341 |
<section class="section">
|
| 342 |
<div class="section-head">
|
| 343 |
+
<h2><span class="section-label">4</span> Λ advisory</h2>
|
| 344 |
<p>
|
| 345 |
+
A single advisory trust score. <span class="conj">Conjecture 1 — advisory, NOT a theorem</span>
|
| 346 |
+
— capped ≤ 0.99, <strong>never a proof, never 1.0</strong>.
|
| 347 |
</p>
|
| 348 |
</div>
|
| 349 |
<div class="section-body">
|
| 350 |
<div style="display:flex; align-items:center; gap:24px; flex-wrap:wrap;">
|
| 351 |
<div>
|
| 352 |
+
<div class="lambda-big" id="lambda-val">—</div>
|
| 353 |
<div class="small" id="lambda-status"></div>
|
| 354 |
</div>
|
| 355 |
<div class="small" id="lambda-basis" style="max-width:420px;"></div>
|
|
|
|
| 363 |
<div class="section-head">
|
| 364 |
<h2><span class="section-label">5</span> F19 / Bekenstein check</h2>
|
| 365 |
<p>
|
| 366 |
+
The Bekenstein bound (F19) is a <strong>locked-proven inequality</strong> — here it is
|
| 367 |
<em>applied</em>, not re-claimed. It checks the discovery doesn't encode more information
|
| 368 |
than the system can physically hold.
|
| 369 |
</p>
|
| 370 |
</div>
|
| 371 |
<div class="section-body">
|
| 372 |
+
<div id="bek" class="small">—</div>
|
| 373 |
</div>
|
| 374 |
</section>
|
| 375 |
|
|
|
|
| 379 |
<h2><span class="section-label">6</span> Signed receipt + ledger</h2>
|
| 380 |
<p>
|
| 381 |
The discovery is sealed as a DSSE-enveloped Khipu receipt in the unified ledger organ
|
| 382 |
+
<code>a11oy-pinn</code>. Signature state is shown exactly as returned — never faked.
|
| 383 |
</p>
|
| 384 |
</div>
|
| 385 |
<div class="section-body">
|
|
|
|
| 392 |
<section class="section">
|
| 393 |
<div class="section-head">
|
| 394 |
<h2><span class="section-label">Doctrine</span> Honest labels</h2>
|
| 395 |
+
<p>What is proven, what is wired, what is advisory. The half-state — claiming more than is real — is the only unacceptable outcome.</p>
|
| 396 |
</div>
|
| 397 |
<div class="section-body">
|
| 398 |
<div class="corpus-diagram">
|
| 399 |
<div class="corpus-tier">
|
| 400 |
<div class="corpus-count proven">8</div>
|
| 401 |
<div class="corpus-tier-label">Locked-proven</div>
|
| 402 |
+
<div class="corpus-tier-desc">No-axiom theorems {F1,F4,F7,F11,F12,F18,F19,F22}. F19 Bekenstein is one of them — applied here, not re-claimed.</div>
|
| 403 |
</div>
|
| 404 |
<div class="corpus-tier">
|
| 405 |
<div class="corpus-count wired">~35</div>
|
|
|
|
| 413 |
</div>
|
| 414 |
</div>
|
| 415 |
<div class="never-claim">
|
| 416 |
+
Discovered values are <strong>MODELED</strong> (a fit to data, never MEASURED). Λ is
|
| 417 |
+
<strong>Conjecture 1</strong> — advisory, capped ≤ 0.99, never a theorem, never 1.0. The Bekenstein
|
| 418 |
bound is a PROVEN inequality whose <em>application</em> here is MODELED. Receipts are signed or
|
| 419 |
+
unsigned exactly as the engine returns — never fabricated.
|
| 420 |
</div>
|
| 421 |
</div>
|
| 422 |
</section>
|
|
|
|
| 424 |
</main>
|
| 425 |
|
| 426 |
<footer class="footer">
|
| 427 |
+
a11oy · Governed Inverse-PINN · Doctrine v11 LOCKED · values MODELED · Λ = Conjecture 1 ·
|
| 428 |
+
<a href="/console">Console</a> · <a href="/verify">Verify</a>
|
| 429 |
</footer>
|
| 430 |
|
| 431 |
<script>
|
|
|
|
| 458 |
async function runIdentify(kind) {
|
| 459 |
const bg = el("btn-green"), br = el("btn-red");
|
| 460 |
bg.disabled = true; br.disabled = true;
|
| 461 |
+
el("status").innerHTML = '<span class="spinner"></span>Calling the live governed engine at ' + API + ' …';
|
| 462 |
el("results").classList.add("hidden");
|
| 463 |
try {
|
| 464 |
const res = await fetch(API, {
|
|
|
|
| 469 |
const data = await res.json();
|
| 470 |
if (!res.ok && !data.convergence) {
|
| 471 |
el("status").innerHTML = '<span style="color:var(--red)">Engine returned ' + res.status +
|
| 472 |
+
' — ' + (data.error || "unexpected") + '</span>';
|
| 473 |
return;
|
| 474 |
}
|
| 475 |
render(data);
|
| 476 |
el("status").innerHTML = 'Live response received (HTTP ' + res.status +
|
| 477 |
+
') · system <code>' + (data.system || "?") + '</code> · honest label MODELED.';
|
| 478 |
} catch (e) {
|
| 479 |
el("status").innerHTML = '<span style="color:var(--red)">Network error: ' + e + '</span>';
|
| 480 |
} finally {
|
|
|
|
| 485 |
function render(d) {
|
| 486 |
el("results").classList.remove("hidden");
|
| 487 |
const conv = d.convergence || {};
|
| 488 |
+
const label = conv.label || "—";
|
| 489 |
|
| 490 |
// ---- verdict ----
|
| 491 |
const v = el("verdict");
|
| 492 |
v.className = "verdict-banner verdict-" + badgeClass(label);
|
| 493 |
let head = "Convergence: " + label;
|
| 494 |
+
if (label === "GREEN") head += " — parameter asserted";
|
| 495 |
+
else if (label === "RED") head += " — the engine REFUSES";
|
| 496 |
+
else if (label === "YELLOW") head += " — partial / keep running";
|
| 497 |
v.innerHTML = '<span class="chip chip-' + badgeClass(label) + '">' + label + '</span>' +
|
| 498 |
'<span>' + head + '</span>' +
|
| 499 |
'<span class="vsub">' + (conv.epochs_run != null ? conv.epochs_run + " epochs" : "") + '</span>';
|
|
|
|
| 503 |
const cmRows = [
|
| 504 |
["min causal weight", cm.min_causal_weight || fmt(conv.min_causal_weight)],
|
| 505 |
["grad norm", cm.grad_norm || fmt(conv.grad_norm)],
|
| 506 |
+
["κ(FIM)", cm.kappa_fim || fmt(conv.kappa_fim)],
|
| 507 |
+
["min Fisher", cm.min_fisher || "—"],
|
| 508 |
["residual rms", fmt(conv.residual_rms)],
|
| 509 |
["data rms", fmt(conv.data_rms)]
|
| 510 |
];
|
|
|
|
| 521 |
return '<div class="param-card asserted">' +
|
| 522 |
'<div class="param-card-head">' +
|
| 523 |
'<span class="param-name">' + p.name + '</span>' +
|
| 524 |
+
'<span class="chip chip-' + pl + '">' + (p.convergence_label || "—") + '</span>' +
|
| 525 |
'<span class="chip chip-info">MODELED</span>' +
|
| 526 |
'<span class="chip chip-green">IDENTIFIABLE</span>' +
|
| 527 |
'</div>' +
|
| 528 |
'<div class="param-value">' + fmt(p.value) + '</div>' +
|
| 529 |
+
'<div class="param-ci">' + ci + (p.std != null ? ' · σ ' + fmt(p.std) : '') + '</div>' +
|
| 530 |
'</div>';
|
| 531 |
}
|
| 532 |
+
// REFUSED — hero honesty moment
|
| 533 |
return '<div class="param-card refused">' +
|
| 534 |
'<div class="param-card-head">' +
|
| 535 |
'<span class="param-name">' + p.name + '</span>' +
|
|
|
|
| 537 |
'<span class="chip chip-red">REFUSED</span>' +
|
| 538 |
'</div>' +
|
| 539 |
'<div class="param-value null">value = null</div>' +
|
| 540 |
+
'<div class="refusal-box"><span class="rh">Self-doubt gate · not asserted</span>' +
|
| 541 |
(p.refusal || "UNIDENTIFIABLE: the engine refuses to assert this parameter.") + '</div>' +
|
| 542 |
'</div>';
|
| 543 |
}).join("");
|
|
|
|
| 545 |
// ---- FIM / self-doubt ----
|
| 546 |
const anyRefused = params.some(p => !p.asserted);
|
| 547 |
const fimRows = [
|
| 548 |
+
["κ(FIM)", cm.kappa_fim || fmt(conv.kappa_fim), badgeClass(label) === "red" ? "red" : "green"],
|
| 549 |
+
["min Fisher", cm.min_fisher || "—", ""],
|
| 550 |
+
["gate", anyRefused ? "REFUSED ≥1 parameter" : "all parameters identifiable",
|
| 551 |
anyRefused ? "red" : "green"]
|
| 552 |
];
|
| 553 |
el("fim-metrics").innerHTML = fimRows.map(r =>
|
|
|
|
| 556 |
|
| 557 |
// ---- lambda ----
|
| 558 |
const lam = d.lambda_advisory || {};
|
| 559 |
+
el("lambda-val").textContent = (lam.value != null) ? fmt(lam.value, 4) : "—";
|
| 560 |
el("lambda-status").innerHTML = '<span class="conj">' + (lam.status || "ADVISORY") + '</span>';
|
| 561 |
+
el("lambda-basis").textContent = lam.basis || "Λ = Conjecture 1 (advisory, capped ≤ 0.99; NEVER a proof).";
|
| 562 |
const lf = lam.factors || {};
|
| 563 |
el("lambda-factors").innerHTML = Object.keys(lf).map(k =>
|
| 564 |
'<div class="metric"><div class="metric-k">' + k + '</div><div class="metric-v">' + fmt(lf[k], 4) + '</div></div>'
|
|
|
|
| 579 |
'</div>' +
|
| 580 |
'<div class="small" style="margin-top:10px;">' + (b.basis || "") + '</div>';
|
| 581 |
} else {
|
| 582 |
+
el("bek").innerHTML = '<span class="small">No asserted parameter to check — Bekenstein is applied only to an asserted discovery (the engine refused all parameters here).</span>';
|
| 583 |
}
|
| 584 |
|
| 585 |
// ---- receipt ----
|
|
|
|
| 591 |
let html =
|
| 592 |
'<div class="hash-row"><span class="hash-label">signature</span>' +
|
| 593 |
'<span class="chip chip-' + (signed ? "green" : "amber") + '">' + (signed ? "SIGNED" : "UNSIGNED") + '</span>' +
|
| 594 |
+
'<span class="small">' + (signed ? "DSSE envelope present (payloadType " + ((r.dsse||{}).payloadType || "application/vnd.szl.ipinn+json") + ")" : "honest UNSIGNED — no cosign key in this env") + '</span>' +
|
| 595 |
'</div>' +
|
| 596 |
'<div class="hash-row"><span class="hash-label">ledger</span>' +
|
| 597 |
'<span class="chip chip-' + (ledger.recorded ? "green" : "dim") + '">' + (ledger.recorded ? "RECORDED" : "NOT RECORDED") + '</span>' +
|
| 598 |
'<span class="small">organ <code>a11oy-pinn</code>' +
|
| 599 |
+
(lres.chain_index != null ? ' · chain index ' + lres.chain_index : '') + '</span>' +
|
| 600 |
'</div>';
|
| 601 |
if (rid) {
|
| 602 |
html += '<div class="hash-row"><span class="hash-label">receipt id</span>' +
|
| 603 |
'<span class="hash-val">' + rid + '</span></div>' +
|
| 604 |
'<div class="hash-row"><span class="hash-label">verify</span>' +
|
| 605 |
'<a class="hash-val" href="' + VERIFY_BASE + rid + '" target="_blank" rel="noopener">' +
|
| 606 |
+
VERIFY_BASE + rid + ' ↗</a></div>' +
|
| 607 |
+
'<div class="small" style="margin-top:6px;">Re-verify independently — the Khipu hash-chain integrity is recomputed server-side and is publicly checkable.</div>';
|
| 608 |
}
|
| 609 |
if (lres.chain_head) {
|
| 610 |
html += '<hr class="divider"><div class="hash-row"><span class="hash-label">chain head</span>' +
|
|
|
|
| 617 |
</script>
|
| 618 |
</body>
|
| 619 |
</html>
|
|
|
pages/substrate.html
CHANGED
|
@@ -1,9 +1,9 @@
|
|
| 1 |
-
|
| 2 |
-
<!-- SPDX-License-Identifier: Apache-2.0
|
| 3 |
-
<!-- ADDITIVE moat surface
|
| 4 |
<html lang="en"><head>
|
| 5 |
<meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/>
|
| 6 |
-
<title>a11oy
|
| 7 |
<style>:root{--bg:#0b0d12;--panel:#12151d;--ink:#e7ecf3;--mut:#8a93a6;--acc:#7cc4ff;--ok:#54d18c;--warn:#ffcf5c;--bad:#ff6b6b;--line:#222838;--mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace}
|
| 8 |
*{box-sizing:border-box}
|
| 9 |
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
|
|
@@ -55,28 +55,28 @@ code{font-family:var(--mono);color:var(--acc);font-size:12.5px}
|
|
| 55 |
.mono{font-family:var(--mono);font-size:12px}
|
| 56 |
footer{margin-top:34px;border-top:1px solid var(--line);padding-top:14px;color:var(--mut);font-size:12px}</style></head><body><div class="wrap">
|
| 57 |
<div class="top">
|
| 58 |
-
<div><span class="brand">a11oy</span> <span class="tag">
|
| 59 |
<div class="nav">
|
| 60 |
<a href="/">home</a><a href="/wires">wires</a><a href="/codex-kernel">codex-kernel</a>
|
| 61 |
<a href="/substrate">substrate</a><a href="/evidence">evidence</a><a href="/run-all">run-all</a>
|
| 62 |
</div>
|
| 63 |
</div>
|
| 64 |
|
| 65 |
-
<h1>Substrate Inspector
|
| 66 |
-
<p class="sub">Sovereign Execution Substrate
|
| 67 |
-
Source: <a href="https://github.com/szl-holdings/platform/tree/main/packages/substrate">https://github.com/szl-holdings/platform/tree/main/packages/substrate</a>
|
| 68 |
|
| 69 |
<div class="row"><span class='pill acc'>Reason()</span><span class='pill acc'>Retrieve()</span><span class='pill acc'>ToolCall()</span><span class='pill acc'>Verify()</span><span class='pill acc'>Decide()</span><span class='pill acc'>ApprovalGate()</span></div>
|
| 70 |
<div class="row"><span class="mut" style="font-size:12px">modes:</span><span class='pill'>live</span><span class='pill'>dry-run</span><span class='pill'>replay</span><span class='pill'>counterfactual</span></div>
|
| 71 |
|
| 72 |
<div class="grid">
|
| 73 |
<div class="card"><h3>The moat in one line</h3>
|
| 74 |
-
<p>The single, opinionated execution runtime every SZL product surface (Aegis
|
| 75 |
-
<code>defineWorkflow({stages, policy, budget})</code>
|
| 76 |
-
<div class="card"><h3>Innovation #2
|
| 77 |
<p><code>compiler.ts</code> runs a Kahn topological sort over the approval DAG <b>at compile time</b> and throws
|
| 78 |
<code>SubstrateCompilerError</code> for cycles, orphan gates, or high-risk side-effects reachable without an ancestor
|
| 79 |
-
<code>ApprovalGate()</code>. Topology-enforced, not runtime-checked. Tests: <code>vitest
|
| 80 |
</div>
|
| 81 |
|
| 82 |
<h2>Substrate packages (the moat)</h2>
|
|
@@ -85,23 +85,23 @@ Source: <a href="https://github.com/szl-holdings/platform/tree/main/packages/sub
|
|
| 85 |
<span class='pill'>@szl/substrate-adapters</span><span class='pill'>@szl/substrate-client</span>
|
| 86 |
</div>
|
| 87 |
|
| 88 |
-
<h2>Public API surface
|
| 89 |
-
<table class="tbl"><tr><th>File</th><th>Purpose</th><th>LOC</th><th>Exports</th></tr><tr><td class='mono'>src/index.ts</td><td>Public package entry
|
| 90 |
|
| 91 |
<h2>Reference + vertical workflow packs</h2>
|
| 92 |
-
<table class="tbl"><tr><th>Workflow</th><th>Purpose</th><th>Exports</th></tr><tr><td class='mono'>opportunity-audit.ts</td><td>Phase-1 reference workflow
|
| 93 |
|
| 94 |
<h2>Subpath exports (package.json)</h2>
|
| 95 |
-
<div class="row"><span class='pill mut'>.</span><span class='pill mut'>./adapters</span><span class='pill mut'>./budget-router</span><span class='pill mut'>./compiler</span><span class='pill mut'>./engine</span><span class='pill mut'>./journal</span><span class='pill mut'>./python-worker</span><span class='pill mut'>./telemetry</span><span class='pill mut'>./types</span><span class='pill mut'>./workflows/aegis-threat-triage</span><span class='pill mut'>./workflows/carlota-jo-task-routing</span><span class='pill mut'>./workflows/cross-system-reconciliation</span><span class='pill mut'>./workflows/evidence-based-recommendation</span><span class='pill mut'>./workflows/executive-brief</span><span class='pill mut'>./workflows/
|
| 96 |
|
| 97 |
<div class="honest"><b>What is honest right now.</b> This page reads the real
|
| 98 |
<code>packages/substrate/</code> source in <code>szl-holdings/platform</code> and lists every public file, its purpose, and its
|
| 99 |
exported symbols. The substrate is <b>real code</b> (compiler + engine + journal + budget-router + 11 workflow packs).
|
| 100 |
-
It is shipped here as an <b>inspector / documentation surface</b>
|
| 101 |
monorepo (and the substrate-py-workers GPU fleet), not inside this static HF Space. The side-effect categories enforced by the
|
| 102 |
compiler are: read-only, write-internal, write-external, financial, notification, deletion, escalation, infrastructure.</div>
|
| 103 |
|
| 104 |
-
<footer>SZL Holdings
|
| 105 |
-
Doctrine v10 (749 declarations
|
| 106 |
Shipped additively via HfApi.create_commit.</footer>
|
| 107 |
-
</div></body></html>
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<!-- SPDX-License-Identifier: Apache-2.0 © 2026 Lutar, Stephen P. — SZL Holdings · Doctrine v10 -->
|
| 3 |
+
<!-- ADDITIVE moat surface — shipped via HfApi.create_commit (never GitHub Actions). -->
|
| 4 |
<html lang="en"><head>
|
| 5 |
<meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/>
|
| 6 |
+
<title>a11oy · Substrate Inspector — @szl/substrate</title>
|
| 7 |
<style>:root{--bg:#0b0d12;--panel:#12151d;--ink:#e7ecf3;--mut:#8a93a6;--acc:#7cc4ff;--ok:#54d18c;--warn:#ffcf5c;--bad:#ff6b6b;--line:#222838;--mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace}
|
| 8 |
*{box-sizing:border-box}
|
| 9 |
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
|
|
|
|
| 55 |
.mono{font-family:var(--mono);font-size:12px}
|
| 56 |
footer{margin-top:34px;border-top:1px solid var(--line);padding-top:14px;color:var(--mut);font-size:12px}</style></head><body><div class="wrap">
|
| 57 |
<div class="top">
|
| 58 |
+
<div><span class="brand">a11oy</span> <span class="tag">· Governance Substrate · Doctrine v10</span></div>
|
| 59 |
<div class="nav">
|
| 60 |
<a href="/">home</a><a href="/wires">wires</a><a href="/codex-kernel">codex-kernel</a>
|
| 61 |
<a href="/substrate">substrate</a><a href="/evidence">evidence</a><a href="/run-all">run-all</a>
|
| 62 |
</div>
|
| 63 |
</div>
|
| 64 |
|
| 65 |
+
<h1>Substrate Inspector — @szl/substrate v0.2.0</h1>
|
| 66 |
+
<p class="sub">Sovereign Execution Substrate — policy-shaped graphs, evidence-chained transitions, confidence-budget routing, and counterfactual replay for all SZL workflows.<br>
|
| 67 |
+
Source: <a href="https://github.com/szl-holdings/platform/tree/main/packages/substrate">https://github.com/szl-holdings/platform/tree/main/packages/substrate</a> · public package (<code>private:false</code>) · #2 — compile-time Kahn-sort approval-DAG (packages/substrate/src/compiler.ts).</p>
|
| 68 |
|
| 69 |
<div class="row"><span class='pill acc'>Reason()</span><span class='pill acc'>Retrieve()</span><span class='pill acc'>ToolCall()</span><span class='pill acc'>Verify()</span><span class='pill acc'>Decide()</span><span class='pill acc'>ApprovalGate()</span></div>
|
| 70 |
<div class="row"><span class="mut" style="font-size:12px">modes:</span><span class='pill'>live</span><span class='pill'>dry-run</span><span class='pill'>replay</span><span class='pill'>counterfactual</span></div>
|
| 71 |
|
| 72 |
<div class="grid">
|
| 73 |
<div class="card"><h3>The moat in one line</h3>
|
| 74 |
+
<p>The single, opinionated execution runtime every SZL product surface (Lyte · Aegis · Vessels · Terra · Counsel · Carlota Jo) calls the same way.
|
| 75 |
+
<code>defineWorkflow({stages, policy, budget})</code> → <code>runtime.start(workflow, input, {mode})</code> → <code>PipelineRun</code>.</p></div>
|
| 76 |
+
<div class="card"><h3>Innovation #2 — compile-time approval-DAG</h3>
|
| 77 |
<p><code>compiler.ts</code> runs a Kahn topological sort over the approval DAG <b>at compile time</b> and throws
|
| 78 |
<code>SubstrateCompilerError</code> for cycles, orphan gates, or high-risk side-effects reachable without an ancestor
|
| 79 |
+
<code>ApprovalGate()</code>. Topology-enforced, not runtime-checked. Tests: <code>vitest — src/engine.test.ts · src/compiler.test.ts · src/workflows/phase2.test.ts</code>.</p></div>
|
| 80 |
</div>
|
| 81 |
|
| 82 |
<h2>Substrate packages (the moat)</h2>
|
|
|
|
| 85 |
<span class='pill'>@szl/substrate-adapters</span><span class='pill'>@szl/substrate-client</span>
|
| 86 |
</div>
|
| 87 |
|
| 88 |
+
<h2>Public API surface — core files</h2>
|
| 89 |
+
<table class="tbl"><tr><th>File</th><th>Purpose</th><th>LOC</th><th>Exports</th></tr><tr><td class='mono'>src/index.ts</td><td>Public package entry — re-exports every primitive, type, runtime, compiler, journal, telemetry & workflow symbol.</td><td style='text-align:right' class='mut'>332</td><td class='mono mut'>AdvisorMatch, AegisThreatTriageInput, AegisThreatTriageResult, AnomalyFinding, AnyStage, ApprovalGate, BriefSection, CarlotaJoTaskRoutingInput…</td></tr><tr><td class='mono'>src/types.ts</td><td>Core TypeScript interfaces + Zod schemas: ExecutionMode, SideEffectCategory, 7 StageTypes, WorkflowDefinition, PipelineRun, EvidenceBundle.</td><td style='text-align:right' class='mut'>559</td><td class='mono mut'>AnyStage, AnyStageSchema, ApprovalGate, ApprovalGateSchema, BaseStage, CompiledGraph, CompiledStageNode, ConfidenceBudget…</td></tr><tr><td class='mono'>src/stage-primitives.ts</td><td>Five stage primitive factories — Reason() · Retrieve() · ToolCall() · Verify() · Decide() — plus ApprovalGate(), definePolicy(), defineBudget().</td><td style='text-align:right' class='mut'>161</td><td class='mono mut'>ApprovalGate, Decide, Reason, Retrieve, ToolCall, Verify, defineBudget, definePolicy</td></tr><tr><td class='mono'>src/compiler.ts</td><td>Innovation #2 — compile-time Kahn topological sort over the approval DAG; throws SubstrateCompilerError for cycles, orphan gates, or high-risk side-effects reachable without an ancestor ApprovalGate. Topology-enforced, not runtime-checked.</td><td style='text-align:right' class='mut'>276</td><td class='mono mut'>SubstrateCompilerError, compile</td></tr><tr><td class='mono'>src/engine.ts</td><td>SubstrateRuntime: start(workflow, input, {mode}) → PipelineRun. Workflow registry (register/lookup/list/clear), defaultRuntime singleton.</td><td style='text-align:right' class='mut'>1105</td><td class='mono mut'>SubstrateRuntime, SubstrateRuntimeOptions, clearWorkflowRegistry, defaultRuntime, listWorkflows, lookupWorkflow, registerWorkflow</td></tr><tr><td class='mono'>src/journal.ts</td><td>Evidence-chained journal: computeBundleHash, hashValue, sign/verify bundle signatures, SubstrateJournal store, runtime event bus.</td><td style='text-align:right' class='mut'>540</td><td class='mono mut'>JournalStore, RunStore, SubstrateJournal, SubstrateRuntimeEvent, SubstrateRuntimeEventType, computeBundleHash, defaultJournal, defaultJournalStore…</td></tr><tr><td class='mono'>src/budget-router.ts</td><td>Confidence-budget routing — routeByBudget, aggregatePipelineConfidence, validateFinalConfidence (escalate when budget exceeded).</td><td style='text-align:right' class='mut'>110</td><td class='mono mut'>RoutingDecision, aggregatePipelineConfidence, routeByBudget, validateFinalConfidence</td></tr><tr><td class='mono'>src/adapters.ts</td><td>Adapter registries (model/policy/resource/retriever/tool) + wirePolicyEngineAdapter / wireToolMeshAdapter bridges to platform packages.</td><td style='text-align:right' class='mut'>494</td><td class='mono mut'>McpCapabilitySpec, McpToolCall, McpToolDefinition, McpToolResult, ModelAdapter, ModelAdapterInput, ModelAdapterOutput, PolicyAdapter…</td></tr><tr><td class='mono'>src/telemetry.ts</td><td>OpenTelemetry spans: SubstrateTelemetry, getMetrics, getRecentSpans, getRunSpans (SubstrateSpan).</td><td style='text-align:right' class='mut'>279</td><td class='mono mut'>SubstrateSpan, SubstrateTelemetry, getMetrics, getRecentSpans, getRunSpans</td></tr><tr><td class='mono'>src/python-worker.ts</td><td>Bridge to services/substrate-py-workers — protocol messages (claim/result/error/heartbeat/register), PYTHON_WORKER_PROTOCOL_VERSION.</td><td style='text-align:right' class='mut'>386</td><td class='mono mut'>PYTHON_WORKER_PROTOCOL_VERSION, PythonWorkerBaseMessage, PythonWorkerChannel, PythonWorkerMessage, PythonWorkerMessageType, RegisteredWorker, StageClaimMessage, StageErrorMessage…</td></tr><tr><td class='mono'>src/cli/bin.ts</td><td>`substrate` CLI binary entrypoint.</td><td style='text-align:right' class='mut'>80</td><td class='mono mut'></td></tr><tr><td class='mono'>src/cli/replay.ts</td><td>Replay & counterfactual — replay(), handleReplayRequest, resolvePolicyProfileById, formatDiff (deterministic re-execution of a recorded run).</td><td style='text-align:right' class='mut'>312</td><td class='mono mut'>PolicyNotFoundError, ReplayEndpointRequest, ReplayEndpointResponse, ReplayOptions, ReplayResult, formatDiff, handleReplayRequest, replay…</td></tr></table>
|
| 90 |
|
| 91 |
<h2>Reference + vertical workflow packs</h2>
|
| 92 |
+
<table class="tbl"><tr><th>Workflow</th><th>Purpose</th><th>Exports</th></tr><tr><td class='mono'>opportunity-audit.ts</td><td>Phase-1 reference workflow — anomaly→remediation opportunity audit (Lyte retriever).</td><td class='mono mut'>AnomalyFinding, OpportunityAuditInput, OpportunityAuditResult, RemediationDecision, isLyteRetrieverRegistered, opportunityAuditWorkflow</td></tr><tr><td class='mono'>cross-system-reconciliation.ts</td><td>Reconcile discrepancies across systems → reconciliation decision.</td><td class='mono mut'>CrossSystemReconciliationInput, CrossSystemReconciliationResult, ReconciliationDecision, ReconciliationDiscrepancy, crossSystemReconciliationWorkflow, runCrossSystemReconciliation</td></tr><tr><td class='mono'>evidence-based-recommendation.ts</td><td>Evidence-cited recommendation decision packet.</td><td class='mono mut'>EvidenceBasedRecommendationInput, EvidenceBasedRecommendationResult, EvidenceCitation, RecommendationDecisionPacket, evidenceBasedRecommendationWorkflow, runEvidenceBasedRecommendation</td></tr><tr><td class='mono'>executive-brief.ts</td><td>Multi-section executive brief generation.</td><td class='mono mut'>BriefSection, ExecutiveBriefInput, ExecutiveBriefOutput, ExecutiveBriefResult, executiveBriefWorkflow, runExecutiveBrief</td></tr><tr><td class='mono'>risk-escalation.ts</td><td>Risk-signal summary → escalation decision.</td><td class='mono mut'>RiskEscalationDecision, RiskEscalationInput, RiskEscalationResult, RiskSignalSummary, riskEscalationWorkflow, runRiskEscalation</td></tr><tr><td class='mono'>aegis-threat-triage.ts</td><td>Aegis vertical pack — threat triage decision.</td><td class='mono mut'>AegisThreatTriageInput, AegisThreatTriageResult, ThreatTriageDecision, TriagedThreat, aegisThreatTriageWorkflow, runAegisThreatTriage</td></tr><tr><td class='mono'>carlota-jo-task-routing.ts</td><td>Carlota Jo vertical pack — advisor-match task routing.</td><td class='mono mut'>AdvisorMatch, CarlotaJoTaskRoutingInput, CarlotaJoTaskRoutingResult, TaskRoutingDecision, carlotaJoTaskRoutingWorkflow, runCarlotaJoTaskRouting</td></tr><tr><td class='mono'>lyte-operational-drift.ts</td><td>Lyte vertical pack — operational drift detection decision.</td><td class='mono mut'>DriftItem, LyteOperationalDriftInput, LyteOperationalDriftResult, OperationalDriftDecision, lyteOperationalDriftWorkflow, runLyteOperationalDrift</td></tr><tr><td class='mono'>prism-counsel-evidence-packaging.ts</td><td>Prism Counsel vertical pack — legal evidence packaging + matter deadlines.</td><td class='mono mut'>EvidencePackage, MatterDeadline, PrismCounselDecision, PrismCounselEvidencePackagingInput, PrismCounselEvidencePackagingResult, prismCounselEvidencePackagingWorkflow</td></tr><tr><td class='mono'>terra-portfolio-anomaly.ts</td><td>Terra vertical pack — portfolio anomaly decision.</td><td class='mono mut'>PortfolioAnomaly, PortfolioAnomalyDecision, TerraPortfolioAnomalyInput, TerraPortfolioAnomalyResult, runTerraPortfolioAnomaly, terraPortfolioAnomalyWorkflow</td></tr><tr><td class='mono'>vessels-voyage-anomaly.ts</td><td>Vessels vertical pack — voyage anomaly decision.</td><td class='mono mut'>VesselsVoyageAnomalyInput, VesselsVoyageAnomalyResult, VoyageAnomaly, VoyageAnomalyDecision, runVesselsVoyageAnomaly, vesselsVoyageAnomalyWorkflow</td></tr><tr><td class='mono'>index.ts</td><td>Demo seed inputs for the reference workflows.</td><td class='mono mut'>ALL_WORKFLOW_SEEDS, WorkflowSeedKey, aegisThreatTriageSeed, carlotaJoTaskRoutingSeed, crossSystemReconciliationSeed, evidenceBasedRecommendationSeed</td></tr></table>
|
| 93 |
|
| 94 |
<h2>Subpath exports (package.json)</h2>
|
| 95 |
+
<div class="row"><span class='pill mut'>.</span><span class='pill mut'>./adapters</span><span class='pill mut'>./budget-router</span><span class='pill mut'>./compiler</span><span class='pill mut'>./engine</span><span class='pill mut'>./journal</span><span class='pill mut'>./python-worker</span><span class='pill mut'>./telemetry</span><span class='pill mut'>./types</span><span class='pill mut'>./workflows/aegis-threat-triage</span><span class='pill mut'>./workflows/carlota-jo-task-routing</span><span class='pill mut'>./workflows/cross-system-reconciliation</span><span class='pill mut'>./workflows/evidence-based-recommendation</span><span class='pill mut'>./workflows/executive-brief</span><span class='pill mut'>./workflows/lyte-operational-drift</span><span class='pill mut'>./workflows/opportunity-audit</span><span class='pill mut'>./workflows/prism-counsel-evidence-packaging</span><span class='pill mut'>./workflows/risk-escalation</span><span class='pill mut'>./workflows/seeds</span><span class='pill mut'>./workflows/terra-portfolio-anomaly</span><span class='pill mut'>./workflows/vessels-voyage-anomaly</span></div>
|
| 96 |
|
| 97 |
<div class="honest"><b>What is honest right now.</b> This page reads the real
|
| 98 |
<code>packages/substrate/</code> source in <code>szl-holdings/platform</code> and lists every public file, its purpose, and its
|
| 99 |
exported symbols. The substrate is <b>real code</b> (compiler + engine + journal + budget-router + 11 workflow packs).
|
| 100 |
+
It is shipped here as an <b>inspector / documentation surface</b> — the live TypeScript runtime executes inside the platform
|
| 101 |
monorepo (and the substrate-py-workers GPU fleet), not inside this static HF Space. The side-effect categories enforced by the
|
| 102 |
compiler are: read-only, write-internal, write-external, financial, notification, deletion, escalation, infrastructure.</div>
|
| 103 |
|
| 104 |
+
<footer>SZL Holdings · Apache-2.0 · ORCID <a href="https://orcid.org/0009-0001-0110-4173">0009-0001-0110-4173</a> ·
|
| 105 |
+
Doctrine v10 (749 declarations · 14 unique axioms · 163 tracked sorries · lutar-v18.0.0 @ c7c0ba17).
|
| 106 |
Shipped additively via HfApi.create_commit.</footer>
|
| 107 |
+
</div></body></html>
|
pages/verify.html
CHANGED
|
@@ -1,13 +1,13 @@
|
|
| 1 |
-
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 6 |
-
<title>a11oy
|
| 7 |
<style>
|
| 8 |
/* =====================================================================
|
| 9 |
-
a11oy Tier-1 Demo
|
| 10 |
-
Dark palette
|
| 11 |
===================================================================== */
|
| 12 |
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,600;1,400&display=swap');
|
| 13 |
|
|
@@ -288,8 +288,8 @@
|
|
| 288 |
<circle cx="16" cy="16" r="2.5" fill="#8aaaf8"/>
|
| 289 |
</svg>
|
| 290 |
<span class="site-title">a11oy</span>
|
| 291 |
-
<span class="site-tagline">
|
| 292 |
-
<a href="/" class="nav-back">
|
| 293 |
</header>
|
| 294 |
|
| 295 |
<!-- ===== MAIN ===== -->
|
|
@@ -297,11 +297,11 @@
|
|
| 297 |
|
| 298 |
<div class="page-hero">
|
| 299 |
<h1>Verifiable Inference</h1>
|
| 300 |
-
<p>Real, verifiable governance receipts
|
| 301 |
</div>
|
| 302 |
|
| 303 |
<!-- ===================================================================
|
| 304 |
-
SECTION A
|
| 305 |
=================================================================== -->
|
| 306 |
<section class="section" id="section-bvir">
|
| 307 |
<div class="section-head">
|
|
@@ -311,7 +311,7 @@
|
|
| 311 |
</h2>
|
| 312 |
<p>
|
| 313 |
Makes a real POST /api/a11oy/v1/govern/infer call, then verifies the DSSE ECDSA-P256
|
| 314 |
-
signature <strong>in-browser</strong> using WebCrypto
|
| 315 |
SHA-256 of the decoded payload is recomputed and matched to <code>receipt.payload_digest</code>.
|
| 316 |
</p>
|
| 317 |
<p class="moat-line">
|
|
@@ -334,20 +334,20 @@
|
|
| 334 |
</section>
|
| 335 |
|
| 336 |
<!-- ===================================================================
|
| 337 |
-
SECTION B
|
| 338 |
=================================================================== -->
|
| 339 |
<section class="section" id="section-govern">
|
| 340 |
<div class="section-head">
|
| 341 |
<h2>
|
| 342 |
<span class="section-label">B</span>
|
| 343 |
-
|
| 344 |
</h2>
|
| 345 |
<p>
|
| 346 |
Three preset governance cases. Each returns a REAL signed receipt via
|
| 347 |
-
<code>szl_dsse.sign_khipu_receipt</code>.
|
| 348 |
-
<span class="conj">Conjecture 1
|
| 349 |
</p>
|
| 350 |
-
<p class="moat-line">"Even our refusals are signed and explained
|
| 351 |
</div>
|
| 352 |
<div class="section-body">
|
| 353 |
|
|
@@ -372,7 +372,7 @@
|
|
| 372 |
</section>
|
| 373 |
|
| 374 |
<!-- ===================================================================
|
| 375 |
-
SECTION C
|
| 376 |
=================================================================== -->
|
| 377 |
<section class="section" id="section-thesis">
|
| 378 |
<div class="section-head">
|
|
@@ -382,9 +382,9 @@
|
|
| 382 |
</h2>
|
| 383 |
<p>
|
| 384 |
The 8 PROVEN formulas with verbatim Lean 4 statements, the 3-tier honest corpus
|
| 385 |
-
(8 / ~35 / ~185), and the honest conjecture labels for
|
| 386 |
</p>
|
| 387 |
-
<p class="moat-line">"The honesty is the product. Click any formula
|
| 388 |
</div>
|
| 389 |
<div class="section-body">
|
| 390 |
|
|
@@ -419,13 +419,13 @@
|
|
| 419 |
</section>
|
| 420 |
|
| 421 |
<!-- ===================================================================
|
| 422 |
-
SECTION D
|
| 423 |
=================================================================== -->
|
| 424 |
<section class="section" id="section-ledger">
|
| 425 |
<div class="section-head">
|
| 426 |
<h2>
|
| 427 |
<span class="section-label">D</span>
|
| 428 |
-
Public Ledger
|
| 429 |
</h2>
|
| 430 |
<p>
|
| 431 |
Real signed Khipu receipts from our public dataset
|
|
@@ -433,9 +433,9 @@
|
|
| 433 |
(snapshot 2026-07-02). This page recomputes the <strong>hash-chain linkage in your browser</strong>;
|
| 434 |
the DSSE / sigstore signatures verify <strong>offline</strong> with the
|
| 435 |
<a href="https://pypi.org/project/szl-receipt/" target="_blank" rel="noopener">szl-receipt</a>
|
| 436 |
-
library and cross-check against the canonical rows on Hugging Face
|
| 437 |
</p>
|
| 438 |
-
<p class="moat-line">"The receipts you would read in diligence
|
| 439 |
</div>
|
| 440 |
<div class="section-body">
|
| 441 |
<div class="btn-row">
|
|
@@ -455,15 +455,15 @@
|
|
| 455 |
</main>
|
| 456 |
|
| 457 |
<footer class="footer">
|
| 458 |
-
<p>SZL Holdings
|
| 459 |
-
|
| 460 |
-
<a href="/govern/health" target="_blank">Governance Health</a>
|
| 461 |
<a href="/api/a11oy/v1/demo/thesis" target="_blank">Thesis API</a>
|
| 462 |
</p>
|
| 463 |
</footer>
|
| 464 |
|
| 465 |
<!-- ===================================================================
|
| 466 |
-
JAVASCRIPT
|
| 467 |
=================================================================== -->
|
| 468 |
<script>
|
| 469 |
"use strict";
|
|
@@ -495,7 +495,7 @@ function escHTML(s) {
|
|
| 495 |
|
| 496 |
/* ---- base64 helpers ---- */
|
| 497 |
function b64Decode(s) {
|
| 498 |
-
// standard base64
|
| 499 |
const bin = atob(s);
|
| 500 |
const b = new Uint8Array(bin.length);
|
| 501 |
for (let i = 0; i < bin.length; i++) b[i] = bin.charCodeAt(i);
|
|
@@ -509,10 +509,10 @@ function b64Encode(buf) {
|
|
| 509 |
return btoa(s);
|
| 510 |
}
|
| 511 |
|
| 512 |
-
/* ---- DER ASN.1
|
| 513 |
cosign / cryptography-lib ECDSA signs in DER (ASN.1 SEQUENCE { INTEGER r, INTEGER s }).
|
| 514 |
-
WebCrypto ECDSA P-256 SHA-256 expects IEEE P-1363 raw
|
| 515 |
-
We decode the DER SEQUENCE here entirely in JS
|
| 516 |
*/
|
| 517 |
function derToRaw(derBytes) {
|
| 518 |
let i = 0;
|
|
@@ -594,14 +594,14 @@ async function importPubKeyFromPEM(pem) {
|
|
| 594 |
}
|
| 595 |
|
| 596 |
/* ====================================================================
|
| 597 |
-
SECTION A
|
| 598 |
==================================================================== */
|
| 599 |
async function runBVIR() {
|
| 600 |
const btn = el('bvir-run');
|
| 601 |
btn.disabled = true;
|
| 602 |
hide('bvir-verdict');
|
| 603 |
hide('bvir-output');
|
| 604 |
-
setStatus('bvir-status', 'Calling /api/a11oy/v1/govern/infer
|
| 605 |
|
| 606 |
let data;
|
| 607 |
try {
|
|
@@ -617,7 +617,7 @@ async function runBVIR() {
|
|
| 617 |
return;
|
| 618 |
}
|
| 619 |
|
| 620 |
-
setStatus('bvir-status', 'Verifying signature in-browser via WebCrypto
|
| 621 |
|
| 622 |
const dsse = data.dsse || {};
|
| 623 |
const receipt= data.receipt|| {};
|
|
@@ -666,7 +666,7 @@ async function runBVIR() {
|
|
| 666 |
let sigKeyid = '';
|
| 667 |
|
| 668 |
if (!dsse.signed) {
|
| 669 |
-
verifyError = 'UNSIGNED envelope
|
| 670 |
} else if (sigs.length === 0) {
|
| 671 |
verifyError = 'No signatures in envelope.';
|
| 672 |
} else {
|
|
@@ -682,7 +682,7 @@ async function runBVIR() {
|
|
| 682 |
try {
|
| 683 |
rawSig = derToRaw(sigBytes);
|
| 684 |
} catch(e2) {
|
| 685 |
-
verifyError = '
|
| 686 |
}
|
| 687 |
}
|
| 688 |
|
|
@@ -729,26 +729,26 @@ async function runBVIR() {
|
|
| 729 |
let verdictHTML = '';
|
| 730 |
if (verified && isDemoKey) {
|
| 731 |
verdictHTML = `<div class="verdict-banner verdict-ok">
|
| 732 |
-
|
| 733 |
<span class="chip chip-ok">keyid: ${escHTML(sigKeyid)}</span>
|
| 734 |
<div style="font-size:12px;font-weight:400;margin-top:6px;color:var(--text-dim)">
|
| 735 |
Real ECDSA-P256 signature, verified in your browser against /demo-cosign.pub.
|
| 736 |
-
This is a clearly-labelled DEMO key
|
| 737 |
founder-gated and is never placed in this runtime.
|
| 738 |
</div>
|
| 739 |
</div>`;
|
| 740 |
} else if (verified) {
|
| 741 |
verdictHTML = `<div class="verdict-banner verdict-ok">
|
| 742 |
-
|
| 743 |
<span class="chip chip-ok">keyid: ${escHTML(sigKeyid)}</span>
|
| 744 |
</div>`;
|
| 745 |
} else if (!dsse.signed) {
|
| 746 |
verdictHTML = `<div class="verdict-banner verdict-dim">
|
| 747 |
-
|
| 748 |
</div>`;
|
| 749 |
} else {
|
| 750 |
verdictHTML = `<div class="verdict-banner verdict-fail">
|
| 751 |
-
|
| 752 |
</div>`;
|
| 753 |
}
|
| 754 |
|
|
@@ -780,33 +780,33 @@ async function runBVIR() {
|
|
| 780 |
</div>
|
| 781 |
<div class="hash-row">
|
| 782 |
<span class="hash-label">Payload digest:</span>
|
| 783 |
-
<span class="hash-val ${digestValClass}">${payloadDigestComputed.substring(0,32)}
|
| 784 |
<span class="chip ${digestChipClass}">${digestChipText}</span>
|
| 785 |
</div>
|
| 786 |
${hasDeclaredDigest ? `<div class="hash-row">
|
| 787 |
<span class="hash-label">Declared digest:</span>
|
| 788 |
-
<span class="hash-val">${escHTML(declaredPayloadDigest.substring(0,32))}
|
| 789 |
</div>` : `<div class="hash-row">
|
| 790 |
<span class="hash-label">Declared digest:</span>
|
| 791 |
-
<span class="hash-val" style="color:var(--text-dim)">(none declared
|
| 792 |
</div>`}
|
| 793 |
<div class="hash-row">
|
| 794 |
<span class="hash-label">PAE SHA-256:</span>
|
| 795 |
-
<span class="hash-val">${paeSHA.substring(0,32)}
|
| 796 |
</div>
|
| 797 |
<div class="hash-row">
|
| 798 |
<span class="hash-label">Chain prev:</span>
|
| 799 |
-
<span class="hash-val">${escHTML(String(chainPrev).substring(0,32))}
|
| 800 |
</div>
|
| 801 |
<div class="hash-row">
|
| 802 |
<span class="hash-label">Chain digest:</span>
|
| 803 |
-
<span class="hash-val">${escHTML(String(chainDigest).substring(0,32))}
|
| 804 |
</div>
|
| 805 |
</div>
|
| 806 |
<div style="font-size:12px;color:var(--text-dim);margin-bottom:8px">
|
| 807 |
-
<span class="conj">
|
| 808 |
-
|
| 809 |
-
|
| 810 |
Energy: <span class="chip chip-dim">${escHTML((data.energy||{}).label || 'UNAVAILABLE')}</span>
|
| 811 |
</div>
|
| 812 |
`;
|
|
@@ -819,18 +819,18 @@ async function runBVIR() {
|
|
| 819 |
'governance.lambda': (data.governance||{}).lambda,
|
| 820 |
'governance.lambda_kind': (data.governance||{}).lambda_kind,
|
| 821 |
'receipt.seq': receipt.seq,
|
| 822 |
-
'receipt.prev': String(chainPrev).substring(0,32) + '
|
| 823 |
-
'receipt.digest': String(chainDigest).substring(0,32) + '
|
| 824 |
'dsse.signed': dsse.signed,
|
| 825 |
'dsse.keyid': dsseKeyid || null,
|
| 826 |
-
'dsse.key_kind': isDemoKey ? 'demo (demo-signing-key
|
| 827 |
'dsse.payloadType': dsse.payloadType,
|
| 828 |
'verify.public_key_url': pubKeyURL,
|
| 829 |
-
'verify.computed_payload_sha256': payloadDigestComputed.substring(0,32) + '
|
| 830 |
-
'verify.declared_payload_digest': hasDeclaredDigest ? declaredPayloadDigest.substring(0,32) + '
|
| 831 |
'verify.payload_digest_match': hasDeclaredDigest ? (payloadDigestMatches ? 'MATCH' : 'MISMATCH') : 'no declared digest to compare',
|
| 832 |
-
'verify.pae_sha256': paeSHA.substring(0,32) + '
|
| 833 |
-
'verify.result': verified ? (isDemoKey ? 'VERIFIED
|
| 834 |
'energy.label': (data.energy||{}).label,
|
| 835 |
};
|
| 836 |
el('bvir-output').textContent = JSON.stringify(outputData, null, 2);
|
|
@@ -839,8 +839,8 @@ async function runBVIR() {
|
|
| 839 |
|
| 840 |
setStatus('bvir-status', verified
|
| 841 |
? (isDemoKey
|
| 842 |
-
? '
|
| 843 |
-
: '
|
| 844 |
: (dsse.signed === false
|
| 845 |
? 'Unsigned receipt (private key absent from runtime). Chain valid.'
|
| 846 |
: 'Verification result: ' + verifyError));
|
|
@@ -848,11 +848,11 @@ async function runBVIR() {
|
|
| 848 |
}
|
| 849 |
|
| 850 |
/* ====================================================================
|
| 851 |
-
SECTION B
|
| 852 |
==================================================================== */
|
| 853 |
async function runGovern(caseKey) {
|
| 854 |
hide('govern-panel');
|
| 855 |
-
setStatus('govern-status', `Calling /api/a11oy/v1/demo/govern case="${caseKey}"
|
| 856 |
|
| 857 |
let data;
|
| 858 |
try {
|
|
@@ -875,20 +875,20 @@ async function runGovern(caseKey) {
|
|
| 875 |
|
| 876 |
// Verdict banner
|
| 877 |
const decClasses = { allow:'verdict-ok', review:'verdict-dim', deny:'verdict-fail' };
|
| 878 |
-
const decLabels = { allow:'
|
| 879 |
const bannerCls = decClasses[decision] || 'verdict-dim';
|
| 880 |
const bannerLbl = decLabels[decision] || decision.toUpperCase();
|
| 881 |
el('govern-verdict-banner').innerHTML = `<div class="verdict-banner ${bannerCls}">${bannerLbl}</div>`;
|
| 882 |
|
| 883 |
-
//
|
| 884 |
const lambdaPass = gov.lambda_pass;
|
| 885 |
el('govern-lambda-row').innerHTML = `
|
| 886 |
<div style="display:flex;align-items:center;gap:10px;flex-wrap:wrap">
|
| 887 |
-
<span style="font-size:14px;font-weight:700">
|
| 888 |
<span class="chip ${lambdaPass ? 'chip-ok' : 'chip-err'}">
|
| 889 |
${lambdaPass ? 'PASS' : 'FAIL'} (floor ${escHTML(String(gov.lambda_floor ?? 0.9))})
|
| 890 |
</span>
|
| 891 |
-
<span class="conj">Conjecture 1
|
| 892 |
</div>
|
| 893 |
<div style="font-size:12px;color:var(--text-dim);margin-top:4px">
|
| 894 |
${escHTML(gov.lambda_kind || 'Conjecture 1 (advisory; NOT a theorem)')}
|
|
@@ -902,9 +902,9 @@ async function runGovern(caseKey) {
|
|
| 902 |
const fired = g.fired;
|
| 903 |
gatesHTML += `
|
| 904 |
<div class="gate-row">
|
| 905 |
-
<span class="gate-name">${escHTML(g.name || '
|
| 906 |
<span class="gate-fired ${fired ? 'chip chip-err' : 'chip chip-ok'}">${fired ? 'FIRED' : 'PASS'}</span>
|
| 907 |
-
<span class="chip chip-dim">${escHTML(g.decision || '
|
| 908 |
</div>`;
|
| 909 |
});
|
| 910 |
el('govern-gates').innerHTML = gatesHTML;
|
|
@@ -918,8 +918,8 @@ async function runGovern(caseKey) {
|
|
| 918 |
lambda: receipt.lambda,
|
| 919 |
lambda_kind: receipt.lambda_kind,
|
| 920 |
gates: receipt.gates,
|
| 921 |
-
prev: String(chain.prev || '').substring(0,32) + '
|
| 922 |
-
digest: String(chain.digest || '').substring(0,32) + '
|
| 923 |
'dsse.signed': signed,
|
| 924 |
'dsse.keyid': ((dsse.signatures||[])[0]||{}).keyid,
|
| 925 |
honesty: data.honesty,
|
|
@@ -932,17 +932,17 @@ async function runGovern(caseKey) {
|
|
| 932 |
}
|
| 933 |
|
| 934 |
show('govern-panel');
|
| 935 |
-
setStatus('govern-status', `Decision: ${decision.toUpperCase()}
|
| 936 |
}
|
| 937 |
|
| 938 |
/* ====================================================================
|
| 939 |
-
SECTION C
|
| 940 |
==================================================================== */
|
| 941 |
async function loadThesis() {
|
| 942 |
const btn = el('thesis-load');
|
| 943 |
btn.disabled = true;
|
| 944 |
hide('thesis-panel');
|
| 945 |
-
setStatus('thesis-status', 'Loading /api/a11oy/v1/demo/thesis
|
| 946 |
|
| 947 |
let data;
|
| 948 |
try {
|
|
@@ -973,7 +973,7 @@ async function loadThesis() {
|
|
| 973 |
});
|
| 974 |
corpusHTML += `</div>`;
|
| 975 |
corpusHTML += `<div class="corpus-never-claim">
|
| 976 |
-
|
| 977 |
</div>`;
|
| 978 |
el('thesis-corpus').innerHTML = corpusHTML;
|
| 979 |
|
|
@@ -988,7 +988,7 @@ async function loadThesis() {
|
|
| 988 |
</div>
|
| 989 |
<div class="formula-lean">${escHTML(f.lean)}</div>
|
| 990 |
<div class="formula-desc">${escHTML(f.description)}</div>
|
| 991 |
-
<div class="formula-status">
|
| 992 |
</div>`;
|
| 993 |
});
|
| 994 |
el('thesis-formulas').innerHTML = formulasHTML;
|
|
@@ -1000,14 +1000,14 @@ async function loadThesis() {
|
|
| 1000 |
</div>
|
| 1001 |
<div style="display:flex;gap:14px;flex-wrap:wrap">
|
| 1002 |
<div style="flex:1;min-width:220px;background:var(--bg-panel);border:1px solid #92400e;border-radius:var(--radius);padding:14px">
|
| 1003 |
-
<div style="font-size:11px;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px">Conjecture 1
|
| 1004 |
<div style="font-size:13px;color:var(--text-dim)">${escHTML(doctrine.lambda_kind || 'Conjecture 1 (advisory; NOT a theorem)')}</div>
|
| 1005 |
<div style="font-size:12px;color:var(--text-mute);margin-top:6px">Open bounty: szl-holdings/lambda-bounty</div>
|
| 1006 |
</div>
|
| 1007 |
<div style="flex:1;min-width:220px;background:var(--bg-panel);border:1px solid #991b1b;border-radius:var(--radius);padding:14px">
|
| 1008 |
-
<div style="font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px">Conjecture 2
|
| 1009 |
<div style="font-size:13px;color:var(--text-dim)">${escHTML(doctrine.bft_kind || 'Conjecture 2 (NOT proven; NOT a theorem)')}</div>
|
| 1010 |
-
<div style="font-size:12px;color:var(--text-mute);margin-top:6px">Labeled honestly everywhere
|
| 1011 |
</div>
|
| 1012 |
</div>
|
| 1013 |
<div style="margin-top:14px;font-size:12px;color:var(--text-dim)">
|
|
@@ -1016,12 +1016,12 @@ async function loadThesis() {
|
|
| 1016 |
`;
|
| 1017 |
|
| 1018 |
show('thesis-panel');
|
| 1019 |
-
setStatus('thesis-status', `Loaded ${formulas.length} proven formulas
|
| 1020 |
btn.disabled = false;
|
| 1021 |
}
|
| 1022 |
|
| 1023 |
/* ====================================================================
|
| 1024 |
-
SECTION D
|
| 1025 |
In-browser: hash-chain linkage check. Offline: signatures via szl-receipt.
|
| 1026 |
==================================================================== */
|
| 1027 |
const LEDGER_SNAPSHOT = {"source": "https://huggingface.co/datasets/SZLHOLDINGS/szl-lake", "captured_utc": "2026-07-02", "lutar_lean": [{"branch": "theorem-u-kernel", "chain_index": 1, "doctrine": "v11", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated. Theorem U does NOT close it.", "doctrine": "v11", "locked_five_unchanged": true, "locked_set": ["F1", "F11", "F12", "F18", "F19"], "theorem_u": "REAL-conditional: Lutar.Uniqueness Theorem U is kernel-verified (axiom footprint within the Lean/Mathlib trust base, no sorry) but CONDITIONAL on its stated checkable hypotheses; it is NOT part of the locked-proven baseline."}, "kernel_commit": "e736decd244ae06e8bb48531c6c7dc0f1029b25a", "kernel_commit_short": "e736decd244a", "kind": "theorem-u-anchor", "lambda_status": "Conjecture_1 (OPEN; unconditional uniqueness machine-checked FALSE)", "numbers": {"axioms_unique": 22, "declarations": 1323, "sorries_noncomment": 254}, "organ": "lutar-lean", "prev_hash": null, "receipt_id": "d70f444db57df9a4a2d52e69408ce61b511e4b50152f7fbf97456b1af66fe9a0", "schema": "szl.khipu.receipt/v1", "signing": {"format": "sigstore-keyless-bundle", "bytes": 18428, "b64_head": "eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGV2\u2026"}, "source_run": {"conclusion": "success", "id": "27186151340", "url": "https://github.com/szl-holdings/lutar-lean/actions/runs/27186151340", "workflow": "Lake build (gate + numbers)"}, "subject": {"name": "theorem_u_snapshot.json", "sha256": "82d08a4e892579e815d880d51f61cb8035a3325e077c29e412f310f76b50985e", "snapshot": {"branch": "theorem-u-kernel", "built_at_utc": "2026-06-09T05:37:45Z", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated. Theorem U does NOT close it.", "doctrine": "v11", "locked_five_unchanged": true, "locked_set": ["F1", "F11", "F12", "F18", "F19"], "theorem_u": "REAL-conditional: Lutar.Uniqueness Theorem U is kernel-verified (axiom footprint within the Lean/Mathlib trust base, no sorry) but CONDITIONAL on its stated checkable hypotheses; it is NOT part of the locked-proven baseline."}, "kernel_commit": "e736decd244ae06e8bb48531c6c7dc0f1029b25a", "kernel_commit_short": "e736decd244a", "lean_numbers": {"lean_numbers_sha256": "50098073e92aefdf275ec53e60faafc0f1bd5d4a1a88023e819490aaaa69d4d6", "numbers": {"axiom_names": ["A6'_block_consistent", "KS_theorem_1_1", "MomentSubGaussian", "audit_reidemeister_invariance", "canonicalReceipt", "chromotopology_code_bijection", "compression_collision_resistant", "domain_separation", "gleason_length_mod_8", "klDivergence_nonneg", "lambda_schur_concave_n_axis", "lambda_stationary_unique", "leaf_collision_resistant", "liu_hui_pi_converges", "node_collision_resistant", "pinsker", "r1_invariance", "r2_invariance", "setAlpha_cauchy", "setDelta_stage2", "sha256", "sha256_collision_resistant"], "axioms_raw": 23, "axioms_unique": 22, "declarations": 1323, "sorries_baseline": 251, "sorries_noncomment": 254, "sorries_putnam": 56, "sorries_raw": 307}, "reference_vectors_sha256": "857967629daf5e5c45a167306ea0e0091569a29766b01ac91bef15a539b816dc", "replay_hash": "9860c3332a2d0b0553b775dcd27111b0ce4fae4bc5cebe2827dc6148be4cbebe", "schema": "szl.lean_numbers/v1"}, "repo": "szl-holdings/lutar-lean", "schema": "szl.theorem_u.snapshot/v1", "theorem_u": {"decl_source_sha256": {"Lutar/Uniqueness/AxiomCheck.lean": "f45781ef2becf15eccd0c31702603a55cfab1eb7960483593a045202b66f4887", "Lutar/Uniqueness/Identifiability.lean": "fa340e6a999eac7ea1cd035d90647548baaa290b7376d7fcbdcbd165e475dedf", "Lutar/Uniqueness/LambdaEquiv.lean": "03f63e36f3a9b19e8e9d4f48313a450bae7c85fcb53049d52e0f6d4adf4b1c23", "Lutar/Uniqueness/TheoremU.lean": "c958520ba31d6fc1f48a9b49871d67812f178e168b31bf2be9e3d5fb2061386c"}, "full_axiom_footprint": {"Lutar.Uniqueness.AxiomCheck.conjecture1_still_open": [], "Lutar.Uniqueness.AxiomCheck.locked_count_five": [], "Lutar.Uniqueness.AxiomCheck.theoremU_axiom_sets_kernel_only": [], "Lutar.Uniqueness.AxiomCheck.theoremU_excluded_from_locked": [], "Lutar.Uniqueness.CorollaryU1_LambdaUnique_Separable": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.CorollaryU2_LambdaUnique_Factors": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique_eq": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.identifiability_forces_lambda": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.lambda_equiv_to_eq_of_anchored": ["Classical.choice", "Quot.sound", "propext"]}, "headline_axiom_footprint": {"CorollaryU1_LambdaUnique_Separable": ["Classical.choice", "Quot.sound", "propext"], "CorollaryU2_LambdaUnique_Factors": ["Classical.choice", "Quot.sound", "propext"], "TheoremU_LambdaUnique": ["Classical.choice", "Quot.sound", "propext"], "TheoremU_LambdaUnique_eq": ["Classical.choice", "Quot.sound", "propext"], "identifiability_forces_lambda": ["Classical.choice", "Quot.sound", "propext"], "lambda_equiv_to_eq_of_anchored": ["Classical.choice", "Quot.sound", "propext"]}, "headline_decls": ["CorollaryU1_LambdaUnique_Separable", "CorollaryU2_LambdaUnique_Factors", "TheoremU_LambdaUnique", "TheoremU_LambdaUnique_eq", "identifiability_forces_lambda", "lambda_equiv_to_eq_of_anchored"], "kernel_only": true, "kernel_trust_base": ["Classical.choice", "Quot.sound", "funext", "propext"], "module": "Lutar.Uniqueness", "status": "REAL-conditional"}}}, "theorem_u_status": "REAL-conditional", "timestamp": "2026-06-09T05:39:22Z"}, {"branch": "main", "chain_index": 2, "doctrine": "v11", "honesty": {"conjecture": "This is a GENERATED, OPEN conjecture \u2014 NOT a theorem and NOT machine-verified. It remains OPEN until a solution is independently verified.", "difficulty": "Difficulty 'open-resistant' / grade 'OPEN' come from a REAL bounded solver run. OPEN means searched-to-budget, not proven true; VERIFIED-FINITE certifies only the finite enumerated domain; REFUTED carries a concrete witness. No score is fabricated.", "doctrine": "v11", "kernel_only": false, "novelty": "Novelty verdict 'novel-candidate' is an advisory screen, not a proof of originality; external prior-art sources are labelled live/cached/unreachable and an unreachable source never confirms novelty.", "signing": "Disclosure is cosign keyless-OIDC signed and anchored into the szl-lake DSSE Khipu ledger; the signature attests the timestamp + content, NOT the truth of the conjecture.", "status": "OPEN"}, "kernel_commit": "d851aefe86b9f12f9d4423200bd9e5257d05c41e", "kernel_commit_short": "d851aefe86b9", "kind": "conjecture-disclosure-anchor", "milestone_kind": "conjecture-disclosure", "milestone_status": "OPEN", "milestone_title": "SZL mixing-map convergence conjecture", "numbers": {"axioms_unique": null, "declarations": null, "sorries_noncomment": null}, "organ": "lutar-lean", "prev_hash": "d70f444db57df9a4a2d52e69408ce61b511e4b50152f7fbf97456b1af66fe9a0", "receipt_id": "08744b67b647039f87abbf0b29587638ae777308ca7fc2434ed3ae4033687b50", "schema": "szl.khipu.receipt/v1", "signing": {"format": "sigstore-keyless-bundle", "bytes": 17488, "b64_head": "eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGV2\u2026"}, "source_run": {"conclusion": "success", "id": "27318564784", "url": "https://github.com/szl-holdings/lutar-lean/actions/runs/27318564784", "workflow": "Conjecture Factory (generate -> timestamp -> grade -> anchor)"}, "subject": {"name": "conjecture_snapshot.json", "sha256": "7faded7df9ac5bea4ca7ddaa1e5c38c247c237fd49b8a1a39d35a260c2189fb0", "snapshot": {"branch": "main", "built_at_utc": "2026-06-11T01:54:20Z", "candidate": {"created_utc": "2026-06-11T01:54:19Z", "doctrine": "v11", "domain": "number-theory / arithmetic dynamics", "id": "cf-5ddbbe7571a9", "intended_solution_outline": "Bound the orbit by a Lyapunov / drift argument on the 2-adic valuation: show the\ncontracting branch (n = 3 mod 4) dominates the accelerating branch (n = 1 mod 4)\nin expectation, then rule out non-trivial cycles via a residue-class descent.\nStatus: OPEN \u2014 no proof is claimed; the predicate only performs bounded testing.", "predicate": {"description": "Sound bounded-orbit checker: returns False only on a detected non-1 cycle (a certain counterexample); inconclusive bounded runs assert no counterexample.", "entry": "holds", "kind": "python-callable", "module": "conjectures/samples/szl-mixing-map/predicate.py"}, "references": ["conjectures/corpus/collatz.md (related but distinct: classical 3n+1 map)", "Lagarias, J. (2010). The 3x+1 problem: an annotated bibliography."], "schema": "szl.conjecture.candidate/v1", "statement": "Define M : Z+ -> Z+ by\n M(n) = n / 2 if n is even,\n M(n) = (3n + 1) / 2 if n is odd and n = 1 (mod 4),\n M(n) = (n + 1) / 2 if n is odd and n = 3 (mod 4).\nConjecture: for every integer n >= 1 there exists k >= 0 with M^k(n) = 1.", "statement_canonical": "Define M : Z+ -> Z+ by M(n) = n / 2 if n is even, M(n) = (3n + 1) / 2 if n is odd and n = 1 (mod 4), M(n) = (n + 1) / 2 if n is odd and n = 3 (mod 4). Conjecture: for every integer n >= 1 there exists k >= 0 with M^k(n) = 1.", "statement_hash": "sha256:5ddbbe7571a93f9ed3d49c37dbb3559eb339a51380e427882bd3783b7cb2743a", "taxonomy": "OPEN", "title": "SZL mixing-map convergence conjecture"}, "grade": {"budget": 100000, "candidate_id": "cf-5ddbbe7571a9", "difficulty": "open-resistant", "graded_utc": "2026-06-11T01:54:20Z", "honesty": "Grade from a REAL ensemble run. REFUTED carries a concrete witness. VERIFIED-FINITE certifies only the finite enumerated domain, not the conjecture in general. OPEN means searched-to-budget with no counterexample \u2014 NOT a proof of truth. The candidate stays OPEN (doctrine v11).", "result": "OPEN", "schema": "szl.conjecture.grade/v1", "seed": 1729, "solver_ensemble": [{"budget": 100000, "checked": 100000, "elapsed_sec": 0.411268, "note": "infinite/streaming domain", "resolved": false, "result": "OPEN", "solver": "exhaustive", "witness": null}, {"budget": 100000, "checked": 100000, "elapsed_sec": 0.654207, "note": "random sampling found no counterexample (not a proof)", "resolved": false, "result": "OPEN", "solver": "sampler", "witness": null}], "success_rate": 0.0, "witness": null}, "honesty": {"conjecture": "This is a GENERATED, OPEN conjecture \u2014 NOT a theorem and NOT machine-verified. It remains OPEN until a solution is independently verified.", "difficulty": "Difficulty 'open-resistant' / grade 'OPEN' come from a REAL bounded solver run. OPEN means searched-to-budget, not proven true; VERIFIED-FINITE certifies only the finite enumerated domain; REFUTED carries a concrete witness. No score is fabricated.", "doctrine": "v11", "kernel_only": false, "novelty": "Novelty verdict 'novel-candidate' is an advisory screen, not a proof of originality; external prior-art sources are labelled live/cached/unreachable and an unreachable source never confirms novelty.", "signing": "Disclosure is cosign keyless-OIDC signed and anchored into the szl-lake DSSE Khipu ledger; the signature attests the timestamp + content, NOT the truth of the conjecture.", "status": "OPEN"}, "kernel_commit": "d851aefe86b9f12f9d4423200bd9e5257d05c41e", "kernel_commit_short": "d851aefe86b9", "kind": "conjecture-disclosure", "milestone": {"difficulty": "open-resistant", "grade_result": "OPEN", "headline_decls": [], "id": "cf-5ddbbe7571a9", "kernel_only": false, "novelty_verdict": "novel-candidate", "release_stage": "statement", "statement_hash": "sha256:5ddbbe7571a93f9ed3d49c37dbb3559eb339a51380e427882bd3783b7cb2743a", "status": "OPEN", "title": "SZL mixing-map convergence conjecture"}, "novelty": {"candidate_id": "cf-5ddbbe7571a9", "external": [{"hits": 0, "note": "offline run (--online not set)", "source": "arxiv", "status": "unreachable", "top": []}, {"hits": 0, "note": "offline run (--online not set)", "source": "crossref", "status": "unreachable", "top": []}], "honesty": "Novelty is a screen, not a proof of originality. External sources are labelled live/cached/unreachable; an unreachable source contributes no hits and is never silently treated as confirming novelty. The candidate stays OPEN regardless of this verdict (doctrine v11).", "local_corpus": {"corpus_dir": "conjectures/corpus", "documents_scanned": 2, "max_similarity": 0.0688, "method": "char-5-gram shingle Jaccard", "near_duplicate": false, "nearest": {"doc": "collatz.md", "similarity": 0.0688}, "threshold": 0.8, "top": [{"doc": "collatz.md", "similarity": 0.0688}, {"doc": "goldbach.md", "similarity": 0.0451}]}, "schema": "szl.conjecture.novelty/v1", "screened_utc": "2026-06-11T01:54:19Z", "statement_hash": "sha256:5ddbbe7571a93f9ed3d49c37dbb3559eb339a51380e427882bd3783b7cb2743a", "verdict": "novel-candidate", "verdict_reason": "no near-duplicate found (local-only; external prior-art not fully screened \u2014 unreachable: ['arxiv', 'crossref'])"}, "predicate_type": "https://szl-holdings/conjecture-disclosure/v1", "repo": "szl-holdings/lutar-lean", "schema": "szl.conjecture.disclosure/v1"}}, "timestamp": "2026-06-11T01:54:27Z"}, {"branch": "main", "chain_index": 3, "doctrine": "v11", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated; conjecture1_still_open re-asserts it stays open.", "doctrine": "v11", "locked_baseline": "REAL-invariant: kernel-verified meta-theorems in Lutar/Uniqueness/AxiomCheck.lean (locked_count_eight, theoremU_excluded_from_locked, theoremU_axiom_sets_kernel_only, conjecture1_still_open) \u2014 each proven by `decide`, axiom footprint within the Lean/Mathlib trust base, no sorry. They ASSERT that the locked-proven baseline is EXACTLY the eight {F1,F4,F7,F11,F12,F18,F19,F22}; they do NOT themselves re-prove those formulas (the formula proofs live in Lutar/Puriq/Formulas/ProvedFormulas.lean).", "locked_set": ["F1", "F4", "F7", "F11", "F12", "F18", "F19", "F22"], "theorem_u": "Theorem U stays REAL-conditional and EXCLUDED from this locked baseline (theoremU_excluded_from_locked); anchoring this milestone does not change Theorem U's status."}, "kernel_commit": "25e0b2af781f5fb10324945ea10c861bcc28cc83", "kernel_commit_short": "25e0b2af781f", "kind": "locked-baseline-anchor", "milestone_kind": "locked-baseline", "milestone_status": "REAL-invariant", "milestone_title": "Locked-proven baseline (Doctrine v11) \u2014 kernel meta-invariants", "numbers": {"axioms_unique": 22, "declarations": 1323, "sorries_noncomment": 254}, "organ": "lutar-lean", "prev_hash": "08744b67b647039f87abbf0b29587638ae777308ca7fc2434ed3ae4033687b50", "receipt_id": "dcdad01763241e4d7af6b45e59949e6596c12ccf43ed6b784471c1f05b4715c0", "schema": "szl.khipu.receipt/v1", "signing": {"format": "sigstore-keyless-bundle", "bytes": 19036, "b64_head": "eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGV2\u2026"}, "source_run": {"conclusion": "success", "id": "27319352318", "url": "https://github.com/szl-holdings/lutar-lean/actions/runs/27319352318", "workflow": "Lake build (gate + numbers)"}, "subject": {"name": "locked_baseline_snapshot.json", "sha256": "19ea5946195f7437cfb881eb5489898d0d45f5f074dfa210c22eb6c8bbfc3bc9", "snapshot": {"branch": "main", "built_at_utc": "2026-06-11T02:18:27Z", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated; conjecture1_still_open re-asserts it stays open.", "doctrine": "v11", "locked_baseline": "REAL-invariant: kernel-verified meta-theorems in Lutar/Uniqueness/AxiomCheck.lean (locked_count_eight, theoremU_excluded_from_locked, theoremU_axiom_sets_kernel_only, conjecture1_still_open) \u2014 each proven by `decide`, axiom footprint within the Lean/Mathlib trust base, no sorry. They ASSERT that the locked-proven baseline is EXACTLY the eight {F1,F4,F7,F11,F12,F18,F19,F22}; they do NOT themselves re-prove those formulas (the formula proofs live in Lutar/Puriq/Formulas/ProvedFormulas.lean).", "locked_set": ["F1", "F4", "F7", "F11", "F12", "F18", "F19", "F22"], "theorem_u": "Theorem U stays REAL-conditional and EXCLUDED from this locked baseline (theoremU_excluded_from_locked); anchoring this milestone does not change Theorem U's status."}, "kernel_commit": "25e0b2af781f5fb10324945ea10c861bcc28cc83", "kernel_commit_short": "25e0b2af781f", "kind": "locked-baseline", "lean_numbers": {"lean_numbers_sha256": "38f9a69cb289110e44ffa9bc4a8575d811220c4654a7985b85694d6f1bb3f7f9", "numbers": {"axiom_names": ["A6'_block_consistent", "KS_theorem_1_1", "MomentSubGaussian", "audit_reidemeister_invariance", "canonicalReceipt", "chromotopology_code_bijection", "compression_collision_resistant", "domain_separation", "gleason_length_mod_8", "klDivergence_nonneg", "lambda_schur_concave_n_axis", "lambda_stationary_unique", "leaf_collision_resistant", "liu_hui_pi_converges", "node_collision_resistant", "pinsker", "r1_invariance", "r2_invariance", "setAlpha_cauchy", "setDelta_stage2", "sha256", "sha256_collision_resistant"], "axioms_raw": 23, "axioms_unique": 22, "declarations": 1323, "sorries_baseline": 251, "sorries_noncomment": 254, "sorries_putnam": 56, "sorries_raw": 307}, "reference_vectors_sha256": "857967629daf5e5c45a167306ea0e0091569a29766b01ac91bef15a539b816dc", "replay_hash": "1f0c9d9938b96b3d56fe01e37b955e1b91ff1aec0610fe30c30e515cc8ab469c", "schema": "szl.lean_numbers/v1"}, "milestone": {"decl_source_sha256": {"Lutar/Uniqueness/AxiomCheck.lean": "5e7998d33a1928c12f2e07595ec929544ac04e37f17ad7693ab2838136ab540f", "Lutar/Uniqueness/Identifiability.lean": "fa340e6a999eac7ea1cd035d90647548baaa290b7376d7fcbdcbd165e475dedf", "Lutar/Uniqueness/LambdaEquiv.lean": "03f63e36f3a9b19e8e9d4f48313a450bae7c85fcb53049d52e0f6d4adf4b1c23", "Lutar/Uniqueness/TheoremU.lean": "c958520ba31d6fc1f48a9b49871d67812f178e168b31bf2be9e3d5fb2061386c"}, "full_axiom_footprint": {"Lutar.Uniqueness.AxiomCheck.conjecture1_still_open": [], "Lutar.Uniqueness.AxiomCheck.locked_count_eight": [], "Lutar.Uniqueness.AxiomCheck.theoremU_axiom_sets_kernel_only": [], "Lutar.Uniqueness.AxiomCheck.theoremU_excluded_from_locked": [], "Lutar.Uniqueness.CorollaryU1_LambdaUnique_Separable": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.CorollaryU2_LambdaUnique_Factors": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique_eq": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.identifiability_forces_lambda": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.lambda_equiv_to_eq_of_anchored": ["Classical.choice", "Quot.sound", "propext"]}, "headline_axiom_footprint": {"conjecture1_still_open": [], "locked_count_eight": [], "theoremU_axiom_sets_kernel_only": [], "theoremU_excluded_from_locked": []}, "headline_decls": ["conjecture1_still_open", "locked_count_eight", "theoremU_axiom_sets_kernel_only", "theoremU_excluded_from_locked"], "id": "locked-baseline", "kernel_only": true, "kernel_trust_base": ["Classical.choice", "Quot.sound", "funext", "propext"], "module": "Lutar.Uniqueness.AxiomCheck", "status": "REAL-invariant", "title": "Locked-proven baseline (Doctrine v11) \u2014 kernel meta-invariants"}, "repo": "szl-holdings/lutar-lean", "schema": "szl.proof.snapshot/v1"}}, "timestamp": "2026-06-11T02:20:21Z"}], "amaru": [{"receipt_id": "4c9c3f2b8d6452d9bc0e9a9144fc9e1743b3ca76544a988d4d9e4b39df87ba73", "timestamp": "2026-06-02T02:13:07.827680+00:00", "organ": "amaru", "kind": "tick", "index": 0, "lambda": 0.9, "lambda_pass": true, "predicted_hash": "", "actual_hash": "4c9c3f2b8d6452d9bc0e9a9144fc9e1743b3ca76544a988d4d9e4b39df87ba73", "delta": 0.0, "lutar_anchor": "c7c0ba17", "doctrine": "v11", "decl": 749, "axioms": 14, "sorries": 163, "neuro_citations": "[]", "dsse_payload_type": "application/vnd.szl.khipu+json", "dsse_pae_sha256": "6a8ba013ddcd1938e0fc2174ef79287ca49266277b0195595f324dacb9eb02c9", "dsse_sig": "MEQCIBIZjd6T0E4Bhl0OGkhcMZmAuqmnN0ZxmWrL+7U/h31JAiAmF2U1DBEQieaDrFkHcjBcOW91PY1glK0X+/2EKprpVQ==", "dsse_keyid": "szlholdings-cosign", "dsse_signed": true, "verify_key_url": "https://github.com/szl-holdings/.github/blob/main/cosign.pub"}, {"receipt_id": "bc4d6a1629c01584eb6789d19a432fbc9448ce92ada8d47e14552fe94dee9fa1", "timestamp": "2026-06-02T02:13:08.490579+00:00", "organ": "amaru", "kind": "tick", "index": 1, "lambda": 0.9, "lambda_pass": true, "predicted_hash": "4c9c3f2b8d6452d9bc0e9a9144fc9e1743b3ca76544a988d4d9e4b39df87ba73", "actual_hash": "bc4d6a1629c01584eb6789d19a432fbc9448ce92ada8d47e14552fe94dee9fa1", "delta": 0.0, "lutar_anchor": "c7c0ba17", "doctrine": "v11", "decl": 749, "axioms": 14, "sorries": 163, "neuro_citations": "[]", "dsse_payload_type": "application/vnd.szl.khipu+json", "dsse_pae_sha256": "3cb923bc57002b34cd52124601bfbeeff68c6232e598dd06eccb4ff2847f1371", "dsse_sig": "MEUCIQDBB4xUJMFm4YKcZ0mcz6n3q6XomOKEepJWmaplX9Xo0gIgUIg3Xm316oVN05pvIoNxhJBDyL6Vhp1xfEq9nx9V5Wg=", "dsse_keyid": "szlholdings-cosign", "dsse_signed": true, "verify_key_url": "https://github.com/szl-holdings/.github/blob/main/cosign.pub"}, {"receipt_id": "2f872c5144585602dd1016ce732912134ad30423e442fda009cdc0d168c6732d", "timestamp": "2026-06-02T02:13:09.173270+00:00", "organ": "amaru", "kind": "tick", "index": 2, "lambda": 0.9, "lambda_pass": true, "predicted_hash": "bc4d6a1629c01584eb6789d19a432fbc9448ce92ada8d47e14552fe94dee9fa1", "actual_hash": "2f872c5144585602dd1016ce732912134ad30423e442fda009cdc0d168c6732d", "delta": 0.0, "lutar_anchor": "c7c0ba17", "doctrine": "v11", "decl": 749, "axioms": 14, "sorries": 163, "neuro_citations": "[]", "dsse_payload_type": "application/vnd.szl.khipu+json", "dsse_pae_sha256": "f72e37f1ea8d785d862ec7469d3908fc7b455360964d6cdea61e430d89b3e66d", "dsse_sig": "MEYCIQDvfS5l1nyk5zHz9wsNwe/wj6ZPNAMbbJ4KzMG2ZXEQkwIhAJ4mkTOAnOdNWFb2SuweFbQnjP0QPORGAA/IU8sHB+X5", "dsse_keyid": "szlholdings-cosign", "dsse_signed": true, "verify_key_url": "https://github.com/szl-holdings/.github/blob/main/cosign.pub"}]};
|
|
@@ -1029,7 +1029,7 @@ const LEDGER_SNAPSHOT = {"source": "https://huggingface.co/datasets/SZLHOLDINGS/
|
|
| 1029 |
function renderLedger() {
|
| 1030 |
const btn = el('ledger-load');
|
| 1031 |
btn.disabled = true;
|
| 1032 |
-
setStatus('ledger-status', 'Checking hash-chain linkage in-browser
|
| 1033 |
|
| 1034 |
const lut = LEDGER_SNAPSHOT.lutar_lean || [];
|
| 1035 |
const ama = LEDGER_SNAPSHOT.amaru || [];
|
|
@@ -1045,7 +1045,7 @@ function renderLedger() {
|
|
| 1045 |
});
|
| 1046 |
const intact = broken === 0;
|
| 1047 |
let chainHTML = '<div class="verdict-banner ' + (intact ? 'verdict-ok' : 'verdict-fail') + '">'
|
| 1048 |
-
+ (intact ? '
|
| 1049 |
+ ' hash-links verified in your browser <span class="chip chip-dim">organ: lutar-lean</span></div>'
|
| 1050 |
+ '<div style="font-size:12px;color:var(--text-dim);margin-bottom:8px">Each receipt\'s <code>prev_hash</code> '
|
| 1051 |
+ 'is compared to the previous receipt\'s <code>receipt_id</code>. This proves append-only ordering. '
|
|
@@ -1053,8 +1053,8 @@ function renderLedger() {
|
|
| 1053 |
rows.forEach(({ r, i, prev, ok }) => {
|
| 1054 |
chainHTML += '<div class="hash-row"><span class="hash-label">#' + escHTML(String(r.chain_index)) + ' '
|
| 1055 |
+ escHTML(r.kind || '') + '</span><span class="hash-val">id ' + escHTML(String(r.receipt_id).substring(0,16))
|
| 1056 |
-
+ '
|
| 1057 |
-
+ escHTML(prev == null ? '(genesis)' : String(prev).substring(0,16) + '
|
| 1058 |
+ '<span class="chip ' + (ok ? 'chip-ok' : 'chip-err') + '">' + (ok ? 'LINK OK' : 'BROKEN') + '</span></div>';
|
| 1059 |
});
|
| 1060 |
el('ledger-chain').innerHTML = chainHTML;
|
|
@@ -1075,41 +1075,40 @@ function renderLedger() {
|
|
| 1075 |
+ '<span class="formula-id">lutar-lean</span><span class="formula-name">' + escHTML(r.kind || 'receipt') + '</span>'
|
| 1076 |
+ '<span class="chip chip-dim">schema ' + escHTML(r.schema || '') + '</span></div>'
|
| 1077 |
+ '<div class="hash-row"><span class="hash-label">receipt_id</span><span class="hash-val">'
|
| 1078 |
-
+ escHTML(String(r.receipt_id).substring(0,40)) + '
|
| 1079 |
+ (r.numbers ? '<div style="font-size:12px;color:var(--text-dim);margin:6px 0">declarations '
|
| 1080 |
-
+ escHTML(String(r.numbers.declarations)) + '
|
| 1081 |
-
+ '
|
| 1082 |
+ escHTML(String(r.kernel_commit_short || '')) + '</div>' : '')
|
| 1083 |
+ '<div style="margin:8px 0">' + honestyHTML + '</div>'
|
| 1084 |
-
+ '<div style="font-size:12px;color:var(--text-mute)">signing: ' + escHTML(sg.format || '
|
| 1085 |
+ (sg.bytes ? ' (' + escHTML(String(sg.bytes)) + ' bytes)' : '') + '</div>'
|
| 1086 |
-
+ '<div style="margin-top:8px;font-size:12px"><a href="' + hfBase + 'lutar_lean_receipts.ndjson" target="_blank" rel="noopener">Canonical rows on Hugging Face
|
| 1087 |
-
+ '
|
| 1088 |
});
|
| 1089 |
ama.forEach(r => {
|
| 1090 |
cardsHTML += '<div class="formula-card"><div class="formula-card-head">'
|
| 1091 |
+ '<span class="formula-id">amaru</span><span class="formula-name">' + escHTML(r.kind || 'tick') + '</span>'
|
| 1092 |
-
+ '<span class="chip ' + (r.lambda_pass ? 'chip-ok' : 'chip-err') + '">
|
| 1093 |
-
+ (r.lambda_pass ? 'PASS' : 'FAIL') + '</span><span class="conj">Conjecture 1
|
| 1094 |
+ '<div class="hash-row"><span class="hash-label">receipt_id</span><span class="hash-val">'
|
| 1095 |
-
+ escHTML(String(r.receipt_id).substring(0,40)) + '
|
| 1096 |
+ '<div style="font-size:12px;color:var(--text-dim);margin:6px 0">doctrine ' + escHTML(String(r.doctrine))
|
| 1097 |
-
+ '
|
| 1098 |
-
+ escHTML(String(r.sorries)) + '
|
| 1099 |
-
+ '<div style="font-size:12px;color:var(--text-mute)">DSSE ' + (r.dsse_signed ? 'signed
|
| 1100 |
-
+ '
|
| 1101 |
-
+ '<div style="margin-top:8px;font-size:12px"><a href="' + hfBase + 'amaru_receipts.ndjson" target="_blank" rel="noopener">Canonical rows on Hugging Face
|
| 1102 |
-
+ '
|
| 1103 |
});
|
| 1104 |
el('ledger-cards').innerHTML = cardsHTML;
|
| 1105 |
|
| 1106 |
show('ledger-panel');
|
| 1107 |
setStatus('ledger-status', 'Chain: ' + (intact ? 'INTACT' : 'BROKEN') + ' (' + links + '/' + lut.length
|
| 1108 |
-
+ ' links)
|
| 1109 |
btn.disabled = false;
|
| 1110 |
}
|
| 1111 |
</script>
|
| 1112 |
|
| 1113 |
</body>
|
| 1114 |
</html>
|
| 1115 |
-
|
|
|
|
| 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" />
|
| 6 |
+
<title>a11oy — Verifiable Inference</title>
|
| 7 |
<style>
|
| 8 |
/* =====================================================================
|
| 9 |
+
a11oy Tier-1 Demo — elite showcase aesthetic
|
| 10 |
+
Dark palette · Cabinet Grotesk / JetBrains Mono · honest-label chips
|
| 11 |
===================================================================== */
|
| 12 |
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,600;1,400&display=swap');
|
| 13 |
|
|
|
|
| 288 |
<circle cx="16" cy="16" r="2.5" fill="#8aaaf8"/>
|
| 289 |
</svg>
|
| 290 |
<span class="site-title">a11oy</span>
|
| 291 |
+
<span class="site-tagline">Governed Inference · Verifiable by Design</span>
|
| 292 |
+
<a href="/" class="nav-back">← Console</a>
|
| 293 |
</header>
|
| 294 |
|
| 295 |
<!-- ===== MAIN ===== -->
|
|
|
|
| 297 |
|
| 298 |
<div class="page-hero">
|
| 299 |
<h1>Verifiable Inference</h1>
|
| 300 |
+
<p>Real, verifiable governance receipts — including our own public ledger. Every receipt is signed and independently verifiable. The honesty is the product.</p>
|
| 301 |
</div>
|
| 302 |
|
| 303 |
<!-- ===================================================================
|
| 304 |
+
SECTION A — Buyer-Verifiable Receipt (BVIR)
|
| 305 |
=================================================================== -->
|
| 306 |
<section class="section" id="section-bvir">
|
| 307 |
<div class="section-head">
|
|
|
|
| 311 |
</h2>
|
| 312 |
<p>
|
| 313 |
Makes a real POST /api/a11oy/v1/govern/infer call, then verifies the DSSE ECDSA-P256
|
| 314 |
+
signature <strong>in-browser</strong> using WebCrypto — no server round-trip for verification.
|
| 315 |
SHA-256 of the decoded payload is recomputed and matched to <code>receipt.payload_digest</code>.
|
| 316 |
</p>
|
| 317 |
<p class="moat-line">
|
|
|
|
| 334 |
</section>
|
| 335 |
|
| 336 |
<!-- ===================================================================
|
| 337 |
+
SECTION B — Λ-Gated Honest Refusal
|
| 338 |
=================================================================== -->
|
| 339 |
<section class="section" id="section-govern">
|
| 340 |
<div class="section-head">
|
| 341 |
<h2>
|
| 342 |
<span class="section-label">B</span>
|
| 343 |
+
Λ-Gated Honest Refusal
|
| 344 |
</h2>
|
| 345 |
<p>
|
| 346 |
Three preset governance cases. Each returns a REAL signed receipt via
|
| 347 |
+
<code>szl_dsse.sign_khipu_receipt</code>. Λ is always labeled
|
| 348 |
+
<span class="conj">Conjecture 1 — advisory, NOT a theorem</span>.
|
| 349 |
</p>
|
| 350 |
+
<p class="moat-line">"Even our refusals are signed and explained — no black-box boolean."</p>
|
| 351 |
</div>
|
| 352 |
<div class="section-body">
|
| 353 |
|
|
|
|
| 372 |
</section>
|
| 373 |
|
| 374 |
<!-- ===================================================================
|
| 375 |
+
SECTION C — Verifiable Thesis
|
| 376 |
=================================================================== -->
|
| 377 |
<section class="section" id="section-thesis">
|
| 378 |
<div class="section-head">
|
|
|
|
| 382 |
</h2>
|
| 383 |
<p>
|
| 384 |
The 8 PROVEN formulas with verbatim Lean 4 statements, the 3-tier honest corpus
|
| 385 |
+
(8 / ~35 / ~185), and the honest conjecture labels for Λ and Khipu BFT.
|
| 386 |
</p>
|
| 387 |
+
<p class="moat-line">"The honesty is the product. Click any formula — verify it yourself."</p>
|
| 388 |
</div>
|
| 389 |
<div class="section-body">
|
| 390 |
|
|
|
|
| 419 |
</section>
|
| 420 |
|
| 421 |
<!-- ===================================================================
|
| 422 |
+
SECTION D — Public Ledger (real receipts from szl-lake)
|
| 423 |
=================================================================== -->
|
| 424 |
<section class="section" id="section-ledger">
|
| 425 |
<div class="section-head">
|
| 426 |
<h2>
|
| 427 |
<span class="section-label">D</span>
|
| 428 |
+
Public Ledger — Real Receipts
|
| 429 |
</h2>
|
| 430 |
<p>
|
| 431 |
Real signed Khipu receipts from our public dataset
|
|
|
|
| 433 |
(snapshot 2026-07-02). This page recomputes the <strong>hash-chain linkage in your browser</strong>;
|
| 434 |
the DSSE / sigstore signatures verify <strong>offline</strong> with the
|
| 435 |
<a href="https://pypi.org/project/szl-receipt/" target="_blank" rel="noopener">szl-receipt</a>
|
| 436 |
+
library and cross-check against the canonical rows on Hugging Face — infrastructure we do not control.
|
| 437 |
</p>
|
| 438 |
+
<p class="moat-line">"The receipts you would read in diligence — including the ones where we mark our own central claim, Λ, still OPEN."</p>
|
| 439 |
</div>
|
| 440 |
<div class="section-body">
|
| 441 |
<div class="btn-row">
|
|
|
|
| 455 |
</main>
|
| 456 |
|
| 457 |
<footer class="footer">
|
| 458 |
+
<p>SZL Holdings · a11oy · Doctrine v11 · 8 kernel-verified formulas @ c7c0ba17 ·
|
| 459 |
+
Λ = Conjecture 1 (advisory) · Khipu BFT = Conjecture 2 ·
|
| 460 |
+
<a href="/govern/health" target="_blank">Governance Health</a> ·
|
| 461 |
<a href="/api/a11oy/v1/demo/thesis" target="_blank">Thesis API</a>
|
| 462 |
</p>
|
| 463 |
</footer>
|
| 464 |
|
| 465 |
<!-- ===================================================================
|
| 466 |
+
JAVASCRIPT — all in-browser, no CDN
|
| 467 |
=================================================================== -->
|
| 468 |
<script>
|
| 469 |
"use strict";
|
|
|
|
| 495 |
|
| 496 |
/* ---- base64 helpers ---- */
|
| 497 |
function b64Decode(s) {
|
| 498 |
+
// standard base64 → Uint8Array (not URL-safe; WebCrypto importKey returns SPKI base64)
|
| 499 |
const bin = atob(s);
|
| 500 |
const b = new Uint8Array(bin.length);
|
| 501 |
for (let i = 0; i < bin.length; i++) b[i] = bin.charCodeAt(i);
|
|
|
|
| 509 |
return btoa(s);
|
| 510 |
}
|
| 511 |
|
| 512 |
+
/* ---- DER ASN.1 → raw r‖s converter (for WebCrypto ECDSA P-256) ----
|
| 513 |
cosign / cryptography-lib ECDSA signs in DER (ASN.1 SEQUENCE { INTEGER r, INTEGER s }).
|
| 514 |
+
WebCrypto ECDSA P-256 SHA-256 expects IEEE P-1363 raw r‖s (64 bytes: 32+32).
|
| 515 |
+
We decode the DER SEQUENCE here entirely in JS — no library needed.
|
| 516 |
*/
|
| 517 |
function derToRaw(derBytes) {
|
| 518 |
let i = 0;
|
|
|
|
| 594 |
}
|
| 595 |
|
| 596 |
/* ====================================================================
|
| 597 |
+
SECTION A — BVIR
|
| 598 |
==================================================================== */
|
| 599 |
async function runBVIR() {
|
| 600 |
const btn = el('bvir-run');
|
| 601 |
btn.disabled = true;
|
| 602 |
hide('bvir-verdict');
|
| 603 |
hide('bvir-output');
|
| 604 |
+
setStatus('bvir-status', 'Calling /api/a11oy/v1/govern/infer …', true);
|
| 605 |
|
| 606 |
let data;
|
| 607 |
try {
|
|
|
|
| 617 |
return;
|
| 618 |
}
|
| 619 |
|
| 620 |
+
setStatus('bvir-status', 'Verifying signature in-browser via WebCrypto …', true);
|
| 621 |
|
| 622 |
const dsse = data.dsse || {};
|
| 623 |
const receipt= data.receipt|| {};
|
|
|
|
| 666 |
let sigKeyid = '';
|
| 667 |
|
| 668 |
if (!dsse.signed) {
|
| 669 |
+
verifyError = 'UNSIGNED envelope — private key not available in this runtime. Receipt chain is still valid.';
|
| 670 |
} else if (sigs.length === 0) {
|
| 671 |
verifyError = 'No signatures in envelope.';
|
| 672 |
} else {
|
|
|
|
| 682 |
try {
|
| 683 |
rawSig = derToRaw(sigBytes);
|
| 684 |
} catch(e2) {
|
| 685 |
+
verifyError = 'DER→raw conversion failed: ' + e2.message;
|
| 686 |
}
|
| 687 |
}
|
| 688 |
|
|
|
|
| 729 |
let verdictHTML = '';
|
| 730 |
if (verified && isDemoKey) {
|
| 731 |
verdictHTML = `<div class="verdict-banner verdict-ok">
|
| 732 |
+
✓ VERIFIED (demo-signing-key — not the production cosign key)
|
| 733 |
<span class="chip chip-ok">keyid: ${escHTML(sigKeyid)}</span>
|
| 734 |
<div style="font-size:12px;font-weight:400;margin-top:6px;color:var(--text-dim)">
|
| 735 |
Real ECDSA-P256 signature, verified in your browser against /demo-cosign.pub.
|
| 736 |
+
This is a clearly-labelled DEMO key — the production cosign key stays
|
| 737 |
founder-gated and is never placed in this runtime.
|
| 738 |
</div>
|
| 739 |
</div>`;
|
| 740 |
} else if (verified) {
|
| 741 |
verdictHTML = `<div class="verdict-banner verdict-ok">
|
| 742 |
+
✓ VERIFIED — WebCrypto ECDSA-P256 signature valid
|
| 743 |
<span class="chip chip-ok">keyid: ${escHTML(sigKeyid)}</span>
|
| 744 |
</div>`;
|
| 745 |
} else if (!dsse.signed) {
|
| 746 |
verdictHTML = `<div class="verdict-banner verdict-dim">
|
| 747 |
+
⚠ UNSIGNED — private key not in runtime; receipt chain still valid
|
| 748 |
</div>`;
|
| 749 |
} else {
|
| 750 |
verdictHTML = `<div class="verdict-banner verdict-fail">
|
| 751 |
+
✗ VERIFICATION FAILED — ${escHTML(verifyError)}
|
| 752 |
</div>`;
|
| 753 |
}
|
| 754 |
|
|
|
|
| 780 |
</div>
|
| 781 |
<div class="hash-row">
|
| 782 |
<span class="hash-label">Payload digest:</span>
|
| 783 |
+
<span class="hash-val ${digestValClass}">${payloadDigestComputed.substring(0,32)}…</span>
|
| 784 |
<span class="chip ${digestChipClass}">${digestChipText}</span>
|
| 785 |
</div>
|
| 786 |
${hasDeclaredDigest ? `<div class="hash-row">
|
| 787 |
<span class="hash-label">Declared digest:</span>
|
| 788 |
+
<span class="hash-val">${escHTML(declaredPayloadDigest.substring(0,32))}…</span>
|
| 789 |
</div>` : `<div class="hash-row">
|
| 790 |
<span class="hash-label">Declared digest:</span>
|
| 791 |
+
<span class="hash-val" style="color:var(--text-dim)">(none declared — nothing to compare against)</span>
|
| 792 |
</div>`}
|
| 793 |
<div class="hash-row">
|
| 794 |
<span class="hash-label">PAE SHA-256:</span>
|
| 795 |
+
<span class="hash-val">${paeSHA.substring(0,32)}…</span>
|
| 796 |
</div>
|
| 797 |
<div class="hash-row">
|
| 798 |
<span class="hash-label">Chain prev:</span>
|
| 799 |
+
<span class="hash-val">${escHTML(String(chainPrev).substring(0,32))}…</span>
|
| 800 |
</div>
|
| 801 |
<div class="hash-row">
|
| 802 |
<span class="hash-label">Chain digest:</span>
|
| 803 |
+
<span class="hash-val">${escHTML(String(chainDigest).substring(0,32))}…</span>
|
| 804 |
</div>
|
| 805 |
</div>
|
| 806 |
<div style="font-size:12px;color:var(--text-dim);margin-bottom:8px">
|
| 807 |
+
<span class="conj">Λ Conjecture 1 — advisory</span>
|
| 808 |
+
Λ = ${escHTML(String((data.governance||{}).lambda ?? 'N/A'))}
|
| 809 |
+
·
|
| 810 |
Energy: <span class="chip chip-dim">${escHTML((data.energy||{}).label || 'UNAVAILABLE')}</span>
|
| 811 |
</div>
|
| 812 |
`;
|
|
|
|
| 819 |
'governance.lambda': (data.governance||{}).lambda,
|
| 820 |
'governance.lambda_kind': (data.governance||{}).lambda_kind,
|
| 821 |
'receipt.seq': receipt.seq,
|
| 822 |
+
'receipt.prev': String(chainPrev).substring(0,32) + '…',
|
| 823 |
+
'receipt.digest': String(chainDigest).substring(0,32) + '…',
|
| 824 |
'dsse.signed': dsse.signed,
|
| 825 |
'dsse.keyid': dsseKeyid || null,
|
| 826 |
+
'dsse.key_kind': isDemoKey ? 'demo (demo-signing-key — NOT production cosign)' : (dsse.signed ? 'production cosign' : null),
|
| 827 |
'dsse.payloadType': dsse.payloadType,
|
| 828 |
'verify.public_key_url': pubKeyURL,
|
| 829 |
+
'verify.computed_payload_sha256': payloadDigestComputed.substring(0,32) + '…',
|
| 830 |
+
'verify.declared_payload_digest': hasDeclaredDigest ? declaredPayloadDigest.substring(0,32) + '…' : null,
|
| 831 |
'verify.payload_digest_match': hasDeclaredDigest ? (payloadDigestMatches ? 'MATCH' : 'MISMATCH') : 'no declared digest to compare',
|
| 832 |
+
'verify.pae_sha256': paeSHA.substring(0,32) + '…',
|
| 833 |
+
'verify.result': verified ? (isDemoKey ? 'VERIFIED ✓ (demo-signing-key — not production cosign)' : 'VERIFIED ✓') : (dsse.signed === false ? 'UNSIGNED (no private key in runtime)' : 'FAILED: ' + verifyError),
|
| 834 |
'energy.label': (data.energy||{}).label,
|
| 835 |
};
|
| 836 |
el('bvir-output').textContent = JSON.stringify(outputData, null, 2);
|
|
|
|
| 839 |
|
| 840 |
setStatus('bvir-status', verified
|
| 841 |
? (isDemoKey
|
| 842 |
+
? '✓ WebCrypto verified — real ECDSA-P256 over DSSE PAE with demo-signing-key (NOT the production cosign key).'
|
| 843 |
+
: '✓ WebCrypto verified — real ECDSA-P256 signature over DSSE PAE.')
|
| 844 |
: (dsse.signed === false
|
| 845 |
? 'Unsigned receipt (private key absent from runtime). Chain valid.'
|
| 846 |
: 'Verification result: ' + verifyError));
|
|
|
|
| 848 |
}
|
| 849 |
|
| 850 |
/* ====================================================================
|
| 851 |
+
SECTION B — Governed Refusal
|
| 852 |
==================================================================== */
|
| 853 |
async function runGovern(caseKey) {
|
| 854 |
hide('govern-panel');
|
| 855 |
+
setStatus('govern-status', `Calling /api/a11oy/v1/demo/govern case="${caseKey}" …`, true);
|
| 856 |
|
| 857 |
let data;
|
| 858 |
try {
|
|
|
|
| 875 |
|
| 876 |
// Verdict banner
|
| 877 |
const decClasses = { allow:'verdict-ok', review:'verdict-dim', deny:'verdict-fail' };
|
| 878 |
+
const decLabels = { allow:'✓ ALLOW — governance passed', review:'⚠ REVIEW — below advisory floor', deny:'✗ DENY — gate fired' };
|
| 879 |
const bannerCls = decClasses[decision] || 'verdict-dim';
|
| 880 |
const bannerLbl = decLabels[decision] || decision.toUpperCase();
|
| 881 |
el('govern-verdict-banner').innerHTML = `<div class="verdict-banner ${bannerCls}">${bannerLbl}</div>`;
|
| 882 |
|
| 883 |
+
// Λ row
|
| 884 |
const lambdaPass = gov.lambda_pass;
|
| 885 |
el('govern-lambda-row').innerHTML = `
|
| 886 |
<div style="display:flex;align-items:center;gap:10px;flex-wrap:wrap">
|
| 887 |
+
<span style="font-size:14px;font-weight:700">Λ = ${escHTML(String(gov.lambda ?? 'N/A'))}</span>
|
| 888 |
<span class="chip ${lambdaPass ? 'chip-ok' : 'chip-err'}">
|
| 889 |
${lambdaPass ? 'PASS' : 'FAIL'} (floor ${escHTML(String(gov.lambda_floor ?? 0.9))})
|
| 890 |
</span>
|
| 891 |
+
<span class="conj">Conjecture 1 — advisory, NOT a theorem</span>
|
| 892 |
</div>
|
| 893 |
<div style="font-size:12px;color:var(--text-dim);margin-top:4px">
|
| 894 |
${escHTML(gov.lambda_kind || 'Conjecture 1 (advisory; NOT a theorem)')}
|
|
|
|
| 902 |
const fired = g.fired;
|
| 903 |
gatesHTML += `
|
| 904 |
<div class="gate-row">
|
| 905 |
+
<span class="gate-name">${escHTML(g.name || '—')}</span>
|
| 906 |
<span class="gate-fired ${fired ? 'chip chip-err' : 'chip chip-ok'}">${fired ? 'FIRED' : 'PASS'}</span>
|
| 907 |
+
<span class="chip chip-dim">${escHTML(g.decision || '—')}</span>
|
| 908 |
</div>`;
|
| 909 |
});
|
| 910 |
el('govern-gates').innerHTML = gatesHTML;
|
|
|
|
| 918 |
lambda: receipt.lambda,
|
| 919 |
lambda_kind: receipt.lambda_kind,
|
| 920 |
gates: receipt.gates,
|
| 921 |
+
prev: String(chain.prev || '').substring(0,32) + '…',
|
| 922 |
+
digest: String(chain.digest || '').substring(0,32) + '…',
|
| 923 |
'dsse.signed': signed,
|
| 924 |
'dsse.keyid': ((dsse.signatures||[])[0]||{}).keyid,
|
| 925 |
honesty: data.honesty,
|
|
|
|
| 932 |
}
|
| 933 |
|
| 934 |
show('govern-panel');
|
| 935 |
+
setStatus('govern-status', `Decision: ${decision.toUpperCase()} · Λ = ${gov.lambda} · ${dsse.signed ? 'Receipt signed ✓' : 'Receipt unsigned (key absent)'}`);
|
| 936 |
}
|
| 937 |
|
| 938 |
/* ====================================================================
|
| 939 |
+
SECTION C — Verifiable Thesis
|
| 940 |
==================================================================== */
|
| 941 |
async function loadThesis() {
|
| 942 |
const btn = el('thesis-load');
|
| 943 |
btn.disabled = true;
|
| 944 |
hide('thesis-panel');
|
| 945 |
+
setStatus('thesis-status', 'Loading /api/a11oy/v1/demo/thesis …', true);
|
| 946 |
|
| 947 |
let data;
|
| 948 |
try {
|
|
|
|
| 973 |
});
|
| 974 |
corpusHTML += `</div>`;
|
| 975 |
corpusHTML += `<div class="corpus-never-claim">
|
| 976 |
+
⚠ ${escHTML(corpus.honest_note || 'We never claim 183 proven.')}
|
| 977 |
</div>`;
|
| 978 |
el('thesis-corpus').innerHTML = corpusHTML;
|
| 979 |
|
|
|
|
| 988 |
</div>
|
| 989 |
<div class="formula-lean">${escHTML(f.lean)}</div>
|
| 990 |
<div class="formula-desc">${escHTML(f.description)}</div>
|
| 991 |
+
<div class="formula-status">✓ ${escHTML(f.status)}</div>
|
| 992 |
</div>`;
|
| 993 |
});
|
| 994 |
el('thesis-formulas').innerHTML = formulasHTML;
|
|
|
|
| 1000 |
</div>
|
| 1001 |
<div style="display:flex;gap:14px;flex-wrap:wrap">
|
| 1002 |
<div style="flex:1;min-width:220px;background:var(--bg-panel);border:1px solid #92400e;border-radius:var(--radius);padding:14px">
|
| 1003 |
+
<div style="font-size:11px;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px">Conjecture 1 — Λ (Lambda)</div>
|
| 1004 |
<div style="font-size:13px;color:var(--text-dim)">${escHTML(doctrine.lambda_kind || 'Conjecture 1 (advisory; NOT a theorem)')}</div>
|
| 1005 |
<div style="font-size:12px;color:var(--text-mute);margin-top:6px">Open bounty: szl-holdings/lambda-bounty</div>
|
| 1006 |
</div>
|
| 1007 |
<div style="flex:1;min-width:220px;background:var(--bg-panel);border:1px solid #991b1b;border-radius:var(--radius);padding:14px">
|
| 1008 |
+
<div style="font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px">Conjecture 2 — Khipu BFT</div>
|
| 1009 |
<div style="font-size:13px;color:var(--text-dim)">${escHTML(doctrine.bft_kind || 'Conjecture 2 (NOT proven; NOT a theorem)')}</div>
|
| 1010 |
+
<div style="font-size:12px;color:var(--text-mute);margin-top:6px">Labeled honestly everywhere — no false safety claim</div>
|
| 1011 |
</div>
|
| 1012 |
</div>
|
| 1013 |
<div style="margin-top:14px;font-size:12px;color:var(--text-dim)">
|
|
|
|
| 1016 |
`;
|
| 1017 |
|
| 1018 |
show('thesis-panel');
|
| 1019 |
+
setStatus('thesis-status', `Loaded ${formulas.length} proven formulas · 3-tier corpus · live doctrine`);
|
| 1020 |
btn.disabled = false;
|
| 1021 |
}
|
| 1022 |
|
| 1023 |
/* ====================================================================
|
| 1024 |
+
SECTION D — Public Ledger (real receipts from szl-lake, snapshot)
|
| 1025 |
In-browser: hash-chain linkage check. Offline: signatures via szl-receipt.
|
| 1026 |
==================================================================== */
|
| 1027 |
const LEDGER_SNAPSHOT = {"source": "https://huggingface.co/datasets/SZLHOLDINGS/szl-lake", "captured_utc": "2026-07-02", "lutar_lean": [{"branch": "theorem-u-kernel", "chain_index": 1, "doctrine": "v11", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated. Theorem U does NOT close it.", "doctrine": "v11", "locked_five_unchanged": true, "locked_set": ["F1", "F11", "F12", "F18", "F19"], "theorem_u": "REAL-conditional: Lutar.Uniqueness Theorem U is kernel-verified (axiom footprint within the Lean/Mathlib trust base, no sorry) but CONDITIONAL on its stated checkable hypotheses; it is NOT part of the locked-proven baseline."}, "kernel_commit": "e736decd244ae06e8bb48531c6c7dc0f1029b25a", "kernel_commit_short": "e736decd244a", "kind": "theorem-u-anchor", "lambda_status": "Conjecture_1 (OPEN; unconditional uniqueness machine-checked FALSE)", "numbers": {"axioms_unique": 22, "declarations": 1323, "sorries_noncomment": 254}, "organ": "lutar-lean", "prev_hash": null, "receipt_id": "d70f444db57df9a4a2d52e69408ce61b511e4b50152f7fbf97456b1af66fe9a0", "schema": "szl.khipu.receipt/v1", "signing": {"format": "sigstore-keyless-bundle", "bytes": 18428, "b64_head": "eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGV2\u2026"}, "source_run": {"conclusion": "success", "id": "27186151340", "url": "https://github.com/szl-holdings/lutar-lean/actions/runs/27186151340", "workflow": "Lake build (gate + numbers)"}, "subject": {"name": "theorem_u_snapshot.json", "sha256": "82d08a4e892579e815d880d51f61cb8035a3325e077c29e412f310f76b50985e", "snapshot": {"branch": "theorem-u-kernel", "built_at_utc": "2026-06-09T05:37:45Z", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated. Theorem U does NOT close it.", "doctrine": "v11", "locked_five_unchanged": true, "locked_set": ["F1", "F11", "F12", "F18", "F19"], "theorem_u": "REAL-conditional: Lutar.Uniqueness Theorem U is kernel-verified (axiom footprint within the Lean/Mathlib trust base, no sorry) but CONDITIONAL on its stated checkable hypotheses; it is NOT part of the locked-proven baseline."}, "kernel_commit": "e736decd244ae06e8bb48531c6c7dc0f1029b25a", "kernel_commit_short": "e736decd244a", "lean_numbers": {"lean_numbers_sha256": "50098073e92aefdf275ec53e60faafc0f1bd5d4a1a88023e819490aaaa69d4d6", "numbers": {"axiom_names": ["A6'_block_consistent", "KS_theorem_1_1", "MomentSubGaussian", "audit_reidemeister_invariance", "canonicalReceipt", "chromotopology_code_bijection", "compression_collision_resistant", "domain_separation", "gleason_length_mod_8", "klDivergence_nonneg", "lambda_schur_concave_n_axis", "lambda_stationary_unique", "leaf_collision_resistant", "liu_hui_pi_converges", "node_collision_resistant", "pinsker", "r1_invariance", "r2_invariance", "setAlpha_cauchy", "setDelta_stage2", "sha256", "sha256_collision_resistant"], "axioms_raw": 23, "axioms_unique": 22, "declarations": 1323, "sorries_baseline": 251, "sorries_noncomment": 254, "sorries_putnam": 56, "sorries_raw": 307}, "reference_vectors_sha256": "857967629daf5e5c45a167306ea0e0091569a29766b01ac91bef15a539b816dc", "replay_hash": "9860c3332a2d0b0553b775dcd27111b0ce4fae4bc5cebe2827dc6148be4cbebe", "schema": "szl.lean_numbers/v1"}, "repo": "szl-holdings/lutar-lean", "schema": "szl.theorem_u.snapshot/v1", "theorem_u": {"decl_source_sha256": {"Lutar/Uniqueness/AxiomCheck.lean": "f45781ef2becf15eccd0c31702603a55cfab1eb7960483593a045202b66f4887", "Lutar/Uniqueness/Identifiability.lean": "fa340e6a999eac7ea1cd035d90647548baaa290b7376d7fcbdcbd165e475dedf", "Lutar/Uniqueness/LambdaEquiv.lean": "03f63e36f3a9b19e8e9d4f48313a450bae7c85fcb53049d52e0f6d4adf4b1c23", "Lutar/Uniqueness/TheoremU.lean": "c958520ba31d6fc1f48a9b49871d67812f178e168b31bf2be9e3d5fb2061386c"}, "full_axiom_footprint": {"Lutar.Uniqueness.AxiomCheck.conjecture1_still_open": [], "Lutar.Uniqueness.AxiomCheck.locked_count_five": [], "Lutar.Uniqueness.AxiomCheck.theoremU_axiom_sets_kernel_only": [], "Lutar.Uniqueness.AxiomCheck.theoremU_excluded_from_locked": [], "Lutar.Uniqueness.CorollaryU1_LambdaUnique_Separable": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.CorollaryU2_LambdaUnique_Factors": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique_eq": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.identifiability_forces_lambda": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.lambda_equiv_to_eq_of_anchored": ["Classical.choice", "Quot.sound", "propext"]}, "headline_axiom_footprint": {"CorollaryU1_LambdaUnique_Separable": ["Classical.choice", "Quot.sound", "propext"], "CorollaryU2_LambdaUnique_Factors": ["Classical.choice", "Quot.sound", "propext"], "TheoremU_LambdaUnique": ["Classical.choice", "Quot.sound", "propext"], "TheoremU_LambdaUnique_eq": ["Classical.choice", "Quot.sound", "propext"], "identifiability_forces_lambda": ["Classical.choice", "Quot.sound", "propext"], "lambda_equiv_to_eq_of_anchored": ["Classical.choice", "Quot.sound", "propext"]}, "headline_decls": ["CorollaryU1_LambdaUnique_Separable", "CorollaryU2_LambdaUnique_Factors", "TheoremU_LambdaUnique", "TheoremU_LambdaUnique_eq", "identifiability_forces_lambda", "lambda_equiv_to_eq_of_anchored"], "kernel_only": true, "kernel_trust_base": ["Classical.choice", "Quot.sound", "funext", "propext"], "module": "Lutar.Uniqueness", "status": "REAL-conditional"}}}, "theorem_u_status": "REAL-conditional", "timestamp": "2026-06-09T05:39:22Z"}, {"branch": "main", "chain_index": 2, "doctrine": "v11", "honesty": {"conjecture": "This is a GENERATED, OPEN conjecture \u2014 NOT a theorem and NOT machine-verified. It remains OPEN until a solution is independently verified.", "difficulty": "Difficulty 'open-resistant' / grade 'OPEN' come from a REAL bounded solver run. OPEN means searched-to-budget, not proven true; VERIFIED-FINITE certifies only the finite enumerated domain; REFUTED carries a concrete witness. No score is fabricated.", "doctrine": "v11", "kernel_only": false, "novelty": "Novelty verdict 'novel-candidate' is an advisory screen, not a proof of originality; external prior-art sources are labelled live/cached/unreachable and an unreachable source never confirms novelty.", "signing": "Disclosure is cosign keyless-OIDC signed and anchored into the szl-lake DSSE Khipu ledger; the signature attests the timestamp + content, NOT the truth of the conjecture.", "status": "OPEN"}, "kernel_commit": "d851aefe86b9f12f9d4423200bd9e5257d05c41e", "kernel_commit_short": "d851aefe86b9", "kind": "conjecture-disclosure-anchor", "milestone_kind": "conjecture-disclosure", "milestone_status": "OPEN", "milestone_title": "SZL mixing-map convergence conjecture", "numbers": {"axioms_unique": null, "declarations": null, "sorries_noncomment": null}, "organ": "lutar-lean", "prev_hash": "d70f444db57df9a4a2d52e69408ce61b511e4b50152f7fbf97456b1af66fe9a0", "receipt_id": "08744b67b647039f87abbf0b29587638ae777308ca7fc2434ed3ae4033687b50", "schema": "szl.khipu.receipt/v1", "signing": {"format": "sigstore-keyless-bundle", "bytes": 17488, "b64_head": "eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGV2\u2026"}, "source_run": {"conclusion": "success", "id": "27318564784", "url": "https://github.com/szl-holdings/lutar-lean/actions/runs/27318564784", "workflow": "Conjecture Factory (generate -> timestamp -> grade -> anchor)"}, "subject": {"name": "conjecture_snapshot.json", "sha256": "7faded7df9ac5bea4ca7ddaa1e5c38c247c237fd49b8a1a39d35a260c2189fb0", "snapshot": {"branch": "main", "built_at_utc": "2026-06-11T01:54:20Z", "candidate": {"created_utc": "2026-06-11T01:54:19Z", "doctrine": "v11", "domain": "number-theory / arithmetic dynamics", "id": "cf-5ddbbe7571a9", "intended_solution_outline": "Bound the orbit by a Lyapunov / drift argument on the 2-adic valuation: show the\ncontracting branch (n = 3 mod 4) dominates the accelerating branch (n = 1 mod 4)\nin expectation, then rule out non-trivial cycles via a residue-class descent.\nStatus: OPEN \u2014 no proof is claimed; the predicate only performs bounded testing.", "predicate": {"description": "Sound bounded-orbit checker: returns False only on a detected non-1 cycle (a certain counterexample); inconclusive bounded runs assert no counterexample.", "entry": "holds", "kind": "python-callable", "module": "conjectures/samples/szl-mixing-map/predicate.py"}, "references": ["conjectures/corpus/collatz.md (related but distinct: classical 3n+1 map)", "Lagarias, J. (2010). The 3x+1 problem: an annotated bibliography."], "schema": "szl.conjecture.candidate/v1", "statement": "Define M : Z+ -> Z+ by\n M(n) = n / 2 if n is even,\n M(n) = (3n + 1) / 2 if n is odd and n = 1 (mod 4),\n M(n) = (n + 1) / 2 if n is odd and n = 3 (mod 4).\nConjecture: for every integer n >= 1 there exists k >= 0 with M^k(n) = 1.", "statement_canonical": "Define M : Z+ -> Z+ by M(n) = n / 2 if n is even, M(n) = (3n + 1) / 2 if n is odd and n = 1 (mod 4), M(n) = (n + 1) / 2 if n is odd and n = 3 (mod 4). Conjecture: for every integer n >= 1 there exists k >= 0 with M^k(n) = 1.", "statement_hash": "sha256:5ddbbe7571a93f9ed3d49c37dbb3559eb339a51380e427882bd3783b7cb2743a", "taxonomy": "OPEN", "title": "SZL mixing-map convergence conjecture"}, "grade": {"budget": 100000, "candidate_id": "cf-5ddbbe7571a9", "difficulty": "open-resistant", "graded_utc": "2026-06-11T01:54:20Z", "honesty": "Grade from a REAL ensemble run. REFUTED carries a concrete witness. VERIFIED-FINITE certifies only the finite enumerated domain, not the conjecture in general. OPEN means searched-to-budget with no counterexample \u2014 NOT a proof of truth. The candidate stays OPEN (doctrine v11).", "result": "OPEN", "schema": "szl.conjecture.grade/v1", "seed": 1729, "solver_ensemble": [{"budget": 100000, "checked": 100000, "elapsed_sec": 0.411268, "note": "infinite/streaming domain", "resolved": false, "result": "OPEN", "solver": "exhaustive", "witness": null}, {"budget": 100000, "checked": 100000, "elapsed_sec": 0.654207, "note": "random sampling found no counterexample (not a proof)", "resolved": false, "result": "OPEN", "solver": "sampler", "witness": null}], "success_rate": 0.0, "witness": null}, "honesty": {"conjecture": "This is a GENERATED, OPEN conjecture \u2014 NOT a theorem and NOT machine-verified. It remains OPEN until a solution is independently verified.", "difficulty": "Difficulty 'open-resistant' / grade 'OPEN' come from a REAL bounded solver run. OPEN means searched-to-budget, not proven true; VERIFIED-FINITE certifies only the finite enumerated domain; REFUTED carries a concrete witness. No score is fabricated.", "doctrine": "v11", "kernel_only": false, "novelty": "Novelty verdict 'novel-candidate' is an advisory screen, not a proof of originality; external prior-art sources are labelled live/cached/unreachable and an unreachable source never confirms novelty.", "signing": "Disclosure is cosign keyless-OIDC signed and anchored into the szl-lake DSSE Khipu ledger; the signature attests the timestamp + content, NOT the truth of the conjecture.", "status": "OPEN"}, "kernel_commit": "d851aefe86b9f12f9d4423200bd9e5257d05c41e", "kernel_commit_short": "d851aefe86b9", "kind": "conjecture-disclosure", "milestone": {"difficulty": "open-resistant", "grade_result": "OPEN", "headline_decls": [], "id": "cf-5ddbbe7571a9", "kernel_only": false, "novelty_verdict": "novel-candidate", "release_stage": "statement", "statement_hash": "sha256:5ddbbe7571a93f9ed3d49c37dbb3559eb339a51380e427882bd3783b7cb2743a", "status": "OPEN", "title": "SZL mixing-map convergence conjecture"}, "novelty": {"candidate_id": "cf-5ddbbe7571a9", "external": [{"hits": 0, "note": "offline run (--online not set)", "source": "arxiv", "status": "unreachable", "top": []}, {"hits": 0, "note": "offline run (--online not set)", "source": "crossref", "status": "unreachable", "top": []}], "honesty": "Novelty is a screen, not a proof of originality. External sources are labelled live/cached/unreachable; an unreachable source contributes no hits and is never silently treated as confirming novelty. The candidate stays OPEN regardless of this verdict (doctrine v11).", "local_corpus": {"corpus_dir": "conjectures/corpus", "documents_scanned": 2, "max_similarity": 0.0688, "method": "char-5-gram shingle Jaccard", "near_duplicate": false, "nearest": {"doc": "collatz.md", "similarity": 0.0688}, "threshold": 0.8, "top": [{"doc": "collatz.md", "similarity": 0.0688}, {"doc": "goldbach.md", "similarity": 0.0451}]}, "schema": "szl.conjecture.novelty/v1", "screened_utc": "2026-06-11T01:54:19Z", "statement_hash": "sha256:5ddbbe7571a93f9ed3d49c37dbb3559eb339a51380e427882bd3783b7cb2743a", "verdict": "novel-candidate", "verdict_reason": "no near-duplicate found (local-only; external prior-art not fully screened \u2014 unreachable: ['arxiv', 'crossref'])"}, "predicate_type": "https://szl-holdings/conjecture-disclosure/v1", "repo": "szl-holdings/lutar-lean", "schema": "szl.conjecture.disclosure/v1"}}, "timestamp": "2026-06-11T01:54:27Z"}, {"branch": "main", "chain_index": 3, "doctrine": "v11", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated; conjecture1_still_open re-asserts it stays open.", "doctrine": "v11", "locked_baseline": "REAL-invariant: kernel-verified meta-theorems in Lutar/Uniqueness/AxiomCheck.lean (locked_count_eight, theoremU_excluded_from_locked, theoremU_axiom_sets_kernel_only, conjecture1_still_open) \u2014 each proven by `decide`, axiom footprint within the Lean/Mathlib trust base, no sorry. They ASSERT that the locked-proven baseline is EXACTLY the eight {F1,F4,F7,F11,F12,F18,F19,F22}; they do NOT themselves re-prove those formulas (the formula proofs live in Lutar/Puriq/Formulas/ProvedFormulas.lean).", "locked_set": ["F1", "F4", "F7", "F11", "F12", "F18", "F19", "F22"], "theorem_u": "Theorem U stays REAL-conditional and EXCLUDED from this locked baseline (theoremU_excluded_from_locked); anchoring this milestone does not change Theorem U's status."}, "kernel_commit": "25e0b2af781f5fb10324945ea10c861bcc28cc83", "kernel_commit_short": "25e0b2af781f", "kind": "locked-baseline-anchor", "milestone_kind": "locked-baseline", "milestone_status": "REAL-invariant", "milestone_title": "Locked-proven baseline (Doctrine v11) \u2014 kernel meta-invariants", "numbers": {"axioms_unique": 22, "declarations": 1323, "sorries_noncomment": 254}, "organ": "lutar-lean", "prev_hash": "08744b67b647039f87abbf0b29587638ae777308ca7fc2434ed3ae4033687b50", "receipt_id": "dcdad01763241e4d7af6b45e59949e6596c12ccf43ed6b784471c1f05b4715c0", "schema": "szl.khipu.receipt/v1", "signing": {"format": "sigstore-keyless-bundle", "bytes": 19036, "b64_head": "eyJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGV2\u2026"}, "source_run": {"conclusion": "success", "id": "27319352318", "url": "https://github.com/szl-holdings/lutar-lean/actions/runs/27319352318", "workflow": "Lake build (gate + numbers)"}, "subject": {"name": "locked_baseline_snapshot.json", "sha256": "19ea5946195f7437cfb881eb5489898d0d45f5f074dfa210c22eb6c8bbfc3bc9", "snapshot": {"branch": "main", "built_at_utc": "2026-06-11T02:18:27Z", "honesty": {"conjecture_1": "OPEN: unconditional Lambda uniqueness is Conjecture 1 and is machine-checked FALSE as stated; conjecture1_still_open re-asserts it stays open.", "doctrine": "v11", "locked_baseline": "REAL-invariant: kernel-verified meta-theorems in Lutar/Uniqueness/AxiomCheck.lean (locked_count_eight, theoremU_excluded_from_locked, theoremU_axiom_sets_kernel_only, conjecture1_still_open) \u2014 each proven by `decide`, axiom footprint within the Lean/Mathlib trust base, no sorry. They ASSERT that the locked-proven baseline is EXACTLY the eight {F1,F4,F7,F11,F12,F18,F19,F22}; they do NOT themselves re-prove those formulas (the formula proofs live in Lutar/Puriq/Formulas/ProvedFormulas.lean).", "locked_set": ["F1", "F4", "F7", "F11", "F12", "F18", "F19", "F22"], "theorem_u": "Theorem U stays REAL-conditional and EXCLUDED from this locked baseline (theoremU_excluded_from_locked); anchoring this milestone does not change Theorem U's status."}, "kernel_commit": "25e0b2af781f5fb10324945ea10c861bcc28cc83", "kernel_commit_short": "25e0b2af781f", "kind": "locked-baseline", "lean_numbers": {"lean_numbers_sha256": "38f9a69cb289110e44ffa9bc4a8575d811220c4654a7985b85694d6f1bb3f7f9", "numbers": {"axiom_names": ["A6'_block_consistent", "KS_theorem_1_1", "MomentSubGaussian", "audit_reidemeister_invariance", "canonicalReceipt", "chromotopology_code_bijection", "compression_collision_resistant", "domain_separation", "gleason_length_mod_8", "klDivergence_nonneg", "lambda_schur_concave_n_axis", "lambda_stationary_unique", "leaf_collision_resistant", "liu_hui_pi_converges", "node_collision_resistant", "pinsker", "r1_invariance", "r2_invariance", "setAlpha_cauchy", "setDelta_stage2", "sha256", "sha256_collision_resistant"], "axioms_raw": 23, "axioms_unique": 22, "declarations": 1323, "sorries_baseline": 251, "sorries_noncomment": 254, "sorries_putnam": 56, "sorries_raw": 307}, "reference_vectors_sha256": "857967629daf5e5c45a167306ea0e0091569a29766b01ac91bef15a539b816dc", "replay_hash": "1f0c9d9938b96b3d56fe01e37b955e1b91ff1aec0610fe30c30e515cc8ab469c", "schema": "szl.lean_numbers/v1"}, "milestone": {"decl_source_sha256": {"Lutar/Uniqueness/AxiomCheck.lean": "5e7998d33a1928c12f2e07595ec929544ac04e37f17ad7693ab2838136ab540f", "Lutar/Uniqueness/Identifiability.lean": "fa340e6a999eac7ea1cd035d90647548baaa290b7376d7fcbdcbd165e475dedf", "Lutar/Uniqueness/LambdaEquiv.lean": "03f63e36f3a9b19e8e9d4f48313a450bae7c85fcb53049d52e0f6d4adf4b1c23", "Lutar/Uniqueness/TheoremU.lean": "c958520ba31d6fc1f48a9b49871d67812f178e168b31bf2be9e3d5fb2061386c"}, "full_axiom_footprint": {"Lutar.Uniqueness.AxiomCheck.conjecture1_still_open": [], "Lutar.Uniqueness.AxiomCheck.locked_count_eight": [], "Lutar.Uniqueness.AxiomCheck.theoremU_axiom_sets_kernel_only": [], "Lutar.Uniqueness.AxiomCheck.theoremU_excluded_from_locked": [], "Lutar.Uniqueness.CorollaryU1_LambdaUnique_Separable": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.CorollaryU2_LambdaUnique_Factors": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.TheoremU_LambdaUnique_eq": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.identifiability_forces_lambda": ["Classical.choice", "Quot.sound", "propext"], "Lutar.Uniqueness.lambda_equiv_to_eq_of_anchored": ["Classical.choice", "Quot.sound", "propext"]}, "headline_axiom_footprint": {"conjecture1_still_open": [], "locked_count_eight": [], "theoremU_axiom_sets_kernel_only": [], "theoremU_excluded_from_locked": []}, "headline_decls": ["conjecture1_still_open", "locked_count_eight", "theoremU_axiom_sets_kernel_only", "theoremU_excluded_from_locked"], "id": "locked-baseline", "kernel_only": true, "kernel_trust_base": ["Classical.choice", "Quot.sound", "funext", "propext"], "module": "Lutar.Uniqueness.AxiomCheck", "status": "REAL-invariant", "title": "Locked-proven baseline (Doctrine v11) \u2014 kernel meta-invariants"}, "repo": "szl-holdings/lutar-lean", "schema": "szl.proof.snapshot/v1"}}, "timestamp": "2026-06-11T02:20:21Z"}], "amaru": [{"receipt_id": "4c9c3f2b8d6452d9bc0e9a9144fc9e1743b3ca76544a988d4d9e4b39df87ba73", "timestamp": "2026-06-02T02:13:07.827680+00:00", "organ": "amaru", "kind": "tick", "index": 0, "lambda": 0.9, "lambda_pass": true, "predicted_hash": "", "actual_hash": "4c9c3f2b8d6452d9bc0e9a9144fc9e1743b3ca76544a988d4d9e4b39df87ba73", "delta": 0.0, "lutar_anchor": "c7c0ba17", "doctrine": "v11", "decl": 749, "axioms": 14, "sorries": 163, "neuro_citations": "[]", "dsse_payload_type": "application/vnd.szl.khipu+json", "dsse_pae_sha256": "6a8ba013ddcd1938e0fc2174ef79287ca49266277b0195595f324dacb9eb02c9", "dsse_sig": "MEQCIBIZjd6T0E4Bhl0OGkhcMZmAuqmnN0ZxmWrL+7U/h31JAiAmF2U1DBEQieaDrFkHcjBcOW91PY1glK0X+/2EKprpVQ==", "dsse_keyid": "szlholdings-cosign", "dsse_signed": true, "verify_key_url": "https://github.com/szl-holdings/.github/blob/main/cosign.pub"}, {"receipt_id": "bc4d6a1629c01584eb6789d19a432fbc9448ce92ada8d47e14552fe94dee9fa1", "timestamp": "2026-06-02T02:13:08.490579+00:00", "organ": "amaru", "kind": "tick", "index": 1, "lambda": 0.9, "lambda_pass": true, "predicted_hash": "4c9c3f2b8d6452d9bc0e9a9144fc9e1743b3ca76544a988d4d9e4b39df87ba73", "actual_hash": "bc4d6a1629c01584eb6789d19a432fbc9448ce92ada8d47e14552fe94dee9fa1", "delta": 0.0, "lutar_anchor": "c7c0ba17", "doctrine": "v11", "decl": 749, "axioms": 14, "sorries": 163, "neuro_citations": "[]", "dsse_payload_type": "application/vnd.szl.khipu+json", "dsse_pae_sha256": "3cb923bc57002b34cd52124601bfbeeff68c6232e598dd06eccb4ff2847f1371", "dsse_sig": "MEUCIQDBB4xUJMFm4YKcZ0mcz6n3q6XomOKEepJWmaplX9Xo0gIgUIg3Xm316oVN05pvIoNxhJBDyL6Vhp1xfEq9nx9V5Wg=", "dsse_keyid": "szlholdings-cosign", "dsse_signed": true, "verify_key_url": "https://github.com/szl-holdings/.github/blob/main/cosign.pub"}, {"receipt_id": "2f872c5144585602dd1016ce732912134ad30423e442fda009cdc0d168c6732d", "timestamp": "2026-06-02T02:13:09.173270+00:00", "organ": "amaru", "kind": "tick", "index": 2, "lambda": 0.9, "lambda_pass": true, "predicted_hash": "bc4d6a1629c01584eb6789d19a432fbc9448ce92ada8d47e14552fe94dee9fa1", "actual_hash": "2f872c5144585602dd1016ce732912134ad30423e442fda009cdc0d168c6732d", "delta": 0.0, "lutar_anchor": "c7c0ba17", "doctrine": "v11", "decl": 749, "axioms": 14, "sorries": 163, "neuro_citations": "[]", "dsse_payload_type": "application/vnd.szl.khipu+json", "dsse_pae_sha256": "f72e37f1ea8d785d862ec7469d3908fc7b455360964d6cdea61e430d89b3e66d", "dsse_sig": "MEYCIQDvfS5l1nyk5zHz9wsNwe/wj6ZPNAMbbJ4KzMG2ZXEQkwIhAJ4mkTOAnOdNWFb2SuweFbQnjP0QPORGAA/IU8sHB+X5", "dsse_keyid": "szlholdings-cosign", "dsse_signed": true, "verify_key_url": "https://github.com/szl-holdings/.github/blob/main/cosign.pub"}]};
|
|
|
|
| 1029 |
function renderLedger() {
|
| 1030 |
const btn = el('ledger-load');
|
| 1031 |
btn.disabled = true;
|
| 1032 |
+
setStatus('ledger-status', 'Checking hash-chain linkage in-browser …', true);
|
| 1033 |
|
| 1034 |
const lut = LEDGER_SNAPSHOT.lutar_lean || [];
|
| 1035 |
const ama = LEDGER_SNAPSHOT.amaru || [];
|
|
|
|
| 1045 |
});
|
| 1046 |
const intact = broken === 0;
|
| 1047 |
let chainHTML = '<div class="verdict-banner ' + (intact ? 'verdict-ok' : 'verdict-fail') + '">'
|
| 1048 |
+
+ (intact ? '✓ CHAIN INTACT' : '✗ CHAIN BROKEN') + ' — ' + links + '/' + lut.length
|
| 1049 |
+ ' hash-links verified in your browser <span class="chip chip-dim">organ: lutar-lean</span></div>'
|
| 1050 |
+ '<div style="font-size:12px;color:var(--text-dim);margin-bottom:8px">Each receipt\'s <code>prev_hash</code> '
|
| 1051 |
+ 'is compared to the previous receipt\'s <code>receipt_id</code>. This proves append-only ordering. '
|
|
|
|
| 1053 |
rows.forEach(({ r, i, prev, ok }) => {
|
| 1054 |
chainHTML += '<div class="hash-row"><span class="hash-label">#' + escHTML(String(r.chain_index)) + ' '
|
| 1055 |
+ escHTML(r.kind || '') + '</span><span class="hash-val">id ' + escHTML(String(r.receipt_id).substring(0,16))
|
| 1056 |
+
+ '…</span><span class="hash-val ' + (ok ? 'hash-match' : 'hash-mismatch') + '">prev '
|
| 1057 |
+
+ escHTML(prev == null ? '(genesis)' : String(prev).substring(0,16) + '…') + '</span>'
|
| 1058 |
+ '<span class="chip ' + (ok ? 'chip-ok' : 'chip-err') + '">' + (ok ? 'LINK OK' : 'BROKEN') + '</span></div>';
|
| 1059 |
});
|
| 1060 |
el('ledger-chain').innerHTML = chainHTML;
|
|
|
|
| 1075 |
+ '<span class="formula-id">lutar-lean</span><span class="formula-name">' + escHTML(r.kind || 'receipt') + '</span>'
|
| 1076 |
+ '<span class="chip chip-dim">schema ' + escHTML(r.schema || '') + '</span></div>'
|
| 1077 |
+ '<div class="hash-row"><span class="hash-label">receipt_id</span><span class="hash-val">'
|
| 1078 |
+
+ escHTML(String(r.receipt_id).substring(0,40)) + '…</span></div>'
|
| 1079 |
+ (r.numbers ? '<div style="font-size:12px;color:var(--text-dim);margin:6px 0">declarations '
|
| 1080 |
+
+ escHTML(String(r.numbers.declarations)) + ' · axioms ' + escHTML(String(r.numbers.axioms_unique))
|
| 1081 |
+
+ ' · sorries ' + escHTML(String(r.numbers.sorries_noncomment)) + ' · kernel '
|
| 1082 |
+ escHTML(String(r.kernel_commit_short || '')) + '</div>' : '')
|
| 1083 |
+ '<div style="margin:8px 0">' + honestyHTML + '</div>'
|
| 1084 |
+
+ '<div style="font-size:12px;color:var(--text-mute)">signing: ' + escHTML(sg.format || '—')
|
| 1085 |
+ (sg.bytes ? ' (' + escHTML(String(sg.bytes)) + ' bytes)' : '') + '</div>'
|
| 1086 |
+
+ '<div style="margin-top:8px;font-size:12px"><a href="' + hfBase + 'lutar_lean_receipts.ndjson" target="_blank" rel="noopener">Canonical rows on Hugging Face ↗</a>'
|
| 1087 |
+
+ ' · <a href="https://pypi.org/project/szl-receipt/" target="_blank" rel="noopener">Verify offline (szl-receipt)</a></div></div>';
|
| 1088 |
});
|
| 1089 |
ama.forEach(r => {
|
| 1090 |
cardsHTML += '<div class="formula-card"><div class="formula-card-head">'
|
| 1091 |
+ '<span class="formula-id">amaru</span><span class="formula-name">' + escHTML(r.kind || 'tick') + '</span>'
|
| 1092 |
+
+ '<span class="chip ' + (r.lambda_pass ? 'chip-ok' : 'chip-err') + '">Λ ' + escHTML(String(r.lambda)) + ' '
|
| 1093 |
+
+ (r.lambda_pass ? 'PASS' : 'FAIL') + '</span><span class="conj">Conjecture 1 — advisory</span></div>'
|
| 1094 |
+ '<div class="hash-row"><span class="hash-label">receipt_id</span><span class="hash-val">'
|
| 1095 |
+
+ escHTML(String(r.receipt_id).substring(0,40)) + '…</span></div>'
|
| 1096 |
+ '<div style="font-size:12px;color:var(--text-dim);margin:6px 0">doctrine ' + escHTML(String(r.doctrine))
|
| 1097 |
+
+ ' · decl ' + escHTML(String(r.decl)) + ' · axioms ' + escHTML(String(r.axioms)) + ' · sorries '
|
| 1098 |
+
+ escHTML(String(r.sorries)) + ' · anchor ' + escHTML(String(r.lutar_anchor || '')) + '</div>'
|
| 1099 |
+
+ '<div style="font-size:12px;color:var(--text-mute)">DSSE ' + (r.dsse_signed ? 'signed ✓' : 'unsigned')
|
| 1100 |
+
+ ' · keyid ' + escHTML(String(r.dsse_keyid || '—')) + '</div>'
|
| 1101 |
+
+ '<div style="margin-top:8px;font-size:12px"><a href="' + hfBase + 'amaru_receipts.ndjson" target="_blank" rel="noopener">Canonical rows on Hugging Face ↗</a>'
|
| 1102 |
+
+ ' · <a href="' + escHTML(String(r.verify_key_url || '#')) + '" target="_blank" rel="noopener">Public key ↗</a></div></div>';
|
| 1103 |
});
|
| 1104 |
el('ledger-cards').innerHTML = cardsHTML;
|
| 1105 |
|
| 1106 |
show('ledger-panel');
|
| 1107 |
setStatus('ledger-status', 'Chain: ' + (intact ? 'INTACT' : 'BROKEN') + ' (' + links + '/' + lut.length
|
| 1108 |
+
+ ' links) · ' + (lut.length + ama.length) + ' real receipts shown · signatures verify offline against Hugging Face.');
|
| 1109 |
btn.disabled = false;
|
| 1110 |
}
|
| 1111 |
</script>
|
| 1112 |
|
| 1113 |
</body>
|
| 1114 |
</html>
|
|
|