betterwithage Claude Opus 4.7 commited on
Commit
e60f6c9
·
verified ·
1 Parent(s): 12f5f2e

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

Browse files

Reusable Dockerfile-COPY-derived deploy from szl-holdings/a11oy main.
Files: 825 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. console/anatomy-map/app.js +199 -0
console/anatomy-map/app.js CHANGED
@@ -472,6 +472,7 @@
472
  let V7=null; // v5 quantum-bio layer (coherence + bioenergetic + Λ-v5 gate + compass; verified model, mirrors a11oy /qbio)
473
  let V8=null; // v8 live agentic lens (read-only reflection of a11oy's real agent loop / gates / verified math)
474
  let V9=null; // v9 fly-high: live receipt bloodstream + heartbeat loop + killinchu body + cinematic vital tour + agent trace + polish
 
475
  function flyTo(targetVec, radius){
476
  tween={fromT:cam.target.clone(),toT:targetVec.clone(),fromR:cam.r,toR:radius==null?cam.r:radius,t:0,dur:0.9};
477
  }
@@ -653,6 +654,8 @@
653
  if(V7 && V7.tick) V7.tick(dt,t);
654
  // v9 fly-high: live receipt bloodstream particles + cinematic vital tour camera + heartbeat-loop heart breathing
655
  if(V9 && V9.tick) V9.tick(dt,t,beat);
 
 
656
  renderer.render(scene,camera);
657
  if(!_loaderHidden){ _loaderHidden=true; var ld=$('loader'); if(ld) ld.classList.add('hidden'); }
658
  }
@@ -2817,6 +2820,201 @@
2817
 
2818
  /* ---- v9 bootstrap is internal to the IIFE above (wire + heartbeat + killinchu probe) ---- */
2819
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2820
  /* ---------------- test hooks for headless QA ---------------- */
2821
  window.__anatomy = {
2822
  organs: organMeshes.length,
@@ -2834,6 +3032,7 @@
2834
  v7: V7, // v5 quantum-bio layer (coherence + bioenergetic + Λ-v5 gate + compass; verified model, mirrors a11oy /qbio)
2835
  v8: V8, // v8 live agentic lens (read-only reflection of a11oy's real agent loop; runDecisionFlow/pollVitals/onOrganOpen)
2836
  v9: V9, // v9 fly-high (bloodstream particles, autonomous heartbeat loop, killinchu 2nd body, cinematic vital tour, agent trace, polish)
 
2837
  formulas: Object.keys(D.FORMULAS).length,
2838
  tierCounts: (V5&&V5.api)?V5.api.tierCounts():null,
2839
  qbio: (V7&&V7.api)?V7.api():null
 
472
  let V7=null; // v5 quantum-bio layer (coherence + bioenergetic + Λ-v5 gate + compass; verified model, mirrors a11oy /qbio)
473
  let V8=null; // v8 live agentic lens (read-only reflection of a11oy's real agent loop / gates / verified math)
474
  let V9=null; // v9 fly-high: live receipt bloodstream + heartbeat loop + killinchu body + cinematic vital tour + agent trace + polish
475
+ let V10=null; // v10 estate/ayllu: zoom-OUT to the whole SZL estate — live Ayllu council (roster) + declared hardware/stack shell + zoom presets
476
  function flyTo(targetVec, radius){
477
  tween={fromT:cam.target.clone(),toT:targetVec.clone(),fromR:cam.r,toR:radius==null?cam.r:radius,t:0,dur:0.9};
478
  }
 
654
  if(V7 && V7.tick) V7.tick(dt,t);
655
  // v9 fly-high: live receipt bloodstream particles + cinematic vital tour camera + heartbeat-loop heart breathing
656
  if(V9 && V9.tick) V9.tick(dt,t,beat);
657
+ // v10 estate/ayllu: rotate the council + estate shells and project their labels
658
+ if(V10 && V10.tick) V10.tick(dt,t,beat);
659
  renderer.render(scene,camera);
660
  if(!_loaderHidden){ _loaderHidden=true; var ld=$('loader'); if(ld) ld.classList.add('hidden'); }
661
  }
 
2820
 
2821
  /* ---- v9 bootstrap is internal to the IIFE above (wire + heartbeat + killinchu probe) ---- */
2822
 
