File size: 18,971 Bytes
be00018
 
 
 
 
d504010
 
be00018
d504010
 
be00018
 
 
 
 
8486abf
be00018
d504010
 
 
 
be00018
 
d504010
8486abf
be00018
 
 
 
 
 
 
 
 
5684452
55e5019
be00018
 
 
 
2a10a57
d504010
 
 
 
 
 
be00018
 
 
d504010
 
 
 
 
 
 
 
 
be00018
 
 
 
d504010
 
 
 
 
 
 
 
 
 
 
 
 
 
be00018
d504010
be00018
d504010
be00018
 
d504010
be00018
d504010
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
be00018
d504010
 
 
be00018
d504010
 
 
 
 
 
 
be00018
d504010
 
 
 
 
be00018
d504010
 
 
 
 
 
 
 
 
 
 
 
be00018
 
 
 
 
d504010
be00018
8486abf
be00018
 
 
 
d504010
be00018
d504010
 
 
be00018
 
 
d504010
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
be00018
5684452
55e5019
be00018
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>a11oy · Command surfaces · SZL Holdings</title>
  <meta name="description" content="In-app map of a11oy command-center surfaces on a-11-oy.com. Hub atlas and ROADMAP live on a11oy.net. Interactive receipt verify stays on this origin.">
  <link rel="canonical" href="https://a-11-oy.com/ecosystem">
  <meta property="og:title" content="a11oy · Command surfaces">
  <meta property="og:description" content="In-app map of console surfaces on a-11-oy.com. Atlas and ROADMAP: a11oy.net. Interactive verify stays here.">
  <style>
    :root{--bg:#07100f;--panel:#0b1715;--panel2:#0e1d1a;--line:rgba(79,242,196,.17);--ink:#edf9f5;--muted:#8eaaa2;--teal:#3af4c8;--blue:#6c9cff;--gold:#d9bc75;--red:#ec827e;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--sans:Inter,ui-sans-serif,system-ui,sans-serif}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 80% -10%,rgba(62,144,130,.2),transparent 36%),linear-gradient(180deg,#06100e,#081210 55%,#050b0a);color:var(--ink);font-family:var(--sans)}
    a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.skip{position:fixed;left:12px;top:8px;z-index:100;transform:translateY(-160%);border-radius:8px;background:var(--teal);color:#03100c;padding:10px 13px;font:12px var(--mono)}.skip:focus{transform:none}.wrap{width:min(1180px,calc(100% - 32px));margin:auto}.mono{font-family:var(--mono)}
    header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(6,16,14,.9);backdrop-filter:blur(18px)}
    header .wrap{height:66px;display:flex;align-items:center;gap:18px}.brand{min-height:44px;display:flex;align-items:center;gap:11px;font-weight:760}.mark{width:28px;height:28px;border:1px solid var(--teal);border-radius:50%;display:grid;place-items:center;color:var(--teal);box-shadow:0 0 28px rgba(58,244,200,.22)}
    nav{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}nav a{min-height:44px;display:inline-flex;align-items:center;font-size:13px;color:var(--muted);padding:9px 11px;border-radius:9px}nav a:hover{background:rgba(58,244,200,.07);color:var(--ink)}.primary{border:1px solid rgba(58,244,200,.38);color:var(--teal)!important}
    .origins{display:flex;align-items:center;gap:6px;font:12px var(--mono);letter-spacing:.04em;flex:0 0 auto}
    .origins a{min-height:44px;display:inline-flex;align-items:center;padding:9px 6px;color:var(--muted)}
    .origins a[aria-current="page"]{color:var(--ink)}
    .origins .pipe{color:var(--muted)}
    .hero{padding:72px 0 42px}.eyebrow{font:11px var(--mono);letter-spacing:.16em;color:var(--teal);text-transform:uppercase}.hero h1{font-size:clamp(2.6rem,6vw,5.6rem);line-height:.93;letter-spacing:-.055em;margin:18px 0}.hero h1 span{color:transparent;background:linear-gradient(90deg,var(--teal),var(--blue));background-clip:text}.hero p{max-width:760px;color:var(--muted);font-size:1.08rem;line-height:1.7}.statebar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.state{font:11px var(--mono);border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted)}.state[href]{min-height:44px;display:inline-flex;align-items:center}.state.live{color:var(--teal);border-color:rgba(58,244,200,.4)}.state.cached{color:var(--gold);border-color:rgba(217,188,117,.42)}.state.bad{color:var(--red);border-color:rgba(236,130,126,.4)}
    .counts{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:10px;margin:20px 0 46px}.count{background:linear-gradient(160deg,rgba(14,29,26,.96),rgba(8,17,15,.96));border:1px solid var(--line);border-radius:14px;padding:16px}.count b{display:block;font:650 1.55rem var(--mono);color:var(--teal)}.count span{font:10px var(--mono);letter-spacing:.09em;color:var(--muted);text-transform:uppercase}
    .count.conj b{color:var(--muted);font-size:1.05rem}
    .toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.search{min-height:44px;flex:1;min-width:230px;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:12px 14px;font:13px var(--mono)}.search:focus{outline:1px solid var(--teal)}
    .tabs{display:flex;gap:7px;overflow:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:10px;margin-bottom:16px}.tab{min-height:44px;border:1px solid var(--line);background:rgba(11,23,21,.75);color:var(--muted);padding:9px 12px;border-radius:999px;font:11px var(--mono);white-space:nowrap;cursor:pointer}.tab.active,.tab:hover{color:#04100c;background:var(--teal);border-color:var(--teal)}
    .brief{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin:20px 0 26px}.brief>div{min-width:0;border:1px solid var(--line);border-radius:16px;background:linear-gradient(150deg,rgba(14,29,26,.9),rgba(7,15,13,.95));padding:22px}.brief h2{margin:0 0 9px;font-size:1.25rem}.brief p{margin:0;color:var(--muted);line-height:1.65}.links{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.chip{min-height:44px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--teal);font:11px var(--mono)}
    .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-bottom:70px}.grid>*{min-width:0}.card{display:flex;flex-direction:column;min-height:178px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(150deg,rgba(14,29,26,.9),rgba(7,15,13,.96));padding:18px;transition:.18s}.card:hover{border-color:rgba(58,244,200,.46);transform:translateY(-2px)}.kind{font:10px var(--mono);letter-spacing:.1em;color:var(--blue);text-transform:uppercase}.card h3{font-size:1rem;line-height:1.35;margin:10px 0;overflow-wrap:anywhere}.meta{display:grid;gap:6px;margin-top:auto;font:10.5px var(--mono);color:var(--muted)}.meta span{display:flex;justify-content:space-between;gap:12px;min-width:0}.meta b{min-width:0;font-weight:500;color:#c9dad5;text-align:right;overflow-wrap:anywhere}.open{margin-top:14px;color:var(--teal);font:11px var(--mono)}
    .empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:15px;padding:28px;color:var(--muted);text-align:center}.foot{border-top:1px solid var(--line);padding:35px 0 50px;color:var(--muted);font-size:12px;line-height:1.6}.foot .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.foot a{color:var(--teal)}
    @media(max-width:900px){.counts{grid-template-columns:repeat(4,minmax(0,1fr))}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brief{grid-template-columns:1fr}}
    @media(max-width:800px){.brand small{display:none}}
    @media(max-width:680px){header{position:static}header .wrap{height:auto;flex-wrap:wrap;padding:11px 0 8px}nav{width:100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}nav a{flex:0 0 auto}}
    @media(max-width:620px){.hero{padding-top:45px}.counts{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:1fr}.search{min-width:0;width:100%}.meta span{align-items:flex-start;flex-direction:column;gap:3px}.meta b{text-align:left}}
  </style>
  <link rel="stylesheet" href="/assets/szl-flow.css" data-szl-flow-asset="style" />
  <link rel="stylesheet" href="/assets/szl-holo-v2.css" data-szl-holo-asset="style-v2" />
