betterwithage Claude Opus 4.7 commited on
Commit
a21cf64
·
verified ·
1 Parent(s): 6ef371f

deploy(hf): sync szl-holdings/a11oy@af43e4b71529c2bab3227763fdb4b5969c2cd6ce derived COPY set

Browse files

Reusable Dockerfile-COPY-derived deploy from szl-holdings/a11oy af43e4b71529c2bab3227763fdb4b5969c2cd6ce.
Files: 1156 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>

Files changed (1) hide show
  1. static/3d/holographic.html +106 -10
static/3d/holographic.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="utf-8"/>
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>Holographic Estate — a11oy</title>
7
  <!-- 0 runtime CDN. All 3D libs vendored in-image and served same-origin via the
8
  /static/3d/vendor/... importmap below (see VENDOR_MANIFEST.md). System fonts only. -->
9
  <script type="importmap">
@@ -199,7 +199,8 @@ footer{padding:6px 14px;border-top:1px solid var(--line);flex:0 0 auto;
199
  </head>
200
  <body>
201
  <header>
202
- <h1>◇ Holographic Estate</h1>
 
203
  <span class="badge" id="backend">renderer: …</span>
204
  <button class="badge" id="gpu-toggle" title="Toggle WebGPU compute path (falls back to WebGL2 if the browser/driver can't provide a WebGPU device). WebGPU is not production-safe on all platforms — doctrine." style="cursor:pointer;background:#10171f">⚡ WebGPU: off</button>
205
  <span class="badge" id="three-rev-badge">three r<span id="three-rev">…</span></span>
@@ -566,6 +567,7 @@ const searchPanel = document.getElementById("search-panel");
566
  const searchCount = document.getElementById("surface-results-count");
567
  const navMode = document.getElementById("nav-mode");
568
  const activeSurface = document.querySelector("#active-surface strong");
 
569
 
570
  const evidenceRail = document.getElementById("evidence-rail");
571
  const evidenceToggle = document.getElementById("evidence-rail-toggle");
@@ -576,7 +578,11 @@ const evidenceId = document.getElementById("evidence-rail-id");
576
  const evidenceContract = document.getElementById("evidence-rail-contract");
577
  const evidenceRuntime = document.getElementById("evidence-rail-runtime");
578
  const evidenceReadiness = document.getElementById("evidence-rail-readiness");
 
 
579
  let evidenceSnapshotPromise = null;
 
 
580
  if (evidenceToggle && evidencePanel) {
581
  evidenceToggle.addEventListener("click", () => {
582
  const open = evidenceToggle.getAttribute("aria-expanded") !== "true";
@@ -591,8 +597,13 @@ if (evidenceToggle && evidencePanel) {
591
  }
592
  });
593
  }
594
- async function _fetchEvidenceSnapshot() {
 
 
 
 
595
  if (evidenceSnapshotPromise) return evidenceSnapshotPromise;
 
596
  evidenceSnapshotPromise = (async () => {
597
  const getJson = async (url) => {
598
  try {
@@ -604,31 +615,116 @@ async function _fetchEvidenceSnapshot() {
604
  getJson("/api/a11oy/v1/readiness/tab-matrix?view=summary"),
605
  getJson("/api/build-info"),
606
  ]);
607
- return { readiness, build };
608
  })();
609
  return evidenceSnapshotPromise;
610
  }
611
- function _updateEvidenceRail(def) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
612
  if (!evidenceRail || !def) return;
613
  evidenceRail.dataset.state = "UNVERIFIED";
614
  if (evidenceState) evidenceState.textContent = "UNVERIFIED";
 
 
 
 
615
  if (evidenceTitle) evidenceTitle.textContent = def.title;
616
  if (evidenceId) evidenceId.textContent = def.id;
617
  if (evidenceContract) evidenceContract.textContent = `${catOf(def)} · ${def.mod}`;
618
  if (evidenceRuntime) evidenceRuntime.textContent = "CHECKING";
619
  if (evidenceReadiness) evidenceReadiness.textContent = "CHECKING";
620
- _fetchEvidenceSnapshot().then(({ readiness, build }) => {
 
621
  const buildState = build?.build?.state || build?.state || "UNAVAILABLE";
622
  const revision = build?.build?.revision || build?.revision || null;
623
  if (evidenceRuntime) evidenceRuntime.textContent = revision ? `${buildState} · ${String(revision).slice(0,12)}…` : buildState;
624
- const matrix = readiness?.matrix_summary || {};
625
- const verdict = readiness?.verdict_summary || null;
626
- if (evidenceReadiness) evidenceReadiness.textContent = verdict ? `${verdict.ok ?? 0}/${verdict.endpoints ?? matrix.endpoints ?? 0} observed clean` : `${matrix.tabs ?? SURFACES.length} surfaces · probe UNAVAILABLE`;
627
- const observed = Boolean(revision && readiness?.matrix_available);
628
  evidenceRail.dataset.state = observed ? "OBSERVED" : "UNVERIFIED";
629
  if (evidenceState) evidenceState.textContent = observed ? "OBSERVED" : "UNVERIFIED";
 
 
 
 
 
 
 
630
  });
631
  }
 
 
 
 
 
 
632
  const _panels = {}; // cat -> drop-panel element
633
  const _catBtns = {}; // cat -> dropdown button
634
  let searchLimit = 36;
 
3
  <head>
4
  <meta charset="utf-8"/>
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
+ <title>A11oy Holographic Operations — a11oy</title>
7
  <!-- 0 runtime CDN. All 3D libs vendored in-image and served same-origin via the
8
  /static/3d/vendor/... importmap below (see VENDOR_MANIFEST.md). System fonts only. -->
9
  <script type="importmap">
 
199
  </head>
200
  <body>
201
  <header>
202
+ <h1>A11oy Holographic Operations</h1>
203
+ <span class="badge" id="estate-observation-badge" data-state="UNVERIFIED">Evidence status: UNVERIFIED</span>
204
  <span class="badge" id="backend">renderer: …</span>
205
  <button class="badge" id="gpu-toggle" title="Toggle WebGPU compute path (falls back to WebGL2 if the browser/driver can't provide a WebGPU device). WebGPU is not production-safe on all platforms — doctrine." style="cursor:pointer;background:#10171f">⚡ WebGPU: off</button>
206
  <span class="badge" id="three-rev-badge">three r<span id="three-rev">…</span></span>
 
567
  const searchCount = document.getElementById("surface-results-count");
568
  const navMode = document.getElementById("nav-mode");
569
  const activeSurface = document.querySelector("#active-surface strong");
570
+ const estateObservationBadge = document.getElementById("estate-observation-badge");
571
 
572
  const evidenceRail = document.getElementById("evidence-rail");
573
  const evidenceToggle = document.getElementById("evidence-rail-toggle");
 
578
  const evidenceContract = document.getElementById("evidence-rail-contract");
579
  const evidenceRuntime = document.getElementById("evidence-rail-runtime");
580
  const evidenceReadiness = document.getElementById("evidence-rail-readiness");
581
+ const EVIDENCE_MAX_AGE_MS = 24 * 60 * 60 * 1000;
582
+ const EVIDENCE_REFRESH_INTERVAL_MS = 5 * 60 * 1000;
583
  let evidenceSnapshotPromise = null;
584
+ let evidenceRefreshTimer = null;
585
+ let evidenceRefreshGeneration = 0;
586
  if (evidenceToggle && evidencePanel) {
587
  evidenceToggle.addEventListener("click", () => {
588
  const open = evidenceToggle.getAttribute("aria-expanded") !== "true";
 
597
  }
598
  });
599
  }
