vestige/apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js
Sam Valladares 844b91a804 feat(dashboard): every organ is a living WebGPU field (LivingFieldPass)
Turn all 17 sparse organs from text-on-black voids into full-bleed, moving,
bioluminescent WebGPU fields. Each cell maps to a real backend fact; verified
live on the real brain with a decoded fill% + motion + zero-error probe.

Foundation: one reusable LivingFieldPass (src/lib/observatory/field/) does
splat -> separable-blur (render passes) -> membrane base coat -> HDR cells with
orbital drift and a CPU pick-mirror. Each organ writes a ~20-line data->cells
mapper (cell-layout.ts: layoutGalaxy / layoutRings / FIELD_HUE).

Organs brought alive (fill% before -> after, all zero WebGPU errors):
stats 0.8->80.9, observatory 10.8->81.4, graph 12.3->82.4, memories ->78.4,
blackbox 18.2->83.3, contradictions 1.6->69.6, dreams 0.3->64.5,
settings 2.7->76.4, reasoning 2.7->39.2, patterns 7.1->45.6,
activation 10->64.9, feed ->89, explore ->83.3, intentions ->66.6,
importance ->73.7, memory-prs ->74.4, schedule ->37.1.

Backend surfaces: add api.memoryChangelog() + ChangelogResponse; surface
suppress/unsuppress on the memories field (shift/alt-click -> scar).

Tests: palace-launch-gate now asserts fillPct>30 + isAnimating (not just
non-black), with a longer settle for reasoning's deep_reference and a raised
timeout for the curated tour. all-routes-smoke treats settings as the WebGPU
field it now is. Gates green: check 0/0, build ok, palace-launch-gate 22/22 +
tour, all-routes-smoke 20/20.

Protected work untouched: MemoryCinema, graph/cinema, observatory scene
shaders, node-renderer, palace-map.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 06:20:35 +07:00

2 lines
3.3 KiB
JavaScript

import{h as Q,y as R,z as T,U,aQ as X,Y as L,a as A,f as k,c as f,r as l,X as F,p as Y,j as C,b as D,s as j,g as I,d as G,u as J}from"./CGq8RnJq.js";import"./Bzak7iHL.js";import{s as P}from"./DAau0uzT.js";import{s as K}from"./BbCqB9Us.js";import{i as B}from"./Ccqjq5DS.js";import{s as E}from"./uCQU803Y.js";import{p as m}from"./DV6OI5iy.js";import{I as S}from"./CKbQrCJw.js";function de(t,e,a){Q(()=>{var r=R(()=>e(t,a==null?void 0:a())||{});if(a&&(r!=null&&r.update)){var i=!1,n={};T(()=>{var s=a();U(s),i&&X(n,s)&&(n=s,r.update(s))}),i=!0}if(r!=null&&r.destroy)return()=>r.destroy()})}var V=k('<p class="text-sm text-dim mt-0.5 text-pretty svelte-162svzm"> </p>'),W=k('<div class="flex items-center gap-2 shrink-0 flex-wrap justify-end svelte-162svzm"><!></div>'),Z=k('<header class="flex items-start justify-between gap-4 mb-6 enter svelte-162svzm"><div class="flex items-center gap-3.5 min-w-0 svelte-162svzm"><div><!></div> <div class="min-w-0 svelte-162svzm"><h1 class="text-2xl font-bold text-aurora leading-tight text-balance svelte-162svzm"> </h1> <!></div></div> <!></header>');function fe(t,e){let a=m(e,"accent",3,"synapse");var r=Z(),i=f(r),n=f(i),s=f(n);S(s,{get name(){return e.icon},size:22,draw:!0}),l(n);var x=F(n,2),u=f(x),v=f(u,!0);l(u);var h=F(u,2);{var b=c=>{var d=V(),y=f(d,!0);l(d),L(()=>P(y,e.subtitle)),A(c,d)};B(h,c=>{e.subtitle&&c(b)})}l(x),l(i);var p=F(i,2);{var g=c=>{var d=W(),y=f(d);K(y,()=>e.children),l(d),A(c,d)};B(p,c=>{e.children&&c(g)})}l(r),L(()=>{E(n,1,`header-tile relative flex items-center justify-center w-11 h-11 rounded-xl shrink-0
bg-${a()??""}/12 border border-${a()??""}/25 text-${a()??""}-glow`,"svelte-162svzm"),P(v,e.title)}),A(t,r)}var $=k("<span> </span>");function le(t,e){var q;Y(e,!0);let a=m(e,"decimals",3,0),r=m(e,"scale",3,1),i=m(e,"prefix",3,""),n=m(e,"suffix",3,""),s=m(e,"duration",3,900),x=m(e,"class",3,""),u=m(e,"group",3,!0),v=G(0),h=0,b=0,p=0,g=!1;const c=typeof window<"u"&&((q=window.matchMedia)==null?void 0:q.call(window,"(prefers-reduced-motion: reduce)").matches);function d(o){return o===1?1:1-Math.pow(2,-10*o)}function y(o){if(c){j(v,o,!0);return}cancelAnimationFrame(h),b=I(v),p=0;function w(M){p||(p=M);const _=Math.min(1,(M-p)/s());j(v,b+(o-b)*d(_)),_<1?h=requestAnimationFrame(w):j(v,o,!0)}h=requestAnimationFrame(w)}C(()=>{const o=e.value;return g||(g=!0),y(o),()=>cancelAnimationFrame(h)});let H=J(()=>(()=>{const w=(I(v)*r()).toFixed(a());if(!u())return w;const[M,_]=w.split("."),O=M.replace(/\B(?=(\d{3})+(?!\d))/g,",");return _!==void 0?`${O}.${_}`:O})());var z=$(),N=f(z);l(z),L(()=>{E(z,1,`tabular-nums ${x()??""}`),P(N,`${i()??""}${I(H)??""}${n()??""}`)}),A(t,z),D()}const ee=()=>{var t;return typeof window<"u"&&((t=window.matchMedia)==null?void 0:t.call(window,"(prefers-reduced-motion: reduce)").matches)};function me(t,e={}){const{y:a=16,delay:r=0,once:i=!0,threshold:n=.12}=e;if(ee())return t.classList.add("reveal-in"),{};t.classList.add("reveal"),t.style.setProperty("--reveal-y",`${a}px`),r&&t.style.setProperty("--reveal-delay",`${r}ms`);const s=new IntersectionObserver(x=>{for(const u of x)u.isIntersecting?(t.classList.add("reveal-in"),i&&s.unobserve(t)):i||t.classList.remove("reveal-in")},{threshold:n,rootMargin:"0px 0px -8% 0px"});return s.observe(t),{destroy(){s.disconnect()}}}export{le as A,fe as P,de as a,me as r};