</head>
<body>
  <a class="skip" href="#main">Skip to content</a>
  <header><div class="wrap">
    <a class="brand" href="/"><span class="mark">A</span><span>a11oy <small class="mono" style="color:var(--muted);font-weight:400">SZL Holdings</small></span></a>
    <nav class="origins" aria-label="Product and proof origins">
      <a href="https://a-11-oy.com" aria-current="page">Product</a>
      <span class="pipe" aria-hidden="true">|</span>
      <a href="https://a11oy.net">Proof</a>
    </nav>
    <nav aria-label="Primary"><a href="/console">Command center</a><a href="/verify">Verify</a><a href="/anatomy-v5">Anatomy v5</a><a class="primary" href="https://a11oy.net">Hub atlas on a11oy.net ↗</a></nav>
  </div></header>
  <main id="main">
    <section class="hero"><div class="wrap">
      <div class="eyebrow">a11oy command center · in-app surface map</div>
      <h1>Console surfaces.<br><span>Not the Hub atlas.</span></h1>
      <p>This page is an in-app map of command-center tools on <b>a-11-oy.com</b>. The Hub atlas, ROADMAP cuts, and the canonical stored receipt RECORD live on <a href="https://a11oy.net">a11oy.net</a> — a separate origin so proof stays a distinct failure domain. Interactive receipt verify stays here at <a href="/verify">/verify</a>.</p>
      <div class="statebar">
        <span class="state" id="atlas-state" role="status" aria-live="polite">LOADING</span>
        <span class="state" id="atlas-time">probing this origin</span>
        <a class="state" href="https://a11oy.net">Hub atlas · ROADMAP · RECORD ↗</a>
        <span class="state cached" title="Λ-uniqueness is Conjecture 1, never a theorem, never shown as a pass.">Λ = Conjecture 1</span>
      </div>
    </div></section>
    <div class="wrap">
      <section class="counts" id="counts"></section>
      <section class="brief">
        <div>
          <h2>Two origins, one product name.</h2>
          <p>a-11-oy.com is the command center (app + operator tools). a11oy.net is the public proof/registry. This map does not duplicate Hub inventory, model lists, or ROADMAP cuts. Those belong on a11oy.net. a11oy is the public name; the subtitle is Alloy by SZL Holdings.</p>
          <div class="links">
            <a class="chip" href="/console">Open command center →</a>
            <a class="chip" href="/verify">Verify a receipt (interactive) →</a>
            <a class="chip" href="https://a11oy.net">Proof origin · a11oy.net ↗</a>
          </div>
        </div>
        <div>
          <h2>Anatomy v5</h2>
          <p>An evidence-labelled digital twin of the estate on this origin. Unavailable sources remain visibly unavailable. Hub artifact inventory is not restated here.</p>
          <div class="links"><a class="chip" href="/anatomy-v5">Open Anatomy v5 →</a><a class="chip" href="/living-anatomy">Current 3D anatomy →</a></div>
        </div>
      </section>
      <section class="toolbar"><input class="search" id="search" type="search" placeholder="Search command and proof surfaces…" aria-label="Search ecosystem"></section>
      <section class="tabs" id="tabs" role="tablist" aria-label="Ecosystem categories"></section>
      <section class="grid" id="grid" role="tabpanel" aria-label="Ecosystem resources" aria-live="polite" tabindex="0"><div class="empty">Loading the in-app surface map…</div></section>
    </div>
  </main>
  <footer class="foot"><div class="wrap"><span>Surface chips are labelled REACHABLE, UNAVAILABLE, or ROADMAP. Λ stays Conjecture 1. Atlas content is not served from this page.</span><span><a href="/verify">Verify</a> · <a href="https://a11oy.net">a11oy.net</a> · <a href="/trust">Trust center</a></span></div></footer>
  <script>
    const labels={command:'Command',proof:'Proof',atlas:'Hub atlas (a11oy.net)'};
    const order=['command','proof','atlas'];
    const atlasKeys=['models','kernels','brain','anatomy','holographic','datasets','spaces','collections','buckets'];
    /* Console deep links use ?view= (PR 1396). Hash fragments still resolve as
       compatibility on /console; this map does not emit them. Investor is not a
       tile; INTI ships /investor as an alias to /console?view=investor. */
    const SURFACES={
      command:[
        {id:'Command Center',kind:'home',href:'/console?view=command',note:'Home · operator application on this origin'},
        {id:'Live System Map',kind:'home',href:'/console?view=mesh',note:'Home · same-origin service posture'},
        {id:'Ask & Act',kind:'operate',href:'/console?view=ask',note:'Operate · governed question → action loop'},
        {id:'Governed Decision',kind:'operate',href:'/console?view=decision',note:'Operate · deny-by-default gate, receipt on write'},
        {id:'Model Router',kind:'build',href:'/console?view=llm',note:'Build · model routing on this origin'},
        {id:'Receipt Chain',kind:'observe',href:'/console?view=chain',note:'Observe · hash-chained receipts'},
        {id:'Trust Score',kind:'govern',href:'/console?view=lambda',note:'Govern · Λ = Conjecture 1, never a pass'},
        {id:'Publications',kind:'research',href:'/console?view=publications',note:'Research · cited work, not Hub atlas'},
        {id:'Energy Telemetry',kind:'more',href:'/console?view=energy',note:'More · joules labelled SAMPLE without a lung'}
      ],
      proof:[
        {id:'Verify a receipt',kind:'proof',href:'/verify',note:'Interactive verifier on this origin — not moved to a11oy.net'},
        {id:'What We Claim',kind:'govern',href:'/console?view=honest',note:'Govern · honest-status surface'},
        {id:'Trust center',kind:'proof',href:'/trust',note:'What we claim, labelled'},
        {id:'Frontier',kind:'proof',href:'/frontier',note:'Honest capability roll-up'},
        {id:'Canonical RECORD',kind:'proof',href:'https://a11oy.net',note:'Stored receipt RECORD lives on the proof origin'}
      ],
      atlas:[
        {id:'Hub atlas',kind:'registry',href:'https://a11oy.net',note:'Models, kernels, Spaces, collections — not duplicated here'},
        {id:'ROADMAP cuts',kind:'registry',href:'https://a11oy.net',note:'ROADMAP inventory lives on a11oy.net only'},
        {id:'Canonical RECORD',kind:'registry',href:'https://a11oy.net',note:'Canonical stored receipt, separate failure domain'}
      ]
    };
    let originState='UNAVAILABLE', query='';
    let active='command';
    const pathKey=location.pathname.split('/').filter(Boolean).at(-1)||'command';
    const hashKey=location.hash.slice(1);
    if(order.includes(hashKey)) active=hashKey;
    else if(order.includes(pathKey)) active=pathKey;
    else if(atlasKeys.includes(hashKey)||atlasKeys.includes(pathKey)) active='atlas';
    function esc(v){return String(v??'').replace(/[&<>"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));}
    function isProofOriginHref(href){
      try{
        const u=new URL(String(href||''));
        return u.protocol==='https:' && u.hostname==='a11oy.net';
      }catch(e){
        return false;
      }
    }
    function surfaceLabel(row){
      if(isProofOriginHref(row.href)) return 'ROADMAP';
      return originState==='LIVE'?'REACHABLE':'UNAVAILABLE';
    }
    function cardsFor(key){return SURFACES[key]||[];}
    function renderCounts(){
      document.getElementById('counts').innerHTML=[
        ['REACHABLE or UNAVAILABLE','this origin'],
        ['ROADMAP','atlas on a11oy.net'],
        ['Conjecture 1','Λ uniqueness'],
        ['/verify','interactive, here'],
        ['RECORD','stored on a11oy.net'],
        ['a-11-oy.com','Product'],
        ['a11oy.net','Proof']
      ].map(function(pair,i){
        var klass=i===2?'count conj':'count';
        return '<div class="'+klass+'"><b>'+esc(pair[0])+'</b><span>'+esc(pair[1])+'</span></div>';
      }).join('');
    }
    function selectTab(key,{focus=false}={}){
      active=key;history.replaceState(null,'','/ecosystem#'+active);renderTabs();renderGrid();if(focus)document.getElementById('tab-'+active)?.focus();
    }
    function renderTabs(){
      document.getElementById('tabs').innerHTML=order.map(k=>`<button type="button" class="tab ${k===active?'active':''}" id="tab-${k}" data-tab="${k}" role="tab" aria-selected="${k===active}" aria-controls="grid" tabindex="${k===active?'0':'-1'}">${labels[k]} <span></span></button>`).join('');
      document.getElementById('grid').setAttribute('aria-labelledby','tab-'+active);
      const buttons=[...document.querySelectorAll('.tab')];buttons.forEach((button,index)=>{button.addEventListener('click',()=>selectTab(button.dataset.tab));button.addEventListener('keydown',event=>{let next;if(event.key==='ArrowRight')next=(index+1)%buttons.length;else if(event.key==='ArrowLeft')next=(index-1+buttons.length)%buttons.length;else if(event.key==='Home')next=0;else if(event.key==='End')next=buttons.length-1;else return;event.preventDefault();selectTab(buttons[next].dataset.tab,{focus:true})})});
    }
    function renderGrid(){
      const rows=cardsFor(active).filter(r=>JSON.stringify(r).toLowerCase().includes(query));
      const grid=document.getElementById('grid');
      if(!rows.length){grid.innerHTML='<div class="empty">No matching command or proof surfaces.</div>';return;}
      grid.innerHTML=rows.map(r=>{
        const ext=String(r.href||'').startsWith('http');
        const label=surfaceLabel(r);
        return `<a class="card" href="${esc(r.href||'#')}" ${ext?'target="_blank" rel="noopener"':''}><div class="kind">${esc(r.kind||active)}</div><h3>${esc(r.id)}</h3><div class="meta"><span>posture<b>${esc(label)}</b></span><span>where<b>${esc(r.note||'')}</b></span></div><span class="open">${ext?'Open on a11oy.net →':'Open surface →'}</span></a>`;
      }).join('');
    }
    document.getElementById('search').addEventListener('input',e=>{query=e.target.value.trim().toLowerCase();renderGrid();});
    renderCounts();renderTabs();renderGrid();
    fetch('/healthz',{cache:'no-store',headers:{accept:'application/json'}}).then(r=>{if(!r.ok)throw Error('HTTP '+r.status);return r.json()}).then(d=>{
      let normalized=String(d.status||d.state||'UNAVAILABLE').trim().toUpperCase().replace(/[ -]+/g,'_');
      if(normalized==='OK'||normalized==='HEALTHY') normalized='LIVE';
      const evidenceStates=['LIVE','CACHED','STALE_CACHE','SNAPSHOT','DEGRADED','MODELED','OBSERVED','AVAILABLE','UNAVAILABLE'];
      const displayState=evidenceStates.includes(normalized)?normalized:'UNAVAILABLE';
      originState=displayState;
      const state=document.getElementById('atlas-state');
      const amberStates=['CACHED','STALE_CACHE','SNAPSHOT','DEGRADED','MODELED','OBSERVED','AVAILABLE'];
      state.textContent=displayState==='LIVE'?'REACHABLE':displayState;
      state.classList.add(displayState==='LIVE'?'live':(amberStates.includes(displayState)?'cached':'bad'));
      document.getElementById('atlas-time').textContent='this origin · /healthz';
      renderGrid();
    }).catch(e=>{
      originState='UNAVAILABLE';
      document.getElementById('atlas-state').textContent='UNAVAILABLE';
      document.getElementById('atlas-state').classList.add('bad');
      document.getElementById('atlas-time').textContent='this origin did not answer /healthz';
      renderGrid();
    });
  </script>
  <script src="/assets/szl-flow.js" defer data-szl-flow-asset="script"></script>
  <script src="/assets/szl-holo-v2.js" defer data-szl-holo-asset="script-v2"></script>
</body>
</html>