betterwithage Claude Opus 4.7 commited on
Commit
393d6e8
·
verified ·
1 Parent(s): 65eb370

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

Browse files

Reusable Dockerfile-COPY-derived deploy from szl-holdings/a11oy 80cfbb5e89fbeab9022cbce70b8c177fa80cceb7.
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. pages/console.html +65 -39
pages/console.html CHANGED
@@ -112,9 +112,10 @@ a{color:inherit;text-decoration:none;}
112
  .nav-group.mod-proofs{color:#a09cc0;border-left-color:rgba(160,156,192,.3);}
113
  .nav-group.mod-lake{color:var(--gold-bright);border-left-color:rgba(214,198,154,.3);}
114
  .nav-group.mod-api{color:var(--muted);border-left-color:rgba(136,136,136,.25);}
115
- .nav-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;border-radius:7px;cursor:pointer;color:var(--paragraph);font:13.5px var(--display);text-align:left;transition:.15s;border:1px solid transparent;background:transparent;}
116
  .nav-item:hover{background:var(--gold-soft);color:var(--cream);}
117
  .nav-item.active{background:var(--teal-soft);color:var(--teal);border-color:var(--teal-line);}
 
118
  .nav-item .ico{width:16px;text-align:center;opacity:.8;font-size:12px;}
119
  .side-foot{margin-top:1.2rem;padding:.7rem .6rem;border-top:1px solid var(--gold-line);font-family:var(--mono);font-size:9.5px;color:var(--dim);line-height:1.7;}
120
 
@@ -721,56 +722,56 @@ details.raw[open] summary{color:var(--muted);}
721
 
722
  <!-- ── 1 · HOME ─────────────────────────────────────────────────────── -->
723
  <div class="nav-group mod-home">Home</div>
724
- <div class="nav-item active" data-view="command" onclick="go('command')"><span class="ico">◎</span>Command Center</div>
725
- <div class="nav-item" data-view="mesh" onclick="go('mesh')"><span class="ico">⊹</span>Live System Map</div>
726
 
727
  <!-- ── 2 · OPERATE ──────────────────────────────────────────────────── -->
728
  <div class="nav-group mod-operate">Operate</div>
729
- <div class="nav-item" data-view="launcher" onclick="go('launcher')"><span class="ico">▦</span>App Launcher</div>
730
- <div class="nav-item" data-view="ask" onclick="go('ask')"><span class="ico">✦</span>Ask &amp; Act</div>
731
- <div class="nav-item" data-view="demo" onclick="go('demo')"><span class="ico">⊞</span>Run a Demo</div>
732
- <div class="nav-item" data-view="decision" onclick="go('decision')"><span class="ico">◈</span>Governed Decision</div>
733
 
734
  <!-- ── 3 · BUILD ────────────────────────────────────────────────────── -->
735
  <div class="nav-group mod-build">Build</div>
736
- <div class="nav-item" data-view="llm" onclick="go('llm')"><span class="ico">⚇</span>Model Router</div>
737
- <div class="nav-item" data-view="alloy" onclick="go('alloy')"><span class="ico">⚗</span>Open-Weight Alloy</div>
738
- <div class="nav-item" data-view="mcp" onclick="go('mcp')"><span class="ico">⚙</span>Agent Tools</div>
739
- <div class="nav-item" data-view="knowledge" onclick="go('knowledge')"><span class="ico">⬡</span>Knowledge Ontology</div>
740
- <div class="nav-item" data-view="genome" onclick="go('genome')"><span class="ico">⬢</span>Genome</div>
741
- <div class="nav-item" data-view="kbformulas" onclick="go('kbformulas')"><span class="ico">∑</span>Formulas</div>
742
 
743
  <!-- ── 4 · OBSERVE ──────────────────────────────────────────────────── -->
744
  <!-- Khipu receipt lake + recorded eval/replay. Chain is the proof-of-governance hero. -->
745
  <div class="nav-group mod-observe">Observe</div>