600
+ async function _fetchEvidenceSnapshot(forceRefresh = false) {
601
+ if (forceRefresh) {
602
+ evidenceRefreshGeneration += 1;
603
+ evidenceSnapshotPromise = null;
604
+ }
605
  if (evidenceSnapshotPromise) return evidenceSnapshotPromise;
606
+ const generation = evidenceRefreshGeneration;
607
  evidenceSnapshotPromise = (async () => {
608
  const getJson = async (url) => {
609
  try {
 
615
  getJson("/api/a11oy/v1/readiness/tab-matrix?view=summary"),
616
  getJson("/api/build-info"),
617
  ]);
618
+ return { readiness, build, generation };
619
  })();
620
  return evidenceSnapshotPromise;
621
  }
622
+ function _hasObservedEvidence(readiness, revision, nowMs = Date.now()) {
623
+ if (
624
+ typeof revision !== "string" ||
625
+ !/^[0-9a-f]{40}$/.test(revision) ||
626
+ readiness?.honest !== true ||
627
+ readiness?.view !== "summary" ||
628
+ readiness?.available !== true ||
629
+ readiness?.matrix_available !== true ||
630
+ readiness?.probe_verdict_available !== true ||
631
+ readiness?.verdict_source_revision !== revision ||
632
+ typeof readiness?.verdict_base !== "string" ||
633
+ !/^https:\/\/[^/]+$/.test(readiness.verdict_base) ||
634
+ readiness?.verdict_base !== readiness?.verdict_expected_base
635
+ ) return false;
636
+ const checkedAt = readiness?.verdict_checked_at;
637
+ if (
638
+ typeof checkedAt !== "string" ||
639
+ !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(checkedAt)
640
+ ) return false;
641
+ const checkedMs = Date.parse(checkedAt);
642
+ if (
643
+ !Number.isFinite(checkedMs) ||
644
+ checkedMs > nowMs ||
645
+ nowMs - checkedMs > EVIDENCE_MAX_AGE_MS
646
+ ) return false;
647
+ const verdict = readiness?.verdict_summary;
648
+ if (!verdict || typeof verdict !== "object") return false;
649
+ const counts = [
650
+ "endpoints", "ok", "skippedStateChanging", "lies", "unreachable", "throttled",
651
+ ]
652
+ .map((field) => verdict[field]);
653
+ if (!counts.every((value) => Number.isInteger(value) && value >= 0)) return false;
654
+ if (!Number.isFinite(verdict.p95_worst) || verdict.p95_worst < 0) return false;
655
+ const [endpoints, ...outcomes] = counts;
656
+ const executed = endpoints - verdict.skippedStateChanging;
657
+ return (
658
+ endpoints > 0 &&
659
+ executed > 0 &&
660
+ verdict.lies === 0 &&
661
+ outcomes.reduce((total, value) => total + value, 0) === endpoints
662
+ );
663
+ }
664
+ function _readinessEvidenceText(readiness, observed) {
665
+ const matrix = readiness?.matrix_summary || {};
666
+ const verdict = readiness?.verdict_summary || null;
667
+ if (!observed || !verdict) {
668
+ return `${matrix.tabs ?? SURFACES.length} surfaces · probe UNVERIFIED`;
669
+ }
670
+ return `${verdict.ok}/${verdict.endpoints} clean · complete verdict`;
671
+ }
672
+ function _nextEvidenceRefreshDelay(readiness, nowMs = Date.now()) {
673
+ const checkedMs = Date.parse(readiness?.verdict_checked_at || "");
674
+ if (!Number.isFinite(checkedMs)) return EVIDENCE_REFRESH_INTERVAL_MS;
675
+ const untilExpiry = checkedMs + EVIDENCE_MAX_AGE_MS - nowMs;
676
+ if (untilExpiry < 0) return EVIDENCE_REFRESH_INTERVAL_MS;
677
+ return Math.max(
678
+ 50,
679
+ Math.min(EVIDENCE_REFRESH_INTERVAL_MS, untilExpiry + 50),
680
+ );
681
+ }
682
+ function _scheduleEvidenceRefresh(def, readiness) {
683
+ if (evidenceRefreshTimer) clearTimeout(evidenceRefreshTimer);
684
+ evidenceRefreshTimer = setTimeout(
685
+ () => _updateEvidenceRail(def, true),
686
+ _nextEvidenceRefreshDelay(readiness),
687
+ );
688
+ }
689
+ function _updateEvidenceRail(def, forceRefresh = false) {
690
  if (!evidenceRail || !def) return;
691
  evidenceRail.dataset.state = "UNVERIFIED";
692
  if (evidenceState) evidenceState.textContent = "UNVERIFIED";
693
+ if (estateObservationBadge) {
694
+ estateObservationBadge.dataset.state = "UNVERIFIED";
695
+ estateObservationBadge.textContent = "Evidence status: UNVERIFIED";
696
+ }
697
  if (evidenceTitle) evidenceTitle.textContent = def.title;
698
  if (evidenceId) evidenceId.textContent = def.id;
699
  if (evidenceContract) evidenceContract.textContent = `${catOf(def)} · ${def.mod}`;
700
  if (evidenceRuntime) evidenceRuntime.textContent = "CHECKING";
701
  if (evidenceReadiness) evidenceReadiness.textContent = "CHECKING";
702
+ _fetchEvidenceSnapshot(forceRefresh).then(({ readiness, build, generation }) => {
703
+ if (generation !== evidenceRefreshGeneration) return;
704
  const buildState = build?.build?.state || build?.state || "UNAVAILABLE";
705
  const revision = build?.build?.revision || build?.revision || null;
706
  if (evidenceRuntime) evidenceRuntime.textContent = revision ? `${buildState} · ${String(revision).slice(0,12)}…` : buildState;
707
+ const observed = _hasObservedEvidence(readiness, revision);
708
+ if (evidenceReadiness) {
709
+ evidenceReadiness.textContent = _readinessEvidenceText(readiness, observed);
710
+ }
711
  evidenceRail.dataset.state = observed ? "OBSERVED" : "UNVERIFIED";
712
  if (evidenceState) evidenceState.textContent = observed ? "OBSERVED" : "UNVERIFIED";
713
+ if (estateObservationBadge) {
714
+ estateObservationBadge.dataset.state = observed ? "OBSERVED" : "UNVERIFIED";
715
+ estateObservationBadge.textContent = observed
716
+ ? "The estate, observed—not assumed."
717
+ : "Evidence status: UNVERIFIED";
718
+ }
719
+ _scheduleEvidenceRefresh(def, readiness);
720
  });
721
  }
722
+ function _resumeEvidenceRefresh() {
723
+ if (document.hidden || !current?.def) return;
724
+ _updateEvidenceRail(current.def, true);
725
+ }
726
+ document.addEventListener("visibilitychange", _resumeEvidenceRefresh);
727
+ window.addEventListener("pageshow", _resumeEvidenceRefresh);
728
  const _panels = {}; // cat -> drop-panel element
729
  const _catBtns = {}; // cat -> dropdown button
730
  let searchLimit = 36;