2823
+ /* =====================================================================
2824
+ V10 — ESTATE / AYLLU (additive · honest · zoom-OUT)
2825
+ Evolves the living anatomy from a single organism into the whole SZL
2826
+ estate, in the same doctrine as every prior layer:
2827
+ · Ayllu COUNCIL — the deliberating minds, read LIVE from a11oy
2828
+ /api/a11oy/v1/ayllu/roster (CORS-allowed for this Space). If the
2829
+ roster is unreachable it falls back to the declared core personas
2830
+ and is labelled "offline · static snapshot" — never a fabricated
2831
+ roster, never a fabricated count.
2832
+ · ESTATE shell — Rosa's real hardware & stack rendered as DECLARED
2833
+ nodes (no per-node live probe) — labelled "declared", never faked.
2834
+ · PINN LAB — a MEASURED local snapshot (rosie · RTX 5050), explicitly
2835
+ labelled MEASURED / not-live.
2836
+ · Zoom presets — COUNCIL (in) · ORGANISM (home) · ESTATE (out) —
2837
+ reuse the existing custom-camera flyTo()/tween + render loop.
2838
+ Shares scene / camera / cam / HOME / flyTo / glowSprite / autoRotate by
2839
+ closure; adds nothing to the network path except the read-only roster.
2840
+ ===================================================================== */
2841
+ V10 = (function(){
2842
+ if(typeof THREE==='undefined' || !scene) return null;
2843
+ function esc(s){ return String(s==null?'':s).replace(/[&<>"]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[c])); }
2844
+
2845
+ /* ---- honest data ---- */
2846
+ const COUNCIL_FALLBACK = ['Amaru','Ruwaq','Yupaq']; // declared core (roster-unreachable path)
2847
+ const COUNCIL_COL = 0xb98cff;
2848
+ const ESTATE = [
2849
+ {id:'rosie · RTX 5050', col:0x34f5b0, kind:'GPU · research'},
2850
+ {id:'betterwithage · RTX 5000', col:0x39d7ff, kind:'GPU · inference (MIND core)'},
2851
+ {id:'Hetzner · prod box', col:0xffd66e, kind:'compute · host'},
2852
+ {id:'Neon · Postgres 17', col:0x5ad6ff, kind:'data · database'},
2853
+ {id:'Hugging Face · Spaces', col:0xffcb57, kind:'edge · deploy'},
2854
+ {id:'Backblaze B2 · backups', col:0x9aa6bd, kind:'storage · DR'}
2855
+ ];
2856
+
2857
+ /* ---- groups (share the existing scene) ---- */
2858
+ const councilGroup = new THREE.Group(); councilGroup.position.set(0,3.15,0); scene.add(councilGroup);
2859
+ const estateGroup = new THREE.Group(); scene.add(estateGroup);
2860
+ let councilNodes=[], estateNodes=[];
2861
+ const ORIG_FOG = (scene.fog && scene.fog.density!=null) ? scene.fog.density : 0.020;
2862
+
2863
+ function clearGroup(g){ while(g.children.length) g.remove(g.children[0]); }
2864
+
2865
+ function buildCouncil(names){
2866
+ clearGroup(councilGroup); councilNodes=[];
2867
+ const n=Math.max(names.length,1), R=3.1;
2868
+ names.forEach((nm,i)=>{
2869
+ const a=(i/n)*TAU, grp=new THREE.Group();
2870
+ grp.position.set(Math.cos(a)*R, Math.sin(i*1.7)*0.35, Math.sin(a)*R);
2871
+ grp.add(new THREE.Mesh(new THREE.TetrahedronGeometry(0.22,0),
2872
+ new THREE.MeshStandardMaterial({color:COUNCIL_COL,emissive:COUNCIL_COL,emissiveIntensity:0.75,roughness:0.3,metalness:0.22})));
2873
+ grp.add(glowSprite(COUNCIL_COL,1.35,0.5));
2874
+ grp.userData={label:esc(nm), sub:'Ayllu · council', spin:0.5+Math.random()*0.6};
2875
+ councilGroup.add(grp); councilNodes.push(grp);
2876
+ });
2877
+ makeLabels();
2878
+ }
2879
+
2880
+ function buildEstate(){
2881
+ clearGroup(estateGroup); estateNodes=[];
2882
+ const n=ESTATE.length, R=13;
2883
+ ESTATE.forEach((e,i)=>{
2884
+ const a=(i/n)*TAU, grp=new THREE.Group();
2885
+ grp.position.set(Math.cos(a)*R, (i%2?1:-1)*(1.4+(i%3)*0.9), Math.sin(a)*R);
2886
+ grp.add(new THREE.Mesh(new THREE.BoxGeometry(0.62,0.62,0.62),
2887
+ new THREE.MeshStandardMaterial({color:e.col,emissive:e.col,emissiveIntensity:0.6,roughness:0.4,metalness:0.3,transparent:true,opacity:0.94})));
2888
+ grp.add(glowSprite(e.col,2.1,0.34));
2889
+ grp.userData={label:esc(e.id), sub:esc(e.kind)+' · declared', spin:0.3+Math.random()*0.4};
2890
+ estateGroup.add(grp); estateNodes.push(grp);
2891
+ });
2892
+ makeLabels();
2893
+ }
2894
+
2895
+ /* ---- own label layer (revealed only by the matching preset) ---- */
2896
+ let labLayer=document.getElementById('v10-labels');
2897
+ if(!labLayer){ labLayer=document.createElement('div'); labLayer.id='v10-labels';
2898
+ labLayer.style.cssText='position:fixed;inset:0;pointer-events:none;z-index:40'; document.body.appendChild(labLayer); }
2899
+ let v10labels=[];
2900
+ function makeLabels(){
2901
+ labLayer.innerHTML=''; v10labels=[];
2902
+ const add=(grp,kind)=>{
2903
+ const d=document.createElement('div');
2904
+ d.style.cssText='position:absolute;transform:translate(-50%,-150%);font:600 10px/1.3 ui-monospace,Menlo,monospace;'+
2905
+ 'letter-spacing:.04em;white-space:nowrap;padding:2px 7px;border-radius:7px;opacity:0;transition:opacity .25s;'+
2906
+ 'background:rgba(6,10,18,.72);border:1px solid rgba(120,140,180,.28)';
2907
+ const col = kind==='council' ? '#c9adff' : '#ffd98a';
2908
+ d.innerHTML='<span style="color:'+col+'">'+grp.userData.label+'</span>'+
2909
+ '<span style="color:#8a97ad;margin-left:6px">'+grp.userData.sub+'</span>';
2910
+ labLayer.appendChild(d); v10labels.push({grp,div:d,kind});
2911
+ };
2912
+ councilNodes.forEach(g=>add(g,'council'));
2913
+ estateNodes.forEach(g=>add(g,'estate'));
2914
+ }
2915
+ const _wp=new THREE.Vector3();
2916
+ function projectLabels(){
2917
+ const w=innerWidth,h=innerHeight;
2918
+ v10labels.forEach(L=>{
2919
+ const show=(mode==='council'&&L.kind==='council')||(mode==='estate'&&L.kind==='estate');
2920
+ if(!show){ L.div.style.opacity='0'; return; }
2921
+ L.grp.getWorldPosition(_wp); _wp.project(camera);
2922
+ if(_wp.z>1){ L.div.style.opacity='0'; return; }
2923
+ const x=(_wp.x*0.5+0.5)*w, y=(-_wp.y*0.5+0.5)*h;
2924
+ if(x<0||x>w||y<44||y>h-84){ L.div.style.opacity='0'; return; }
2925
+ L.div.style.left=x+'px'; L.div.style.top=y+'px'; L.div.style.opacity='0.96';
2926
+ });
2927
+ }
2928
+
2929
+ /* ---- zoom presets (reuse the existing custom camera + flyTo tween) ---- */
2930
+ let mode='organism';
2931
+ function setFog(d){ if(scene.fog && scene.fog.density!=null) scene.fog.density=d; }
2932
+ function goCouncil(){ mode='council'; setFog(ORIG_FOG); flyTo(new THREE.Vector3(0,3.0,0), 7.5); setActive('council'); }
2933
+ function goOrganism(){ mode='organism'; setFog(ORIG_FOG); flyTo(HOME.target.clone(), HOME.r); setActive('organism'); }
2934
+ function goEstate(){ mode='estate'; setFog(0.009); flyTo(new THREE.Vector3(0,0.3,0), 30); autoRotate=true; setActive('estate'); }
2935
+
2936
+ /* ---- controls (injected into the existing #controls hud) ---- */
2937
+ const controls=document.getElementById('controls'); const btns={};
2938
+ function mkBtn(id,txt,title,fn){ const b=document.createElement('button'); b.className='btn'; b.id=id; b.textContent=txt; b.title=title; b.addEventListener('click',fn); if(controls)controls.appendChild(b); btns[id]=b; return b; }
2939
+ function setActive(m){ ['council','organism','estate'].forEach(k=>{ const b=btns['btn-v10-'+k]; if(b)b.classList.toggle('active',k===m); }); }
2940
+ mkBtn('btn-v10-council','◎ council','v10: zoom to the Ayllu council (live roster · /v1/ayllu/roster)',goCouncil);
2941
+ mkBtn('btn-v10-organism','◉ organism','v10: return to the organism (home view)',goOrganism);
2942
+ mkBtn('btn-v10-estate','⤢ estate','v10: zoom OUT to the whole estate — hardware & stack (declared)',goEstate);
2943
+ mkBtn('btn-v10-lens','▦ estate lens','v10: toggle the estate/council honesty panel',toggleLens);
2944
+
2945
+ /* ---- honest estate lens panel ---- */
2946
+ const panelEl=document.createElement('div'); panelEl.id='v10-panel';
2947
+ panelEl.style.cssText='position:fixed;left:18px;bottom:74px;width:min(92vw,300px);z-index:41;'+
2948
+ 'background:rgba(6,10,18,.85);border:1px solid rgba(120,140,180,.26);border-radius:12px;'+
2949
+ 'padding:12px 14px;font:12px/1.5 ui-monospace,Menlo,monospace;color:#cdd6e6;display:none';
2950
+ document.body.appendChild(panelEl);
2951
+ function toggleLens(){ const open=panelEl.style.display!=='none'; panelEl.style.display=open?'none':'block'; const b=btns['btn-v10-lens']; if(b)b.classList.toggle('active',!open); }
2952
+ function renderPanel(j, live){
2953
+ const count = live ? (j && j.count!=null ? j.count : '—') : '3 (core · declared)';
2954
+ const names = live ? ((j&&j.personas)||[]).map(p=>esc(p&&(p.name||p.id)||'')).filter(Boolean).join(' · ') : COUNCIL_FALLBACK.join(' · ');
2955
+ const chip = live ? '<span style="color:#34f5b0">● live · a11oy</span>' : '<span style="color:#9aa6bd">offline · static snapshot</span>';
2956
+ const estateRows = ESTATE.map(e=>'<div style="display:flex;justify-content:space-between;gap:10px;padding:2px 0;border-bottom:1px dashed rgba(120,140,180,.14)">'+
2957
+ '<span style="color:#aeb9cc">'+esc(e.id)+'</span><span style="color:#7f8aa0">'+esc(e.kind)+'</span></div>').join('');
2958
+ panelEl.innerHTML=
2959
+ '<div style="letter-spacing:.16em;color:#8a97ad;font-size:10.5px;margin-bottom:6px">ESTATE LENS · zoom-out</div>'+
2960
+ '<div style="font-size:11px;color:#c9adff;letter-spacing:.06em">COUNCIL — /v1/ayllu/roster</div>'+
2961
+ '<div style="display:flex;justify-content:space-between;padding:3px 0"><span style="color:#8a97ad">personas</span><span>'+esc(String(count))+'</span></div>'+
2962
+ '<div style="display:flex;justify-content:space-between;padding:3px 0"><span style="color:#8a97ad">source</span>'+chip+'</div>'+
2963
+ '<div style="color:#b7a3e6;font-size:10.5px;margin:4px 0 10px;line-height:1.5">'+(names||'—')+'</div>'+
2964
+ '<div style="font-size:11px;color:#ffd98a;letter-spacing:.06em">LAB — PhysicsNeMo PINN '+
2965
+ '<span style="margin-left:6px;padding:1px 6px;border:1px solid #123a2c;border-radius:6px;color:#34f5b0;font-size:9px">MEASURED</span></div>'+
2966
+ '<div style="color:#aeb9cc;font-size:10.5px;margin:4px 0 1px">rosie · RTX 5050 (Blackwell sm_120)</div>'+
2967
+ '<div style="color:#8a97ad;font-size:10px;margin-bottom:10px">PhysicsNeMo 2.1.1 · torch 2.12.1+cu130 · local snapshot (not live)</div>'+
2968
+ '<div style="font-size:11px;color:#ffd98a;letter-spacing:.06em">ESTATE — hardware &amp; stack</div>'+
2969
+ estateRows+
2970
+ '<div style="color:#7f8aa0;font-size:9.5px;margin-top:6px">estate nodes are <b style="color:#aeb9cc">declared</b> (no live probe)</div>';
2971
+ }
2972
+
2973
+ /* ---- live roster (read-only, CORS-allowed; graceful offline) ---- */
2974
+ const BASE='https://szlholdings-a11oy.hf.space/api/a11oy';
2975
+ async function pull(url,ms){
2976
+ const ctl=(typeof AbortController!=='undefined')?new AbortController():null;
2977
+ const to=ctl?setTimeout(()=>{try{ctl.abort();}catch(e){}},ms||12000):null;
2978
+ try{ const r=await fetch(url,{method:'GET',mode:'cors',cache:'no-store',signal:ctl?ctl.signal:undefined});
2979
+ if(to)clearTimeout(to); if(!r||!r.ok)return null; return await r.json();
2980
+ }catch(e){ if(to)clearTimeout(to); return null; }
2981
+ }
2982
+ let _lastCouncilKey=null;
2983
+ function setCouncil(names){ // v10 polish: rebuild the ring ONLY when the roster actually changes (kills the 30s GPU/DOM churn)
2984
+ const key=names.join('\u241f');
2985
+ if(key===_lastCouncilKey) return;
2986
+ _lastCouncilKey=key;
2987
+ buildCouncil(names);
2988
+ }
2989
+ async function pollRoster(){
2990
+ const j=await pull(BASE+'/v1/ayllu/roster');
2991
+ if(!j){ setCouncil(COUNCIL_FALLBACK); renderPanel(null,false); return; }
2992
+ let people=j.personas||j.roster||[]; if(!Array.isArray(people))people=[];
2993
+ let names=people.map(p=>(p&&(p.name||p.persona||p.id))||String(p)).filter(Boolean);
2994
+ if(!names.length){ setCouncil(COUNCIL_FALLBACK); renderPanel(null,false); return; } // v10 polish/honesty: an EMPTY live roster is shown as declared snapshot, never fallback names under a "live" chip
2995
+ setCouncil(names); renderPanel(j,true);
2996
+ }
2997
+
2998
+ function tick(dt,t){
2999
+ councilGroup.rotation.y -= dt*0.12;
3000
+ councilNodes.forEach(g=>{ g.rotation.y += dt*g.userData.spin; g.rotation.x += dt*g.userData.spin*0.5; });
3001
+ estateGroup.rotation.y += dt*0.04;
3002
+ estateNodes.forEach(g=>{ g.rotation.y += dt*0.2; });
3003
+ projectLabels();
3004
+ }
3005
+
3006
+ /* ---- boot: honest declared state first, then upgrade live ---- */
3007
+ setCouncil(COUNCIL_FALLBACK);
3008
+ buildEstate();
3009
+ renderPanel(null,false);
3010
+ pollRoster();
3011
+ setInterval(pollRoster, 30000);
3012
+
3013
+ return { tick, api:{ mode:()=>mode, council:()=>councilNodes.length, estate:()=>estateNodes.length,
3014
+ goCouncil, goOrganism, goEstate } };
3015
+ })();
3016
+ /* ========================= /v10 estate/ayllu ===================== */
3017
+
3018
  /* ---------------- test hooks for headless QA ---------------- */
3019
  window.__anatomy = {
3020
  organs: organMeshes.length,
 
3032
  v7: V7, // v5 quantum-bio layer (coherence + bioenergetic + Λ-v5 gate + compass; verified model, mirrors a11oy /qbio)
3033
  v8: V8, // v8 live agentic lens (read-only reflection of a11oy's real agent loop; runDecisionFlow/pollVitals/onOrganOpen)
3034
  v9: V9, // v9 fly-high (bloodstream particles, autonomous heartbeat loop, killinchu 2nd body, cinematic vital tour, agent trace, polish)
3035
+ v10: V10, // v10 estate/ayllu (live Ayllu council roster + declared hardware/stack estate shell + zoom presets)
3036
  formulas: Object.keys(D.FORMULAS).length,
3037
  tierCounts: (V5&&V5.api)?V5.api.tierCounts():null,
3038
  qbio: (V7&&V7.api)?V7.api():null