746
- <div class="nav-item" data-view="chain" onclick="go('chain')"><span class="ico">⛓</span>Receipt Chain</div>
747
- <div class="nav-item" data-view="evidence" onclick="go('evidence')"><span class="ico">⬡</span>Evidence Ledger</div>
748
- <div class="nav-item" data-view="replay" onclick="go('replay')"><span class="ico">◷</span>Reasoning Replay</div>
749
- <div class="nav-item" data-view="arena" onclick="go('arena')"><span class="ico">⊜</span>Eval Arena</div>
750
 
751
  <!-- ── 5 · GOVERN ───────────────────────────────────────────────────── -->
752
  <!-- DOCTRINE: Λ = Conjecture 1 (never theorem, never 1.0). 8 locked-proven {F1,F4,F7,F11,F12,F18,F19,F22}. -->
753
  <div class="nav-group mod-govern">Govern</div>
754
- <div class="nav-item" data-view="lambda" onclick="go('lambda')"><span class="ico">◔</span>Trust Score (Λ)</div>
755
- <div class="nav-item" data-view="gates" onclick="go('gates')"><span class="ico">⊠</span>Safety Gates</div>
756
- <div class="nav-item" data-view="govern" onclick="go('govern')"><span class="ico">✓</span>Readiness &amp; Compliance</div>
757
- <div class="nav-item" data-view="honest" onclick="go('honest')"><span class="ico">⊘</span>What We Claim</div>
758
 
759
  <!-- ── 6 · RESEARCH ─────────────────────────────────────────────────── -->
760
  <div class="nav-group mod-research">Research</div>
761
- <div class="nav-item" data-view="publications" onclick="go('publications')"><span class="ico">▤</span>Publications</div>
762
- <div class="nav-item" data-view="frontier" onclick="go('frontier')"><span class="ico">◈</span>Frontier Pipeline</div>
763
- <div class="nav-item" data-view="labs" onclick="go('labs')"><span class="ico">⚛</span>Labs<span class="lab-chip">EXPERIMENTAL</span></div>
764
- <div class="nav-item" data-view="labsintro" onclick="go('labsintro')"><span class="ico">⊹</span>Labs · what we extend<span class="lab-chip">EXPERIMENTAL</span></div>
765
 
766
  <!-- ── 7 · MORE ─────────────────────────────────────────────────────── -->
767
  <!-- DOCTRINE: energy_joules UNAVAILABLE until sovereign GPU + meter online; UI says
768
  UNAVAILABLE, never fakes watts. SCI = (E × I + M) / R per ISO 21031:2024. -->
769
  <div class="nav-group mod-more">More ▾</div>
770
- <div class="nav-item" data-view="energy" onclick="go('energy')"><span class="ico">⚡</span>Energy Telemetry</div>
771
- <div class="nav-item" data-view="energySci" onclick="go('energySci')"><span class="ico">♻</span>SCI Scores</div>
772
- <div class="nav-item" data-view="energyReceipts" onclick="go('energyReceipts')"><span class="ico">⎙</span>Energy Receipts</div>
773
- <div class="nav-item" data-view="energyGrid" onclick="go('energyGrid')"><span class="ico">⊟</span>Grid Settings</div>
774
 
775
  <div class="side-foot">Trust score (Λ) = Conjecture 1 (+conditional-proven)<br>8 locked-proven + 80+ experimental CI-green<br>SLSA L1 honest; L2 .att emitted (not independently verified) · L3 roadmap · 5 services<br>Verifiable receipts · honest by design</div>
776
  </aside>
@@ -2426,7 +2427,21 @@ function go(view){
2426
  if(!VIEWS[view]){ console.warn('unknown tab: '+view); return; }
2427
  // tear down ALL live visuals (Chart.js, ECharts, 3d-force-graph, globe.gl, cytoscape) before switching
2428
  tearDownAll();
2429
- document.querySelectorAll('.nav-item').forEach(n=>n.classList.toggle('active',n.dataset.view===view));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2430
  const v=VIEWS[view];const c=el('content');
2431
  // Stash the requested view key (which may carry a deep-linked sub-tab, e.g.
2432
  // 'vdefense/decision') BEFORE render. vertPack reads this to open the correct
@@ -11769,9 +11784,10 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
11769
  var SHA='baf483be3c832b64da47161b558e283d68da6650';
11770
  var SHORT='baf483b';
11771
  var BRANCH='putnam-2025-canonical-set';
 
11772
  var COMPUTED='2026-06-15';
11773
- var TREE='https://github.com/szl-holdings/lutar-lean/tree/'+SHA+'/Lutar/Putnam';
11774
- var BASE='https://github.com/szl-holdings/lutar-lean/blob/'+SHA+'/Lutar/Putnam/';
11775
  var TEAL='#3ddc97', GOLD='#c9b787', DIM='#8a8f98';
11776
  // Embedded fallback snapshot (matches the live loader exactly), used if the API is unreachable.
11777
  var FB_PROBS=[
@@ -11803,7 +11819,7 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
11803
  var pb=j.putnam||{}, sb=j.szl_originals||{};
11804
  var probs=(pb.problems||[]).map(function(p){ return {id:p.id,file:p.file,url:p.url||(BASE+p.file),status:p.status,note:p.note}; });
11805
  var szl=(sb.items||[]).map(function(s){ return {id:s.id,file:s.file,url:s.url||(BASE+s.file),status:s.status,note:s.note,theorems:s.theorems||[]}; });
11806
- return { live:true, sha:j.sha||SHA, short:j.short||SHORT, branch:j.branch||BRANCH, computed:j.computed||COMPUTED, tree:j.tree||TREE,
11807
  probs:probs, szl:szl,
11808
  real:(pb.real!=null?pb.real:probs.filter(function(p){return p.status==='REAL';}).length),
11809
  demo:(pb.demo!=null?pb.demo:probs.filter(function(p){return p.status==='DEMO';}).length),
@@ -11813,7 +11829,7 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
11813
  function fromFallback(){
11814
  var probs=FB_PROBS.map(function(p){ return {id:p[0],file:p[1],url:BASE+p[1],status:p[2],note:p[3]}; });
11815
  var szl=FB_SZL.map(function(s){ return {id:s[0],file:s[1],url:BASE+s[1],status:s[2],note:s[3],theorems:[]}; });
11816
- return { live:false, sha:SHA, short:SHORT, branch:BRANCH, computed:COMPUTED, tree:TREE,
11817
  probs:probs, szl:szl,
11818
  real:probs.filter(function(p){return p.status==='REAL';}).length,
11819
  demo:probs.filter(function(p){return p.status==='DEMO';}).length,
@@ -11828,12 +11844,12 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
11828
  if(m.live){
11829
  H+='<div style="font-family:var(--mono,monospace);font-size:11px;color:'+TEAL+';margin:0 0 14px;">'
11830
  +'\u25c9 LIVE \u00b7 doctrine-v11 kernel verdict served from this organ\u2019s /api/'+esc(NS)+'/v1/putnam, '
11831
- +'transcribed from <a href="'+esc(m.tree)+'" target="_blank" rel="noopener" style="color:'+TEAL+';">lutar-lean '+esc(m.branch)+' @'+esc(m.short)+'</a>'
11832
  +' \u00b7 '+esc(m.computed)+'.</div>';
11833
  } else {
11834
  H+='<div style="font-family:var(--mono,monospace);font-size:11px;color:'+GOLD+';margin:0 0 14px;">'
11835
  +'\u25c8 CACHED SNAPSHOT \u00b7 doctrine-v11 kernel verdict from '
11836
- +'<a href="'+esc(m.tree)+'" target="_blank" rel="noopener" style="color:'+GOLD+';">lutar-lean '+esc(m.branch)+' @'+esc(m.short)+'</a>'
11837
  +' \u00b7 '+esc(m.computed)+' \u2014 live loader unreachable; embedded numbers match the pinned commit; re-deploy to refresh.</div>';
11838
  }
11839
  // bridge paragraph VERBATIM
@@ -15977,8 +15993,7 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
15977
  try{
15978
  var cur = (location.hash||'#command').slice(1).split('/')[0];
15979
  var act = side.querySelector('.nav-item[data-view="'+cur+'"]');
15980
- if(act) act.classList.add('active');
15981
- else { var c = side.querySelector('.nav-item[data-view="command"]'); if(c) c.classList.add('active'); }
15982
  }catch(e){}
15983
  return true;
15984
  }
@@ -16129,11 +16144,22 @@ window.warboard_init=warboard_init; window.warboard_all=warboard_all;
16129
  var host=document.getElementById('pinned-host'); if(!host) return;
16130
  var p=getPins().filter(function(k){ return window.VIEWS&&window.VIEWS[k]; });
16131
  if(!p.length){ host.innerHTML=''; return; }
 
 
 
 
 
16132
  var h='<div class="nav-group mod-pinned">★ Pinned</div>';
16133
  p.forEach(function(k){
16134
- h+='<div class="nav-item" data-view="'+esc(k)+'" onclick="go(\''+esc(k)+'\')"><span class="ico">★</span>'+esc(titleOf(k))+'</div>';
16135
  });
16136
  host.innerHTML=h;
 
 
 
 
 
 
16137
  }
16138
  window.__a11oyRenderPins=renderPins;
16139
 
 
112
  .nav-group.mod-proofs{color:#a09cc0;border-left-color:rgba(160,156,192,.3);}
113
  .nav-group.mod-lake{color:var(--gold-bright);border-left-color:rgba(214,198,154,.3);}
114
  .nav-group.mod-api{color:var(--muted);border-left-color:rgba(136,136,136,.25);}
115
+ .nav-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;border-radius:7px;cursor:pointer;color:var(--paragraph);font:13.5px var(--display);text-align:left;transition:.15s;border:1px solid transparent;background:transparent;appearance:none;}
116
  .nav-item:hover{background:var(--gold-soft);color:var(--cream);}
117
  .nav-item.active{background:var(--teal-soft);color:var(--teal);border-color:var(--teal-line);}
118
+ .nav-item:focus-visible{outline:2px solid var(--teal);outline-offset:2px;color:var(--cream);}
119
  .nav-item .ico{width:16px;text-align:center;opacity:.8;font-size:12px;}
120
  .side-foot{margin-top:1.2rem;padding:.7rem .6rem;border-top:1px solid var(--gold-line);font-family:var(--mono);font-size:9.5px;color:var(--dim);line-height:1.7;}
121
 
 
722
 
723
  <!-- ── 1 · HOME ─────────────────────────────────────────────────────── -->
724
  <div class="nav-group mod-home">Home</div>
725
+ <button type="button" class="nav-item active" data-view="command" aria-current="page" onclick="go('command')"><span class="ico">◎</span>Command Center</button>
726
+ <button type="button" class="nav-item" data-view="mesh" onclick="go('mesh')"><span class="ico">⊹</span>Live System Map</button>
727
 
728
  <!-- ── 2 · OPERATE ──────────────────────────────────────────────────── -->
729
  <div class="nav-group mod-operate">Operate</div>
730
+ <button type="button" class="nav-item" data-view="launcher" onclick="go('launcher')"><span class="ico">▦</span>App Launcher</button>
731
+ <button type="button" class="nav-item" data-view="ask" onclick="go('ask')"><span class="ico">✦</span>Ask &amp; Act</button>
732
+ <button type="button" class="nav-item" data-view="demo" onclick="go('demo')"><span class="ico">⊞</span>Run a Demo</button>
733
+ <button type="button" class="nav-item" data-view="decision" onclick="go('decision')"><span class="ico">◈</span>Governed Decision</button>
734
 
735
  <!-- ── 3 · BUILD ────────────────────────────────────────────────────── -->
736
  <div class="nav-group mod-build">Build</div>
737
+ <button type="button" class="nav-item" data-view="llm" onclick="go('llm')"><span class="ico">⚇</span>Model Router</button>
738
+ <button type="button" class="nav-item" data-view="alloy" onclick="go('alloy')"><span class="ico">⚗</span>Open-Weight Alloy</button>
739
+ <button type="button" class="nav-item" data-view="mcp" onclick="go('mcp')"><span class="ico">⚙</span>Agent Tools</button>
740
+ <button type="button" class="nav-item" data-view="knowledge" onclick="go('knowledge')"><span class="ico">⬡</span>Knowledge Ontology</button>
741
+ <button type="button" class="nav-item" data-view="genome" onclick="go('genome')"><span class="ico">⬢</span>Genome</button>
742
+ <button type="button" class="nav-item" data-view="kbformulas" onclick="go('kbformulas')"><span class="ico">∑</span>Formulas</button>
743
 
744
  <!-- ── 4 · OBSERVE ──────────────────────────────────────────────────── -->
745
  <!-- Khipu receipt lake + recorded eval/replay. Chain is the proof-of-governance hero. -->
746
  <div class="nav-group mod-observe">Observe</div>
747
+ <button type="button" class="nav-item" data-view="chain" onclick="go('chain')"><span class="ico">⛓</span>Receipt Chain</button>
748
+ <button type="button" class="nav-item" data-view="evidence" onclick="go('evidence')"><span class="ico">⬡</span>Evidence Ledger</button>
749
+ <button type="button" class="nav-item" data-view="replay" onclick="go('replay')"><span class="ico">◷</span>Reasoning Replay</button>
750
+ <button type="button" class="nav-item" data-view="arena" onclick="go('arena')"><span class="ico">⊜</span>Eval Arena</button>
751
 
752
  <!-- ── 5 · GOVERN ───────────────────────────────────────────────────── -->
753
  <!-- DOCTRINE: Λ = Conjecture 1 (never theorem, never 1.0). 8 locked-proven {F1,F4,F7,F11,F12,F18,F19,F22}. -->
754
  <div class="nav-group mod-govern">Govern</div>
755
+ <button type="button" class="nav-item" data-view="lambda" onclick="go('lambda')"><span class="ico">◔</span>Trust Score (Λ)</button>
756
+ <button type="button" class="nav-item" data-view="gates" onclick="go('gates')"><span class="ico">⊠</span>Safety Gates</button>
757
+ <button type="button" class="nav-item" data-view="govern" onclick="go('govern')"><span class="ico">✓</span>Readiness &amp; Compliance</button>
758
+ <button type="button" class="nav-item" data-view="honest" onclick="go('honest')"><span class="ico">⊘</span>What We Claim</button>
759
 
760
  <!-- ── 6 · RESEARCH ─────────────────────────────────────────────────── -->
761
  <div class="nav-group mod-research">Research</div>
762
+ <button type="button" class="nav-item" data-view="publications" onclick="go('publications')"><span class="ico">▤</span>Publications</button>
763
+ <button type="button" class="nav-item" data-view="frontier" onclick="go('frontier')"><span class="ico">◈</span>Frontier Pipeline</button>
764
+ <button type="button" class="nav-item" data-view="labs" onclick="go('labs')"><span class="ico">⚛</span>Labs<span class="lab-chip">EXPERIMENTAL</span></button>
765
+ <button type="button" class="nav-item" data-view="labsintro" onclick="go('labsintro')"><span class="ico">⊹</span>Labs · what we extend<span class="lab-chip">EXPERIMENTAL</span></button>
766
 
767
  <!-- ── 7 · MORE ─────────────────────────────────────────────────────── -->
768
  <!-- DOCTRINE: energy_joules UNAVAILABLE until sovereign GPU + meter online; UI says
769
  UNAVAILABLE, never fakes watts. SCI = (E × I + M) / R per ISO 21031:2024. -->
770
  <div class="nav-group mod-more">More ▾</div>
771
+ <button type="button" class="nav-item" data-view="energy" onclick="go('energy')"><span class="ico">⚡</span>Energy Telemetry</button>
772
+ <button type="button" class="nav-item" data-view="energySci" onclick="go('energySci')"><span class="ico">♻</span>SCI Scores</button>
773
+ <button type="button" class="nav-item" data-view="energyReceipts" onclick="go('energyReceipts')"><span class="ico">⎙</span>Energy Receipts</button>
774
+ <button type="button" class="nav-item" data-view="energyGrid" onclick="go('energyGrid')"><span class="ico">⊟</span>Grid Settings</button>
775
 
776
  <div class="side-foot">Trust score (Λ) = Conjecture 1 (+conditional-proven)<br>8 locked-proven + 80+ experimental CI-green<br>SLSA L1 honest; L2 .att emitted (not independently verified) · L3 roadmap · 5 services<br>Verifiable receipts · honest by design</div>
777
  </aside>
 
2427
  if(!VIEWS[view]){ console.warn('unknown tab: '+view); return; }
2428
  // tear down ALL live visuals (Chart.js, ECharts, 3d-force-graph, globe.gl, cytoscape) before switching
2429
  tearDownAll();
2430
+ var canonicalCurrent=null;
2431
+ var pinnedCurrent=null;
2432
+ document.querySelectorAll('.nav-item').forEach(function(n){
2433
+ if(n.dataset.view===view){
2434
+ if(!pinnedCurrent && n.closest('#pinned-host')){ pinnedCurrent=n; }
2435
+ if(!canonicalCurrent && !n.closest('#pinned-host')){ canonicalCurrent=n; }
2436
+ }
2437
+ });
2438
+ canonicalCurrent=canonicalCurrent||pinnedCurrent;
2439
+ document.querySelectorAll('.nav-item').forEach(function(n){
2440
+ var active=n.dataset.view===view;
2441
+ n.classList.toggle('active',active);
2442
+ if(n===canonicalCurrent){ n.setAttribute('aria-current','page'); }
2443
+ else { n.removeAttribute('aria-current'); }
2444
+ });
2445
  const v=VIEWS[view];const c=el('content');
2446
  // Stash the requested view key (which may carry a deep-linked sub-tab, e.g.
2447
  // 'vdefense/decision') BEFORE render. vertPack reads this to open the correct
 
11784
  var SHA='baf483be3c832b64da47161b558e283d68da6650';
11785
  var SHORT='baf483b';
11786
  var BRANCH='putnam-2025-canonical-set';
11787
+ var REF=SHA;
11788
  var COMPUTED='2026-06-15';
11789
+ var TREE='https://github.com/szl-holdings/lutar-lean/tree/'+REF+'/Lutar/Putnam';
11790
+ var BASE='https://github.com/szl-holdings/lutar-lean/blob/'+REF+'/Lutar/Putnam/';
11791
  var TEAL='#3ddc97', GOLD='#c9b787', DIM='#8a8f98';
11792
  // Embedded fallback snapshot (matches the live loader exactly), used if the API is unreachable.
11793
  var FB_PROBS=[
 
11819
  var pb=j.putnam||{}, sb=j.szl_originals||{};
11820
  var probs=(pb.problems||[]).map(function(p){ return {id:p.id,file:p.file,url:p.url||(BASE+p.file),status:p.status,note:p.note}; });
11821
  var szl=(sb.items||[]).map(function(s){ return {id:s.id,file:s.file,url:s.url||(BASE+s.file),status:s.status,note:s.note,theorems:s.theorems||[]}; });
11822
+ return { live:true, sha:j.sha||SHA, short:j.short||SHORT, branch:j.branch||BRANCH, ref:j.canonical_ref||j.sha||REF, computed:j.computed||COMPUTED, tree:j.tree||TREE,
11823
  probs:probs, szl:szl,
11824
  real:(pb.real!=null?pb.real:probs.filter(function(p){return p.status==='REAL';}).length),
11825
  demo:(pb.demo!=null?pb.demo:probs.filter(function(p){return p.status==='DEMO';}).length),
 
11829
  function fromFallback(){
11830
  var probs=FB_PROBS.map(function(p){ return {id:p[0],file:p[1],url:BASE+p[1],status:p[2],note:p[3]}; });
11831
  var szl=FB_SZL.map(function(s){ return {id:s[0],file:s[1],url:BASE+s[1],status:s[2],note:s[3],theorems:[]}; });
11832
+ return { live:false, sha:SHA, short:SHORT, branch:BRANCH, ref:REF, computed:COMPUTED, tree:TREE,
11833
  probs:probs, szl:szl,
11834
  real:probs.filter(function(p){return p.status==='REAL';}).length,
11835
  demo:probs.filter(function(p){return p.status==='DEMO';}).length,
 
11844
  if(m.live){
11845
  H+='<div style="font-family:var(--mono,monospace);font-size:11px;color:'+TEAL+';margin:0 0 14px;">'
11846
  +'\u25c9 LIVE \u00b7 doctrine-v11 kernel verdict served from this organ\u2019s /api/'+esc(NS)+'/v1/putnam, '
11847
+ +'transcribed from <a href="'+esc(m.tree)+'" target="_blank" rel="noopener" style="color:'+TEAL+';">lutar-lean branch '+esc(m.branch)+' \u00b7 pinned @'+esc(m.short)+'</a>'
11848
  +' \u00b7 '+esc(m.computed)+'.</div>';
11849
  } else {
11850
  H+='<div style="font-family:var(--mono,monospace);font-size:11px;color:'+GOLD+';margin:0 0 14px;">'
11851
  +'\u25c8 CACHED SNAPSHOT \u00b7 doctrine-v11 kernel verdict from '
11852
+ +'<a href="'+esc(m.tree)+'" target="_blank" rel="noopener" style="color:'+GOLD+';">lutar-lean branch '+esc(m.branch)+' \u00b7 pinned @'+esc(m.short)+'</a>'
11853
  +' \u00b7 '+esc(m.computed)+' \u2014 live loader unreachable; embedded numbers match the pinned commit; re-deploy to refresh.</div>';
11854
  }
11855
  // bridge paragraph VERBATIM
 
15993
  try{
15994
  var cur = (location.hash||'#command').slice(1).split('/')[0];
15995
  var act = side.querySelector('.nav-item[data-view="'+cur+'"]');
15996
+ if(act){ act.classList.add('active'); act.setAttribute('aria-current','page'); }
 
15997
  }catch(e){}
15998
  return true;
15999
  }
 
16144
  var host=document.getElementById('pinned-host'); if(!host) return;
16145
  var p=getPins().filter(function(k){ return window.VIEWS&&window.VIEWS[k]; });
16146
  if(!p.length){ host.innerHTML=''; return; }
16147
+ var cur=window._requestedView||(location.hash||'#command').slice(1);
16148
+ var canonicalCurrent=false;
16149
+ document.querySelectorAll('.nav-item').forEach(function(n){
16150
+ if(!n.closest('#pinned-host')&&n.dataset.view===cur){ canonicalCurrent=true; }
16151
+ });
16152
  var h='<div class="nav-group mod-pinned">★ Pinned</div>';
16153
  p.forEach(function(k){
16154
+ h+='<button type="button" class="nav-item" data-view="'+esc(k)+'" onclick="go(\''+esc(k)+'\')"><span class="ico">★</span>'+esc(titleOf(k))+'</button>';
16155
  });
16156
  host.innerHTML=h;
16157
+ host.querySelectorAll('.nav-item').forEach(function(n){
16158
+ var isCurrent=n.dataset.view===cur;
16159
+ n.classList.toggle('active',isCurrent);
16160
+ if(isCurrent&&!canonicalCurrent){ n.setAttribute('aria-current','page'); }
16161
+ else { n.removeAttribute('aria-current'); }
16162
+ });
16163
  }
16164
  window.__a11oyRenderPins=renderPins;
16165