`);function D(n,a){h(a,!0);let D=re().mode,O=se(D),ue=O>0,k=ce,A=m(!1),j={...w,temperature:w.advancedTemperature};function de(e){if(e===null){b(`top_k`,null),x({top_k:null});return}let t=Math.max(0,Math.min(k,Math.floor(e)));b(`top_k`,t),x({top_k:t})}function M(e,t){t!==null&&b(e,Math.max(-2,Math.min(2,t)))}function fe(e){e!==null&&b(`return_top_k`,ae(e,D))}function pe(e){b(`seed`,e===null?null:Math.floor(e))}let N=u(()=>{let e=S.logit_bias_text.trim();if(!e)return!0;try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)}catch{return e.split(/\r?\n/).filter(Boolean).every(e=>/^\s*-?\d+\s*[:=,\s]\s*-?\d+(?:\.\d+)?\s*$/.test(e))}});var P=le(),F=v(P),I=p(v(F),2);t(I,{icon:`close`,label:`Close`,get onclick(){return ne}}),l(F);var L=p(F,2),R=v(L),z=p(v(R),2),B=v(z),V=v(B),me=p(V,2);C(me,{get value(){return S.temperature},min:0,get max(){return oe},step:.05,onchange:e=>{e!==null&&(b(`temperature`,e),x({temperature:e}))},ariaLabel:`Temperature value`}),l(B);var H=p(B,2),U=v(H),he=p(U,2);C(he,{get value(){return S.top_k},min:0,get max(){return k},step:1,placeholder:`1024 by default`,allowEmpty:!0,onchange:de,ariaLabel:`Top-k`}),l(H);var W=p(H,2),G=v(W),ge=p(G,2);C(ge,{get value(){return S.frequency_penalty},min:-2,max:2,step:.05,onchange:e=>M(`frequency_penalty`,e),ariaLabel:`Frequency penalty`}),l(W);var K=p(W,2),q=v(K),_e=p(q,2);C(_e,{get value(){return S.presence_penalty},min:-2,max:2,step:.05,onchange:e=>M(`presence_penalty`,e),ariaLabel:`Presence penalty`}),l(K),l(z),l(R);var J=p(R,2),Y=p(v(J),2),X=v(Y),Z=v(X),ve=p(Z,2);{let e=u(()=>!ue);C(ve,{get value(){return S.return_top_k},min:0,get max(){return O},step:1,get disabled(){return i(e)},onchange:fe,ariaLabel:`Alternatives per token`})}l(X);var Q=p(X,2),$=v(Q),ye=p($,2);{let e=u(()=>ie(D));C(ye,{get value(){return S.seed},get min(){return i(e)},get max(){return T},step:1,placeholder:`Not fixed`,allowEmpty:!0,onchange:pe,ariaLabel:`Seed`})}l(Q),l(Y),l(J);var be=p(J,2);e(be,{label:`More`,get open(){return i(A)},set open(e){_(A,e,!0)},children:(e,t)=>{var n=E(),a=v(n),u=p(v(a),2);d(u),f(u,`placeholder`,`One per line
+import{S as e,p as t}from"./src-DWTrC_D-.js";import{H as n,I as r,K as i,N as ee,R as a,U as o,Z as s,_ as c,bt as l,dt as u,ft as d,h as f,it as p,lt as m,mt as h,pt as g,rt as te,st as _,tt as v,y}from"./index-client-B2jUARBN.js";import"./stores.svelte-Cf8e_r1G.js";import{f as b,l as x,u as S}from"./session.svelte-DG7XfPv3.js";import{t as C}from"./NumberInput-DKXkismd.js";import{t as ne}from"./drawers.svelte-kEXNcFnO.js";import{r as re}from"./registry-CQv71XNh.js";import{n as w}from"./parameterHelp-DIx0MhMz.js";import{a as ie,i as ae,n as T,r as oe,s as se,t as ce}from"./samplingCapabilities-DM6eoDoc.js";var E=a(`
`),le=a(`
Sampling settings
Filters and penalties
Temperature
Top-k
Frequency penalty
Presence penalty
Capture and seed
Alternatives per token
Seed
`);function D(n,a){h(a,!0);let D=re().mode,O=se(D),ue=O>0,k=ce,A=m(!1),j={...w,temperature:w.advancedTemperature};function de(e){if(e===null){b(`top_k`,null),x({top_k:null});return}let t=Math.max(0,Math.min(k,Math.floor(e)));b(`top_k`,t),x({top_k:t})}function M(e,t){t!==null&&b(e,Math.max(-2,Math.min(2,t)))}function fe(e){e!==null&&b(`return_top_k`,ae(e,D))}function pe(e){b(`seed`,e===null?null:Math.floor(e))}let N=u(()=>{let e=S.logit_bias_text.trim();if(!e)return!0;try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)}catch{return e.split(/\r?\n/).filter(Boolean).every(e=>/^\s*-?\d+\s*[:=,\s]\s*-?\d+(?:\.\d+)?\s*$/.test(e))}});var P=le(),F=v(P),I=p(v(F),2);t(I,{icon:`close`,label:`Close`,get onclick(){return ne}}),l(F);var L=p(F,2),R=v(L),z=p(v(R),2),B=v(z),V=v(B),me=p(V,2);C(me,{get value(){return S.temperature},min:0,get max(){return oe},step:.05,onchange:e=>{e!==null&&(b(`temperature`,e),x({temperature:e}))},ariaLabel:`Temperature value`}),l(B);var H=p(B,2),U=v(H),he=p(U,2);C(he,{get value(){return S.top_k},min:0,get max(){return k},step:1,placeholder:`1024 by default`,allowEmpty:!0,onchange:de,ariaLabel:`Top-k`}),l(H);var W=p(H,2),G=v(W),ge=p(G,2);C(ge,{get value(){return S.frequency_penalty},min:-2,max:2,step:.05,onchange:e=>M(`frequency_penalty`,e),ariaLabel:`Frequency penalty`}),l(W);var K=p(W,2),q=v(K),_e=p(q,2);C(_e,{get value(){return S.presence_penalty},min:-2,max:2,step:.05,onchange:e=>M(`presence_penalty`,e),ariaLabel:`Presence penalty`}),l(K),l(z),l(R);var J=p(R,2),Y=p(v(J),2),X=v(Y),Z=v(X),ve=p(Z,2);{let e=u(()=>!ue);C(ve,{get value(){return S.return_top_k},min:0,get max(){return O},step:1,get disabled(){return i(e)},onchange:fe,ariaLabel:`Alternatives per token`})}l(X);var Q=p(X,2),$=v(Q),ye=p($,2);{let e=u(()=>ie(D));C(ye,{get value(){return S.seed},get min(){return i(e)},get max(){return T},step:1,placeholder:`Not fixed`,allowEmpty:!0,onchange:pe,ariaLabel:`Seed`})}l(Q),l(Y),l(J);var be=p(J,2);e(be,{label:`More`,get open(){return i(A)},set open(e){_(A,e,!0)},children:(e,t)=>{var n=E(),a=v(n),u=p(v(a),2);d(u),f(u,`placeholder`,`One per line
###
<|eot_id|>`),l(a);var m=p(a,2),h=p(v(m),2);d(h),f(h,`placeholder`,`{"198": -4, "220": 1.5}`);let g;var _=p(h,2);let x;var C=te(_,!0);l(m),l(n),s(()=>{c(u,S.stop_sequences),c(h,S.logit_bias_text),f(h,`aria-invalid`,!i(N)),g=y(h,1,`svelte-s9wnam`,null,g,{invalid:!i(N)}),x=y(_,1,`meta svelte-s9wnam`,null,x,{error:!i(N)}),ee(C,i(N)?`A JSON object, or one token ID and value per line`:`Use JSON, or one token ID and value per line`)}),o(`input`,u,e=>b(`stop_sequences`,e.currentTarget.value)),o(`input`,h,e=>b(`logit_bias_text`,e.currentTarget.value)),r(e,n)},$$slots:{default:!0}}),l(L),l(P),s(()=>{f(V,`data-tip`,j.temperature),f(U,`data-tip`,j.topK),f(G,`data-tip`,j.frequencyPenalty),f(q,`data-tip`,j.presencePenalty),f(Z,`data-tip`,j.returnTopK),f($,`data-tip`,j.seed)}),r(n,P),g()}n([`input`]);export{D as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/App-CoYBwyRj.js b/drowse/web/dist/assets/App-BzvZ46RM.js
similarity index 99%
rename from drowse/web/dist/assets/App-CoYBwyRj.js
rename to drowse/web/dist/assets/App-BzvZ46RM.js
index eed53aedb..4bbe419b6 100644
--- a/drowse/web/dist/assets/App-CoYBwyRj.js
+++ b/drowse/web/dist/assets/App-BzvZ46RM.js
@@ -1,3 +1,3 @@
-import{C as e,E as t,S as n,_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,u as y,v as b,w as x,x as S,y as C}from"./src-D3ehkdzy.js";import{$ as w,A as T,B as E,C as D,D as O,E as k,H as A,I as j,J as ee,K as M,L as N,N as P,O as te,Q as F,R as I,St as ne,T as re,U as L,V as ie,W as ae,Z as R,_ as oe,a as se,at as z,b as ce,bt as B,c as le,d as ue,dt as V,et as de,ft as fe,h as H,i as pe,it as U,k as me,lt as W,m as he,mt as ge,n as _e,nt as G,o as ve,p as K,pt as ye,q as be,r as q,rt as J,s as xe,st as Y,t as Se,tt as X,u as Ce,v as we,w as Te,x as Ee,xt as De,y as Z,yt as Oe,z as ke}from"./index-client-B2jUARBN.js";import{r as Ae}from"./theme-CRfmaOP8.js";import{d as je,f as Me,m as Ne,u as Pe}from"./workspaceController-C2L33e3m.js";import{t as Fe}from"./loader-BRsphuZA.js";import{$ as Ie,$r as Le,Ai as Re,An as ze,Ar as Be,B as Ve,Bn as He,Ci as Ue,Cn as We,Cr as Ge,D as Ke,Di as qe,Dn as Je,E as Ye,Ei as Xe,En as Ze,Er as Qe,F as $e,Fn as et,Fr as tt,G as nt,Gr as rt,Gt as it,Hn as at,Hr as ot,Ht as st,I as ct,In as lt,Ir as ut,Jr as dt,Jt as ft,Kn as pt,Kr as mt,Kt as ht,L as gt,Ln as _t,Lr as vt,Lt as yt,Mi as bt,Mn as xt,Mr as St,N as Ct,Nn as wt,Nr as Tt,Nt as Et,O as Dt,On as Ot,Or as kt,Pn as At,Pr as jt,Pt as Mt,Q as Nt,Qn as Pt,Qr as Ft,Qt as It,R as Q,Rn as Lt,Rr as Rt,Si as zt,Sn as Bt,St as Vt,Ti as Ht,Tn as Ut,Tr as Wt,U as Gt,Un as Kt,Ur as qt,Vi as Jt,Vn as Yt,Vt as Xt,W as Zt,Wt as Qt,X as $t,Xn as en,Xr as tn,Yn as nn,Yr as rn,Yt as an,Zn as on,Zr as sn,Zt as cn,_ as ln,_i as un,_r as dn,_t as fn,ai as pn,an as mn,ar as hn,at as gn,b as _n,bi as vn,bn as yn,br as bn,bt as xn,c as Sn,ci as Cn,cn as wn,ct as Tn,di as En,dn as Dn,ei as On,en as kn,er as An,et as jn,f as Mn,fi as Nn,fn as Pn,fr as Fn,ft as In,g as Ln,gi as Rn,gn as zn,gr as Bn,h as Vn,hn as Hn,hr as Un,i as Wn,ii as Gn,in as Kn,ir as qn,it as Jn,j as Yn,ji as Xn,jn as Zn,jr as Qn,jt as $n,k as er,ki as tr,kn as nr,kr as rr,kt as ir,l as ar,li as or,ln as sr,lr as cr,lt as lr,m as ur,mn as dr,mr as fr,mt as pr,ni as mr,nn as hr,nr as gr,nt as _r,oi as vr,on as yr,or as br,ot as xr,p as Sr,pi as Cr,pn as wr,pr as Tr,q as Er,qn as Dr,qr as Or,qt as kr,r as Ar,ri as jr,rn as Mr,rr as Nr,rt as Pr,si as Fr,sn as Ir,st as Lr,t as Rr,ti as zr,tn as Br,tr as Vr,tt as Hr,u as Ur,ui as Wr,un as Gr,ur as Kr,ut as $,vi as qr,vn as Jr,vt as Yr,wi as Xr,wn as Zr,x as Qr,xi as $r,xn as ei,xr as ti,yi as ni,yn as ri,yr as ii,yt as ai,z as oi,zn as si,zr as ci,zt as li}from"./session.svelte-Dafz5mOy.js";import{c as ui,l as di,n as fi,o as pi,r as mi,u as hi}from"./manifoldJobs.svelte-B_sczSb7.js";import{a as gi,c as _i,d as vi,f as yi,h as bi,l as xi,m as Si,o as Ci,p as wi,r as Ti,s as Ei,t as Di,u as Oi}from"./drawers.svelte-BBPH3jMg.js";import{_ as ki,c as Ai,h as ji,i as Mi,l as Ni,m as Pi,n as Fi,o as Ii,p as Li,r as Ri,s as zi,u as Bi,v as Vi}from"./selection.svelte-D1Qz6BJG.js";import{G as Hi,H as Ui,U as Wi,V as Gi,W as Ki,_ as qi,a as Ji,c as Yi,g as Xi,i as Zi,n as Qi,o as $i,p as ea,r as ta,s as na,t as ra,w as ia}from"./tokenCursor.svelte-DT6M5nzp.js";import{t as aa}from"./userFacingError-Dn4DmQRG.js";import{i as oa,n as sa,r as ca,t as la}from"./conversationWorkspace-Ba5k84Da.js";import{n as ua,t as da}from"./settingsReset.svelte-6lWdltwC.js";import{a as fa,i as pa,n as ma,s as ha,t as ga}from"./savedConversations.svelte-mXMMdYwC.js";import{i as _a,r as va}from"./brandMigration-CCzk-exd.js";import{t as ya}from"./stores.svelte-BvABcOLl.js";import{a as ba,i as xa,n as Sa,r as Ca,t as wa}from"./drawers-5oz4RLFB.js";import{a as Ta,n as Ea}from"./interfaceSchemas-CEzHSS8w.js";import{t as Da}from"./types-CuMUbvHW.js";import{_ as Oa,a as ka,c as Aa,d as ja,f as Ma,g as Na,h as Pa,l as Fa,m as Ia,n as La,o as Ra,p as za,s as Ba,t as Va,u as Ha,v as Ua,x as Wa,y as Ga}from"./ProbeGeometryPlot-CkcyyROo.js";import{t as Ka}from"./NumberInput-B4CVeFgD.js";import{n as qa,t as Ja}from"./Select-BAEK04xt.js";import{a as Ya}from"./chartValues-DDT2TtWf.js";import{t as Xa}from"./surfaceGeometry-DdrOowY4.js";import{c as Za,d as Qa,f as $a,i as eo,l as to,m as no,o as ro,p as io,r as ao,u as oo,w as so,x as co}from"./unitTerms-Diu4Qe4X.js";import{n as lo,t as uo}from"./contracts-CHaBu2Ze.js";import{n as fo,o as po}from"./selectors-D8zRdyMn.js";import{a as mo,i as ho,n as go,o as _o,r as vo,t as yo}from"./steerActions-BmI4yLtm.js";import{n as bo,t as xo}from"./savedChatOpen-D_z9NDb9.js";import{n as So,r as Co,t as wo}from"./registry-CQv71XNh.js";import{l as To,o as Eo}from"./samplingCapabilities-DM6eoDoc.js";import"./legacy-BmNk1mfJ.js";import{n as Do}from"./parameterHelp-DIx0MhMz.js";import{i as Oo,o as ko,t as Ao}from"./readings-D0NRR4XW.js";import{n as jo,t as Mo}from"./instrumentAuthoring.svelte-wrJiRIju.js";import{t as No}from"./Button-mXn-Bdtb.js";import{n as Po}from"./errors-JtXkE1b1.js";function Fo(e){return e.paletteOpen?`palette`:e.modalOpen?`modal`:e.drawerOpen?`drawer`:e.selectionOpen?`selection`:e.generating?`stop`:`none`}var Io=z({open:!1}),Lo=null;function Ro(){!Io.open&&typeof document<`u`&&document.activeElement instanceof HTMLElement&&(Lo=document.activeElement),Io.open=!0}function zo(){let e=Lo;Lo=null,Io.open=!1,queueMicrotask(()=>{e?.isConnected&&e.focus()})}var Bo=`drowse.pending-conversation.v1`;function Vo(e=Uo(`sessionStorage`)){if(!e)return null;try{let t=va(e,Bo);if(!t)return null;let n=JSON.parse(t);return n.version!==1||typeof n.id!=`string`||!n.id.trim()||typeof n.modelId!=`string`||!n.modelId.trim()?null:n}catch{return null}}function Ho(e=Uo(`sessionStorage`)){try{e&&_a(e,Bo)}catch{}}function Uo(e){if(typeof window<`u`)try{return window[e]}catch{return}}var Wo=`drowse.workspace-draft.v1`;function Go(){try{return globalThis.localStorage??void 0}catch{return}}function Ko(e,t=Go()){if(!t)return!1;try{return t.setItem(Wo,JSON.stringify({version:1,modelId:e.model_id,rootId:e.tree.root_id,snapshot:e})),!0}catch{return!1}}function qo(e,t,n=Go()){if(!n)return null;try{let r=n.getItem(Wo);if(!r)return null;let i=JSON.parse(r);return i.version!==1||i.modelId!==e||i.rootId!==t||!i.snapshot||i.snapshot.model_id!==e||i.snapshot.tree?.root_id!==t?null:i.snapshot}catch{return null}}function Jo(e,t,n,r=Go()){let i=qo(e,t,r);return i&&Date.parse(i.savedAt)>Date.parse(n)?i:null}function Yo(e=Go()){try{e?.removeItem(Wo)}catch{}}var Xo=`a[href], button, input, select, textarea, [tabindex]`;function Zo(e){return e.tabIndex>=0&&!e.disabled&&e.offsetParent!==null&&!e.closest(`[inert]`)}function Qo(e){return[...e.querySelectorAll(Xo)].filter(Zo)}function $o(e,t){if(e.key!==`Tab`)return;let n=Qo(t);if(n.length===0){e.preventDefault(),t.focus({preventScroll:!0});return}let r=n.indexOf(document.activeElement);(e.shiftKey?r<=0:r<0||r===n.length-1)&&(e.preventDefault(),n[e.shiftKey?n.length-1:0].focus({preventScroll:!0}))}function es(){let e=document.activeElement;return e&&e!==document.body?e:null}function ts(e,t,n){let r=document.activeElement;r&&r!==document.body&&!n?.contains(r)||e?.isConnected&&Zo(e)&&(e.focus({preventScroll:!0}),document.activeElement===e)||t?.()}var ns=new Set([`$$slots`,`$$events`,`$$legacy`,`name`,`onready`]),rs=I(`
`),Rc=I(` `,1),zc=I(``);function Bc(n,r){ge(r,!0);let i=[{value:`unit`,label:`Neuron or head`,placeholder:`An ID like L20 n512, or a word`},{value:`lens`,label:`Lens token`,placeholder:`A word`},{value:`concept`,label:`Concept`,placeholder:`Find a concept`},{value:`position`,label:`Manifold position`,placeholder:`Find a position`},{value:`feature`,label:`SAE feature`,placeholder:`A feature number or label`}],a=V(()=>Un(`jlens`)||Un(`slens`)),o=V(()=>i.filter(e=>e.value!==`unit`||xs())),s=W(z(Ki.kind));F(()=>{Ki.requested,Y(s,ee(()=>Ki.kind),!0)});let c=V(()=>M(o).some(e=>e.value===M(s))?M(s):M(o)[0]?.value??`concept`),l=V(()=>i.find(e=>e.value===M(c))?.placeholder??``),u=V(()=>M(c)===`lens`&&!M(a)?{head:`No lens`,label:`Lenses`,section:`lenses`}:M(c)===`feature`&&!Ar()?{head:`No SAE`,label:`SAEs`,section:`saes`}:null),d=W(null),f=W(``),p=W(``),m=null;function h(e){Y(f,e,!0),m&&clearTimeout(m),m=setTimeout(()=>Y(p,M(f),!0),250)}function g(e){Y(s,e,!0),Ki.kind=e,Y(f,``),Y(p,``),be().then(()=>M(d)?.focus())}_e(()=>(M(d)?.focus(),cn.catalog.length===0&&!cn.loading&&li(),()=>{m&&clearTimeout(m)}));let _=W(!1);function b(e){e!==null&&r.onpicked()}let x=V(()=>M(c)===`unit`?ze(M(p)):null),S=V(()=>Wn.info?.architecture??null);function C(e){if(!M(S))return!0;let t=e.kind===`neuron`?M(S).neurons_per_layer:M(S).heads_per_layer;return e.layerM(x)?.mode===`active`&&Ss()?Hs():null);F(()=>{if(!M(w)||Q.active)return;let e=M(w).nodeId,t=setTimeout(()=>Vs(e,{top:32}),600);return()=>clearTimeout(t)});let E=V(()=>M(w)?Bs(M(w).nodeId,{top:32}):null),D=V(()=>M(x)?.mode===`word`?M(x).word:null);F(()=>{M(D)&&!Q.active&&Gs(M(D),`writes`,48)});let k=V(()=>M(D)?Ws(M(D),`writes`,48):null),A=(e,t,n)=>Je(n)??Ls(e,t),te=new qi,I=V(()=>M(x)?.mode===`id`&&M(x).ref&&C(M(x).ref)?M(x).ref:null);F(()=>{M(I)&&te.want([{unit:M(I).id}])});let ne=V(()=>{if(!M(x))return[];if(M(x).mode===`id`){if(!M(x).ref||!C(M(x).ref))return[];let e=M(x).ref.id;return[{id:e,kind:M(x).ref.kind,pole:`+`,label:te.label(e,M(x).ref.kind,`+`)?.text??Ls(e),value:null}]}return M(x).mode===`word`?(M(k)?.value?.hits??[]).slice(0,8).map(e=>{let t=e.pole===`-`?`-`:`+`;return{id:e.unit,kind:`neuron`,pole:t,label:A(e.unit,t,e.label),value:_t(e.score)}}):(M(E)?.value?.top??[]).slice(0,8).map(e=>{let t=e.kind===`neuron`&&e.peak<0?`-`:`+`;return{id:e.unit,kind:e.kind,pole:t,label:A(e.unit,t,e.label),value:_t(e.peak)}})}),re=V(()=>!M(x)||M(ne).length===0?null:M(x).mode===`word`?`Writers of ${t(M(D)??``).text.trim()||M(D)}`:M(x).mode===`active`?`Most active in the latest reply`:null),ie=V(()=>{if(!M(x)||M(ne).length>0)return null;if(M(x).mode===`id`)return M(x).ref&&M(f).trim()===M(p).trim()?{text:`This model has no such unit.`}:null;let e=M(x).mode===`word`?M(k):M(E);return M(x).mode===`active`&&!M(w)?null:Q.active&&!e?.value?{text:`Waiting for the reply to finish.`}:e?.status===`loading`?{text:`Reading…`}:e?.status===`error`?{text:e.error??`This could not be read.`,retry:!0}:M(x).mode===`word`&&e?.status===`ready`?{text:`No neuron writes it.`}:null}),se=V(()=>Un(`jlens`)&&Un(`slens`)),ce=V(fr),le=V(()=>br.find(e=>e.value===M(ce))??br[0]),ue=V(()=>M(c)===`lens`?(Fn()??[]).slice(0,8):[]);async function de(e){let t=e.trim().replace(/^[js]lens\//u,``),n=M(ce);if(t&&!M(_)){Y(_,!0);try{let e=await bt.validateLensToken(t);b(vo({word:e.word},n))}catch(e){Pi(`Couldn't steer by ${n}/${t}: ${Po(e)}`,{kind:`error`})}finally{Y(_,!1)}}}let fe=V(()=>Wn.info?.model_id??null),pe=W(null),me=V(()=>{if(M(c)!==`concept`&&M(c)!==`position`)return[];let e=M(c)===`concept`?`flat`:`curved`,t=M(p).trim().toLowerCase(),n=[];for(let r of cn.catalog){if(!r.fitted_for_session||Kt(r)!==e)continue;let i=po(fo(r,M(fe)),void 0);if(!i?.available)continue;let a=`${r.namespace}/${r.name}`,o=!t||a.toLowerCase().includes(t)||(r.description??``).toLowerCase().includes(t),s=r.node_labels.filter(e=>o||e.toLowerCase().includes(t));if(s.length===0)continue;let c=M(pe)===a?s.length:16;n.push({key:a,title:r.name,variant:i.variant,nodes:s.slice(0,c),more:Math.max(0,s.length-c)})}return n});function ve(e,t){b(M(c)===`concept`?yo(e.key,e.variant,t):ho(e.key,e.variant,t))}let K=V(()=>M(c)!==`concept`&&M(c)!==`position`||M(me).length>0?null:cn.loading?`Reading the catalog…`:M(p).trim()?`Nothing fitted matches.`:M(c)===`concept`?`No concept is fitted for this model.`:`No manifold is fitted for this model.`),q=V(()=>{if(M(c)!==`feature`)return[];let e=M(p).trim().toLowerCase().replace(/^sae\//u,``),t=rr().map(e=>({id:e.id,label:e.label??Qn.meta.get(e.id)?.label??null}));if(!e)return t.slice(0,8);if(/^\d+$/u.test(e))return[{id:Number(e),label:Qn.meta.get(Number(e))?.label??null}];let n=new Map;for(let e of t)n.set(e.id,e);for(let[e,t]of Qn.meta)n.has(e)||n.set(e,{id:e,label:t.label});return[...n.values()].filter(t=>t.label?.toLowerCase().includes(e)).slice(0,8)});async function Se(e){if(!M(_)){Y(_,!0);try{let t=await bt.validateSaeFeature(e);b(go(t.id))}catch(t){Pi(aa(t,`Feature ${e} could not be added. Try again.`),{kind:`error`})}finally{Y(_,!1)}}}function Ce(e){e.preventDefault(),Y(p,M(f),!0);let t=M(f).trim();if(M(c)===`lens`)de(t);else if(M(c)===`feature`){let e=Number(t.replace(/^sae\//u,``));Number.isInteger(e)&&e>=0&&t!==``?Se(e):M(q)[0]&&Se(M(q)[0].id)}else if(M(c)===`concept`||M(c)===`position`){let e=M(me)[0];e&&e.nodes[0]!==void 0&&ve(e,e.nodes[0])}else if(M(c)===`unit`){let e=ze(t);if(e.mode===`id`&&e.ref&&C(e.ref))b(e.ref.kind===`neuron`?mo(e.ref.id):_o(e.ref.id));else if(e.mode!==`id`&&M(ne)[0]){let e=M(ne)[0];b(e.kind===`neuron`?mo(e.id,e.pole):_o(e.id))}}}var we=zc(),Te=X(we);{let e=V(()=>M(o).map(e=>({value:e.value,label:e.label})));v(Te,{label:`Steer with`,get value(){return M(c)},get options(){return M(e)},onchange:g,scroll:!0})}var Ee=U(Te,2),De=t=>{var n=yc(),i=X(n),a=J(i,!0),o=U(i,2),s=X(o,!0),c=U(s);e(c,{name:`right`}),B(o),B(n),R(()=>{P(a,M(u).head),P(s,M(u).label)}),L(`click`,o,()=>{r.onpicked(),xi(`artifacts`,M(u).section)}),j(t,n)},Z=e=>{var n=Rc(),a=G(n),o=X(a),s=J(o,!0),u=U(o,2);he(u),xe(u,e=>Y(d,e),()=>M(d));var p=U(u,2),m=e=>{{let t=V(()=>[...br]);y(e,{label:`Toward the word`,get value(){return M(ce)},get options(){return M(t)},onchange:e=>Bn.namespace=e})}};T(p,e=>{M(c)===`lens`&&M(se)&&e(m)});var g=U(p,2),v=e=>{var t=bc();R(e=>{t.disabled=e,H(t,`data-tip`,M(c)===`lens`?M(le).hint:void 0)},[()=>M(_)||!M(f).trim()]),j(e,t)};T(g,e=>{(M(c)===`lens`||M(c)===`feature`)&&e(v)}),B(a);var x=U(a,2),S=e=>{var t=Oc(),n=G(t),i=e=>{var t=xc(),n=J(t,!0);R(()=>P(n,M(re))),j(e,t)};T(n,e=>{M(re)&&e(i)});var a=U(n,2),o=e=>{var t=Tc();O(t,21,()=>M(ne),e=>e.id,(e,t)=>{var n=wc(),r=X(n),i=J(r,!0),a=U(r,2),o=J(a,!0),s=U(a,2),c=e=>{var n=Sc(),r=J(n,!0);R(()=>P(r,M(t).value)),j(e,n)};T(s,e=>{M(t).value!==null&&e(c)});var l=U(s,2),u=X(l),d=e=>{var n=Cc(),r=J(n);R(()=>P(r,`Push${M(t).pole===`-`?` −`:``}`)),L(`click`,n,()=>b(mo(M(t).id,M(t).pole))),j(e,n)};T(u,e=>{M(t).kind===`neuron`&&e(d)});var f=U(u,2);B(l),B(n),R(e=>{P(i,e),P(o,M(t).label??(M(t).kind===`head`?`attention head`:`MLP neuron`))},[()=>Yt(M(t).id)]),L(`click`,f,()=>b(_o(M(t).id))),j(e,n)}),B(t),j(e,t)};T(a,e=>{M(ne).length>0&&e(o)});var s=U(a,2),c=e=>{var t=Dc(),n=X(t),r=J(n,!0),i=U(n),a=e=>{var t=Ec();L(`click`,t,function(...e){Ns?.apply(this,e)}),j(e,t)};T(i,e=>{M(ie).retry&&e(a)}),B(t),R(()=>P(r,M(ie).text)),j(e,t)};T(s,e=>{M(ie)&&e(c)});var l=U(s,2),u=J(l);L(`click`,u,()=>{r.onpicked(),xi(`units`)}),j(e,t)},C=e=>{var n=N(),r=G(n),i=e=>{var n=Ac(),r=U(G(n),2);O(r,21,()=>M(ue),e=>e[4],(e,n)=>{let r=V(()=>t(M(n)[0]));var i=kc(),a=X(i),o=J(a,!0),s=U(a,1,!0);B(i),R(()=>{i.disabled=M(_),H(i,`data-tip`,M(le).hint),P(o,M(r).lead?`·`:``),P(s,M(r).empty?`∅`:M(r).text)}),L(`click`,i,()=>b(vo({id:M(n)[4],text:M(n)[0]},M(ce)))),j(e,i)}),B(r),j(e,n)};T(r,e=>{M(ue).length>0&&e(i)}),j(e,n)},w=e=>{var t=Ic(),n=G(t),i=e=>{var t=Pc();O(t,21,()=>M(me),e=>e.key,(e,t)=>{var n=Nc(),r=X(n),i=J(r,!0),a=U(r,2),o=X(a);O(o,16,()=>M(t).nodes,e=>e,(e,n)=>{var r=jc(),i=J(r,!0);R(()=>P(i,n)),L(`click`,r,()=>ve(M(t),n)),j(e,r)});var s=U(o,2),c=e=>{var n=Mc(),r=J(n);R(()=>P(r,`${M(t).more??``} more`)),L(`click`,n,()=>Y(pe,M(t).key,!0)),j(e,n)};T(s,e=>{M(t).more>0&&e(c)}),B(a),B(n),R(()=>{H(r,`data-tip`,M(t).key),P(i,M(t).title)}),j(e,n)}),B(t),j(e,t)};T(n,e=>{M(me).length>0&&e(i)});var a=U(n,2),o=e=>{var t=Fc(),n=J(t,!0);R(()=>P(n,M(K))),j(e,t)};T(a,e=>{M(K)&&e(o)});var s=U(a,2),l=X(s),u=J(l,!0),d=U(l,2);B(s),R(()=>P(u,M(c)===`concept`?`All concepts`:`All manifolds`)),L(`click`,l,()=>{r.onpicked(),gi(M(c)===`concept`?`subspace`:`manifolds`)}),L(`click`,d,()=>{r.onpicked(),xi(`artifacts`,`build`)}),j(e,t)},E=e=>{var t=N(),n=G(t),r=e=>{var t=Tc();O(t,21,()=>M(q),e=>e.id,(e,t)=>{var n=Lc(),r=X(n),i=J(r,!0),a=U(r,2),o=J(a,!0),s=U(a,2),c=J(s);B(n),R(()=>{P(i,M(t).id),P(o,M(t).label??`SAE feature`),c.disabled=M(_)}),L(`click`,c,()=>void Se(M(t).id)),j(e,n)}),B(t),j(e,t)};T(n,e=>{M(q).length>0&&e(r)}),j(e,t)};T(x,e=>{M(c)===`unit`?e(S):M(c)===`lens`?e(C,1):M(c)===`concept`||M(c)===`position`?e(w,2):M(c)===`feature`&&e(E,3)}),R((e,t)=>{P(s,e),oe(u,M(f)),H(u,`placeholder`,M(l)),H(u,`inputmode`,t)},[()=>i.find(e=>e.value===M(c))?.label,()=>M(c)===`feature`&&/^\d*$/u.test(M(f))?`numeric`:void 0]),ae(`submit`,a,Ce),L(`input`,u,e=>h(e.currentTarget.value)),j(e,n)};T(Ee,e=>{M(u)?e(De):e(Z,-1)}),B(we),j(n,we),ye()}A([`click`,`input`]);var Vc=I(``),Hc=I(``),Uc=I(``),Wc=I(``),Gc=I(` `,1),Kc=I(` `,1),qc=I(``),Jc=I(``),Yc=I(` `,1),Xc=I(``),Zc=I(``),Qc=I(`
`);function Al(e,n){let i=E();ge(n,!0);let o=q(n,`source`,3,`Model token`),s=q(n,`contextChanged`,3,!1),c=ee(()=>n.anchor),u=V(()=>gl(n.token)),d=V(()=>t(n.token.text)),f=Eo(Co().mode),p=V(()=>`${o()} · sampled probabilities, not raw logits`),m=`Recorded before your edit, with the original text before it`,h,_=!1;function v(e=!0){!_&&n.isCurrent(c)&&(_=!0,h.inert=!0,e&&c.isConnected&&c.focus({preventScroll:!0}),n.onclose())}function y(){_||Sl(h,c,yl())}_e(()=>{h.showPopover(),y(),h.focus({preventScroll:!0});let e=e=>{!_&&n.isCurrent(c)&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),v())},t=e=>{_||h.contains(e.target)||c.contains(e.target)||v(!1)},r=e=>{_||h.contains(e.target)||c.contains(e.target)||v(!1)},i=e=>{e.target instanceof Node&&h.contains(e.target)||y()};return document.addEventListener(`keydown`,e,!0),document.addEventListener(`pointerdown`,t,!0),document.addEventListener(`focusin`,r),window.addEventListener(`resize`,y),window.addEventListener(`scroll`,i,!0),window.visualViewport?.addEventListener(`resize`,y),window.visualViewport?.addEventListener(`scroll`,y),()=>{document.removeEventListener(`keydown`,e,!0),document.removeEventListener(`pointerdown`,t,!0),document.removeEventListener(`focusin`,r),window.removeEventListener(`resize`,y),window.removeEventListener(`scroll`,i,!0),window.visualViewport?.removeEventListener(`resize`,y),window.visualViewport?.removeEventListener(`scroll`,y)}});var b=kl(),x=X(b),C=X(x);let w;var D=X(C),k=J(D,!0),A=U(D,1,!0);B(C);var N=U(C,2);g(N,{icon:`close`,label:`Close token probabilities`,onclick:()=>v()}),B(x);var F=U(x,2),I=J(F),ne=U(F,2),re=e=>{var n=Tl(),r=U(X(n));O(r,21,()=>M(u),te,(e,n,r)=>{let i=V(()=>t(M(n).text));var o=wl();let s;var c=X(o),l=X(c),u=X(l),d=J(u,!0),f=U(u,1,!0);B(l);var p=U(l),m=e=>{var t=Cl();j(e,t)};T(p,e=>{M(n).chosen&&e(m)}),B(c);var h=U(c);K(h,e=>({...e}),[()=>({"aria-description":`log probability ${M(n).logprob.toFixed(4)}`})],void 0,void 0,`svelte-139pzr0`);var g=J(h,!0);B(o),R(e=>{s=Z(o,1,`svelte-139pzr0`,null,s,{chosen:M(n).chosen}),P(d,M(i).lead?`·`:``),P(f,M(i).empty?`∅`:M(i).text),P(g,e)},[()=>Math.exp(M(n).logprob)>=.001?Math.exp(M(n).logprob).toFixed(3):Math.exp(M(n).logprob).toExponential(2)]),Te(5,o,()=>a,()=>({delay:S(r)})),j(e,o)}),B(r),B(n),j(e,n)};T(ne,e=>{M(u).length&&e(re)});var ie=U(ne,2),oe=e=>{var t=El();L(`click`,t,()=>Ur.return_top_k=f),j(e,t)},se=e=>{var t=Dl();j(e,t)};T(ie,e=>{!n.token.topAlts?.length&&f>0&&Ur.return_top_k===0?e(oe):n.token.topAlts?.length||e(se,1)});var z=U(ie,2),ce=e=>{var t=Ol();L(`click`,t,()=>{c.focus({preventScroll:!0}),n.ondetails?.(),n.onclose()}),j(e,t)};T(z,e=>{n.ondetails&&e(ce)}),B(b),xe(b,e=>h=e,()=>h),R(()=>{H(b,`aria-labelledby`,`${i}-title`),H(b,`aria-describedby`,`${i}-about`),H(C,`id`,`${i}-title`),H(C,`data-tip`,M(p)),H(C,`data-tip-sub`,s()?m:void 0),w=Z(C,1,`svelte-139pzr0`,null,w,{"context-changed":s()}),P(k,M(d).lead?`·`:``),P(A,M(d).empty?`∅`:M(d).text),H(F,`id`,`${i}-about`),P(I,`${M(p)??``}${s()?`. ${m}`:``}`)}),ae(`introstart`,b,()=>{n.isCurrent(c)&&(_=!1,h.inert=!1,y(),h.contains(document.activeElement)||h.focus({preventScroll:!0}))}),ae(`outrostart`,b,()=>{_=!0,h.inert=!0}),Te(5,b,()=>l),Te(6,b,()=>r),j(e,b),ye()}A([`click`]);function jl(e){return e.flatMap((e,t)=>{let n=e.generated?`model`:`user`,r={nodeId:e.nodeId??null,source:n,contextChanged:!1,isThinking:!1};return e.tokens?.length&&e.tokens.map(e=>e.text).join(``)===e.text?e.tokens.map((e,n)=>({...r,text:e.text,turnIdx:t,tokenIdx:n,tok:e})):[{...r,text:e.text,turnIdx:null,tokenIdx:0,tok:null}]})}function Ml(e,t){let n=e.map(e=>e.text).join(``);if(t===n)return e;let r=0;for(;r0&&/[\uD800-\uDBFF]/.test(t[r-1])&&r--;let i=0;for(;i0&&/[\uDC00-\uDFFF]/.test(t[t.length-i])&&i--;let a=e=>({text:e,turnIdx:null,nodeId:null,tokenIdx:0,isThinking:!1,tok:null,source:`draft`,contextChanged:!1}),o=(t,n,r)=>{let i=0;return e.flatMap(e=>{let o=i;i+=e.text.length;let s=Math.max(t,o),c=Math.min(n,i);if(c<=s)return[];if(s===o&&c===i)return[{...e,contextChanged:e.contextChanged||r}];let l=e.text.slice(s-o,c-o);return[e.tok?a(l):{...e,text:l}]})},s=t.slice(r,t.length-i);return[...o(0,r,!1),...s?[a(s)]:[],...o(n.length-i,n.length,!0)]}function Nl(e,t){if(t)return t===`__surprise__`?Ue(e.logprob):t===`__probability__`?$r(e.logprob):t===`__entropy__`?un(e.samplerEntropy):zt(e,t)}function Pl(e){let t=ln.target;if(!t)return{};let n=ln.compareTwo&&ln.compareTarget?ln.compareTarget:null;return Xr(Nl(e,t),n===null?null:Nl(e,n),ln.smoothBlend,Ln(t),n===null?void 0:Ln(n),Fl(t),n===null?void 0:Fl(n))}function Fl(e){let t=Qr.entries.get(vn(e).base)?.info;return t?.family===`lens`?t.namespace===`jlens`?`surprise`:`signed`:t?.family===`sae`?`sae`:qr(e)}function Il(e){let t=Pl(e),n=[];return t.backgroundColor&&(n.push(`background-color: ${t.backgroundColor}`),n.push(`box-shadow: 0 -2px 0 0 ${t.backgroundColor}, 0 2px 0 0 ${t.backgroundColor}`)),t.backgroundImage&&n.push(`background-image: ${t.backgroundImage}`),n.join(`;`)}var Ll=I(`unsaved edit`),Rl=I(``),zl=I(`
`),Bl=I(`
As recorded; your text is unchanged
`),Vl=I(``),Hl=I(` `,1),Ul=I(``),Wl=I(`
`),Gl=I(` `,1),Kl=I(``),ql=I(`
`),Jl=I(``),Yl=I(``),Xl=I(`
`);function Zl(e,t){ge(t,!0);let n=os();w(()=>{let e=$e.pendingIndex===null?null:$e.turns[$e.pendingIndex];n.track(e?.tokens??[],Q.active,`response`),n.track(e?.thinkingTokens??[],Q.active,`thinking`)});let r=V(()=>$e.turns.map(e=>e.text??``).join(``)),i=W(``),a=W(!1),o=W(!1),s=W(null),c=W(null),l=W(null),u=W(null),d=W(null),f=W(null),p=W(!1);F(()=>{let e=M(r);if(!M(p)){if(M(o)){if(!e.startsWith(M(i))){!Q.active&&Q.finishedAt!==null&&Q.finishedAt!==M(s)&&(Y(o,!1),Y(a,!0));return}Y(o,!1)}M(a)||(Y(i,e,!0),Y(d,null))}});function m(e){Y(l,null);let t=e.currentTarget,n=t.value;Y(f,{start:t.selectionStart,end:t.selectionEnd,text:n,nodeId:M(_)},!0),Y(d,n===M(r)?null:Ml(M(d)??M(A),n),!0),Y(i,n,!0),Y(a,M(i)!==M(r)),Y(o,!1)}function h(){!M(c)||Q.active||M(o)||M(p)||Y(f,{start:M(c).selectionStart,end:M(c).selectionEnd,text:M(i),nodeId:M(_)},!0)}_e(()=>Me({read:()=>({text:M(i),dirty:M(a),busy:M(o)||M(p),selection:M(f)?{start:M(f).start,end:M(f).end}:null}),update:async e=>{Y(l,null),e.text!==void 0&&(Y(d,e.text===M(r)?null:Ml(M(d)??M(A),e.text),!0),Y(i,e.text,!0),Y(a,M(i)!==M(r)),Y(o,!1),Y(z,`edit`)),e.selection!==void 0&&Y(f,{...e.selection,text:M(i),nodeId:M(_)},!0),await be(),M(f)&&M(c)&&M(c).setSelectionRange(M(f).start,M(f).end)},save:async()=>{if(await S(),M(l))throw Error(M(l))},revert:E,prepareSelection:async e=>{let t=await g(e,!1);if(!t)throw Error(`Select a committed completion point before continuing. Save any draft edit first.`);return t}}));async function g(e=!1,t=!0){if(!M(v)||!M(f)||Q.active||M(o)||M(p)||M(a)||on.queue.length||!$.root_id)return null;let n=e?M(f).start:M(f).end,r=M(i),c=M(_),m=$.root_id;Y(p,!0),Y(l,null),Y(u,document.activeElement,!0);try{let e=hl($e.turns,$.root_id,n),c=e.parentNodeId;if(e.branch?c=(await Jt.branch(e.branch.nodeId,e.branch.text,void 0,`user`)).node_id:await Jt.navigate(c),await In(),$.root_id!==m||$.active_node_id!==c)throw Error(`The selected completion point changed. Select the text again.`);return Y(i,r.slice(0,n),!0),Y(d,null),Y(f,null),Y(ze,!1),Y(o,!0),Y(s,Q.finishedAt,!0),t?await Yr({raw:!0,parent_node_id:c,append_same_role:!1,n:1}):(Y(o,!1),Y(a,!1)),{parent_node_id:c}}catch(e){if($.root_id!==m){if(Y(o,!1),!t)throw e;return null}if(Y(i,r,!0),c)try{await Jt.navigate(c),await In()}catch{}if(C(e),!t)throw e;return null}finally{Y(p,!1)}}F(()=>{if(!M(u)||M(o)||Q.active||M(p))return;let e=M(u);Y(u,null),be().then(()=>{(document.activeElement===e||document.activeElement===document.body)&&M(c)?.focus({preventScroll:!0})})});let _=V(()=>$.loaded?$.active_node_id??null:null),v=V(()=>M(f)!==null&&M(f).text===M(i)&&M(f).nodeId===M(_));function b(){if(!M(a))return{tail:``,parentNodeId:void 0};let e=$e.turns,t=0;for(let n=0;nM(c)?.focus({preventScroll:!0}))}function D(e){e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!e.isComposing?(e.preventDefault(),x()):e.key===`Escape`&&Q.active&&(e.preventDefault(),ai())}let A=V(()=>jl($e.turns)),ee=V(()=>M(d)??M(A)),I=V(()=>[...$.nodes.values()].filter(e=>e.recipe&&e.tokens?.length&&!$.activePath.includes(e.id)).sort((e,t)=>t.created_at-e.created_at)),ne=W(`current`),re=V(()=>[{value:`current`,label:M(a)?`Current draft`:`Current text`},...M(a)&&M(A).some(e=>e.tok)?[{value:`recorded`,label:`Original text before edit`}]:[],...M(I).map((e,t)=>({value:e.id,label:`Earlier generation ${M(I).length-t} · ${e.text.slice(0,48).replace(/\s+/g,` `)}`}))]),ie=V(()=>{if(M(ne)===`recorded`)return M(A);let e=M(I).find(e=>e.id===M(ne));return e?jl([{nodeId:e.id,role:e.role,text:e.text,generated:!0,tokens:e.tokens.map(pr)}]).map(e=>({...e,turnIdx:null})):M(ee)});F(()=>{M(re).some(e=>e.value===M(ne))||Y(ne,`current`)});let se=W(null),z=W(`edit`),ce=q(t,`colorsOpen`,15,!1),le=V(()=>M(z)===`edit`&&!M(o)&&(M(a)||ln.target!==null&&M(ee).some(e=>e.tok))&&M(ee).map(e=>e.text).join(``)===(M(a)?M(i):M(r))),de=V(()=>{if(!ln.target||M(o)||!M(A).some(e=>e.tok))return null;let e=[ln.target,...ln.compareTwo&&ln.compareTarget?[ln.compareTarget]:[]],t=M(A).flatMap(({tok:t})=>e.flatMap(e=>{let n=t?Nl(t,e):void 0;return n===void 0?[]:[n]}));return t.length===0?`No readings were recorded for this color.`:t.some(e=>e!==0)?null:`Recorded ${e.length>1?`values are`:ln.target===`__surprise__`?`token surprisal is`:ln.target===`__entropy__`?`sampler entropy is`:`values are`} zero, so these tokens stay uncolored.`}),pe=V(()=>M(ee).some(e=>e.tok!==null)),he=V(()=>M(ie).flatMap((e,t)=>e.tok===null?[]:[t])),ve=W(-1);F(()=>{let e=M(he);e.length===0?Y(ve,-1):e.includes(M(ve))||Y(ve,e[0],!0)});let Se=V(()=>M(pe)||M(A).some(e=>e.tok)||M(I).length>0),Ce=V(()=>M(Se)&&!M(o)&&!Q.active&&!M(p)),Te=V(()=>[{value:`edit`,label:`Edit text`,title:`Edit the completion text`},{value:`inspect`,label:`Inspect tokens`,disabled:M(z)!==`inspect`&&!M(Ce),title:M(Ce)||M(z)===`inspect`?`Choose a token to inspect readings or branch`:Q.active?`Stop or finish generation before inspecting`:M(o)?`Wait for the edit to finish saving`:`Continue text to record tokens`}]);F(()=>{M(z)===`inspect`&&!M(Se)&&Y(z,`edit`)});function De(e){M(Te).find(t=>t.value===e)?.disabled||(Y(se,null),e===`inspect`&&!M(pe)&&Y(ne,M(A).some(e=>e.tok)&&M(a)?`recorded`:M(I)[0]?.id??`current`,!0),Y(z,e,!0))}function ke(e){let t=e.tok;if(!t)return``;let n=[],r=Nl(t,ln.target);r!==void 0&&ln.target&&(ln.target===`__surprise__`?t.logprob!=null&&n.push(`token surprisal ${(-t.logprob).toFixed(3)} nats`):ln.target===`__probability__`&&t.logprob!=null?n.push(`token probability ${(Math.exp(Math.min(0,t.logprob))*100).toFixed(1)}%`):ln.target===`__entropy__`&&t.samplerEntropy!=null?n.push(`sampler entropy ${t.samplerEntropy.toFixed(3)} nats`):n.push(`${ln.target} ${r>=0?`+`:``}${r.toFixed(3)}`));let i=t.topAlts?.length??0;return n.push(i>0?`Select to see ${i} alternatives`:`Select to see the recorded probability`),n.join(` · `)}function Ae(e){let t=e.text.trim()||`whitespace`,n=e.tok?.topAlts?.length??0;return n>0?`Inspect token ${t}, ${n} alternatives`:`Inspect token ${t}`}function je(e){Y(ve,e,!0),queueMicrotask(()=>{M(Le)?.querySelector(`[data-token-view-index="${e}"]`)?.focus()})}function Ne(e,t,n){if(e.key===`Enter`||e.key===` `){e.preventDefault(),Fe(n,e.currentTarget);return}let r=M(he).indexOf(t);if(r<0)return;let i=r;if(e.key===`ArrowRight`||e.key===`ArrowDown`)i=(r+1)%M(he).length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)i=(r-1+M(he).length)%M(he).length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=M(he).length-1;else return;e.preventDefault(),je(M(he)[i])}function Pe(e){e.turnIdx!==null&&gi(`token_drilldown`,{turnIdx:e.turnIdx,tokenIdx:e.tokenIdx,isThinking:e.isThinking,initialTab:`logits`})}function Fe(e,t){e.tok&&(Ci.docked&&e.turnIdx!==null?(Y(se,null),gi(`token_drilldown`,{turnIdx:e.turnIdx,tokenIdx:e.tokenIdx,isThinking:e.isThinking})):Y(se,{view:e,anchor:t},!0))}function Ie(e){e.tok&&cr(e.tok,e.nodeId??void 0)}let Le=W(null),Re=W(null),ze=W(!1);function Be(){M(Re)&&M(c)&&(M(Re).scrollTop=M(c).scrollTop,M(Re).scrollLeft=M(c).scrollLeft)}function Ve(e){let t=e.currentTarget;Y(ze,t.scrollHeight-t.scrollTop-t.clientHeight>=8),M(z)===`edit`&&Be()}function He(){Y(ze,!1);let e=M(z)===`edit`?M(c):M(Le);e&&(e.scrollTop=e.scrollHeight),Be()}F(()=>{M(le)&&be().then(Be)}),F(()=>{M(r),!M(a)&&!M(ze)&&be().then(()=>{!M(a)&&!M(ze)&&He()})}),_e(()=>{Y(i,M(r),!0)});var Ue=Xl(),We=X(Ue),Ge=X(We),Ke=U(X(Ge)),qe=e=>{bo(e,{})};T(Ke,e=>{Wn.info?.is_base_model&&e(qe)});var Je=U(Ke),Ye=e=>{var t=Ll();j(e,t)};T(Je,e=>{M(a)&&e(Ye)}),B(Ge);var Xe=U(Ge,2),Ze=X(Xe),Qe=e=>{var t=Rl();R(()=>H(t,`aria-expanded`,ce())),L(`click`,t,()=>ce(!ce())),j(e,t)};T(Ze,e=>{t.colors&&e(Qe)});var et=U(Ze,2);{let e=V(()=>M(Te).map(e=>({value:e.value,label:e.label,hint:e.title})));y(et,{label:`Buffer mode`,get value(){return M(z)},onchange:De,get options(){return M(e)}})}B(Xe),B(We);var tt=U(We,2),nt=e=>{var n=N(),r=G(n);k(r,()=>t.colors),j(e,n)};T(tt,e=>{t.colors&&ce()&&e(nt)});var rt=U(tt,2),it=J(rt,!0),at=U(rt,2),ot=e=>{var t=zl(),n=J(t,!0);R(()=>P(n,M(de))),j(e,t)};T(at,e=>{M(de)&&e(ot)});var st=U(at,2),ct=e=>{var t=Bl(),n=X(t);{let e=V(()=>M(ne)===`current`?void 0:`inspection-source-note`);Ja(n,{get value(){return M(ne)},get options(){return M(re)},ariaLabel:`Text to inspect`,get ariaDescribedby(){return M(e)},onchange:e=>{Y(se,null),Y(ne,e,!0)}})}Oe(2),B(t),R(()=>H(t,`data-tip`,M(ne)===`current`?void 0:`As recorded; your text is unchanged`)),j(e,t)};T(st,e=>{M(z)===`inspect`&&M(re).length>1&&e(ct)});var lt=U(st,2);let ut;var dt=X(lt),ft=e=>{var t=Ul();O(t,21,()=>M(ie),te,(e,t,n)=>{var r=N(),i=G(r),a=e=>{var n=Vl();K(n,()=>({class:`seg plain`,"aria-description":M(t).source===`draft`?`Unsaved user edit · no recorded probabilities`:M(t).source===`model`?`Model text · no recorded probabilities`:`User text · no recorded probabilities`,[ue]:{"origin-user":M(t).source===`user`,"origin-draft":M(t).source===`draft`}}),void 0,void 0,void 0,`svelte-riacu3`);var r=J(n,!0);R(()=>P(r,M(t).text)),j(e,n)},o=e=>{let r=V(()=>Ht(M(t).text));var i=Hl(),a=G(i,!0),o=U(a),s=()=>Ie(M(t)),c=()=>Ie(M(t)),l=e=>{Y(ve,n,!0),Fe(M(t),e.currentTarget)},u=e=>Ne(e,n,M(t));K(o,(e,r,i,a)=>({class:`seg tok clickable`,"data-cursor":`inspect`,style:e,...r,role:`button`,tabindex:n===M(ve)?0:-1,"data-token-view-index":n,"aria-label":i,"aria-haspopup":`dialog`,"aria-expanded":a,onpointerenter:s,onpointerleave:Kr,onfocus:c,onblur:Kr,onclick:l,onkeydown:u,[ue]:{"origin-user":M(t).source===`user`,"origin-model":M(t).source===`model`,"context-changed":M(t).contextChanged,tinted:ln.target!==null,"has-alts":(M(t).tok?.topAlts?.length??0)>0}}),[()=>M(t).tok?Il(M(t).tok):``,()=>({"aria-description":ke(M(t))}),()=>Ae(M(t)),()=>M(se)?.anchor.dataset.tokenViewIndex===String(n)],void 0,void 0,`svelte-riacu3`);var d=J(o,!0);R(()=>{P(a,M(r).lead),P(d,M(r).body)}),j(e,i)};T(i,e=>{M(t).tok?e(o,-1):e(a)}),j(e,r)}),B(t),R(()=>t.dir=t.dir),j(e,t)},pt=e=>{var t=Gl(),r=G(t),s=e=>{var t=Wl(),r=X(t);O(r,17,()=>M(ee),te,(e,t)=>{let r=V(()=>Ht(M(t).text));Oe();var i=Hl(),o=G(i,!0),s=U(o);let l;var u=J(s,!0);Ee(s,(e,t)=>n.reveal?.(e,t),()=>!Q.active||M(a)||document.activeElement===M(c)?null:M(t).tok),R(e=>{P(o,M(r).lead),we(s,e),l=Z(s,1,`svelte-riacu3`,null,l,{"origin-draft":M(t).source===`draft`}),P(u,M(r).body)},[()=>M(t).tok?Il(M(t).tok):``]),j(e,i)});var i=U(r);i.textContent=``,B(t),xe(t,e=>Y(Re,e),()=>M(Re)),R(()=>t.dir=t.dir),j(e,t)};T(r,e=>{M(le)&&e(s)});var u=U(r,2);fe(u),xe(u,e=>Y(c,e),()=>M(c)),R(()=>{oe(u,M(i)),H(u,`aria-describedby`,M(l)?`completion-hint completion-error`:`completion-hint`),H(u,`aria-invalid`,M(l)?!0:void 0),u.readOnly=Q.active||M(o)||M(p),u.dir=u.dir}),L(`input`,u,m),L(`keydown`,u,D),ae(`select`,u,h),L(`keyup`,u,h),L(`pointerup`,u,h),ae(`scroll`,u,Ve),j(e,t)};T(dt,e=>{M(z)===`inspect`?e(ft):e(pt,-1)});var mt=U(dt,2),ht=e=>{var t=Kl(),n=J(t);L(`click`,n,()=>{He(),M(c)?.focus({preventScroll:!0})}),j(e,t)};T(mt,e=>{M(ze)&&!M(a)&&M(z)===`edit`&&e(ht)}),B(lt),xe(lt,e=>Y(Le,e),()=>M(Le));var gt=U(lt,2),_t=e=>{let t=V(()=>M(se).view);var n=N(),r=G(n);me(r,()=>M(se).anchor,e=>{{let n=V(()=>M(ne)===`current`?M(se).view.source===`user`?`User text · recorded`:`Model token`:`Original recorded token`),r=V(()=>M(t).turnIdx===null?void 0:()=>Pe(M(t)));Al(e,{get token(){return M(se).view.tok},get anchor(){return M(se).anchor},isCurrent:e=>M(se)?.anchor===e,get source(){return M(n)},get contextChanged(){return M(se).view.contextChanged},onclose:()=>Y(se,null),get ondetails(){return M(r)}})}}),j(e,n)};T(gt,e=>{M(se)?.view.tok&&e(_t)});var vt=U(gt,2),yt=e=>{var t=ql(),n=J(t);R(()=>P(n,`${M(l)??``} Your text is still here.`)),j(e,t)};T(vt,e=>{M(l)&&e(yt)});var bt=U(vt,2);{let e=V(()=>!Q.active&&Q.finishReason===`stop`&&Q.tokensSoFar===0&&$e.turns.at(-1)?.generated===!1);ll(bt,{get savedEdit(){return M(e)}})}var xt=U(bt,2);ml(xt,{});var St=U(xt,2),Ct=X(St);let wt;var Tt=X(Ct),Et=U(Tt,2);B(Ct);var Dt=U(Ct,2),Ot=X(Dt),kt=J(Ot,!0),At=U(Ot,2),jt=U(At,2),Mt=e=>{var t=Jl();L(`click`,t,function(...e){ai?.apply(this,e)}),j(e,t)},Nt=e=>{var t=Yl();R(()=>{t.disabled=M(o)||M(p),H(t,`aria-busy`,M(o)||void 0)}),L(`click`,t,x),j(e,t)};T(jt,e=>{Q.active?e(Mt):e(Nt,-1)}),B(Dt),B(St),B(Ue),R(()=>{P(it,M(z)===`inspect`?`Select a recorded token to see its probabilities. Arrow keys move between tokens.`:`Continue at the end, cursor, or selection. Originals stay saved in the loom.`),ut=Z(lt,1,`surface svelte-riacu3`,null,ut,{inspecting:M(z)===`inspect`,"generation-active":Q.active}),wt=Z(Ct,1,`edit-actions svelte-riacu3`,null,wt,{shown:M(a)}),Tt.disabled=!M(a)||Q.active||M(o)||M(p),Et.disabled=!M(a)||Q.active||M(o)||M(p),Ot.disabled=M(z)!==`edit`||!M(v)||!M(f)||!M(i).length||M(a)||Q.active||M(o)||M(p)||on.queue.length>0,P(kt,M(f)&&M(f).start!==M(f).end?`Continue after selection`:`Continue from cursor`),At.disabled=M(z)!==`edit`||!M(v)||!M(f)||M(f).start===M(f).end||M(a)||Q.active||M(o)||M(p)||on.queue.length>0}),ae(`scroll`,lt,function(...e){(M(z)===`inspect`?Ve:void 0)?.apply(this,e)}),L(`click`,Tt,()=>void S()),L(`click`,Et,E),L(`click`,Ot,()=>g()),L(`click`,At,()=>g(!0)),j(e,Ue),ye()}A([`click`,`input`,`keydown`,`keyup`,`pointerup`]);var Ql=I(``),$l=I(`
Use lowercase letters, numbers, periods, underscores, or hyphens for role names.
`),Iu=I(`
This model uses it for one turn only.
`),Lu=I(`
`),Ru=I(``),zu=I(``),Bu=I(``),Vu=I(``),Hu=I(`
`,1),Uu=I(`
`);function Wu(t,i){ge(i,!0);let s=e=>{var t=lu(),n=X(t),r=U(X(n),2);{let e=V(()=>ln.target??``),t=V(()=>M(Ae)?`Color completion tokens by`:`Color generated words by`);Ja(r,{get value(){return M(e)},get options(){return M(Wt)},onchange:It,get ariaLabel(){return M(t)}})}B(n);var i=U(n,2),a=e=>{var t=iu(),n=J(t,!0);R(()=>{H(t,`aria-pressed`,ln.compareTwo),P(n,ln.compareTwo?`One color`:`Compare two colors`)}),L(`click`,t,Rt),j(e,t)};T(i,e=>{M(Jt)&&e(a)});var s=U(i,2),c=e=>{var t=au(),n=U(X(t),2);{let e=V(()=>ln.compareTarget??``),t=V(()=>!ln.compareTwo);Ja(n,{get value(){return M(e)},get options(){return M(Kt)},onchange:Lt,get disabled(){return M(t)},ariaLabel:`Second word color`})}B(t),j(e,t)};T(s,e=>{ln.compareTwo&&e(c)});var l=U(s,2),d=e=>{var t=cu(),n=G(t);o(n,{get checked(){return qt.enabled},get onchange(){return tn},label:`Compare replies`,hint:`Create a second version after every reply using the comparison settings.`});var r=U(n,2),i=e=>{var t=cu(),n=G(t);Ja(n,{get value(){return qt.mode},get options(){return Yt},onchange:an,get disabled(){return ot.processingAb},ariaLabel:`Automatic comparison style`});var r=U(n,2),i=e=>{let t=V(()=>rt(qt.custom));var n=su(),r=G(n);he(r);var i=U(r,2),a=e=>{var n=ou(),r=J(n,!0);R(()=>P(r,M(t))),j(e,n)};T(i,e=>{M(t)&&e(a)}),R(()=>{oe(r,qt.custom),r.disabled=ot.processingAb,H(r,`aria-invalid`,M(t)!==null),H(r,`aria-describedby`,M(t)?`custom-comparison-problem`:void 0)}),L(`input`,r,e=>dt(e.currentTarget.value)),j(e,n)};T(r,e=>{qt.mode===`custom`&&e(i)}),j(e,t)};T(r,e=>{qt.enabled&&e(i)}),j(e,t)};T(l,e=>{M(Zt)&&e(d)}),B(t),Te(3,t,()=>u),j(e,t)},l=(t,r=De,i=De,o=De)=>{var s=N(),l=G(s),f=e=>{var t=uu();let n;var i=U(X(t),2),s=J(i,!0);B(t),R(()=>{n=Z(t,1,`dw-turn stage`,null,n,{shadow:o()}),P(s,r().text),i.dir=i.dir}),Te(1,t,()=>a),j(e,t)},p=t=>{let s=V(()=>Q.active&&(o()?ot.pendingTurnIdx===i():!ot.processingAb&&$e.pendingIndex===i())),l=V(()=>r().role===`user`);var f=Eu();let p;var m=X(f);let h;var g=J(m,!0),_=U(m,2),v=t=>{var n=pu(),a=X(n),o=X(a);let s;var c=X(o);e(c,{name:`down`}),B(o),Oe(),B(a);var l=U(a,2),f=e=>{var t=fu();O(t,21,()=>r().thinkingTokens??[],te,(e,t,n)=>{let a=V(()=>Il(M(t))),o=V(()=>ke(i(),n,!0)),s=V(()=>Ht(M(t).text));Oe();var c=du(),l=G(c,!0),u=U(l);let f;var p=J(u,!0);Ee(u,(e,t)=>d.reveal?.(e,t),()=>Q.active?M(t):null),R((e,t)=>{P(l,M(s).lead),f=Z(u,1,`tok svelte-o5nz21`,null,f,{sel:M(o),tinted:M(a)!==``}),we(u,M(o)?``:M(a)),H(u,`tabindex`,e),H(u,`aria-pressed`,M(o)),H(u,`aria-label`,t),P(p,M(s).body)},[()=>n===(Bn.get(`${r().nodeId??i()}:thinking`)??0)?0:-1,()=>`Inspect token ${M(t).text.trim()||`whitespace`}`]),ae(`pointerenter`,u,()=>cr(M(t),r().nodeId)),ae(`pointerleave`,u,function(...e){Kr?.apply(this,e)}),ae(`focus`,u,()=>{Bn.set(`${r().nodeId??i()}:thinking`,n),cr(M(t),r().nodeId)}),ae(`blur`,u,function(...e){Kr?.apply(this,e)}),L(`click`,u,e=>Vn(i(),n,e,!0)),L(`keydown`,u,e=>Hn(e,i(),n,!0)),j(e,c)}),B(t),R(()=>t.dir=t.dir),Te(3,t,()=>u),j(e,t)},p=V(()=>!_n(i(),r()));T(l,e=>{M(p)&&e(f)}),B(n),R((e,t)=>{H(a,`aria-expanded`,e),s=Z(o,1,`caret svelte-o5nz21`,null,s,{open:t})},[()=>!_n(i(),r()),()=>!_n(i(),r())]),L(`click`,a,()=>vn(i())),j(t,n)};T(_,e=>{((r().thinkingTokens?.length??0)>0||r().thinking)&&e(v)});var y=U(_,2),b=X(y),x=e=>{var t=N(),n=G(t);O(n,19,()=>zn(r().tokens??[]),({tok:e,originalIdx:t})=>t,(e,t,n)=>{let a=()=>M(t).tok,o=()=>M(t).originalIdx,s=V(()=>Il(a())),c=V(()=>ke(i(),o(),!1)),l=V(()=>Ht(a().text));Oe();var u=du(),f=G(u,!0),p=U(f);let m;var h=J(p,!0);Ee(p,(e,t)=>d.reveal?.(e,t),()=>Q.active?a():null),R((e,t)=>{P(f,M(l).lead),m=Z(p,1,`tok svelte-o5nz21`,null,m,{sel:M(c),tinted:M(s)!==``}),we(p,M(c)?``:M(s)),H(p,`tabindex`,e),H(p,`aria-pressed`,M(c)),H(p,`aria-label`,t),P(h,M(l).body)},[()=>(Bn.has(`${r().nodeId??i()}:response`)?Bn.get(`${r().nodeId??i()}:response`)===o():M(n)===0)?0:-1,()=>`Inspect token ${a().text.trim()||`whitespace`}`]),ae(`pointerenter`,p,()=>cr(a(),r().nodeId)),ae(`pointerleave`,p,function(...e){Kr?.apply(this,e)}),ae(`focus`,p,()=>{Bn.set(`${r().nodeId??i()}:response`,o()),cr(a(),r().nodeId)}),ae(`blur`,p,function(...e){Kr?.apply(this,e)}),L(`click`,p,e=>Vn(i(),o(),e,!1)),L(`keydown`,p,e=>Hn(e,i(),o())),j(e,u)}),j(e,t)},S=e=>{var t=mu(),n=J(t,!0);R(e=>P(n,e),[()=>Gn(r())]),j(e,t)};T(b,e=>{(r().tokens?.length??0)>0?e(x):e(S,-1)}),B(y);var C=U(y,2);let w;var E=X(C),D=e=>{var t=hu(),n=X(t);{let e=V(()=>(r().tokens?.length??0)>0?`Writing`:(r().thinkingTokens?.length??0)>0?`Thinking`:`Preparing the reply`);c(n,{get text(){return M(e)},numbers:!1})}B(t),j(e,t)},k=e=>{var t=gu(),n=J(t);R(()=>P(n,`${r().tokens?.length??``} tokens`)),j(e,t)};T(E,e=>{M(s)?e(D):r().generated&&(r().tokens?.length??0)>0&&e(k,1)});var A=U(E,2),ee=e=>{var t=_u();j(e,t)};T(A,e=>{!M(s)&&r().finishReason===`cancelled`&&e(ee)});var F=U(A,2),I=e=>{var t=vu(),n=U(X(t));{let e=V(()=>Math.exp(-r().meanLogprob).toFixed(1));c(n,{get text(){return M(e)}})}B(t),j(e,t)},re=V(()=>r().meanLogprob!=null&&Number.isFinite(r().meanLogprob));T(F,e=>{M(re)&&e(I)});var ie=U(F,2),oe=e=>{var t=gu(),n=J(t,!0);R(()=>{H(t,`data-tip`,r().appliedSteering??`No steering`),P(n,r().appliedSteering?`steered`:`unsteered`)}),j(e,t)};T(ie,e=>{r().generated&&r().finishReason!=null&&r().appliedSteering!==void 0&&e(oe)});var z=U(ie,2),le=e=>{var t=yu(),n=U(X(t),1,!0);B(t),R(()=>{H(t,`aria-expanded`,M(se)),P(n,M(Se))}),L(`click`,t,()=>Y(se,!M(se))),j(e,t)};T(z,e=>{M(Se)&&r().generated&&(r().tokens?.length??0)>0&&e(le)});var ue=U(z,2),de=e=>{var t=bu();R(e=>H(t,`aria-label`,e),[()=>`Reroll ${Gt(r().role,r().roleLabel)} message`]),L(`click`,t,()=>Qt(r())),j(e,t)};T(ue,e=>{r().nodeId&&e(de)});var fe=U(ue,2),pe=e=>{var t=xu();R(e=>H(t,`aria-label`,e),[()=>`Inspect tokens in ${Gt(r().role,r().roleLabel)} message`]),L(`click`,t,()=>Un(r(),i())),j(e,t)};T(fe,e=>{((r().tokens?.length??0)>0||(r().thinkingTokens?.length??0)>0)&&e(pe)});var me=U(fe,2),W=e=>{var t=Su();R(()=>t.disabled=Q.active),L(`click`,t,()=>un(i())),j(e,t)};T(me,e=>{r().generated&&!o()&&r().appliedSteering&&M(Zt)&&e(W)}),B(C);var he=U(C,2),ge=e=>{var t=Tu(),i=X(t);n(i,{label:`Readings`,children:(e,t)=>{var n=wu();O(n,21,()=>Object.entries(r().aggregateReadings??{}),([e,t])=>e,(e,t)=>{var n=V(()=>ne(M(t),2));let r=()=>M(n)[0],i=()=>M(n)[1];var a=N(),o=G(a),s=e=>{var t=Cu(),n=X(t),a=J(n,!0),o=U(n),s=J(o,!0);B(t),R(e=>{P(a,r()),P(s,e)},[()=>Na(r(),i())]),j(e,t)},c=V(()=>Number.isFinite(i()));T(o,e=>{M(c)&&e(s)}),j(e,a)}),B(n),j(e,n)},$$slots:{default:!0}}),B(t),j(e,t)},_e=V(()=>r().generated&&r().finishReason!=null&&Object.keys(r().aggregateReadings??{}).length>0);T(he,e=>{M(_e)&&e(ge)}),B(f),R(e=>{p=Z(f,1,`dw-turn msg svelte-o5nz21`,null,p,{user:M(l),shadow:o(),historical:i()<$e.turns.length-8}),h=Z(m,1,`dw-seat svelte-o5nz21`,null,h,{end:M(l)}),P(g,e),Z(y,1,ce(M(l)?`dw-user`:`dw-said`),`svelte-o5nz21`),y.dir=y.dir,w=Z(C,1,`dw-under svelte-o5nz21`,null,w,{end:M(l)})},[()=>K(r())]),Te(1,f,()=>a),j(t,f)};T(l,e=>{r().role===`system`?e(f):e(p,-1)}),j(t,s)},d=os();w(()=>{let e=$e.pendingIndex===null?null:$e.turns[$e.pendingIndex];d.track(e?.tokens??[],Q.active,`response`),d.track(e?.thinkingTokens??[],Q.active,`thinking`)});let f=q(i,`phone`,3,!1);function p(){return typeof window<`u`&&window.matchMedia(`(max-width: 720px), (max-height: 600px), (pointer: coarse) and (max-width: 1120px)`).matches}let m=W(``),h=W(null),g=W(null),_=W(!1),v=W(!1),y=W(null),b=null,x=W(null),S=W(420),E=W(!1),D=W(z(p()?32:48)),k=W(z(p()?32:48));V(()=>Math.round(Math.max(M(D),Math.min(M(S),M(x)??M(k)))));let A=V(()=>$.root_id!==null&&$.active_node_id!==$.root_id);function I(){M(_)?(Y(_,!1),ct()):Y(_,!0)}function re(){let e=M(g);if(!e)return;e.style.height=`auto`;let t=Math.min(132,M(S)),n=Math.min(Math.max(e.scrollHeight,M(k)),t);e.style.height=`${n}px`,e.style.overflowY=e.scrollHeight>t?`auto`:`hidden`}function ie(){if(!M(h))return;M(h).style.setProperty(`--chat-scrollbar-width`,`${M(h).offsetWidth-M(h).clientWidth}px`);let e=M(h).clientHeight<560||M(h).clientWidth<=620||(window.visualViewport?.height??window.innerHeight)<600;Y(D,e?32:48,!0),Y(k,e?32:48,!0);let t=e?190:300;Y(S,Math.max(M(D),Math.min(480,Math.floor(M(h).clientHeight-t))),!0),M(x)!==null&&M(x)>M(S)&&Y(x,M(S),!0),queueMicrotask(re)}let se=W(!1),le=W(!1),ue=W(!1);F(()=>{if(Q.active){Y(ue,!0);return}let e=setTimeout(()=>{Y(ue,!1)},1200);return()=>clearTimeout(e)});let de=V(()=>Wn.info?.model_id.split(`/`).at(-1)??`drowse`);function pe(e){return e==null||!Number.isFinite(e)?`default`:String(Number(e.toFixed(2)))}let me=V(()=>[`temperature ${pe(Ur.temperature??Wn.info?.config.temperature)}`,`top-p ${pe(Ur.top_p??Wn.info?.config.top_p)}`,`${Ur.max_tokens??Wn.info?.config.max_tokens??`default`} tokens`].join(` · `));function ve(){Fi(),f()&&(Hi.sheet=!0,Hi.sheetOpen=!0),be().then(()=>document.getElementById(`instrument-sampling`)?.scrollIntoView({block:`start`,behavior:`smooth`}))}function K(e){let t=Gt(e.role,e.roleLabel);return e.role===`user`&&t===M(Be)?`You`:e.role===`assistant`&&t===M(Ve)?M(de):t}let Se=V(()=>{let e=ln.target;if(!e)return null;let t=M(Wt).find(t=>t.value===e)?.label??e,n=ln.compareTwo?ln.compareTarget:null;return n?`${t} and ${M(Kt).find(e=>e.value===n)?.label??n}`:t});F(()=>{if(zi.current.kind!==`token`)return;let e=f()&&!C()?280:0,t=setTimeout(()=>{let e=M(h)?.querySelector(`.tok.sel`);if(!e||!M(Tn))return;let t=M(Tn).getBoundingClientRect(),n=e.getBoundingClientRect();n.top>=t.top&&n.bottom<=t.bottom||(Nn(),e.scrollIntoView({block:`nearest`,behavior:C()?`auto`:`smooth`}))},e);return()=>clearTimeout(t)});function ke(e,t,n){let r=zi.current;if(r.kind!==`token`)return!1;let i=r.params;return i?.turnIdx===e&&i?.tokenIdx===t&&!!i?.isThinking===n}F(()=>{M(m),re()});let Ae=V(()=>(oi.mode,gt())),Me=V(()=>$.loaded?$.active_node_id??null:null),Ne=V(()=>Wn.info?.scene_mode??!1),Fe=/^[a-z0-9._-]+$/,Ie=W(`user`),Le=W(`assistant`);F(()=>{M(Ne)||(M(Ie)!==`user`&&Y(Ie,`user`),M(Le)===`user`&&Y(Le,`assistant`))});let ze=V(()=>M(Le)===`none`?null:M(Le)),Be=V(()=>Wn.info?.default_user_role||`user`),Ve=V(()=>Wn.info?.default_assistant_role||`assistant`),He=V(()=>Ur.user_role.trim()||M(Be)),Ue=V(()=>Ur.assistant_role.trim()||M(Ve)),We=V(()=>M(Ie)===`user`?M(He):M(Ue)),Ge=V(()=>M(Ie)===`user`?Ur.user_role:Ur.assistant_role),qe=V(()=>M(Le)===`user`?Ur.user_role:Ur.assistant_role),Je=V(()=>Wn.info?.is_base_model===!1&&Wn.info?.user_role_supported===!0),Ye=V(()=>Wn.info?.is_base_model===!1&&Wn.info?.role_substitution_supported===!0),Xe=V(()=>{let e=new Set(Object.keys($t.roster).filter(e=>e!==`user`&&e!==`assistant`&&e!==M(Be)&&e!==M(Ve)));return M(He)!==M(Be)&&M(He)!==M(Ve)&&e.add(M(He)),M(Ue)!==M(Be)&&M(Ue)!==M(Ve)&&e.add(M(Ue)),[...e].sort((e,t)=>e.localeCompare(t))}),Ze=V(()=>[...new Set([M(Be),M(Ve),...M(Xe)])].map(e=>({value:e,label:e})));function Qe(e){let t=e.trim();return t===``||Fe.test(t)}let et=V(()=>Qe(M(Ge))),tt=V(()=>M(Le)===`none`||Qe(M(qe))),nt=V(()=>M(et)&&M(tt)),it=V(()=>M(ze)===null?`${M(We)} only`:`${M(We)} → ${M(ze)===`user`?M(He):M(Ue)}`);F(()=>{M(nt)||Y(v,!0)});async function at(e){if(M(v)===e)return;let t=M(y),n=t?.getBoundingClientRect().height??0,r=!!t?.contains(document.activeElement);if(b?.cancel(),b=null,t?.style.removeProperty(`overflow`),Y(v,e,!0),await be(),!t)return;r&&t.querySelector(e?`.plan-minimize`:`.turn-plan-summary`)?.focus({preventScroll:!0});let i=C()?0:240;if(i===0)return;let a=t.getBoundingClientRect().height,o=getComputedStyle(t).getPropertyValue(`--ease`).trim();t.style.overflow=`hidden`;let s=t.animate([{height:`${n}px`},{height:`${a}px`}],{duration:i,easing:o});b=s;let c=()=>{b===s&&(b=null,t.style.removeProperty(`overflow`))};s.onfinish=c,s.oncancel=c}function st(e){return M(e===`user`?Je:Ye)}let lt=V(()=>M(Le)!==`none`&&st(M(Le)));function ut(e,t){e===`user`?Ur.user_role=t:Ur.assistant_role=t}function ft(e){ut(M(Ie),e)}function pt(e){M(Le)!==`none`&&ut(M(Le),e)}function ht(e){e?Y(Le,M(Ne)&&M(Ie)===`assistant`?`user`:`assistant`,!0):Y(Le,`none`)}let _t=V(()=>M(Ne)&&M(ze)!==null&&M(ze)!==M(Ie));function vt(){if(!M(_t)||M(ze)===null)return;let e=M(Ie);Y(Ie,M(ze),!0),Y(Le,e,!0)}let yt=V(()=>Wn.info?.thinking_input_supported??!1),bt=V(()=>Wn.info?.strips_history_thinking??!1),xt=W(!1),St=W(``);_e(()=>Pe({read:()=>({text:M(m),authoredRole:M(Ie),generatedRole:M(ze),authoredThinking:M(St)}),update:async e=>{e.text!==void 0&&Y(m,e.text,!0),e.authoredRole!==void 0&&Y(Ie,e.authoredRole,!0),e.generatedRole!==void 0&&Y(Le,e.generatedRole??`none`,!0),e.authoredThinking!==void 0&&(Y(St,e.authoredThinking,!0),Y(xt,M(St).length>0)),await be(),re()}}));let wt=V(()=>M(m).trim()!==``),Tt=V(()=>M(ze)===null),Et=V(()=>!$.loaded||!M(nt)||!M(wt)&&M(ze)===null),Ot=V(()=>M(Ie)===`user`&&M(We)===M(Be)?`Message ${M(de)}`:`Write as ${M(We)}…`),kt=V(()=>M(Tt)?`Add`:`Send`);function At(){let e=M(wt)?M(m):``,t=Vr();if(!e){if(t!==null){Dr(on.queue[t]?.id??``);return}if(M(ze)===null)return}let n=en()?`active@drain`:M(Me),r=e&&M(St).trim()!==``?M(St):null;if(r!==null&&(Y(St,``),Y(xt,!1)),e&&(hn(e),Y(m,``)),xn(e||null,e?M(Ie):null,M(ze),{parent_node_id:n,replaceSlot:t,raw:M(Ae),authored_thinking:r}),Y(Dn,!1),Ln(!0),window.matchMedia(`(pointer: coarse)`).matches){let e=document.activeElement;e instanceof HTMLElement&&e.closest(`#conversation-composer`)&&e.blur()}queueMicrotask(re)}function jt(e){let t=e.value,n=e.selectionStart??0,r=t.indexOf(`
+import{C as e,E as t,S as n,_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,u as y,v as b,w as x,x as S,y as C}from"./src-DWTrC_D-.js";import{$ as w,A as T,B as E,C as D,D as O,E as k,H as A,I as j,J as ee,K as M,L as N,N as P,O as te,Q as F,R as I,St as ne,T as re,U as L,V as ie,W as ae,Z as R,_ as oe,a as se,at as z,b as ce,bt as B,c as le,d as ue,dt as V,et as de,ft as fe,h as H,i as pe,it as U,k as me,lt as W,m as he,mt as ge,n as _e,nt as G,o as ve,p as K,pt as ye,q as be,r as q,rt as J,s as xe,st as Y,t as Se,tt as X,u as Ce,v as we,w as Te,x as Ee,xt as De,y as Z,yt as Oe,z as ke}from"./index-client-B2jUARBN.js";import{r as Ae}from"./theme-1JIheYAU.js";import{d as je,f as Me,m as Ne,u as Pe}from"./workspaceController-C2L33e3m.js";import{t as Fe}from"./loader-DInTjLPh.js";import{$ as Ie,$r as Le,Ai as Re,An as ze,Ar as Be,B as Ve,Bn as He,Ci as Ue,Cn as We,Cr as Ge,D as Ke,Di as qe,Dn as Je,E as Ye,Ei as Xe,En as Ze,Er as Qe,F as $e,Fn as et,Fr as tt,G as nt,Gr as rt,Gt as it,Hn as at,Hr as ot,Ht as st,I as ct,In as lt,Ir as ut,Jr as dt,Jt as ft,Kn as pt,Kr as mt,Kt as ht,L as gt,Ln as _t,Lr as vt,Lt as yt,Mi as bt,Mn as xt,Mr as St,N as Ct,Nn as wt,Nr as Tt,Nt as Et,O as Dt,On as Ot,Or as kt,Pn as At,Pr as jt,Pt as Mt,Q as Nt,Qn as Pt,Qr as Ft,Qt as It,R as Q,Rn as Lt,Rr as Rt,Si as zt,Sn as Bt,St as Vt,Ti as Ht,Tn as Ut,Tr as Wt,U as Gt,Un as Kt,Ur as qt,Vi as Jt,Vn as Yt,Vt as Xt,W as Zt,Wt as Qt,X as $t,Xn as en,Xr as tn,Yn as nn,Yr as rn,Yt as an,Zn as on,Zr as sn,Zt as cn,_ as ln,_i as un,_r as dn,_t as fn,ai as pn,an as mn,ar as hn,at as gn,b as _n,bi as vn,bn as yn,br as bn,bt as xn,c as Sn,ci as Cn,cn as wn,ct as Tn,di as En,dn as Dn,ei as On,en as kn,er as An,et as jn,f as Mn,fi as Nn,fn as Pn,fr as Fn,ft as In,g as Ln,gi as Rn,gn as zn,gr as Bn,h as Vn,hn as Hn,hr as Un,i as Wn,ii as Gn,in as Kn,ir as qn,it as Jn,j as Yn,ji as Xn,jn as Zn,jr as Qn,jt as $n,k as er,ki as tr,kn as nr,kr as rr,kt as ir,l as ar,li as or,ln as sr,lr as cr,lt as lr,m as ur,mn as dr,mr as fr,mt as pr,ni as mr,nn as hr,nr as gr,nt as _r,oi as vr,on as yr,or as br,ot as xr,p as Sr,pi as Cr,pn as wr,pr as Tr,q as Er,qn as Dr,qr as Or,qt as kr,r as Ar,ri as jr,rn as Mr,rr as Nr,rt as Pr,si as Fr,sn as Ir,st as Lr,t as Rr,ti as zr,tn as Br,tr as Vr,tt as Hr,u as Ur,ui as Wr,un as Gr,ur as Kr,ut as $,vi as qr,vn as Jr,vt as Yr,wi as Xr,wn as Zr,x as Qr,xi as $r,xn as ei,xr as ti,yi as ni,yn as ri,yr as ii,yt as ai,z as oi,zn as si,zr as ci,zt as li}from"./session.svelte-DG7XfPv3.js";import{c as ui,l as di,n as fi,o as pi,r as mi,u as hi}from"./manifoldJobs.svelte-CHFVfjZ7.js";import{a as gi,c as _i,d as vi,f as yi,h as bi,l as xi,m as Si,o as Ci,p as wi,r as Ti,s as Ei,t as Di,u as Oi}from"./drawers.svelte-kEXNcFnO.js";import{_ as ki,c as Ai,h as ji,i as Mi,l as Ni,m as Pi,n as Fi,o as Ii,p as Li,r as Ri,s as zi,u as Bi,v as Vi}from"./selection.svelte-BIYbgTnf.js";import{G as Hi,H as Ui,U as Wi,V as Gi,W as Ki,_ as qi,a as Ji,c as Yi,g as Xi,i as Zi,n as Qi,o as $i,p as ea,r as ta,s as na,t as ra,w as ia}from"./tokenCursor.svelte-uCuumA5L.js";import{t as aa}from"./userFacingError-DNBzS3_o.js";import{i as oa,n as sa,r as ca,t as la}from"./conversationWorkspace-CZnZT52a.js";import{n as ua,t as da}from"./settingsReset.svelte-BlsArNGk.js";import{a as fa,i as pa,n as ma,s as ha,t as ga}from"./savedConversations.svelte-mXMMdYwC.js";import{i as _a,r as va}from"./brandMigration-CCzk-exd.js";import{t as ya}from"./stores.svelte-Cf8e_r1G.js";import{a as ba,i as xa,n as Sa,r as Ca,t as wa}from"./drawers-NN4gzzJ2.js";import{a as Ta,n as Ea}from"./interfaceSchemas-CEzHSS8w.js";import{t as Da}from"./types-CuMUbvHW.js";import{_ as Oa,a as ka,c as Aa,d as ja,f as Ma,g as Na,h as Pa,l as Fa,m as Ia,n as La,o as Ra,p as za,s as Ba,t as Va,u as Ha,v as Ua,x as Wa,y as Ga}from"./ProbeGeometryPlot-oNkgeFdk.js";import{t as Ka}from"./NumberInput-DKXkismd.js";import{n as qa,t as Ja}from"./Select-D_bUUsaw.js";import{a as Ya}from"./chartValues-BigAS4fS.js";import{t as Xa}from"./surfaceGeometry-DdrOowY4.js";import{c as Za,d as Qa,f as $a,i as eo,l as to,m as no,o as ro,p as io,r as ao,u as oo,w as so,x as co}from"./unitTerms-Diu4Qe4X.js";import{n as lo,t as uo}from"./contracts-CHaBu2Ze.js";import{n as fo,o as po}from"./selectors-D8zRdyMn.js";import{a as mo,i as ho,n as go,o as _o,r as vo,t as yo}from"./steerActions-BfsIFjtA.js";import{n as bo,t as xo}from"./savedChatOpen-VOCemnUf.js";import{n as So,r as Co,t as wo}from"./registry-CQv71XNh.js";import{l as To,o as Eo}from"./samplingCapabilities-DM6eoDoc.js";import"./legacy-BmNk1mfJ.js";import{n as Do}from"./parameterHelp-DIx0MhMz.js";import{i as Oo,o as ko,t as Ao}from"./readings-D0NRR4XW.js";import{n as jo,t as Mo}from"./instrumentAuthoring.svelte-BM4N6tQi.js";import{t as No}from"./Button-D1moLsPN.js";import{n as Po}from"./errors-D9jT6Fvg.js";function Fo(e){return e.paletteOpen?`palette`:e.modalOpen?`modal`:e.drawerOpen?`drawer`:e.selectionOpen?`selection`:e.generating?`stop`:`none`}var Io=z({open:!1}),Lo=null;function Ro(){!Io.open&&typeof document<`u`&&document.activeElement instanceof HTMLElement&&(Lo=document.activeElement),Io.open=!0}function zo(){let e=Lo;Lo=null,Io.open=!1,queueMicrotask(()=>{e?.isConnected&&e.focus()})}var Bo=`drowse.pending-conversation.v1`;function Vo(e=Uo(`sessionStorage`)){if(!e)return null;try{let t=va(e,Bo);if(!t)return null;let n=JSON.parse(t);return n.version!==1||typeof n.id!=`string`||!n.id.trim()||typeof n.modelId!=`string`||!n.modelId.trim()?null:n}catch{return null}}function Ho(e=Uo(`sessionStorage`)){try{e&&_a(e,Bo)}catch{}}function Uo(e){if(typeof window<`u`)try{return window[e]}catch{return}}var Wo=`drowse.workspace-draft.v1`;function Go(){try{return globalThis.localStorage??void 0}catch{return}}function Ko(e,t=Go()){if(!t)return!1;try{return t.setItem(Wo,JSON.stringify({version:1,modelId:e.model_id,rootId:e.tree.root_id,snapshot:e})),!0}catch{return!1}}function qo(e,t,n=Go()){if(!n)return null;try{let r=n.getItem(Wo);if(!r)return null;let i=JSON.parse(r);return i.version!==1||i.modelId!==e||i.rootId!==t||!i.snapshot||i.snapshot.model_id!==e||i.snapshot.tree?.root_id!==t?null:i.snapshot}catch{return null}}function Jo(e,t,n,r=Go()){let i=qo(e,t,r);return i&&Date.parse(i.savedAt)>Date.parse(n)?i:null}function Yo(e=Go()){try{e?.removeItem(Wo)}catch{}}var Xo=`a[href], button, input, select, textarea, [tabindex]`;function Zo(e){return e.tabIndex>=0&&!e.disabled&&e.offsetParent!==null&&!e.closest(`[inert]`)}function Qo(e){return[...e.querySelectorAll(Xo)].filter(Zo)}function $o(e,t){if(e.key!==`Tab`)return;let n=Qo(t);if(n.length===0){e.preventDefault(),t.focus({preventScroll:!0});return}let r=n.indexOf(document.activeElement);(e.shiftKey?r<=0:r<0||r===n.length-1)&&(e.preventDefault(),n[e.shiftKey?n.length-1:0].focus({preventScroll:!0}))}function es(){let e=document.activeElement;return e&&e!==document.body?e:null}function ts(e,t,n){let r=document.activeElement;r&&r!==document.body&&!n?.contains(r)||e?.isConnected&&Zo(e)&&(e.focus({preventScroll:!0}),document.activeElement===e)||t?.()}var ns=new Set([`$$slots`,`$$events`,`$$legacy`,`name`,`onready`]),rs=I(`
`),Rc=I(` `,1),zc=I(``);function Bc(n,r){ge(r,!0);let i=[{value:`unit`,label:`Neuron or head`,placeholder:`An ID like L20 n512, or a word`},{value:`lens`,label:`Lens token`,placeholder:`A word`},{value:`concept`,label:`Concept`,placeholder:`Find a concept`},{value:`position`,label:`Manifold position`,placeholder:`Find a position`},{value:`feature`,label:`SAE feature`,placeholder:`A feature number or label`}],a=V(()=>Un(`jlens`)||Un(`slens`)),o=V(()=>i.filter(e=>e.value!==`unit`||xs())),s=W(z(Ki.kind));F(()=>{Ki.requested,Y(s,ee(()=>Ki.kind),!0)});let c=V(()=>M(o).some(e=>e.value===M(s))?M(s):M(o)[0]?.value??`concept`),l=V(()=>i.find(e=>e.value===M(c))?.placeholder??``),u=V(()=>M(c)===`lens`&&!M(a)?{head:`No lens`,label:`Lenses`,section:`lenses`}:M(c)===`feature`&&!Ar()?{head:`No SAE`,label:`SAEs`,section:`saes`}:null),d=W(null),f=W(``),p=W(``),m=null;function h(e){Y(f,e,!0),m&&clearTimeout(m),m=setTimeout(()=>Y(p,M(f),!0),250)}function g(e){Y(s,e,!0),Ki.kind=e,Y(f,``),Y(p,``),be().then(()=>M(d)?.focus())}_e(()=>(M(d)?.focus(),cn.catalog.length===0&&!cn.loading&&li(),()=>{m&&clearTimeout(m)}));let _=W(!1);function b(e){e!==null&&r.onpicked()}let x=V(()=>M(c)===`unit`?ze(M(p)):null),S=V(()=>Wn.info?.architecture??null);function C(e){if(!M(S))return!0;let t=e.kind===`neuron`?M(S).neurons_per_layer:M(S).heads_per_layer;return e.layerM(x)?.mode===`active`&&Ss()?Hs():null);F(()=>{if(!M(w)||Q.active)return;let e=M(w).nodeId,t=setTimeout(()=>Vs(e,{top:32}),600);return()=>clearTimeout(t)});let E=V(()=>M(w)?Bs(M(w).nodeId,{top:32}):null),D=V(()=>M(x)?.mode===`word`?M(x).word:null);F(()=>{M(D)&&!Q.active&&Gs(M(D),`writes`,48)});let k=V(()=>M(D)?Ws(M(D),`writes`,48):null),A=(e,t,n)=>Je(n)??Ls(e,t),te=new qi,I=V(()=>M(x)?.mode===`id`&&M(x).ref&&C(M(x).ref)?M(x).ref:null);F(()=>{M(I)&&te.want([{unit:M(I).id}])});let ne=V(()=>{if(!M(x))return[];if(M(x).mode===`id`){if(!M(x).ref||!C(M(x).ref))return[];let e=M(x).ref.id;return[{id:e,kind:M(x).ref.kind,pole:`+`,label:te.label(e,M(x).ref.kind,`+`)?.text??Ls(e),value:null}]}return M(x).mode===`word`?(M(k)?.value?.hits??[]).slice(0,8).map(e=>{let t=e.pole===`-`?`-`:`+`;return{id:e.unit,kind:`neuron`,pole:t,label:A(e.unit,t,e.label),value:_t(e.score)}}):(M(E)?.value?.top??[]).slice(0,8).map(e=>{let t=e.kind===`neuron`&&e.peak<0?`-`:`+`;return{id:e.unit,kind:e.kind,pole:t,label:A(e.unit,t,e.label),value:_t(e.peak)}})}),re=V(()=>!M(x)||M(ne).length===0?null:M(x).mode===`word`?`Writers of ${t(M(D)??``).text.trim()||M(D)}`:M(x).mode===`active`?`Most active in the latest reply`:null),ie=V(()=>{if(!M(x)||M(ne).length>0)return null;if(M(x).mode===`id`)return M(x).ref&&M(f).trim()===M(p).trim()?{text:`This model has no such unit.`}:null;let e=M(x).mode===`word`?M(k):M(E);return M(x).mode===`active`&&!M(w)?null:Q.active&&!e?.value?{text:`Waiting for the reply to finish.`}:e?.status===`loading`?{text:`Reading…`}:e?.status===`error`?{text:e.error??`This could not be read.`,retry:!0}:M(x).mode===`word`&&e?.status===`ready`?{text:`No neuron writes it.`}:null}),se=V(()=>Un(`jlens`)&&Un(`slens`)),ce=V(fr),le=V(()=>br.find(e=>e.value===M(ce))??br[0]),ue=V(()=>M(c)===`lens`?(Fn()??[]).slice(0,8):[]);async function de(e){let t=e.trim().replace(/^[js]lens\//u,``),n=M(ce);if(t&&!M(_)){Y(_,!0);try{let e=await bt.validateLensToken(t);b(vo({word:e.word},n))}catch(e){Pi(`Couldn't steer by ${n}/${t}: ${Po(e)}`,{kind:`error`})}finally{Y(_,!1)}}}let fe=V(()=>Wn.info?.model_id??null),pe=W(null),me=V(()=>{if(M(c)!==`concept`&&M(c)!==`position`)return[];let e=M(c)===`concept`?`flat`:`curved`,t=M(p).trim().toLowerCase(),n=[];for(let r of cn.catalog){if(!r.fitted_for_session||Kt(r)!==e)continue;let i=po(fo(r,M(fe)),void 0);if(!i?.available)continue;let a=`${r.namespace}/${r.name}`,o=!t||a.toLowerCase().includes(t)||(r.description??``).toLowerCase().includes(t),s=r.node_labels.filter(e=>o||e.toLowerCase().includes(t));if(s.length===0)continue;let c=M(pe)===a?s.length:16;n.push({key:a,title:r.name,variant:i.variant,nodes:s.slice(0,c),more:Math.max(0,s.length-c)})}return n});function ve(e,t){b(M(c)===`concept`?yo(e.key,e.variant,t):ho(e.key,e.variant,t))}let K=V(()=>M(c)!==`concept`&&M(c)!==`position`||M(me).length>0?null:cn.loading?`Reading the catalog…`:M(p).trim()?`Nothing fitted matches.`:M(c)===`concept`?`No concept is fitted for this model.`:`No manifold is fitted for this model.`),q=V(()=>{if(M(c)!==`feature`)return[];let e=M(p).trim().toLowerCase().replace(/^sae\//u,``),t=rr().map(e=>({id:e.id,label:e.label??Qn.meta.get(e.id)?.label??null}));if(!e)return t.slice(0,8);if(/^\d+$/u.test(e))return[{id:Number(e),label:Qn.meta.get(Number(e))?.label??null}];let n=new Map;for(let e of t)n.set(e.id,e);for(let[e,t]of Qn.meta)n.has(e)||n.set(e,{id:e,label:t.label});return[...n.values()].filter(t=>t.label?.toLowerCase().includes(e)).slice(0,8)});async function Se(e){if(!M(_)){Y(_,!0);try{let t=await bt.validateSaeFeature(e);b(go(t.id))}catch(t){Pi(aa(t,`Feature ${e} could not be added. Try again.`),{kind:`error`})}finally{Y(_,!1)}}}function Ce(e){e.preventDefault(),Y(p,M(f),!0);let t=M(f).trim();if(M(c)===`lens`)de(t);else if(M(c)===`feature`){let e=Number(t.replace(/^sae\//u,``));Number.isInteger(e)&&e>=0&&t!==``?Se(e):M(q)[0]&&Se(M(q)[0].id)}else if(M(c)===`concept`||M(c)===`position`){let e=M(me)[0];e&&e.nodes[0]!==void 0&&ve(e,e.nodes[0])}else if(M(c)===`unit`){let e=ze(t);if(e.mode===`id`&&e.ref&&C(e.ref))b(e.ref.kind===`neuron`?mo(e.ref.id):_o(e.ref.id));else if(e.mode!==`id`&&M(ne)[0]){let e=M(ne)[0];b(e.kind===`neuron`?mo(e.id,e.pole):_o(e.id))}}}var we=zc(),Te=X(we);{let e=V(()=>M(o).map(e=>({value:e.value,label:e.label})));v(Te,{label:`Steer with`,get value(){return M(c)},get options(){return M(e)},onchange:g,scroll:!0})}var Ee=U(Te,2),De=t=>{var n=yc(),i=X(n),a=J(i,!0),o=U(i,2),s=X(o,!0),c=U(s);e(c,{name:`right`}),B(o),B(n),R(()=>{P(a,M(u).head),P(s,M(u).label)}),L(`click`,o,()=>{r.onpicked(),xi(`artifacts`,M(u).section)}),j(t,n)},Z=e=>{var n=Rc(),a=G(n),o=X(a),s=J(o,!0),u=U(o,2);he(u),xe(u,e=>Y(d,e),()=>M(d));var p=U(u,2),m=e=>{{let t=V(()=>[...br]);y(e,{label:`Toward the word`,get value(){return M(ce)},get options(){return M(t)},onchange:e=>Bn.namespace=e})}};T(p,e=>{M(c)===`lens`&&M(se)&&e(m)});var g=U(p,2),v=e=>{var t=bc();R(e=>{t.disabled=e,H(t,`data-tip`,M(c)===`lens`?M(le).hint:void 0)},[()=>M(_)||!M(f).trim()]),j(e,t)};T(g,e=>{(M(c)===`lens`||M(c)===`feature`)&&e(v)}),B(a);var x=U(a,2),S=e=>{var t=Oc(),n=G(t),i=e=>{var t=xc(),n=J(t,!0);R(()=>P(n,M(re))),j(e,t)};T(n,e=>{M(re)&&e(i)});var a=U(n,2),o=e=>{var t=Tc();O(t,21,()=>M(ne),e=>e.id,(e,t)=>{var n=wc(),r=X(n),i=J(r,!0),a=U(r,2),o=J(a,!0),s=U(a,2),c=e=>{var n=Sc(),r=J(n,!0);R(()=>P(r,M(t).value)),j(e,n)};T(s,e=>{M(t).value!==null&&e(c)});var l=U(s,2),u=X(l),d=e=>{var n=Cc(),r=J(n);R(()=>P(r,`Push${M(t).pole===`-`?` −`:``}`)),L(`click`,n,()=>b(mo(M(t).id,M(t).pole))),j(e,n)};T(u,e=>{M(t).kind===`neuron`&&e(d)});var f=U(u,2);B(l),B(n),R(e=>{P(i,e),P(o,M(t).label??(M(t).kind===`head`?`attention head`:`MLP neuron`))},[()=>Yt(M(t).id)]),L(`click`,f,()=>b(_o(M(t).id))),j(e,n)}),B(t),j(e,t)};T(a,e=>{M(ne).length>0&&e(o)});var s=U(a,2),c=e=>{var t=Dc(),n=X(t),r=J(n,!0),i=U(n),a=e=>{var t=Ec();L(`click`,t,function(...e){Ns?.apply(this,e)}),j(e,t)};T(i,e=>{M(ie).retry&&e(a)}),B(t),R(()=>P(r,M(ie).text)),j(e,t)};T(s,e=>{M(ie)&&e(c)});var l=U(s,2),u=J(l);L(`click`,u,()=>{r.onpicked(),xi(`units`)}),j(e,t)},C=e=>{var n=N(),r=G(n),i=e=>{var n=Ac(),r=U(G(n),2);O(r,21,()=>M(ue),e=>e[4],(e,n)=>{let r=V(()=>t(M(n)[0]));var i=kc(),a=X(i),o=J(a,!0),s=U(a,1,!0);B(i),R(()=>{i.disabled=M(_),H(i,`data-tip`,M(le).hint),P(o,M(r).lead?`·`:``),P(s,M(r).empty?`∅`:M(r).text)}),L(`click`,i,()=>b(vo({id:M(n)[4],text:M(n)[0]},M(ce)))),j(e,i)}),B(r),j(e,n)};T(r,e=>{M(ue).length>0&&e(i)}),j(e,n)},w=e=>{var t=Ic(),n=G(t),i=e=>{var t=Pc();O(t,21,()=>M(me),e=>e.key,(e,t)=>{var n=Nc(),r=X(n),i=J(r,!0),a=U(r,2),o=X(a);O(o,16,()=>M(t).nodes,e=>e,(e,n)=>{var r=jc(),i=J(r,!0);R(()=>P(i,n)),L(`click`,r,()=>ve(M(t),n)),j(e,r)});var s=U(o,2),c=e=>{var n=Mc(),r=J(n);R(()=>P(r,`${M(t).more??``} more`)),L(`click`,n,()=>Y(pe,M(t).key,!0)),j(e,n)};T(s,e=>{M(t).more>0&&e(c)}),B(a),B(n),R(()=>{H(r,`data-tip`,M(t).key),P(i,M(t).title)}),j(e,n)}),B(t),j(e,t)};T(n,e=>{M(me).length>0&&e(i)});var a=U(n,2),o=e=>{var t=Fc(),n=J(t,!0);R(()=>P(n,M(K))),j(e,t)};T(a,e=>{M(K)&&e(o)});var s=U(a,2),l=X(s),u=J(l,!0),d=U(l,2);B(s),R(()=>P(u,M(c)===`concept`?`All concepts`:`All manifolds`)),L(`click`,l,()=>{r.onpicked(),gi(M(c)===`concept`?`subspace`:`manifolds`)}),L(`click`,d,()=>{r.onpicked(),xi(`artifacts`,`build`)}),j(e,t)},E=e=>{var t=N(),n=G(t),r=e=>{var t=Tc();O(t,21,()=>M(q),e=>e.id,(e,t)=>{var n=Lc(),r=X(n),i=J(r,!0),a=U(r,2),o=J(a,!0),s=U(a,2),c=J(s);B(n),R(()=>{P(i,M(t).id),P(o,M(t).label??`SAE feature`),c.disabled=M(_)}),L(`click`,c,()=>void Se(M(t).id)),j(e,n)}),B(t),j(e,t)};T(n,e=>{M(q).length>0&&e(r)}),j(e,t)};T(x,e=>{M(c)===`unit`?e(S):M(c)===`lens`?e(C,1):M(c)===`concept`||M(c)===`position`?e(w,2):M(c)===`feature`&&e(E,3)}),R((e,t)=>{P(s,e),oe(u,M(f)),H(u,`placeholder`,M(l)),H(u,`inputmode`,t)},[()=>i.find(e=>e.value===M(c))?.label,()=>M(c)===`feature`&&/^\d*$/u.test(M(f))?`numeric`:void 0]),ae(`submit`,a,Ce),L(`input`,u,e=>h(e.currentTarget.value)),j(e,n)};T(Ee,e=>{M(u)?e(De):e(Z,-1)}),B(we),j(n,we),ye()}A([`click`,`input`]);var Vc=I(``),Hc=I(``),Uc=I(``),Wc=I(``),Gc=I(` `,1),Kc=I(` `,1),qc=I(``),Jc=I(``),Yc=I(` `,1),Xc=I(``),Zc=I(``),Qc=I(`
`);function Al(e,n){let i=E();ge(n,!0);let o=q(n,`source`,3,`Model token`),s=q(n,`contextChanged`,3,!1),c=ee(()=>n.anchor),u=V(()=>gl(n.token)),d=V(()=>t(n.token.text)),f=Eo(Co().mode),p=V(()=>`${o()} · sampled probabilities, not raw logits`),m=`Recorded before your edit, with the original text before it`,h,_=!1;function v(e=!0){!_&&n.isCurrent(c)&&(_=!0,h.inert=!0,e&&c.isConnected&&c.focus({preventScroll:!0}),n.onclose())}function y(){_||Sl(h,c,yl())}_e(()=>{h.showPopover(),y(),h.focus({preventScroll:!0});let e=e=>{!_&&n.isCurrent(c)&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),v())},t=e=>{_||h.contains(e.target)||c.contains(e.target)||v(!1)},r=e=>{_||h.contains(e.target)||c.contains(e.target)||v(!1)},i=e=>{e.target instanceof Node&&h.contains(e.target)||y()};return document.addEventListener(`keydown`,e,!0),document.addEventListener(`pointerdown`,t,!0),document.addEventListener(`focusin`,r),window.addEventListener(`resize`,y),window.addEventListener(`scroll`,i,!0),window.visualViewport?.addEventListener(`resize`,y),window.visualViewport?.addEventListener(`scroll`,y),()=>{document.removeEventListener(`keydown`,e,!0),document.removeEventListener(`pointerdown`,t,!0),document.removeEventListener(`focusin`,r),window.removeEventListener(`resize`,y),window.removeEventListener(`scroll`,i,!0),window.visualViewport?.removeEventListener(`resize`,y),window.visualViewport?.removeEventListener(`scroll`,y)}});var b=kl(),x=X(b),C=X(x);let w;var D=X(C),k=J(D,!0),A=U(D,1,!0);B(C);var N=U(C,2);g(N,{icon:`close`,label:`Close token probabilities`,onclick:()=>v()}),B(x);var F=U(x,2),I=J(F),ne=U(F,2),re=e=>{var n=Tl(),r=U(X(n));O(r,21,()=>M(u),te,(e,n,r)=>{let i=V(()=>t(M(n).text));var o=wl();let s;var c=X(o),l=X(c),u=X(l),d=J(u,!0),f=U(u,1,!0);B(l);var p=U(l),m=e=>{var t=Cl();j(e,t)};T(p,e=>{M(n).chosen&&e(m)}),B(c);var h=U(c);K(h,e=>({...e}),[()=>({"aria-description":`log probability ${M(n).logprob.toFixed(4)}`})],void 0,void 0,`svelte-139pzr0`);var g=J(h,!0);B(o),R(e=>{s=Z(o,1,`svelte-139pzr0`,null,s,{chosen:M(n).chosen}),P(d,M(i).lead?`·`:``),P(f,M(i).empty?`∅`:M(i).text),P(g,e)},[()=>Math.exp(M(n).logprob)>=.001?Math.exp(M(n).logprob).toFixed(3):Math.exp(M(n).logprob).toExponential(2)]),Te(5,o,()=>a,()=>({delay:S(r)})),j(e,o)}),B(r),B(n),j(e,n)};T(ne,e=>{M(u).length&&e(re)});var ie=U(ne,2),oe=e=>{var t=El();L(`click`,t,()=>Ur.return_top_k=f),j(e,t)},se=e=>{var t=Dl();j(e,t)};T(ie,e=>{!n.token.topAlts?.length&&f>0&&Ur.return_top_k===0?e(oe):n.token.topAlts?.length||e(se,1)});var z=U(ie,2),ce=e=>{var t=Ol();L(`click`,t,()=>{c.focus({preventScroll:!0}),n.ondetails?.(),n.onclose()}),j(e,t)};T(z,e=>{n.ondetails&&e(ce)}),B(b),xe(b,e=>h=e,()=>h),R(()=>{H(b,`aria-labelledby`,`${i}-title`),H(b,`aria-describedby`,`${i}-about`),H(C,`id`,`${i}-title`),H(C,`data-tip`,M(p)),H(C,`data-tip-sub`,s()?m:void 0),w=Z(C,1,`svelte-139pzr0`,null,w,{"context-changed":s()}),P(k,M(d).lead?`·`:``),P(A,M(d).empty?`∅`:M(d).text),H(F,`id`,`${i}-about`),P(I,`${M(p)??``}${s()?`. ${m}`:``}`)}),ae(`introstart`,b,()=>{n.isCurrent(c)&&(_=!1,h.inert=!1,y(),h.contains(document.activeElement)||h.focus({preventScroll:!0}))}),ae(`outrostart`,b,()=>{_=!0,h.inert=!0}),Te(5,b,()=>l),Te(6,b,()=>r),j(e,b),ye()}A([`click`]);function jl(e){return e.flatMap((e,t)=>{let n=e.generated?`model`:`user`,r={nodeId:e.nodeId??null,source:n,contextChanged:!1,isThinking:!1};return e.tokens?.length&&e.tokens.map(e=>e.text).join(``)===e.text?e.tokens.map((e,n)=>({...r,text:e.text,turnIdx:t,tokenIdx:n,tok:e})):[{...r,text:e.text,turnIdx:null,tokenIdx:0,tok:null}]})}function Ml(e,t){let n=e.map(e=>e.text).join(``);if(t===n)return e;let r=0;for(;r0&&/[\uD800-\uDBFF]/.test(t[r-1])&&r--;let i=0;for(;i0&&/[\uDC00-\uDFFF]/.test(t[t.length-i])&&i--;let a=e=>({text:e,turnIdx:null,nodeId:null,tokenIdx:0,isThinking:!1,tok:null,source:`draft`,contextChanged:!1}),o=(t,n,r)=>{let i=0;return e.flatMap(e=>{let o=i;i+=e.text.length;let s=Math.max(t,o),c=Math.min(n,i);if(c<=s)return[];if(s===o&&c===i)return[{...e,contextChanged:e.contextChanged||r}];let l=e.text.slice(s-o,c-o);return[e.tok?a(l):{...e,text:l}]})},s=t.slice(r,t.length-i);return[...o(0,r,!1),...s?[a(s)]:[],...o(n.length-i,n.length,!0)]}function Nl(e,t){if(t)return t===`__surprise__`?Ue(e.logprob):t===`__probability__`?$r(e.logprob):t===`__entropy__`?un(e.samplerEntropy):zt(e,t)}function Pl(e){let t=ln.target;if(!t)return{};let n=ln.compareTwo&&ln.compareTarget?ln.compareTarget:null;return Xr(Nl(e,t),n===null?null:Nl(e,n),ln.smoothBlend,Ln(t),n===null?void 0:Ln(n),Fl(t),n===null?void 0:Fl(n))}function Fl(e){let t=Qr.entries.get(vn(e).base)?.info;return t?.family===`lens`?t.namespace===`jlens`?`surprise`:`signed`:t?.family===`sae`?`sae`:qr(e)}function Il(e){let t=Pl(e),n=[];return t.backgroundColor&&(n.push(`background-color: ${t.backgroundColor}`),n.push(`box-shadow: 0 -2px 0 0 ${t.backgroundColor}, 0 2px 0 0 ${t.backgroundColor}`)),t.backgroundImage&&n.push(`background-image: ${t.backgroundImage}`),n.join(`;`)}var Ll=I(`unsaved edit`),Rl=I(``),zl=I(`
`),Bl=I(`
As recorded; your text is unchanged
`),Vl=I(``),Hl=I(` `,1),Ul=I(``),Wl=I(`
`),Gl=I(` `,1),Kl=I(``),ql=I(`
`),Jl=I(``),Yl=I(``),Xl=I(`
`);function Zl(e,t){ge(t,!0);let n=os();w(()=>{let e=$e.pendingIndex===null?null:$e.turns[$e.pendingIndex];n.track(e?.tokens??[],Q.active,`response`),n.track(e?.thinkingTokens??[],Q.active,`thinking`)});let r=V(()=>$e.turns.map(e=>e.text??``).join(``)),i=W(``),a=W(!1),o=W(!1),s=W(null),c=W(null),l=W(null),u=W(null),d=W(null),f=W(null),p=W(!1);F(()=>{let e=M(r);if(!M(p)){if(M(o)){if(!e.startsWith(M(i))){!Q.active&&Q.finishedAt!==null&&Q.finishedAt!==M(s)&&(Y(o,!1),Y(a,!0));return}Y(o,!1)}M(a)||(Y(i,e,!0),Y(d,null))}});function m(e){Y(l,null);let t=e.currentTarget,n=t.value;Y(f,{start:t.selectionStart,end:t.selectionEnd,text:n,nodeId:M(_)},!0),Y(d,n===M(r)?null:Ml(M(d)??M(A),n),!0),Y(i,n,!0),Y(a,M(i)!==M(r)),Y(o,!1)}function h(){!M(c)||Q.active||M(o)||M(p)||Y(f,{start:M(c).selectionStart,end:M(c).selectionEnd,text:M(i),nodeId:M(_)},!0)}_e(()=>Me({read:()=>({text:M(i),dirty:M(a),busy:M(o)||M(p),selection:M(f)?{start:M(f).start,end:M(f).end}:null}),update:async e=>{Y(l,null),e.text!==void 0&&(Y(d,e.text===M(r)?null:Ml(M(d)??M(A),e.text),!0),Y(i,e.text,!0),Y(a,M(i)!==M(r)),Y(o,!1),Y(z,`edit`)),e.selection!==void 0&&Y(f,{...e.selection,text:M(i),nodeId:M(_)},!0),await be(),M(f)&&M(c)&&M(c).setSelectionRange(M(f).start,M(f).end)},save:async()=>{if(await S(),M(l))throw Error(M(l))},revert:E,prepareSelection:async e=>{let t=await g(e,!1);if(!t)throw Error(`Select a committed completion point before continuing. Save any draft edit first.`);return t}}));async function g(e=!1,t=!0){if(!M(v)||!M(f)||Q.active||M(o)||M(p)||M(a)||on.queue.length||!$.root_id)return null;let n=e?M(f).start:M(f).end,r=M(i),c=M(_),m=$.root_id;Y(p,!0),Y(l,null),Y(u,document.activeElement,!0);try{let e=hl($e.turns,$.root_id,n),c=e.parentNodeId;if(e.branch?c=(await Jt.branch(e.branch.nodeId,e.branch.text,void 0,`user`)).node_id:await Jt.navigate(c),await In(),$.root_id!==m||$.active_node_id!==c)throw Error(`The selected completion point changed. Select the text again.`);return Y(i,r.slice(0,n),!0),Y(d,null),Y(f,null),Y(ze,!1),Y(o,!0),Y(s,Q.finishedAt,!0),t?await Yr({raw:!0,parent_node_id:c,append_same_role:!1,n:1}):(Y(o,!1),Y(a,!1)),{parent_node_id:c}}catch(e){if($.root_id!==m){if(Y(o,!1),!t)throw e;return null}if(Y(i,r,!0),c)try{await Jt.navigate(c),await In()}catch{}if(C(e),!t)throw e;return null}finally{Y(p,!1)}}F(()=>{if(!M(u)||M(o)||Q.active||M(p))return;let e=M(u);Y(u,null),be().then(()=>{(document.activeElement===e||document.activeElement===document.body)&&M(c)?.focus({preventScroll:!0})})});let _=V(()=>$.loaded?$.active_node_id??null:null),v=V(()=>M(f)!==null&&M(f).text===M(i)&&M(f).nodeId===M(_));function b(){if(!M(a))return{tail:``,parentNodeId:void 0};let e=$e.turns,t=0;for(let n=0;nM(c)?.focus({preventScroll:!0}))}function D(e){e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&!e.isComposing?(e.preventDefault(),x()):e.key===`Escape`&&Q.active&&(e.preventDefault(),ai())}let A=V(()=>jl($e.turns)),ee=V(()=>M(d)??M(A)),I=V(()=>[...$.nodes.values()].filter(e=>e.recipe&&e.tokens?.length&&!$.activePath.includes(e.id)).sort((e,t)=>t.created_at-e.created_at)),ne=W(`current`),re=V(()=>[{value:`current`,label:M(a)?`Current draft`:`Current text`},...M(a)&&M(A).some(e=>e.tok)?[{value:`recorded`,label:`Original text before edit`}]:[],...M(I).map((e,t)=>({value:e.id,label:`Earlier generation ${M(I).length-t} · ${e.text.slice(0,48).replace(/\s+/g,` `)}`}))]),ie=V(()=>{if(M(ne)===`recorded`)return M(A);let e=M(I).find(e=>e.id===M(ne));return e?jl([{nodeId:e.id,role:e.role,text:e.text,generated:!0,tokens:e.tokens.map(pr)}]).map(e=>({...e,turnIdx:null})):M(ee)});F(()=>{M(re).some(e=>e.value===M(ne))||Y(ne,`current`)});let se=W(null),z=W(`edit`),ce=q(t,`colorsOpen`,15,!1),le=V(()=>M(z)===`edit`&&!M(o)&&(M(a)||ln.target!==null&&M(ee).some(e=>e.tok))&&M(ee).map(e=>e.text).join(``)===(M(a)?M(i):M(r))),de=V(()=>{if(!ln.target||M(o)||!M(A).some(e=>e.tok))return null;let e=[ln.target,...ln.compareTwo&&ln.compareTarget?[ln.compareTarget]:[]],t=M(A).flatMap(({tok:t})=>e.flatMap(e=>{let n=t?Nl(t,e):void 0;return n===void 0?[]:[n]}));return t.length===0?`No readings were recorded for this color.`:t.some(e=>e!==0)?null:`Recorded ${e.length>1?`values are`:ln.target===`__surprise__`?`token surprisal is`:ln.target===`__entropy__`?`sampler entropy is`:`values are`} zero, so these tokens stay uncolored.`}),pe=V(()=>M(ee).some(e=>e.tok!==null)),he=V(()=>M(ie).flatMap((e,t)=>e.tok===null?[]:[t])),ve=W(-1);F(()=>{let e=M(he);e.length===0?Y(ve,-1):e.includes(M(ve))||Y(ve,e[0],!0)});let Se=V(()=>M(pe)||M(A).some(e=>e.tok)||M(I).length>0),Ce=V(()=>M(Se)&&!M(o)&&!Q.active&&!M(p)),Te=V(()=>[{value:`edit`,label:`Edit text`,title:`Edit the completion text`},{value:`inspect`,label:`Inspect tokens`,disabled:M(z)!==`inspect`&&!M(Ce),title:M(Ce)||M(z)===`inspect`?`Choose a token to inspect readings or branch`:Q.active?`Stop or finish generation before inspecting`:M(o)?`Wait for the edit to finish saving`:`Continue text to record tokens`}]);F(()=>{M(z)===`inspect`&&!M(Se)&&Y(z,`edit`)});function De(e){M(Te).find(t=>t.value===e)?.disabled||(Y(se,null),e===`inspect`&&!M(pe)&&Y(ne,M(A).some(e=>e.tok)&&M(a)?`recorded`:M(I)[0]?.id??`current`,!0),Y(z,e,!0))}function ke(e){let t=e.tok;if(!t)return``;let n=[],r=Nl(t,ln.target);r!==void 0&&ln.target&&(ln.target===`__surprise__`?t.logprob!=null&&n.push(`token surprisal ${(-t.logprob).toFixed(3)} nats`):ln.target===`__probability__`&&t.logprob!=null?n.push(`token probability ${(Math.exp(Math.min(0,t.logprob))*100).toFixed(1)}%`):ln.target===`__entropy__`&&t.samplerEntropy!=null?n.push(`sampler entropy ${t.samplerEntropy.toFixed(3)} nats`):n.push(`${ln.target} ${r>=0?`+`:``}${r.toFixed(3)}`));let i=t.topAlts?.length??0;return n.push(i>0?`Select to see ${i} alternatives`:`Select to see the recorded probability`),n.join(` · `)}function Ae(e){let t=e.text.trim()||`whitespace`,n=e.tok?.topAlts?.length??0;return n>0?`Inspect token ${t}, ${n} alternatives`:`Inspect token ${t}`}function je(e){Y(ve,e,!0),queueMicrotask(()=>{M(Le)?.querySelector(`[data-token-view-index="${e}"]`)?.focus()})}function Ne(e,t,n){if(e.key===`Enter`||e.key===` `){e.preventDefault(),Fe(n,e.currentTarget);return}let r=M(he).indexOf(t);if(r<0)return;let i=r;if(e.key===`ArrowRight`||e.key===`ArrowDown`)i=(r+1)%M(he).length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)i=(r-1+M(he).length)%M(he).length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=M(he).length-1;else return;e.preventDefault(),je(M(he)[i])}function Pe(e){e.turnIdx!==null&&gi(`token_drilldown`,{turnIdx:e.turnIdx,tokenIdx:e.tokenIdx,isThinking:e.isThinking,initialTab:`logits`})}function Fe(e,t){e.tok&&(Ci.docked&&e.turnIdx!==null?(Y(se,null),gi(`token_drilldown`,{turnIdx:e.turnIdx,tokenIdx:e.tokenIdx,isThinking:e.isThinking})):Y(se,{view:e,anchor:t},!0))}function Ie(e){e.tok&&cr(e.tok,e.nodeId??void 0)}let Le=W(null),Re=W(null),ze=W(!1);function Be(){M(Re)&&M(c)&&(M(Re).scrollTop=M(c).scrollTop,M(Re).scrollLeft=M(c).scrollLeft)}function Ve(e){let t=e.currentTarget;Y(ze,t.scrollHeight-t.scrollTop-t.clientHeight>=8),M(z)===`edit`&&Be()}function He(){Y(ze,!1);let e=M(z)===`edit`?M(c):M(Le);e&&(e.scrollTop=e.scrollHeight),Be()}F(()=>{M(le)&&be().then(Be)}),F(()=>{M(r),!M(a)&&!M(ze)&&be().then(()=>{!M(a)&&!M(ze)&&He()})}),_e(()=>{Y(i,M(r),!0)});var Ue=Xl(),We=X(Ue),Ge=X(We),Ke=U(X(Ge)),qe=e=>{bo(e,{})};T(Ke,e=>{Wn.info?.is_base_model&&e(qe)});var Je=U(Ke),Ye=e=>{var t=Ll();j(e,t)};T(Je,e=>{M(a)&&e(Ye)}),B(Ge);var Xe=U(Ge,2),Ze=X(Xe),Qe=e=>{var t=Rl();R(()=>H(t,`aria-expanded`,ce())),L(`click`,t,()=>ce(!ce())),j(e,t)};T(Ze,e=>{t.colors&&e(Qe)});var et=U(Ze,2);{let e=V(()=>M(Te).map(e=>({value:e.value,label:e.label,hint:e.title})));y(et,{label:`Buffer mode`,get value(){return M(z)},onchange:De,get options(){return M(e)}})}B(Xe),B(We);var tt=U(We,2),nt=e=>{var n=N(),r=G(n);k(r,()=>t.colors),j(e,n)};T(tt,e=>{t.colors&&ce()&&e(nt)});var rt=U(tt,2),it=J(rt,!0),at=U(rt,2),ot=e=>{var t=zl(),n=J(t,!0);R(()=>P(n,M(de))),j(e,t)};T(at,e=>{M(de)&&e(ot)});var st=U(at,2),ct=e=>{var t=Bl(),n=X(t);{let e=V(()=>M(ne)===`current`?void 0:`inspection-source-note`);Ja(n,{get value(){return M(ne)},get options(){return M(re)},ariaLabel:`Text to inspect`,get ariaDescribedby(){return M(e)},onchange:e=>{Y(se,null),Y(ne,e,!0)}})}Oe(2),B(t),R(()=>H(t,`data-tip`,M(ne)===`current`?void 0:`As recorded; your text is unchanged`)),j(e,t)};T(st,e=>{M(z)===`inspect`&&M(re).length>1&&e(ct)});var lt=U(st,2);let ut;var dt=X(lt),ft=e=>{var t=Ul();O(t,21,()=>M(ie),te,(e,t,n)=>{var r=N(),i=G(r),a=e=>{var n=Vl();K(n,()=>({class:`seg plain`,"aria-description":M(t).source===`draft`?`Unsaved user edit · no recorded probabilities`:M(t).source===`model`?`Model text · no recorded probabilities`:`User text · no recorded probabilities`,[ue]:{"origin-user":M(t).source===`user`,"origin-draft":M(t).source===`draft`}}),void 0,void 0,void 0,`svelte-riacu3`);var r=J(n,!0);R(()=>P(r,M(t).text)),j(e,n)},o=e=>{let r=V(()=>Ht(M(t).text));var i=Hl(),a=G(i,!0),o=U(a),s=()=>Ie(M(t)),c=()=>Ie(M(t)),l=e=>{Y(ve,n,!0),Fe(M(t),e.currentTarget)},u=e=>Ne(e,n,M(t));K(o,(e,r,i,a)=>({class:`seg tok clickable`,"data-cursor":`inspect`,style:e,...r,role:`button`,tabindex:n===M(ve)?0:-1,"data-token-view-index":n,"aria-label":i,"aria-haspopup":`dialog`,"aria-expanded":a,onpointerenter:s,onpointerleave:Kr,onfocus:c,onblur:Kr,onclick:l,onkeydown:u,[ue]:{"origin-user":M(t).source===`user`,"origin-model":M(t).source===`model`,"context-changed":M(t).contextChanged,tinted:ln.target!==null,"has-alts":(M(t).tok?.topAlts?.length??0)>0}}),[()=>M(t).tok?Il(M(t).tok):``,()=>({"aria-description":ke(M(t))}),()=>Ae(M(t)),()=>M(se)?.anchor.dataset.tokenViewIndex===String(n)],void 0,void 0,`svelte-riacu3`);var d=J(o,!0);R(()=>{P(a,M(r).lead),P(d,M(r).body)}),j(e,i)};T(i,e=>{M(t).tok?e(o,-1):e(a)}),j(e,r)}),B(t),R(()=>t.dir=t.dir),j(e,t)},pt=e=>{var t=Gl(),r=G(t),s=e=>{var t=Wl(),r=X(t);O(r,17,()=>M(ee),te,(e,t)=>{let r=V(()=>Ht(M(t).text));Oe();var i=Hl(),o=G(i,!0),s=U(o);let l;var u=J(s,!0);Ee(s,(e,t)=>n.reveal?.(e,t),()=>!Q.active||M(a)||document.activeElement===M(c)?null:M(t).tok),R(e=>{P(o,M(r).lead),we(s,e),l=Z(s,1,`svelte-riacu3`,null,l,{"origin-draft":M(t).source===`draft`}),P(u,M(r).body)},[()=>M(t).tok?Il(M(t).tok):``]),j(e,i)});var i=U(r);i.textContent=``,B(t),xe(t,e=>Y(Re,e),()=>M(Re)),R(()=>t.dir=t.dir),j(e,t)};T(r,e=>{M(le)&&e(s)});var u=U(r,2);fe(u),xe(u,e=>Y(c,e),()=>M(c)),R(()=>{oe(u,M(i)),H(u,`aria-describedby`,M(l)?`completion-hint completion-error`:`completion-hint`),H(u,`aria-invalid`,M(l)?!0:void 0),u.readOnly=Q.active||M(o)||M(p),u.dir=u.dir}),L(`input`,u,m),L(`keydown`,u,D),ae(`select`,u,h),L(`keyup`,u,h),L(`pointerup`,u,h),ae(`scroll`,u,Ve),j(e,t)};T(dt,e=>{M(z)===`inspect`?e(ft):e(pt,-1)});var mt=U(dt,2),ht=e=>{var t=Kl(),n=J(t);L(`click`,n,()=>{He(),M(c)?.focus({preventScroll:!0})}),j(e,t)};T(mt,e=>{M(ze)&&!M(a)&&M(z)===`edit`&&e(ht)}),B(lt),xe(lt,e=>Y(Le,e),()=>M(Le));var gt=U(lt,2),_t=e=>{let t=V(()=>M(se).view);var n=N(),r=G(n);me(r,()=>M(se).anchor,e=>{{let n=V(()=>M(ne)===`current`?M(se).view.source===`user`?`User text · recorded`:`Model token`:`Original recorded token`),r=V(()=>M(t).turnIdx===null?void 0:()=>Pe(M(t)));Al(e,{get token(){return M(se).view.tok},get anchor(){return M(se).anchor},isCurrent:e=>M(se)?.anchor===e,get source(){return M(n)},get contextChanged(){return M(se).view.contextChanged},onclose:()=>Y(se,null),get ondetails(){return M(r)}})}}),j(e,n)};T(gt,e=>{M(se)?.view.tok&&e(_t)});var vt=U(gt,2),yt=e=>{var t=ql(),n=J(t);R(()=>P(n,`${M(l)??``} Your text is still here.`)),j(e,t)};T(vt,e=>{M(l)&&e(yt)});var bt=U(vt,2);{let e=V(()=>!Q.active&&Q.finishReason===`stop`&&Q.tokensSoFar===0&&$e.turns.at(-1)?.generated===!1);ll(bt,{get savedEdit(){return M(e)}})}var xt=U(bt,2);ml(xt,{});var St=U(xt,2),Ct=X(St);let wt;var Tt=X(Ct),Et=U(Tt,2);B(Ct);var Dt=U(Ct,2),Ot=X(Dt),kt=J(Ot,!0),At=U(Ot,2),jt=U(At,2),Mt=e=>{var t=Jl();L(`click`,t,function(...e){ai?.apply(this,e)}),j(e,t)},Nt=e=>{var t=Yl();R(()=>{t.disabled=M(o)||M(p),H(t,`aria-busy`,M(o)||void 0)}),L(`click`,t,x),j(e,t)};T(jt,e=>{Q.active?e(Mt):e(Nt,-1)}),B(Dt),B(St),B(Ue),R(()=>{P(it,M(z)===`inspect`?`Select a recorded token to see its probabilities. Arrow keys move between tokens.`:`Continue at the end, cursor, or selection. Originals stay saved in the loom.`),ut=Z(lt,1,`surface svelte-riacu3`,null,ut,{inspecting:M(z)===`inspect`,"generation-active":Q.active}),wt=Z(Ct,1,`edit-actions svelte-riacu3`,null,wt,{shown:M(a)}),Tt.disabled=!M(a)||Q.active||M(o)||M(p),Et.disabled=!M(a)||Q.active||M(o)||M(p),Ot.disabled=M(z)!==`edit`||!M(v)||!M(f)||!M(i).length||M(a)||Q.active||M(o)||M(p)||on.queue.length>0,P(kt,M(f)&&M(f).start!==M(f).end?`Continue after selection`:`Continue from cursor`),At.disabled=M(z)!==`edit`||!M(v)||!M(f)||M(f).start===M(f).end||M(a)||Q.active||M(o)||M(p)||on.queue.length>0}),ae(`scroll`,lt,function(...e){(M(z)===`inspect`?Ve:void 0)?.apply(this,e)}),L(`click`,Tt,()=>void S()),L(`click`,Et,E),L(`click`,Ot,()=>g()),L(`click`,At,()=>g(!0)),j(e,Ue),ye()}A([`click`,`input`,`keydown`,`keyup`,`pointerup`]);var Ql=I(``),$l=I(`
`),mp=I(` `,1);function hp(t,n){ge(n,!0);let i=q(n,`active`,3,!0),a=q(n,`headersVisible`,3,!0),o=V(()=>new Set($.activePath)),s=V(()=>new Set(Gn.ids)),l=new Xn,d=V(()=>{let e=$.active_node_id,t=e?$.nodes.get(e)??null:null;return t?t.recipe===null?t.role===`system`?null:t.id:t.parent_id:null}),f=V(()=>M(d)?($.children_of.get(M(d))??[]).map(e=>$.nodes.get(e)).filter(e=>e!=null&&e.recipe!==null):[]);function p(){!M(d)||M(f).length<2||gi(`node_compare`,{node_ids:M(f).map(e=>e.id),parent_id:M(d)})}function m(e){let t=$.children_of.get(e)??[],n=jr.siblingSort;if(n==="default"||t.length<2)return t;let r=n===`surprise`?1:-1,i=t.map((e,t)=>({id:e,idx:t,lp:$.nodes.get(e)?.mean_logprob??null}));return i.sort((e,t)=>{if(e.lp===null&&t.lp===null)return e.idx-t.idx;if(e.lp===null)return 1;if(t.lp===null)return-1;let n=r*(e.lp-t.lp);return n===0?e.idx-t.idx:n}),i.map(e=>e.id)}let h=V(()=>{let e=[];if(!$.root_id)return e;let t=mr.matchingIds;jr.siblingSort;let n=[{id:$.root_id,depth:0,deadAncestor:!1}];for(;n.length;){let{id:r,depth:i,deadAncestor:a}=n.pop(),s=$.nodes.get(r);if(!s)continue;let c=M(o).has(r),u=a||!c;if(s.parent_id!==null||s.role!==`system`||s.text){let n=t!==null&&!t.has(r);e.push({node:s,depth:i,isActivePath:c,isDead:u&&!c,filteredOut:n})}let d=t===null&&l.has(r)?[]:m(r);for(let e=d.length-1;e>=0;e--)n.push({id:d[e],depth:i+(s.parent_id===null&&s.role===`system`&&!s.text?0:1),deadAncestor:a||!c&&s.parent_id!==null})}return e}),_=V(()=>new Map(M(h).map(e=>[e.node.id,e]))),b=sd(),x=V(()=>{if(!i()||!Q.active||$e.pendingIndex===null||!$.pendingNodeId)return null;let e=$.nodes.get($.pendingNodeId),t=$e.turns[$e.pendingIndex];if(!e||!t||!M(_).has(e.id))return null;let n=b(e,t);return n===e?null:n}),S=V(()=>M(x)===null?M(h):M(h).map(e=>e.node.id===M(x).id?{...e,node:M(x)}:e)),C=V(()=>M(x)===null?M(_):new Map(M(S).map(e=>[e.node.id,e]))),w=new tr(`(pointer: coarse)`),E=V(()=>i()&&jr.view===`map`),D=V(()=>M(E)?Id(M(S).map(e=>e.node),M(o)):[]),k=new Re;F(()=>{if(!M(E))return;let e=new Set(M(D).map(e=>e.id));for(let t of k.keys())e.has(t)||k.delete(t)});let A=V(()=>new Map(M(D).map(e=>[e.id,e]))),te=V(()=>new Map(M(D).map(e=>[e.id,dd(e)]))),I=V(()=>new Map(M(D).map(e=>[e.id,{...M(C).get(e.node.id),depth:e.depth,isActivePath:e.memberIds.some(e=>M(o).has(e)),isDead:e.memberIds.every(e=>M(C).get(e).isDead),filteredOut:e.memberIds.every(e=>M(C).get(e).filteredOut)}]))),ne=V(()=>Xu(M(D).map(e=>({id:e.id,parentId:e.parentId,depth:e.depth,width:M(te).get(e.id),height:M(et)?168:k.has(e.id)?k.get(e.id):hd(e,M(te).get(e.id),w.current)})))),re=V(()=>Zu(M(ne)).length),ie=V(()=>M(D).reduce((e,t)=>e+t.end-t.start,0)),se=V(()=>Zu(M(ne)));F(()=>{if(!i()||jr.view!==`map`||Q.active)return;$.rev;let e=M(h);ee(()=>{for(let t of e)t.node.parent_id&&t.node.recipe!==null&&zr(t.node.parent_id,t.node.id)})});function ce(e){return!!(M(I).get(e.parentId)?.isActivePath&&M(I).get(e.childId)?.isActivePath)}function le(e){return M(I).get(e.childId)?.filteredOut??!1}function ue(e){let t=$.nodes.get(e.childId)?.mean_logprob;if(typeof t!=`number`||!Number.isFinite(t)||t>0)return``;let n=1-Math.exp(t);return`--edge-width:${(1.25+1.75*n).toFixed(2)}px;--edge-opacity:${(.42+.5*n).toFixed(3)}`}function fe(e){if(!e.parent_id||!e.raw_token_ids?.length)return null;let t=($.children_of.get(e.parent_id)??[]).map(e=>$.nodes.get(e)).filter(t=>t!=null&&t.id!==e.id&&!!t.raw_token_ids?.length);if(t.length===0)return null;let n=0;for(let r of t){let t=r.raw_token_ids,i=Math.min(e.raw_token_ids.length,t.length),a=0;for(;ae.raw_index===n)?.text.trim();return r?`fork · “${r.replace(/\s+/g,` `).slice(0,16)}”`:`fork · token ${n+1}`}function pe(e){let t=ln.target;if(!t)return null;let n=e.aggregate_readings;if(!n)return null;let r=n[t];return typeof r==`number`?r:null}function ve(e){let t=e.mean_logprob;return typeof t==`number`&&Number.isFinite(t)?t:null}function Se(e){return!e.parent_id||e.recipe===null?null:On.get(`${e.parent_id}|${e.id}`)??null}let Ce=W(null),De=W(null),ke=W(null),Ae=W(z($.root_id)),Me=V(()=>mr.matchingIds===null?[]:M(h).filter(e=>!e.filteredOut&&(jr.view!==`saved`||e.node.starred))),Ne=V(()=>M(Me).findIndex(e=>e.node.id===M(De))),Pe=V(()=>M(Me)[Math.max(0,M(Ne))]?.node??null),Fe=V(()=>M(Pe)?En(M(Pe).text??``,mr.mode===`text`?mr.expr:``):null);F(()=>{mr.expr,mr.mode,Y(De,null),Y(ke,null)}),F(()=>{let e=$.root_id;$.rev,ee(()=>{e===M(Ae)?mr.expr.trim()&&sn(mr.expr):(Y(Ae,e,!0),Le())})});function Ie(e){Le(),mr.expr=e,mr.mode===`text`&&sn(e)}function ze(e){let t=mr.expr;Le(),mr.mode=e===`advanced`?`advanced`:`text`,mr.expr=t,mr.mode===`text`&&sn(t)}async function Be(e=0){if(!M(Me).length)return;let t=M(Ne)<0?e<0?M(Me).length-1:0:e===0?M(Ne):(M(Ne)+e+M(Me).length)%M(Me).length,n=M(Me)[t].node;Y(De,n.id,!0),jr.view=`map`,await be();let r=M(D).filter(e=>e.memberIds.includes(n.id)),i=r.find(e=>mr.mode===`text`&&Nn(e.node.tokens?.slice(e.start,e.end).map(e=>e.text).join(``)||e.node.text||``,mr.expr))??r.find(e=>e.id===n.id)??r[0];if(!i)return;Y(ke,i.id,!0),M(et)&&(ht(1),await be()),await It(i.id);let a=M(Je)?.querySelector(`[data-node-id="${CSS.escape(i.id)}"]`),o=[...a?.querySelectorAll(`.sentence-node`)??[]].find(e=>mr.mode===`text`&&Nn(e.querySelector(`.sentence-tokens`)?.textContent??``,mr.expr)),s=M(ne).nodes.find(e=>e.id===i.id);if(o&&a&&s&&M(Je)){let e=o.getBoundingClientRect(),t=a.getBoundingClientRect(),n=t.width/s.width;Y(Xe,yf(ft(),{x:s.x+(e.left-t.left)/n,y:s.y+(e.top-t.top)/n,width:e.width/n,height:e.height/n},M(Xe).zoom),!0)}}function Ve(e){e.isComposing||(e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),mr.mode===`advanced`&&mr.matchingIds===null?sn(mr.expr):Be(e.shiftKey?-1:1)):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),Le()))}let He=W(null),Ue=V(()=>{let e=M(He)??$.active_node_id;return e?$.nodes.get(e)??null:null}),We=V(()=>$.activePath.map(e=>M(C).get(e)).filter(e=>e!=null)),Ge=V(()=>{let e=[];for(let t of M(We)){let n=t.node,r=n.tokens?ad(n.tokens):[];if(r.length===0)e.push({key:n.id,node:n,sentenceIndex:null,start:0,end:-1,text:n.text});else for(let t=0;t{let e=M(Ue);return e?m(e.recipe!==null&&e.parent_id?e.parent_id:e.id).map(e=>$.nodes.get(e)).filter(e=>e!=null):[]}),qe=V(()=>M(h).filter(e=>e.node.starred&&!e.filteredOut)),Je=W(null),Ye=W(z({width:0,height:0})),Xe=W(z({x:0,y:0,zoom:1})),Ze=W(!1),Qe=W(!1),et=V(()=>w.current&&(M(Qe)||!M(Ze)||M(Xe).zoom<1)),tt=V(()=>M(ne).nodes.filter(e=>e.x*M(Xe).zoom+M(Xe).x-120&&e.y*M(Xe).zoom+M(Xe).y-120)),nt=W(!1),rt=null,it=W(!1),at=null,ot={x:0,y:0,cameraX:0,cameraY:0},st=new Map,lt=null,ut=0;function dt(e){rt!==null&&(clearTimeout(rt),rt=null),Y(nt,e,!0),e&&(rt=setTimeout(()=>{Y(nt,!1),rt=null},220))}function ft(){return{width:M(Je)?.clientWidth??0,height:M(Je)?.clientHeight??0}}function pt(e=!0){M(Je)&&M(ne).nodes.length!==0&&(dt(e&&M(Ze)),Y(Qe,!0),Y(Xe,vf(ft(),M(ne)),!0),Y(Ze,!0),Y(Ye,ft(),!0))}function mt(){i()&&jr.view===`map`&&M(Je)&&(w.current||ft().width<768?pt(!1):(M(Xe).zoom=.9,$.active_node_id?It($.active_node_id):pt()))}function ht(e,t,n=!0){let r=ft();Y(Qe,!1),dt(n),Y(Xe,wf(M(Xe),e,t??{x:r.width/2,y:r.height/2}),!0),Y(Ze,!0)}function gt(e){if(e.preventDefault(),e.ctrlKey||e.metaKey){let t=M(Je)?.getBoundingClientRect();if(!t)return;let n=Math.exp(-e.deltaY*.002);ht(M(Xe).zoom*n,{x:e.clientX-t.left,y:e.clientY-t.top},!1)}else dt(!1),Y(Qe,!1),M(Xe).x-=e.shiftKey&&e.deltaX===0?e.deltaY:e.deltaX,M(Xe).y-=e.shiftKey?0:e.deltaY,Y(Ze,!0)}function _t(e){let t=M(Je)?.getBoundingClientRect();return t?{x:e.clientX-t.left,y:e.clientY-t.top}:null}function vt(e){if(M(Je))try{M(Je).setPointerCapture(e)}catch{}}function yt(e){if(M(Je)?.hasPointerCapture(e))try{M(Je).releasePointerCapture(e)}catch{}}function bt(){let e=[...st.values()];return e.length>=2?[e[0],e[1]]:null}function xt(){let e=bt();if(!e)return;let t=Aa(e[0],e[1]);if(!(t.distance<=0)){dt(!1),Y(it,!1),at=null,lt={distance:t.distance,zoom:M(Xe).zoom,worldX:(t.center.x-M(Xe).x)/M(Xe).zoom,worldY:(t.center.y-M(Xe).y)/M(Xe).zoom},ut=performance.now()+350;for(let e of st.keys())vt(e)}}function St(){let e=bt();if(!e||!lt)return;Y(Qe,!1);let t=Aa(e[0],e[1]),n=Fa(lt.zoom,lt.distance,t.distance,hf,gf);Y(Xe,{x:t.center.x-lt.worldX*n,y:t.center.y-lt.worldY*n,zoom:n},!0),Y(Ze,!0)}function Ct(e){if(e.button!==0)return;let t=e.target;if(e.pointerType===`touch`){let t=_t(e);if(!t)return;if(st.set(e.pointerId,t),st.size>=2){xt(),e.preventDefault();return}}t?.closest(`.tree-node-wrap, .loom-view-controls`)||(dt(!1),Y(it,!0),at=e.pointerId,ot={x:e.clientX,y:e.clientY,cameraX:M(Xe).x,cameraY:M(Xe).y},vt(e.pointerId),e.preventDefault())}function wt(e){if(e.pointerType===`touch`&&st.has(e.pointerId)){let t=_t(e);if(t&&st.set(e.pointerId,t),lt&&st.size>=2){St(),ut=performance.now()+350,e.preventDefault();return}}M(it)&&at===e.pointerId&&(Y(Qe,!1),M(Xe).x=ot.cameraX+e.clientX-ot.x,M(Xe).y=ot.cameraY+e.clientY-ot.y,Y(Ze,!0),e.preventDefault())}function Tt(e){if(yt(e.pointerId),e.pointerType===`touch`){let t=lt!==null;st.delete(e.pointerId),t&&(st.size>=2?xt():lt=null)}at===e.pointerId&&(Y(it,!1),at=null)}function Et(e){l.has(e)?l.delete(e):l.add(e),be().then(()=>pt())}let Dt=0;F(()=>{let e=M(Je);if(!i()||jr.view!==`map`||!e)return;let t=new ResizeObserver(()=>{let e=ft();e.width!==0&&e.height!==0&&(M(Ze)?M(Qe)?pt(!1):M(Ye).width>0&&M(Ye).height>0&&(dt(!1),Y(Xe,Cf(M(Xe),M(Ye),e),!0)):mt(),Y(Ye,e,!0))});return t.observe(e),()=>t.disconnect()}),F(()=>{if(!i()||jr.view!==`map`)return;let e=M(ne).nodes.length;M(ne).width,M(ne).height;let t=Dt;Dt=e,e===0?Y(Ze,!1):be().then(()=>{!M(Ze)||t===0?mt():M(Qe)?pt(!1):e!==t&&Lt()})}),F(()=>{let e=$.active_node_id,t=e!==null&&M(_).has(e);M(He)!==null&&M(_).has(M(He))||Y(He,t?e:M(h)[0]?.node.id??null,!0)});function Ot(){return M(He)?M(h).findIndex(e=>e.node.id===M(He)):-1}async function kt(e,t=!0){Y(He,e,!0),t&&Mt(e),await be();let n=M(Je)?.querySelector(`[data-node-id="${CSS.escape(e)}"]`);n&&n.focus({preventScroll:!0})}function At(e){let t=M(ne).nodes.find(t=>t.id===e);return t?{x:t.x,y:t.y,width:t.width,height:t.height}:null}function jt(e){return Y(Qe,!1),dt(M(Ze)),Y(Xe,yf(ft(),e,M(Xe).zoom),!0),Y(Ze,!0),Y(Ye,ft(),!0),{...M(Xe)}}function Mt(e){let t=At(e);t&&M(Je)&&jt(t)}let Nt=()=>new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e()))),Pt=0;async function It(e){if(!M(Je))return;let t=++Pt;await Sf({placement:()=>t===Pt&&M(Je)?At(e):null,center:jt,camera:()=>({...M(Xe)}),remeasured:()=>Nt().then(()=>be())})}function Lt(){$.active_node_id&&(M(et)?Rt($.active_node_id):It($.active_node_id))}async function Rt(e){performance.now(){$.active_node_id&&kt($.active_node_id,!1),mt()})}function Bt(e){return Wr(e)}function Vt(e){return e.role_label?.trim()||e.role}async function Ht(e){Y(He,e.id,!0),$.active_node_id!==e.id&&await Pr(e.id)}function Ut(e){let t=Ot(),n=M(h)[t+e];n&&kt(n.node.id)}function Wt(){if(!M(He))return;let e=$.nodes.get(M(He))?.parent_id;e&&M(h).some(t=>t.node.id===e)&&kt(e)}function Gt(){if(!M(He))return;let e=m(M(He))[0];e&&M(h).some(t=>t.node.id===e)&&kt(e)}let Kt=W(z({open:!1,nodeId:null})),qt=W(null),Jt=W(z({x:12,y:12})),Yt=W(!1),Xt=null,Zt=null;function Qt(e){return document.body.appendChild(e),{destroy:()=>e.remove()}}function $t(e,t){e.preventDefault(),e.stopPropagation(),en(t,e.currentTarget??M(Je)?.querySelector(`[data-node-id="${CSS.escape(t)}"]`)??null)}async function en(e,t){Xt=t,Y(Yt,!1),Y(He,e,!0),dt(!1),await be(),Y(Kt,{open:!0,nodeId:e},!0),await be(),await new Promise(e=>requestAnimationFrame(()=>e())),tn(),await be(),Y(Yt,!0),nn(),await be(),an()[0]?.focus()}function tn(){if(!M(qt)||!M(Kt).nodeId)return;let e=(M(Je)?.querySelector(`[data-node-id="${CSS.escape(M(Kt).nodeId)}"]`)??(Xt?.isConnected?Xt:null))?.getBoundingClientRect(),t={width:M(qt).offsetWidth,height:M(qt).offsetHeight},n=e??{left:12,right:12,top:12,bottom:12},r=n.right+12,i=n.top;r+t.width>window.innerWidth-12&&(r=n.left-t.width-12),r<12&&(r=n.left,i=n.bottom+12),i+t.height>window.innerHeight-12&&(i=Math.max(12,window.innerHeight-t.height-12));let a=Math.max(12,Math.min(r,window.innerWidth-t.width-12)),o=Math.max(12,i);(Math.abs(M(Jt).x-a)>.5||Math.abs(M(Jt).y-o)>.5)&&Y(Jt,{x:a,y:o},!0)}function nn(){Zt!==null&&cancelAnimationFrame(Zt);let e=()=>{M(Kt).open?(tn(),Zt=requestAnimationFrame(e)):Zt=null};Zt=requestAnimationFrame(e)}function rn(e){en(e,M(Je)?.querySelector(`[data-node-id="${CSS.escape(e)}"]`)??null)}function an(){return M(qt)?Array.from(M(qt).querySelectorAll(`[role="menuitem"]:not(:disabled)`)):[]}function on(e){if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),cn();return}if(e.key===`Tab`){cn(!1);return}let t=an();if(t.length===0)return;let n=Math.max(0,t.indexOf(document.activeElement)),r=-1;e.key===`ArrowDown`?r=(n+1)%t.length:e.key===`ArrowUp`?r=(n-1+t.length)%t.length:e.key===`Home`?r=0:e.key===`End`&&(r=t.length-1),r>=0&&(e.preventDefault(),e.stopPropagation(),t[r].focus())}function cn(e=!0){let t=Xt,n=M(Kt).nodeId;Y(Kt,{open:!1,nodeId:null},!0),Y(Yt,!1),Zt!==null&&cancelAnimationFrame(Zt),Zt=null,Y(qt,null),e&&be().then(()=>{t?.isConnected?t.focus({preventScroll:!0}):n&&kt(n,!1)})}let un=W(null),dn=W(null),mn=W(null);function hn(e){if(e?.isConnected)e.focus({preventScroll:!0});else{let e=M(He)&&M(_).has(M(He))?M(He):$.active_node_id??M(h)[0]?.node.id??null;e&&kt(e,!1)}}async function gn(){jr.view=`map`,await be(),M(Ce)?.focus(),await Be()}let _n=W(0);F(()=>{let e=jr.modalRequest;e.seq!==M(_n)&&e.kind&&(Y(_n,e.seq,!0),M(un)?.open(e.kind,e.nodeId,e.text,e.n))});function vn(e,t){performance.now()t.nodeId===e.id);n<0?Pi(`That branch could not be opened for token editing.`,{kind:`error`}):gi(`token_drilldown`,{turnIdx:n,tokenIdx:t,initialTab:`logits`})}function wn(e){let t=e;if(!t)return!1;let n=t.tagName;return n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable}function Dn(e){if(M(un)?.isOpen()||M(Kt).open)return;let t=e.target,n=t?.closest(`[role="treeitem"]`)??null;if(!n||!M(Je)?.contains(n)||t!==n&&t?.closest(`button, a, [role='button'], [role='menuitem']`))return;let r=e.key;if(!(r!==`Escape`&&wn(e.target))){if(r===`ArrowDown`||r===`j`)e.preventDefault(),Ut(1);else if(r===`ArrowUp`||r===`k`)e.preventDefault(),Ut(-1);else if(r===`ArrowLeft`||r===`h`)e.preventDefault(),Wt();else if(r===`ArrowRight`||r===`l`)e.preventDefault(),Gt();else if(r===`Home`&&M(h).length>0)e.preventDefault(),kt(M(h)[0].node.id);else if(r===`End`&&M(h).length>0)e.preventDefault(),kt(M(h)[M(h).length-1].node.id);else if(r===`ContextMenu`||r===`F10`&&e.shiftKey)M(He)&&(e.preventDefault(),rn(M(He)));else if(r===`Enter`||r===` `)M(He)&&(e.preventDefault(),M(et)?Rt(n.dataset.nodeId??M(He)):Pr(M(He)));else if(r===`s`&&M(He)){e.preventDefault();let t=$.nodes.get(M(He));Tn(M(He),!t?.starred)}else if(r===`n`&&M(He)){e.preventDefault();let t=$.nodes.get(M(He));M(un)?.open(`note`,M(He),t?.notes??``)}else r===`/`?(e.preventDefault(),M(un)?.open(`search`,M(He)??$.active_node_id)):r===`Escape`&&jr.filterHelpOpen&&(e.preventDefault(),jr.filterHelpOpen=!1)}}function kn(e){if(!M(Kt).open)return;let t=e.target;t&&t.closest(`.loom-menu`)||cn(!1)}function An(e){if(e.key===`Escape`){if(M(Kt).open){cn(),e.preventDefault();return}if(M(un)?.isOpen()){M(un).close(),e.preventDefault();return}}}async function Mn(){let e=M(Kt).nodeId,t=Xt;cn(!1),e&&($.active_node_id!==e&&await Pr(e),await M(un)?.open(`regenerate`,e,``,1,t))}async function Pn(){let e=M(Kt).nodeId,t=Xt;if(cn(!1),!e)return;let n=$.nodes.get(e);await M(un)?.open(`edit`,e,n?.text??``,1,t)}async function Fn(){let e=M(Kt).nodeId,t=Xt;if(cn(!1),!e)return;let n=$.nodes.get(e);await M(un)?.open(`branch`,e,n?.text??``,1,t)}async function Ln(){let e=M(Kt).nodeId;if(cn(),!e)return;let t=await lr(e);t&&await Pr(t)}async function Rn(){let e=M(Kt).nodeId;cn(),e&&await Pr(e)}async function zn(){let e=M(Kt).nodeId,t=Xt;cn(!1),e&&await M(un)?.open(`delete`,e,``,1,t)}async function Bn(){let e=M(Kt).nodeId;if(cn(),!e)return;let t=$.nodes.get(e);await Tn(e,!t?.starred)}async function Vn(){let e=M(Kt).nodeId,t=Xt;if(cn(!1),!e)return;let n=$.nodes.get(e);await M(un)?.open(`note`,e,n?.notes??``,1,t)}function Hn(){let e=M(Kt).nodeId;cn(),e&&pn(e)}function Un(){let e=M(Kt).nodeId,t=Xt;if(cn(!1),!e)return;let n=$.nodes.get(e),r=e;n&&n.recipe!==null&&n.parent_id&&(r=n.parent_id),M(un)?.open(`fanout`,r,`0.0, 0.3, 0.6`,1,t)}function Kn(){let e=M(Kt).nodeId;if(cn(!1),!e)return;let t=$.nodes.get(e),n=null;if(t&&t.recipe===null&&t.role!==`system`?n=e:t&&t.recipe!==null&&(n=t.parent_id),!n)return;let r=($.children_of.get(n)??[]).filter(e=>$.nodes.get(e)?.recipe!==null);r.length<2||gi(`node_compare`,{node_ids:r,parent_id:n})}function qn(){let e=M(Kt).nodeId;cn(),e&&Cn(e)}function Yn(){M(Kt).open&&cn(!1),Gn.ids.length<2||gi(`node_compare`,{node_ids:[...Gn.ids]})}function Zn(){let e=M(Kt).nodeId,t=Xt;cn(!1),e&&M(un)?.open(`regen_mode`,e,``,1,t)}function Qn(){In()}_e(()=>{let e=M(He)??$.active_node_id??M(h)[0]?.node.id;return e&&M(h).some(t=>t.node.id===e)&&kt(e,!1),be().then(mt),()=>{rt!==null&&clearTimeout(rt),Zt!==null&&cancelAnimationFrame(Zt),st.clear()}}),_e(()=>je(`loom`,{schema:Ta,read:()=>({values:{zoom:M(Xe).zoom,camera:{x:M(Xe).x,y:M(Xe).y},collapsed_ids:[...l]},search:{count:M(Me).length,index:M(Ne),node_id:M(De)},visible:i()}),update:async e=>{if(e.collapsed_ids&&e.collapsed_ids.some(e=>!$.nodes.has(e)))throw new Da(`NOT_FOUND`,`A collapsed node is no longer in this tree.`);if((e.zoom!==void 0||e.camera||e.search_match)&&(!i()||!M(Je)||ft().width===0))throw new Da(`NOT_READY`,`Open the visible Loom map before adjusting its camera.`);if(e.camera&&M(ne).nodes.length===0)throw new Da(`NOT_FOUND`,`The Loom map has no nodes to frame.`);if(e.search_match&&!M(Me).length)throw new Da(`NOT_FOUND`,`This search has no matching nodes.`);if(e.collapsed_ids!==void 0){l.clear();for(let t of e.collapsed_ids)l.add(t)}e.zoom!==void 0&&ht(e.zoom,void 0,!1),e.camera===`fit`&&pt(!1),e.camera===`current`&&Lt(),e.search_match&&(e.search_match===`first`&&Y(De,null),await Be(e.search_match===`previous`?-1:+(e.search_match===`next`)))}}));var $n=mp();ae(`click`,de,kn),ae(`keydown`,de,An),ae(`resize`,de,tn);var er=G($n),nr=X(er),rr=X(nr);{let e=V(()=>[{value:`weave`,label:`Weave`},{value:`map`,label:`Map`},{value:`path`,label:`Path`,count:String(M(Ge).length)},{value:`options`,label:`Options`,count:String(M(Ke).length)},{value:`saved`,label:`Starred`,count:String(M(qe).length)}]);v(rr,{label:`Loom views`,scroll:!0,get value(){return jr.view},onchange:e=>zt(e),get options(){return M(e)}})}B(nr);var ir=U(nr,2),ar=e=>{var t=Tf(),n=X(t);K(n,()=>({type:`button`,class:`dw-text`,onclick:p,disabled:M(f).length<2,"aria-description":`Compare alternate replies to the same message`}),void 0,void 0,void 0,`svelte-1byp7q8`);var r=J(n,!0),i=U(n,2),o=U(i,2),s=U(o,2);K(s,()=>({type:`button`,class:`dw-text`,onclick:ct,"aria-description":`Start a new path from the root; keep all existing branches`}),void 0,void 0,void 0,`svelte-1byp7q8`);var c=U(s,2),l=()=>void M(un)?.open(`delete`,$.active_node_id);K(c,e=>({type:`button`,class:`dw-text`,disabled:e,"aria-description":`Remove the current turn and all branches that follow it`,onclick:l}),[()=>!$.active_node_id||$.active_node_id===$.root_id||Jn($.active_node_id)],void 0,void 0,`svelte-1byp7q8`);var d=U(c,2),m=()=>void M(un)?.open(`clear`,$.root_id);K(d,()=>({type:`button`,class:`dw-text`,disabled:Q.active||!$.loaded||$.nodes.size<=1,"aria-description":`Save this conversation and start with an empty loom`,onclick:m}),void 0,void 0,void 0,`svelte-1byp7q8`);var h=U(d,2);B(t),R(()=>{t.inert=!a(),P(r,M(f).length>=2?`Compare ${M(f).length}`:`Compare`)}),L(`click`,i,()=>gi(`save_conversation`)),L(`click`,o,()=>gi(`load_conversation`)),L(`click`,h,Qn),Te(3,t,()=>u),j(e,t)};T(ir,e=>{a()&&e(ar)});var or=U(ir,2),sr=t=>{var n=kf(),r=G(n),i=X(r),a=X(i),o=J(a,!0),s=U(a,2);he(s),xe(s,e=>Y(Ce,e),()=>M(Ce));var l=U(s,2),u=t=>{var n=Ef(),r=X(n);e(r,{name:`close`}),B(n),L(`click`,n,()=>{Le(),M(Ce)?.focus()}),j(t,n)};T(l,e=>{mr.expr&&e(u)}),B(i);var d=U(i,2);y(d,{label:`Search mode`,get value(){return mr.mode},onchange:ze,options:[{value:`text`,label:`Text`},{value:`advanced`,label:`Advanced`}]});var f=U(d,2),p=e=>{var t=Df(),n=G(t),r=U(n,2);R(()=>{H(r,`aria-pressed`,jr.filterHelpOpen),H(r,`aria-expanded`,jr.filterHelpOpen)}),L(`click`,n,()=>void sn(mr.expr)),L(`click`,r,()=>jr.filterHelpOpen=!jr.filterHelpOpen),j(e,t)};T(f,e=>{mr.mode===`advanced`&&e(p)}),B(r);var m=U(r,2),h=X(m),_=X(h);{let e=V(()=>mr.loading?`Searching…`:mr.error??(mr.matchingIds===null?``:M(Me).length===0?`No messages match`:`${M(Ne)>=0?`${M(Ne)+1} of `:``}${M(Me).length} matching ${M(Me).length===1?`message`:`messages`}`));c(_,{get text(){return M(e)}})}B(h);var v=U(h,2),b=e=>{var t=Of(),n=X(t),r=X(n),i=J(r,!0),a=U(r,2),o=X(a,!0),s=U(o),c=J(s,!0),l=U(s,1,!0);B(a),B(n);var u=U(n,2);g(u,{icon:`up`,label:`Previous match`,onclick:()=>void Be(-1)});var d=U(u,2);g(d,{icon:`down`,label:`Next match`,onclick:()=>void Be(1)}),B(t),R(e=>{P(i,e),P(o,M(Fe).before),P(c,M(Fe).match),P(l,M(Fe).after),a.dir=a.dir},[()=>Vt(M(Pe))]),L(`click`,n,()=>void Be()),j(e,t)};T(v,e=>{M(Pe)&&M(Fe)&&e(b)}),B(m),R(()=>{P(o,mr.mode===`text`?`Search messages`:`Advanced filters`),oe(s,mr.expr),H(s,`placeholder`,mr.mode===`text`?`Search every branch`:`starred, text:fox`),H(s,`aria-invalid`,mr.error?!0:void 0)}),L(`input`,s,e=>Ie(e.currentTarget.value)),L(`keydown`,s,Ve),j(t,n)};T(or,e=>{(jr.view===`map`||jr.view===`saved`)&&e(sr)});var cr=U(or,2),ur=e=>{var t=Af();Te(3,t,()=>u),j(e,t)};T(cr,e=>{mr.mode===`advanced`&&jr.filterHelpOpen&&(jr.view===`map`||jr.view===`saved`)&&e(ur)});var dr=U(cr,2),fr=e=>{var t=Ff(),n=X(t),r=e=>{var t=jf();K(t,()=>({"aria-description":`sibling sort`}),void 0,void 0,void 0,`svelte-1byp7q8`);var n=J(t);R(()=>P(n,`sort:${jr.siblingSort??``}`)),j(e,t)};T(n,e=>{jr.siblingSort!=="default"&&e(r)});var i=U(n,2),a=e=>{var t=Nf(),n=X(t),r=e=>{var t=Mf();j(e,t)};T(n,e=>{M(Ue).id===M(mn)&&e(r)});var i=U(n,2),a=X(i);{let e=V(()=>M(Ue).role_label||M(Ue).role);c(a,{get text(){return M(e)},numbers:!1})}B(i);var o=U(i,2),s=X(o);{let e=V(()=>`depth ${M(C).get(M(Ue).id)?.depth??0}`);c(s,{get text(){return M(e)}})}B(o);var l=U(o,2),u=X(l);{let e=V(()=>`${M(Ue).tokens?.length??0} tokens`);c(u,{get text(){return M(e)}})}B(l),B(t),j(e,t)};T(i,e=>{M(Ue)&&e(a)});var o=U(i,2),s=e=>{var t=Pf(),n=X(t),r=X(n);{let e=V(()=>`${Gn.ids.length} selected`);c(r,{get text(){return M(e)}})}B(n);var i=U(n,2),a=U(i,2);B(t),R(()=>i.disabled=Gn.ids.length<2),L(`click`,i,Yn),L(`click`,a,function(...e){Ft?.apply(this,e)}),j(e,t)};T(o,e=>{Gn.ids.length>0&&e(s)}),B(t),j(e,t)};T(dr,e=>{(jr.siblingSort!=="default"||Gn.ids.length>0||M(Ue))&&e(fr)});var pr=U(dr,2),hr=X(pr);me(hr,()=>$.root_id,e=>{{let t=V(()=>i()&&jr.view===`weave`);Zd(e,{get active(){return M(t)},oninspect:(e,t)=>void Sn(e,t),onwrite:bn})}}),B(pr);var gr=U(pr,2),_r=e=>{var t=If(),n=U(X(t),2);B(t),L(`click`,n,Qn),j(e,t)},yr=e=>{var t=N(),n=G(t),r=e=>{var t=Lf();j(e,t)},a=e=>{var t=Wf(),n=G(t),r=X(n),a=X(r),u=X(a);c(u,{get text(){return M(h).length}});var d=U(u);B(a);var f=U(a,2),p=X(f);c(p,{get text(){return M(re)}});var m=U(p);B(f);var g=U(f,2),_=e=>{var t=Rf(),n=X(t);c(n,{get text(){return M(ie)}});var r=U(n);B(t),R(()=>P(r,` ${M(ie)===1?`token`:`tokens`}`)),j(e,t)};T(g,e=>{M(ie)>0&&e(_)}),Oe(2),B(r);var v=U(r,2),y=X(v),b=U(y,2),x=X(b);{let e=V(()=>Math.round(M(Xe).zoom*100));Ku(x,{get value(){return M(e)}})}Oe(),B(b);var S=U(b,2),C=U(S,2),w=U(C,2);B(v),B(n);var E=U(n,2);let D;var ee=U(X(E),2),N=e=>{var t=Uf();let n;var r=X(t),i=X(r);O(i,17,()=>M(ne).edges,e=>`${e.parentId}|${e.childId}`,(e,t)=>{var n=zf();let r;R((e,i,a)=>{H(n,`d`,M(t).path),r=Z(n,0,`edge-line svelte-1byp7q8`,null,r,{"active-edge":e,"filtered-edge":i}),we(n,a),H(n,`data-loom-edge`,`${M(t).parentId}|${M(t).childId}`)},[()=>ce(M(t)),()=>le(M(t)),()=>ue(M(t))]),j(e,n)});var a=U(i);O(a,17,()=>M(se),e=>e.id,(e,t)=>{var n=Bf();let r;R(e=>{r=Z(n,0,`junction svelte-1byp7q8`,null,r,{"active-junction":e}),H(n,`cx`,M(t).x),H(n,`cy`,M(t).y),H(n,`data-loom-junction`,M(t).id)},[()=>M(I).get(M(t).id)?.isActivePath]),j(e,n)}),B(r);var c=U(r,2);O(c,17,()=>M(tt),e=>e.id,(e,t)=>{let n=V(()=>M(I).get(M(t).id)),r=V(()=>M(A).get(M(t).id));var i=Hf();let a;var c=X(i),u=e=>{var i=Vf(),a=X(i),o=J(a),c=U(a,2),l=J(c,!0),u=U(c,2),d=J(u);B(i),R((e,t,a,s)=>{H(i,`aria-level`,M(n).depth+1),H(i,`aria-selected`,e),H(i,`aria-label`,t),H(i,`data-node-id`,M(r).id),P(o,`${a??``}${M(r).shared?` · ${M(r).memberIds.length} paths`:``}`),P(l,s),P(d,`${M(r).end-M(r).start} tokens`)},[()=>M(s).has(M(n).node.id),()=>`Zoom into ${Vt(M(n).node)}: ${Bt(M(n).node).slice(0,100)}`,()=>Vt(M(n).node),()=>Bt(M(n).node).slice(0,240)]),ae(`focus`,i,()=>{Y(He,M(n).node.id,!0)}),L(`keydown`,i,Dn),L(`click`,i,()=>void Rt(M(t).id)),j(e,i)},d=e=>{{let t=V(()=>M(r).shared?M(r).memberIds.length:0),i=V(()=>M(r).shared&&M(o).has(M(n).node.id)),a=V(()=>!M(r).shared&&M(He)===M(n).node.id),c=V(()=>!M(r).shared&&$.active_node_id===M(n).node.id),u=V(()=>M(s).has(M(n).node.id)),d=V(()=>M(n).depth+1),f=V(()=>($.children_of.get(M(n).node.id)?.length??0)>0),p=V(()=>l.has(M(n).node.id)),m=V(()=>!M(r).shared&&$.pendingNodeId===M(n).node.id),h=V(()=>M(r).shared?null:pe(M(n).node)),g=V(()=>M(r).shared?null:ve(M(n).node)),_=V(()=>M(r).shared?null:Se(M(n).node)),v=V(()=>M(r).shared?null:M(r).start>0?`continuation`:fe(M(n).node)),y=V(()=>M(r).shared?void 0:e=>vn(M(n).node,e)),b=V(()=>M(r).shared?void 0:()=>{Y(He,M(n).node.id,!0)}),x=V(()=>M(r).shared?void 0:Dn),S=V(()=>M(r).shared?void 0:e=>$t(e,M(n).node.id)),C=V(()=>!Q.active);Md(e,{onmeasure:e=>{k.get(M(r).id)!==e&&k.set(M(r).id,e)},get node(){return M(n).node},get displayId(){return M(r).id},get tokenStart(){return M(r).start},get tokenEnd(){return M(r).end},get sharedCount(){return M(t)},get sharedUsesActivePath(){return M(i)},get onActivePath(){return M(n).isActivePath},get focused(){return M(a)},get current(){return M(c)},get selected(){return M(u)},get level(){return M(d)},get hasChildren(){return M(f)},get collapsed(){return M(p)},get dead(){return M(n).isDead},get streaming(){return M(m)},get ring(){return M(h)},get weightBadge(){return M(g)},get steerLabel(){return M(_)},get forkLabel(){return M(v)},get onclick(){return M(y)},get onfocus(){return M(b)},get onkeydown(){return M(x)},get oncontextmenu(){return M(S)},onactions:e=>$t(e,M(n).node.id),ongrow:()=>void yn(M(n).node),onbranch:e=>bn(M(n).node,e.currentTarget),onselecttoken:e=>void Sn(M(n).node,e),onbranchsentence:e=>void xn(M(n).node,e),get sentenceBranchAvailable(){return M(C)},ontogglechildren:()=>Et(M(n).node.id)})}};T(c,e=>{M(et)?e(u):e(d,-1)}),B(i),R(e=>{a=Z(i,1,`tree-node-wrap svelte-1byp7q8`,null,a,{"filtered-out":M(n).filteredOut,"search-match":mr.matchingIds!==null&&!M(n).filteredOut,"search-current":M(ke)===M(t).id,selected:e,pinned:!M(r).shared&&vr.nodeId===M(n).node.id,"active-path-node":M(n).isActivePath,"current-node":!M(r).shared&&$.active_node_id===M(n).node.id,"dead-node":M(n).isDead}),H(i,`data-loom-node-id`,M(r).id),H(i,`data-loom-shared`,M(r).shared?M(r).memberIds.length:void 0),H(i,`data-loom-depth`,M(t).depth),we(i,`left:${M(t).x}px;top:${M(t).y}px;width:${M(t).width}px;height:${M(t).height}px;--branch-depth:${M(t).depth}`)},[()=>!M(r).shared&&M(s).has(M(n).node.id)]),j(e,i)}),B(t),R((e,i,a)=>{n=Z(t,1,`loom-canvas svelte-1byp7q8`,null,n,{"camera-animating":M(nt)}),we(t,`transform:translate(${M(Xe).x}px,${M(Xe).y}px) scale(${M(Xe).zoom})`),H(t,`data-loom-nodes`,M(ne).nodes.length),H(t,`data-loom-edges`,M(ne).edges.length),H(t,`data-loom-zoom`,e),H(t,`data-loom-camera-x`,i),H(t,`data-loom-camera-y`,a),H(r,`width`,M(Ye).width/M(Xe).zoom),H(r,`height`,M(Ye).height/M(Xe).zoom),we(r,`left:${-M(Xe).x/M(Xe).zoom}px;top:${-M(Xe).y/M(Xe).zoom}px`),H(r,`viewBox`,`${-M(Xe).x/M(Xe).zoom} ${-M(Xe).y/M(Xe).zoom} ${M(Ye).width/M(Xe).zoom} ${M(Ye).height/M(Xe).zoom}`)},[()=>M(Xe).zoom.toFixed(2),()=>M(Xe).x.toFixed(2),()=>M(Xe).y.toFixed(2)]),j(e,t)};T(ee,e=>{i()&&e(N)}),B(E),xe(E,e=>Y(Je,e),()=>M(Je)),R(()=>{P(d,` ${M(h).length===1?`turn`:`turns`}`),P(m,` ${M(re)===1?`fork`:`forks`}`),y.disabled=M(Xe).zoom<=hf,S.disabled=M(Xe).zoom>=gf,D=Z(E,1,`tree-scroll loom-viewport svelte-1byp7q8`,null,D,{dragging:M(it),"camera-animating":M(nt)})}),L(`click`,y,()=>ht(M(Xe).zoom-.12)),L(`click`,S,()=>ht(M(Xe).zoom+.12)),L(`click`,C,()=>pt()),L(`click`,w,Lt),ae(`wheel`,E,gt),L(`pointerdown`,E,Ct),L(`pointermove`,E,wt),L(`pointerup`,E,Tt),ae(`pointercancel`,E,Tt),ae(`lostpointercapture`,E,Tt),j(e,t)},u=e=>{var t=Qf(),n=X(t);O(n,23,()=>M(Ge),e=>e.key,(e,t,n)=>{let r=V(()=>M(t).end>=0?M(t).node.tokens?.[M(t).end]:null),i=V(()=>M(t).sentenceIndex!==null&&!Q.active&&M(r)?.raw_index!=null&&M(r)?.token_id!=null);var a=Xf();let o;var s=X(a);let c;var l=U(s,2),u=X(l),d=X(u),f=J(d),p=U(d,2);B(u);var m=U(u,2),h=e=>{var n=qf();O(n,21,()=>nd(M(t).node.tokens,M(t).start,M(t).end),e=>e.start,(e,n)=>{let r=V(()=>rd(M(t).node.tokens[M(n).start].text));Oe();var i=Kf(),a=G(i,!0),o=U(a);O(o,23,()=>M(t).node.tokens.slice(M(n).start,M(n).end+1),(e,t)=>`${e.raw_index??M(n).start+t}:${e.token_id??e.text}`,(e,i,a)=>{let o=V(()=>M(n).start+M(a));var s=Gf(),c=()=>void Sn(M(t).node,M(o));K(s,e=>({type:`button`,class:`path-token`,"data-cursor":`inspect`,"data-loom-token-node":M(t).node.id,"data-token-index":M(o),"aria-description":`Open branch-point tools`,"aria-label":e,"aria-haspopup":`dialog`,onclick:c}),[()=>`Open token ${M(o)+1}: ${M(i).text.trim()||`whitespace`}`],void 0,void 0,`svelte-1byp7q8`);var l=J(s,!0);R(e=>P(l,e),[()=>(M(a)===0?M(i).text.slice(M(r).length):M(i).text)||`∅`]),j(e,s)}),B(o),R(()=>P(a,M(r))),j(e,i)}),B(n),j(e,n)},g=e=>{var n=Jf(),r=J(n,!0);R(e=>P(r,e),[()=>Bt(M(t).node)]),L(`click`,n,()=>void Ht(M(t).node)),j(e,n)};T(m,e=>{M(t).sentenceIndex!==null&&M(t).node.tokens?e(h):e(g,-1)});var _=U(m,2),v=X(_),y=U(v,2),b=e=>{var n=Yf(),r=()=>void xn(M(t).node,M(t).end);K(n,()=>({type:`button`,class:`dw-text`,disabled:!M(i),"aria-description":M(i)?`Keep everything through this sentence and generate a new continuation`:`Exact sentence replay is unavailable while the model is busy`,onclick:r}),void 0,void 0,void 0,`svelte-1byp7q8`),j(e,n)};T(y,e=>{M(t).sentenceIndex!==null&&e(b)}),B(_),B(l),B(a),R((e,r)=>{o=Z(a,1,`path-snippet svelte-1byp7q8`,null,o,{"current-snippet":$.active_node_id===M(t).node.id&&M(n)===M(Ge).length-1,model:M(t).node.role===`assistant`}),H(a,`data-path-snippet`,M(t).key),c=Z(s,1,`dw-pip svelte-1byp7q8`,null,c,{"is-model":M(t).node.role===`assistant`}),P(f,`${e??``}${M(t).sentenceIndex===null?``:` · sentence ${M(t).sentenceIndex+1}`}`),H(p,`aria-label`,r)},[()=>Vt(M(t).node),()=>`Actions for ${Vt(M(t).node)}`]),L(`click`,p,e=>$t(e,M(t).node.id)),L(`click`,v,()=>void Ht(M(t).node)),j(e,a)}),B(n);var r=U(n,2),i=e=>{var t=Zf();L(`click`,t,()=>zt(`options`)),j(e,t)};T(r,e=>{$.active_node_id&&e(i)}),B(t),j(e,t)},d=e=>{var t=ap(),n=X(t),r=e=>{var t=ep(),n=X(t),r=J(n,!0),i=U(n,2),a=X(i),o=X(a);{let e=V(()=>Q.active?`Generating…`:`Generate another`);c(o,{get text(){return M(e)}})}B(a);var s=U(a,2),l=e=>{var t=$f();L(`click`,t,e=>bn(M(Ue),e.currentTarget)),j(e,t)};T(s,e=>{M(Ue).parent_id&&e(l)}),B(i),B(t),R(e=>{P(r,e),n.dir=n.dir,a.disabled=Q.active},[()=>Bt(M(Ue))]),L(`click`,a,()=>void yn(M(Ue))),j(e,t)},i=e=>{var t=tp();j(e,t)};T(n,e=>{M(Ue)?e(r):e(i,-1)});var a=U(n,2),o=e=>{var t=np();j(e,t)},s=e=>{var t=ip();O(t,23,()=>M(Ke),e=>e.id,(e,t,n)=>{var r=rp();let i;var a=X(r),o=X(a),s=J(o),l=U(o,2);B(a);var u=U(a,2),d=J(u,!0),f=U(u,2),p=X(f),m=U(p,2),h=X(m);{let e=V(()=>M(t).starred?`Unstar`:`Star`);c(h,{get text(){return M(e)}})}B(m),B(f),B(r),R((e,a)=>{i=Z(r,1,`option-card svelte-1byp7q8`,null,i,{"active-option":$.active_node_id===M(t).id}),H(r,`data-option-node`,M(t).id),P(s,`${M(n)+1} · ${e??``}${$.active_node_id===M(t).id?` · current`:``}${M(t).starred?` · starred`:``}`),H(l,`aria-label`,`Actions for option ${M(n)+1}`),P(d,a),u.dir=u.dir},[()=>Vt(M(t)),()=>Bt(M(t))]),L(`click`,l,e=>$t(e,M(t).id)),L(`click`,u,()=>void Ht(M(t))),L(`click`,p,()=>void Ht(M(t))),L(`click`,m,()=>void Tn(M(t).id,!M(t).starred)),j(e,r)}),B(t),j(e,t)};T(a,e=>{M(Ke).length===0?e(o):e(s,-1)}),B(t),j(e,t)},f=e=>{var t=up(),n=X(t),r=e=>{var t=op(),n=X(t),r=X(n);{let e=V(()=>mr.matchingIds===null?`Nothing starred yet`:`No starred messages match`);c(r,{get text(){return M(e)}})}B(n),B(t),j(e,t)},i=e=>{var t=lp();O(t,21,()=>M(qe),e=>e.node.id,(e,t)=>{var n=cp(),r=X(n);let i;var a=U(r,2),o=X(a),s=J(o,!0),c=U(o,2),l=J(c,!0),u=U(c,2),d=e=>{var n=sp(),r=J(n,!0);R(()=>P(r,M(t).node.notes)),j(e,n)};T(u,e=>{M(t).node.notes&&e(d)}),B(a);var f=U(a,2),p=X(f),m=U(p,2),h=U(m,2);B(f),B(n),R((e,a,o)=>{H(n,`data-saved-node`,M(t).node.id),i=Z(r,1,`dw-pip svelte-1byp7q8`,null,i,{"is-model":M(t).node.role===`assistant`}),P(s,e),P(l,a),c.dir=c.dir,H(h,`aria-label`,o)},[()=>Vt(M(t).node),()=>Bt(M(t).node),()=>`Actions for ${Vt(M(t).node)}`]),L(`click`,p,()=>void Ht(M(t).node)),L(`click`,m,()=>void Tn(M(t).node.id,!1)),L(`click`,h,e=>$t(e,M(t).node.id)),j(e,n)}),B(t),j(e,t)};T(n,e=>{M(qe).length===0?e(r):e(i,-1)}),B(t),j(e,t)};T(n,e=>{M(h).length===0?e(r):jr.view===`map`?e(a,1):jr.view===`path`?e(u,2):jr.view===`options`?e(d,3):e(f,-1)}),j(e,t)};T(gr,e=>{$.error?e(_r):jr.view!==`weave`&&e(yr,1)}),B(er),xe(er,e=>Y(dn,e),()=>M(dn));var br=U(er,2),Sr=e=>{let t=V(()=>$.nodes.get(M(Kt).nodeId)),n=V(()=>M(t)?Wr(M(t)):`Empty turn`),i=V(()=>M(t)?.role_label?.trim()||M(t)?.role||`turn`),a=V(()=>M(t)?.recipe===null&&M(t)?.role!==`system`?M(Kt).nodeId:M(t)?.recipe===null?null:M(t)?.parent_id??null),o=V(()=>M(a)?($.children_of.get(M(a))??[]).filter(e=>$.nodes.get(e)?.recipe!==null).length:0);var l=pp();let u;var d=X(l),f=X(d),p=J(f,!0),m=U(f,2),h=J(m,!0);B(d);var g=U(d,2),_=X(g),v=U(_,2),y=U(v,2),b=U(y,2),x=U(b,2),S=U(x,2),C=e=>{var t=dp();K(t,()=>({type:`button`,role:`menuitem`,"aria-description":`Swap the speaker and create a branch`,onclick:Ln}),void 0,void 0,void 0,`svelte-1byp7q8`),j(e,t)};T(S,e=>{(Wn.info?.scene_mode??!1)&&(M(t)?.role===`user`||M(t)?.role===`assistant`)&&e(C)}),B(g);var w=U(g,2),E=X(w),D=X(E);{let e=V(()=>M(t)?.starred?`Unstar this branch`:`Star this branch`);c(D,{get text(){return M(e)}})}B(E);var O=U(E,2);B(w);var k=U(w,2),A=X(k),ee=e=>{var t=fp(),n=G(t),r=J(n,!0),i=U(n,2),a=J(i,!0);R(e=>{P(r,vr.nodeId===M(Kt).nodeId?`Remove comparison pin`:`Pin for comparison`),P(a,e)},[()=>M(s).has(M(Kt).nodeId)?`Remove from comparison`:`Add to comparison`]),L(`click`,n,Hn),L(`click`,i,qn),j(e,t)};T(A,e=>{M(t)?.recipe!==null&&e(ee)});var N=U(A,2);K(N,()=>({type:`button`,role:`menuitem`,onclick:Kn,disabled:M(o)<2,"aria-description":M(o)<2?`Create at least two replies first`:``}),void 0,void 0,void 0,`svelte-1byp7q8`);var te=U(N,2);B(k);var F=U(k,2),I=X(F);K(I,(e,t)=>({type:`button`,role:`menuitem`,onclick:zn,disabled:e,...t}),[()=>M(Kt).nodeId!==null&&Jn(M(Kt).nodeId),()=>({"aria-description":M(Kt).nodeId!==null&&Jn(M(Kt).nodeId)?Er:``})],void 0,void 0,`svelte-1byp7q8`),B(F),B(l),xe(l,e=>Y(qt,e),()=>M(qt)),Ee(l,e=>Qt?.(e)),R(()=>{u=Z(l,1,`loom-menu svelte-1byp7q8`,null,u,{positioned:M(Yt)}),we(l,`left:${M(Jt).x}px;top:${M(Jt).y}px`),P(p,M(i)),P(h,M(n))}),L(`keydown`,l,on),L(`click`,_,Rn),L(`click`,v,Mn),L(`click`,y,Zn),L(`click`,b,Pn),L(`click`,x,Fn),L(`click`,E,Bn),L(`click`,O,Vn),L(`click`,te,Un),Te(2,l,()=>r),j(e,l)};T(br,e=>{M(Kt).open&&M(Kt).nodeId&&e(Sr)});var Cr=U(br,2);xe(mf(Cr,{get background(){return M(dn)},onsearchmatch:gn,onbranchcreated:e=>{Y(mn,e,!0)},onclosed:hn}),e=>Y(un,e,!0),()=>M(un)),R(()=>H(pr,`hidden`,jr.view!==`weave`||!!$.error)),j(t,$n),ye()}A([`click`,`input`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);function gp(e,t){for(let n=0;n+1`);function yp(e,t){ge(t,!1);let n=[{value:`chat`,label:`Chat`,hint:`The model's chat template: turns, roles and a system prompt`},{value:`raw`,label:`Raw`,hint:`Raw completion: the text as written, continued`}];ve();var r=N(),i=G(r),a=e=>{var t=vp(),r=X(t);y(r,{label:`Format`,get value(){return oi.mode},get onchange(){return Zt},get options(){return n}}),B(t),j(e,t)};T(i,e=>{Wn.info&&Wn.info.is_base_model!==!0&&e(a)}),j(e,r),ye()}var bp=I(``),xp=I(``),Sp=I(``),Cp=I(`
Nothing yet
`),wp=I(``),Tp=I(``),Ep=I(`
Earlier
`,1);function Dp(e,t){ge(t,!0);let n=q(t,`format`,3,!1),r=new Map,i=V(()=>{let e=[],t=$.activePath.at(-1);gp(r,$.activePath);let n=t===void 0?[]:_p(t,$.children_of,r);for(let t of[...$.activePath,...n]){let r=$.nodes.get(t);if(!r||r.parent_id===null&&r.role===`system`&&!r.text)continue;let i=r.parent_id?$.children_of.get(r.parent_id)??[]:[],a=[];i.length>1&&a.push(`${i.indexOf(t)+1} of ${i.length}`),r.applied_steering&&a.push(`steered`),r.role===`system`&&a.unshift(`system`),e.push({node:r,model:r.role===`assistant`,snippet:Wr(r,r.id===$.pendingNodeId?`Writing…`:`Empty`),meta:a.join(` · `),after:n.includes(t)})}return e}),a=V(()=>{let e=0;for(let[t]of $.nodes)t!==$.root_id&&($.children_of.get(t)?.length??0)===0&&(e+=1);return e}),o=W(z([])),s=V(()=>M(o).find(e=>e.id===ha.activeId)??null),c=V(()=>M(o).filter(e=>e.id!==ha.activeId&&e.modelId===Wn.info?.model_id).sort((e,t)=>t.updatedAt-e.updatedAt).slice(0,4)),l=V(()=>{if(M(s)?.name)return M(s).name;if($.name)return $.name;let e=M(i).find(e=>e.node.role===`user`)?.snippet;return e?e.length>40?`${e.slice(0,40).trimEnd()}…`:e:`New conversation`});async function u(){try{Y(o,(await ga.listSummaries()).conversations,!0)}catch{Y(o,[],!0)}}_e(()=>(u(),pa(u))),F(()=>{ha.activeId,u()});async function d(e){if(e.node.id!==$.active_node_id)try{await Pr(e.node.id)}catch(e){Pi(aa(e,`That point in the thread could not be opened.`),{kind:`error`})}}let f=W(null);async function p(e){if(!(Q.active||M(f))){Y(f,e.id,!0);try{let{name:t}=await xo(e.id);Pi(`Opened “${t}”.`,{kind:`info`})}catch(e){Pi(aa(e,`This conversation could not be opened. Your current work was left unchanged.`),{kind:`error`})}finally{Y(f,null)}}}function m(e){jr.view=e,Wi()}var h=Ep(),g=G(h),_=X(g),v=J(_,!0),y=U(_,2),b=J(y);B(g);var x=U(g,2),S=e=>{yp(e,{})};T(x,e=>{n()&&e(S)});var C=U(x,2),w=e=>{var t=Sp();O(t,21,()=>M(i),e=>e.node.id,(e,t)=>{var n=xp();let r;var i=X(n);let a;var o=U(i,2),s=X(o),c=J(s,!0),l=U(s),u=e=>{var n=bp(),r=J(n,!0);R(()=>P(r,M(t).meta)),j(e,n)};T(l,e=>{M(t).meta&&e(u)}),B(o),B(n),R(()=>{r=Z(n,1,`dw-nodeRow svelte-fsgfj5`,null,r,{"dw-indent":M(t).model,after:M(t).after}),H(n,`aria-current`,M(t).node.id===$.active_node_id?`true`:void 0),a=Z(i,1,`dw-pip svelte-fsgfj5`,null,a,{"is-model":M(t).model}),P(c,M(t).snippet)}),L(`click`,n,()=>void d(M(t))),j(e,n)}),B(t),j(e,t)},E=e=>{var t=Cp();j(e,t)};T(C,e=>{M(i).length?e(w):e(E,-1)});var D=U(C,2),k=X(D),A=U(k,2);B(D);var ee=U(D,2),N=U(X(ee),2),te=e=>{var t=Tp();O(t,21,()=>M(c),e=>e.id,(e,t)=>{var n=wp(),r=U(X(n),2),i=X(r),a=J(i,!0),o=U(i),s=J(o);B(r),B(n),R(()=>{H(n,`aria-busy`,M(f)===M(t).id),n.disabled=Q.active,P(a,M(t).name),P(s,`${M(t).threadCount??``} ${M(t).threadCount===1?`branch`:`branches`}`)}),L(`click`,n,()=>void p(M(t))),j(e,n)}),B(t),j(e,t)};T(N,e=>{M(c).length&&e(te)});var I=U(N,2);B(ee),R(()=>{P(v,M(l)),P(b,`${M(a)??``} ${M(a)===1?`branch`:`branches`}`)}),L(`click`,k,()=>m(`map`)),L(`click`,A,()=>m(`weave`)),L(`click`,I,()=>gi(`load_conversation`)),j(e,h),ye()}A([`click`]);var Op=I(``),kp=I(` `,1),Ap=I(``),jp=I(``),Mp=I(``),Np=I(`
`);function Yp(e,t){ge(t,!0);let n=V(()=>Ge.enabled),r=V(()=>Wn.info?.is_base_model?`completion`:`reply`);function i(e){return e?.family===`geometry`?e.is_affine?`subspace`:`manifold`:null}let a=V(()=>Sr().filter(e=>{let n=i(Qr.entries.get(e)?.info);return n!==null&&t.family!==`units`&&(t.family===void 0||t.family===`geometry`||n===t.family)})),s=V(()=>t.family===void 0||t.family===`units`?Sr().filter(e=>Qr.entries.get(e)?.info.family===`units`):[]),l=V(()=>t.family===void 0&&xs()),d=[`name`,`value`,`change`];function f(){Yn(d[(d.indexOf(Qr.sortMode)+1)%d.length])}let p=W(!1);function m(e){Y(p,!1),e===`units`?xi(`units`):gi(e)}function h(){t.family===`units`?m(`units`):t.family===`subspace`?m(`subspace`):t.family===`manifold`?m(`manifolds`):Y(p,!M(p))}let g=V(()=>t.family===`units`?`Unit probe`:t.family===`manifold`?`Manifold probe`:t.family===`subspace`?`Concept probe`:`Probe`),_=V(()=>t.family===void 0||t.family===`geometry`);var v=Jp(),y=X(v),b=e=>{var t=Up(),n=X(t);O(n,16,()=>M(s),e=>e,(e,t)=>{let n=V(()=>_n(t));var r=N(),i=G(r),a=e=>{var r=Hp();Vp(X(r),{get name(){return t},get entry(){return M(n)}}),B(r),j(e,r)};T(i,e=>{M(n)&&e(a)}),j(e,r)});var r=U(n,2);O(r,16,()=>M(a),e=>e,(e,t)=>{let n=V(()=>_n(t));var r=N(),i=G(r),a=e=>{var r=Hp();Lp(X(r),{get name(){return t},get entry(){return M(n)}}),B(r),j(e,r)};T(i,e=>{M(n)&&e(a)}),j(e,r)}),B(t),j(e,t)};T(y,e=>{(M(a).length>0||M(s).length>0)&&e(b)});var x=U(y,2),S=X(x),C=J(S),w=U(S,2),E=X(w),D=e=>{var t=Wp(),n=U(X(t));c(n,{get text(){return Qr.sortMode}}),B(t),R(e=>H(t,`aria-label`,e),[()=>`Sorted by ${Qr.sortMode}. Sort by ${d[(d.indexOf(Qr.sortMode)+1)%d.length]}`]),L(`click`,t,f),j(e,t)};T(E,e=>{M(a).length+M(s).length>1&&e(D)});var k=U(E,2),A=e=>{var t=Gp(),i=X(t);{let e=V(()=>M(n)?`Reading every word as it is written. Off, readings land when the ${M(r)} ends.`:`Read every word as it is written`);o(i,{get checked(){return M(n)},onchange:()=>void tt(!M(n)),label:`Live`,get hint(){return M(e)}})}B(t),R(()=>t.inert=Ge.busy),j(e,t)};T(k,e=>{t.family!==`units`&&e(A)}),B(w),B(x);var ee=U(x,2),te=e=>{var t=qp(),n=X(t),r=e=>{var t=Kp();L(`click`,t,()=>m(`units`)),j(e,t)};T(n,e=>{M(l)&&e(r)});var i=U(n,2),a=U(i,2);B(t),L(`click`,i,()=>m(`subspace`)),L(`click`,a,()=>m(`manifolds`)),Te(3,t,()=>u),j(e,t)};T(ee,e=>{M(p)&&e(te)}),B(v),R(()=>{H(S,`aria-expanded`,M(_)?M(p):void 0),P(C,`+ ${M(g)??``}`)}),L(`click`,S,h),j(e,v),ye()}A([`click`]);function Xp(e){let t=e-1;return t*t*t+1}function Zp(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=Xp}=r,s=getComputedStyle(e),c=s.transform===`none`?``:s.transform,[l,u]=s.transformOrigin.split(` `).map(parseFloat);l/=e.clientWidth,u/=e.clientHeight;var d=Qp(e),f=e.clientWidth/n.width/d,p=e.clientHeight/n.height/d,m=t.left+t.width*l,h=t.top+t.height*u,g=n.left+n.width*l,_=n.top+n.height*u,v=(m-g)*f,y=(h-_)*p,b=t.width/n.width,x=t.height/n.height;return{delay:i,duration:typeof a==`function`?a(Math.sqrt(v*v+y*y)):a,easing:o,css:(e,t)=>`transform: ${c} translate(${t*v}px, ${t*y}px) scale(${e+t*b}, ${e+t*x});`}}function Qp(e){if(`currentCSSZoom`in e)return e.currentCSSZoom;for(var t=e,n=1;t!==null;)n*=+getComputedStyle(t).zoom,t=t.parentElement;return n}var $p=I(``);function em(e,t){let n=q(t,`filled`,3,!1),r=V(()=>t.shape===`circle`?n()?`●`:`○`:t.shape===`diamond`?n()?`◆`:`◇`:t.shape===`triangle`?n()?`▲`:`△`:n()?`■`:`□`);var i=$p(),a=J(i,!0);R(()=>{Z(i,1,`marker ${t.shape??``}`,`svelte-1a5iijm`),P(a,M(r))}),j(e,i)}var tm=I(``);function nm(e,t){let n=q(t,`disabled`,3,!1);var r=tm();K(r,()=>({type:`button`,class:`pin`,disabled:n(),onclick:t.onclick,"aria-description":t.title,"aria-label":t.ariaLabel,"aria-pressed":t.pinned,[ue]:{pinned:t.pinned}}),void 0,void 0,void 0,`svelte-157t8te`);var i=X(r);let a;em(X(i),{get shape(){return t.shape}}),B(i);var o=U(i,2);let s;em(X(o),{get shape(){return t.shape},filled:!0}),B(o),B(r),R(()=>{a=Z(i,1,`pin-icon svelte-157t8te`,null,a,{visible:!t.pinned}),s=Z(o,1,`pin-icon svelte-157t8te`,null,s,{visible:t.pinned})}),j(e,r)}var rm=I(`·`),im=I(``),am=I(``),om=I(`–Not measured`,1),sm=I(` `,1);function cm(e,n){ge(n,!0);let r=q(n,`namespace`,3,`jlens`),i=q(n,`pinAs`,3,`jlens`),a=q(n,`pairWord`,3,null),o=q(n,`busy`,3,!1),s=V(()=>t(n.token)),c=V(()=>M(s).lead),l=V(()=>M(s).empty?JSON.stringify(n.token):M(s).text),u=V(()=>n.token.length>0&&n.token===n.token.trim()),d=V(()=>n.probeName??`${r()}/${M(l)}`),f=V(()=>r()===`jlens`),p=V(()=>ln.target===M(d)),m=V(()=>Math.max(...n.cells.map(e=>Math.abs(e.p??0)),1e-12)),h=V(()=>Math.max(0,...n.cells.map(e=>e.layer))),g=V(()=>n.cells.map(e=>Ua(Ga(e.layer,M(h))))),_=V(()=>n.com===null?``:` · depth ${n.com.toFixed(2)}${n.spread===null?``:` ± ${n.spread.toFixed(2)}`}`),v=W(!1);async function y(){if(M(v))return;Y(v,!0);let e=M(d);try{await Vn(e),Pi(`unpinned ${e}`,{kind:`info`})}catch(t){Pi(aa(t,`Unable to unpin ${e}. Try again.`),{kind:`error`,ttlMs:null})}finally{Y(v,!1)}}function b(){er(M(d)),gi(`probe_inspector`,{name:M(d)})}{let t=e=>{var t=am(),n=X(t),r=e=>{var t=rm();j(e,t)};T(n,e=>{M(c)&&e(r)});var i=U(n,1,!0),o=U(i),s=e=>{var t=im(),n=J(t,!0);R(()=>P(n,` ${a()}`)),j(e,t)};T(o,e=>{a()&&e(s)}),B(t),R(()=>P(i,M(l))),j(e,t)},s=e=>{var t=N(),r=G(t),i=e=>{{let t=V(()=>n.cells.map(e=>e.p)),r=V(()=>`${M(l)} by layer`);Ba(e,{get values(){return M(t)},limit:0,get scale(){return M(m)},get colors(){return M(g)},get label(){return M(r)}})}};T(r,e=>{n.cells.length>0&&e(i)}),j(e,t)},h=e=>{var t=N(),r=G(t),i=e=>{var t=om();Oe(),j(e,t)},a=e=>{var t=ie();R(e=>P(t,e),[()=>Wa(n.strength,{percent:M(f)})]),j(e,t)};T(r,e=>{n.strength===null?e(i):e(a,-1)}),j(e,t)},x=e=>{var t=sm(),a=G(t),s=e=>{{let t=V(()=>`Push toward ${M(l)}, ${(n.pinned?r():i())===`slens`?`as read`:`as said`}`),a=V(()=>(n.pinned?r():i())===`slens`?`Toward having read it`:`Toward saying it`);Xi(e,{label:`Push`,get aria(){return M(t)},get tip(){return M(a)},get onclick(){return n.onpush}})}};T(a,e=>{n.onpush&&e(s)});var c=U(a,2);{let e=V(()=>n.pinned?M(v):o()||!M(u)),t=V(()=>n.pinned?`unpin`:M(u)?i()===`slens`?`pin as read`:`pin as said`:`This token includes whitespace. Watch the bare word to follow it.`),r=V(()=>n.pinned?`Unpin probe ${M(d)}`:`Pin probe ${i()}/${M(l)}`);nm(c,{shape:`square`,get pinned(){return n.pinned},get disabled(){return M(e)},onclick:()=>n.pinned?void y():n.onpin?.(n.token),get title(){return M(t)},get ariaLabel(){return M(r)}})}j(e,t)},S=V(()=>n.pinned&&M(p)),C=V(()=>n.pinned?b:void 0),w=V(()=>Ua(n.com)),E=V(()=>`${n.pinned?M(d):`"${n.token}", averaged across fitted layers`}${M(_)}`);Pp(e,{get pressed(){return M(S)},get onselect(){return M(C)},get tint(){return M(w)},get title(){return M(E)},lead:t,mark:s,value:h,action:x,$$slots:{lead:!0,mark:!0,value:!0,action:!0}})}ye()}var lm=I(`
`),um=I(`
`),dm=I(``),fm=I(`
`),pm=I(``),mm=I(``),hm=I(``),gm=I(` `,1),_m=I(``),vm=I(``);function ym(e,t){ge(t,!0);let n=V(()=>Un(`jlens`)),r=V(()=>Un(`slens`)),a=V(()=>M(n)&&M(r)),s=V(fr),l=e=>M(a)?e===`jlens`?`said`:`read`:null,u=V(()=>bn.layers!==null),d=V(dn),f=V(Fn),m=V(()=>Rt.active?Object.keys(M(d)??{}).map(Number).sort((e,t)=>e-t):bn.layers??[]),h=V(()=>Math.max(0,...M(m))),g=V(()=>{let e=M(m).filter(e=>(M(d)?.[String(e)]?.length??0)>0);return e.length===0?[]:(e.length<=3?e.map(e=>({layer:e,name:`L${e}`})):[1/6,1/2,5/6].map((t,n)=>({layer:e[Math.round(t*(e.length-1))],name:[`early`,`middle`,`late`][n]}))).map(({layer:e,name:t})=>({layer:e,name:t,tint:Ua(Ga(e,M(h))),words:(M(d)?.[String(e)]??[]).slice(0,3)}))});function _(e){let t=e.perLayer;return t?Object.keys(t).sort((e,t)=>Number(e)-Number(t)).map(e=>({layer:Number(e),p:t[e]??null})):[]}let v=V(()=>{let e=[];for(let t of Sr()){let n=_n(t);if(n?.info.family!==`lens`)continue;let r=n.aggregate??n.reading,i=r??n.savedReading??null,a=n.info.word,o=n.info.namespace;e.push({key:t,sortName:a,token:a,strength:r?.value??n.savedAggregate??i?.value??n.current??0,measured:i!==null||n.sparkline.length>0||n.savedAggregate!==null,com:i?.depth?.center?.[0]??null,spread:i?.depth?.spread?.[0]??null,cells:_(n),pinned:!0,namespace:o,id:typeof n.info.token_id==`number`?n.info.token_id:null})}return e}),b=V(()=>{let e=M(f);return!e||e.length===0?[]:ja(e,M(v)).map(e=>({...e,measured:!0,cells:Ma(M(d),M(m),e.id),pinned:!1,namespace:`jlens`}))}),x=V(()=>Ia(za(M(v),M(u)||Rt.active?M(b):[],bn.workspaceSortMode))),S=[`strength`,`name`,`depth`],w=V(()=>S[(S.indexOf(bn.workspaceSortMode)+1)%S.length]),E=W(``),k=W(!1),A=V(()=>br.find(e=>e.value===M(s))??br[0]);function ee(e){return e.trim().replace(/^[js]lens\//,``)}function N(e,t=M(s)){return M(v).some(n=>n.id===e&&n.namespace===t)}async function F(e){let t=ee(e);if(!t||M(k))return!1;let n=M(s),r=`${n}/${t}`;if(Qr.active.includes(r))return!0;Y(k,!0);try{let e=await bt.validateLensToken(t);if(N(e.token_id,n))return!0;let r=`${n}/${e.word}`;return await ur(r),Pi(`pinned ${r}`,{kind:`info`}),!0}catch(e){return Pi(`Couldn't pin ${r}: ${Po(e)}`,{kind:`error`}),!1}finally{Y(k,!1)}}async function I(e){let t=M(s);if(M(k)||N(e,t))return;Y(k,!0);let n=`${t}/#${e}`;try{await ur(n),Pi(`pinned ${n}`,{kind:`info`})}catch(e){Pi(`Couldn't pin ${n}: ${Po(e)}`,{kind:`error`})}finally{Y(k,!1)}}async function re(e){e.preventDefault();let t=M(E);await F(t)&&M(E)===t&&Y(E,``)}function ie(e){let t=e.pinned?e.namespace:M(s);vo(e.id===null?{word:e.token}:{id:e.id,text:e.token},t)}var oe=vm(),se=X(oe),z=e=>{var t=gm(),r=G(t),d=e=>{var t=lm(),n=X(t),r=X(n);o(r,{get checked(){return M(u)},onchange:()=>void jt(!M(u)),label:`Lens readout`,hint:`Read the predicted words at every layer while the model writes. Pinned words stay when it finishes.`}),B(n),B(t),R(()=>n.inert=bn.busy),j(e,t)};T(r,e=>{M(n)&&e(d)});var f=U(r,2),m=e=>{var t=dm();O(t,21,()=>M(g),e=>e.name,(e,t)=>{var n=um();let r;var a=X(n),o=U(X(a),1,!0);B(a);var s=U(a,2);O(s,21,()=>M(t).words,te,(e,t,n)=>{var r=V(()=>ne(M(t),2));let a=()=>M(r)[0],o=()=>M(r)[1];i(e,{get token(){return a()},get value(){return o()},i:n})}),B(s),B(n),R(()=>{r=we(n,``,r,{"--tint":M(t).tint}),H(a,`data-tip`,`L${M(t).layer}`),P(o,M(t).name)}),j(e,n)}),B(t),j(e,t)};T(f,e=>{M(g).length>0&&e(m)});var h=U(f,2),_=e=>{var t=fm(),n=J(t,!0);R(()=>{H(t,`role`,Rt.lensError?`alert`:void 0),P(n,Rt.lensLoading?`Reading the hovered token…`:Rt.lensError??`The lens has no reading for this token.`)}),j(e,t)};T(h,e=>{M(n)&&Rt.active&&(Rt.lensLoading||Rt.lensError||M(b).length===0)&&e(_)});var v=U(h,2),S=e=>{var t=mm();O(t,29,()=>M(x),e=>e.key,(e,t)=>{var n=pm(),r=X(n);{let e=V(()=>M(t).pinned?M(t).key:void 0),n=V(()=>M(t).pinned?l(M(t).namespace):null),i=V(()=>M(t).measured?M(t).strength:null),a=V(()=>M(t).pinned||M(t).id===null?F:()=>void I(M(t).id));cm(r,{get token(){return M(t).token},get probeName(){return M(e)},get namespace(){return M(t).namespace},get pinAs(){return M(s)},get pairWord(){return M(n)},get strength(){return M(i)},get com(){return M(t).com},get spread(){return M(t).spread},get cells(){return M(t).cells},get pinned(){return M(t).pinned},get busy(){return M(k)},get onpin(){return M(a)},onpush:()=>ie(M(t))})}B(n),D(n,()=>Zp,()=>({duration:C()?0:240,easing:p})),j(e,n)}),B(t),j(e,t)};T(v,e=>{M(x).length>0&&e(S)});var ee=U(v,2),N=U(X(ee),2);he(N);var oe=U(N,2),se=e=>{{let t=V(()=>[...br]);y(e,{label:`Read the word`,get value(){return M(s)},get options(){return M(t)},onchange:e=>Bn.namespace=e})}};T(oe,e=>{M(a)&&e(se)});var z=U(oe,2),ce=U(z,2),le=e=>{var t=hm(),n=U(X(t));c(n,{get text(){return bn.workspaceSortMode}}),B(t),R(()=>H(t,`aria-label`,`Sorted by ${bn.workspaceSortMode}. Sort by ${M(w)}`)),L(`click`,t,()=>Tt(M(w))),j(e,t)};T(ce,e=>{M(x).length>1&&e(le)}),B(ee),R(e=>{z.disabled=e,H(z,`data-tip`,`Pin a probe on it: ${M(A).hint}`)},[()=>M(k)||!M(E).trim()]),ae(`submit`,ee,re),Ce(N,()=>M(E),e=>Y(E,e)),j(e,t)},ce=e=>{var t=_m(),n=J(t);L(`click`,n,()=>xi(`artifacts`,`lenses`)),j(e,t)};T(se,e=>{M(n)||M(r)?e(z):e(ce,-1)}),B(oe),j(e,oe),ye()}A([`click`]);var bm=I(``),xm=I(`–Not measured`,1),Sm=I(` `,1);function Cm(e,t){ge(t,!0);let n=q(t,`measured`,3,!0),r=q(t,`label`,3,null),i=q(t,`maxAct`,3,null),a=q(t,`valueIsStrength`,3,!1),o=q(t,`fallbackScale`,3,1),l=q(t,`busy`,3,!1),u=V(()=>t.probeName??`sae/${t.id}`),d=V(()=>Pa({family:`sae`,feature_id:t.id},M(u),t.layer).text),f=V(()=>ln.target===M(u)),p=V(()=>a()?t.value:i()!=null&&i()>0?t.value/i():null),m=V(()=>a()&&i()!=null?t.value*i():t.value),h=V(()=>M(p)??M(m)/Math.max(o(),1)),g=W(!1);async function _(){if(M(g))return;Y(g,!0);let e=M(u);try{await Vn(e),Pi(`unpinned ${e}`,{kind:`info`})}catch(t){Pi(aa(t,`Unable to unpin ${e}. Try again.`),{kind:`error`,ttlMs:null})}finally{Y(g,!1)}}function v(){er(M(u)),gi(`probe_inspector`,{name:M(u)})}{let i=e=>{var t=bm(),n=J(t,!0);R(()=>P(n,M(d))),j(e,t)},a=e=>{Oe();var t=ie();R(()=>P(t,r()??``)),j(e,t)},o=e=>{var t=N(),r=G(t),i=e=>{{let t=V(()=>Math.max(0,M(h))),n=V(()=>M(p)===null?`Activation ${M(m).toFixed(2)}`:`Strength ${M(p).toFixed(2)}`);s(e,{get value(){return M(t)},width:56,get label(){return M(n)}})}};T(r,e=>{n()&&e(i)}),j(e,t)},y=e=>{var t=N(),r=G(t),i=e=>{var t=xm();Oe(),j(e,t)},a=e=>{{let t=V(()=>Wa(M(p)??M(m)));c(e,{get text(){return M(t)}})}};T(r,e=>{n()?e(a,-1):e(i)}),j(e,t)},b=e=>{var n=Sm(),r=G(n),i=e=>{{let n=V(()=>`Push along feature ${t.id}`);Xi(e,{label:`Push`,get aria(){return M(n)},get onclick(){return t.onpush}})}};T(r,e=>{t.onpush&&e(i)});var a=U(r,2);{let e=V(()=>t.pinned?M(g):l()),n=V(()=>t.pinned?`unpin`:`pin`),r=V(()=>`${t.pinned?`Unpin`:`Pin`} probe ${M(u)}`);nm(a,{shape:`triangle`,get pinned(){return t.pinned},get disabled(){return M(e)},onclick:()=>t.pinned?void _():t.onpin?.(t.id),get title(){return M(n)},get ariaLabel(){return M(r)}})}j(e,n)},x=V(()=>t.pinned&&M(f)),S=V(()=>t.pinned?v:void 0);Pp(e,{get pressed(){return M(x)},get onselect(){return M(S)},get title(){return M(u)},lead:i,sub:a,mark:o,value:y,action:b,$$slots:{lead:!0,sub:!0,mark:!0,value:!0,action:!0}})}ye()}var wm=I(`
`),Tm=I(``),Em=I(``),Dm=I(``),Om=I(`
`,1),km=I(``);function Am(e,t){ge(t,!0);let n=V(Ar),r=V(rr),i=V(()=>{let e=Rr(`sae`)?.live;return e&&`layer`in e?e.layer:null}),a=V(()=>Sr().map(e=>({name:e,entry:_n(e)})).filter(e=>e.entry?.info.family===`sae`)),s=V(()=>M(r).filter(e=>!M(a).some(({entry:t})=>t?.info.family===`sae`&&t.info.feature_id===e.id)).map(e=>{let t=Rt.active?void 0:Qn.meta.get(e.id);return{...e,label:e.label??t?.label??null,max_act:e.max_act??t?.max_act??null}})),l=V(Ye);function u(e,t){return t!=null&&t>0?e/t:e/M(l)}let d=V(()=>M(a).map(e=>{let t=e.entry,n=t.info,r=t.aggregate??t.reading,i=r?.value??t.current;return{kind:`pinned`,key:e.name,name:e.name,entry:t,sortName:n.label||!Rt.active&&Qn.meta.get(n.feature_id)?.label||String(n.feature_id),strength:r?.unit===`activation_over_max`?i:i/M(l)}})),f=V(()=>M(s).map(e=>({kind:`discovery`,key:`sae/${e.id}`,feature:e,sortName:e.label||String(e.id),strength:u(e.activation,e.max_act??null)}))),m=V(()=>za(M(d),Qn.live||Rt.active?M(f):[],Qn.sortMode,{numericNames:!0})),h=[`strength`,`name`],g=V(()=>h[(h.indexOf(Qn.sortMode)+1)%h.length]),_=W(``),v=W(!1);async function y(e){let t=Number(e.trim().replace(/^sae\//,``));return!Number.isInteger(t)||t<0?(Pi(`Enter a feature number of 0 or greater.`,{kind:`error`}),null):(await bt.validateSaeFeature(t)).id}async function b(e){if(!(M(v)||Qr.active.includes(`sae/${e}`))){Y(v,!0);try{await bt.validateSaeFeature(e),await ur(`sae/${e}`)}catch(e){Pi(aa(e,`Unable to pin that feature. Try again.`),{kind:`error`})}finally{Y(v,!1)}}}async function x(e){if(e.preventDefault(),!M(v)){Y(v,!0);try{let e=await y(M(_));e!==null&&(await ur(`sae/${e}`),Y(_,``))}catch(e){Pi(aa(e,`Unable to add that feature reading. Try again.`),{kind:`error`})}finally{Y(v,!1)}}}var S=km(),w=X(S),E=e=>{var t=Om(),n=G(t),r=X(n),a=X(r);o(a,{get checked(){return Qn.live},onchange:()=>void ut(!Qn.live),label:`Feature readout`,hint:`Read which features fire while the model writes. Pinned features stay when it finishes.`}),B(r),B(n);var s=U(n,2),u=e=>{var t=wm(),n=J(t,!0);R(()=>{H(t,`role`,Rt.saeError?`alert`:void 0),P(n,Rt.saeLoading?`Reading the hovered token…`:Rt.saeError??`No feature fired on this token.`)}),j(e,t)};T(s,e=>{Rt.active&&(Rt.saeLoading||Rt.saeError||M(m).length===0)&&e(u)});var d=U(s,2),f=e=>{var t=Em();O(t,29,()=>M(m),e=>e.key,(e,t)=>{var n=Tm(),r=X(n),a=e=>{let n=V(()=>M(t).entry.aggregate??M(t).entry.reading),r=V(()=>M(t).entry.info);{let a=V(()=>M(r).label||(Rt.active?null:Qn.meta.get(M(r).feature_id)?.label)),o=V(()=>M(n)?.value??M(t).entry.current??0),s=V(()=>M(n)!==null||M(t).entry.sparkline.length>0),c=V(()=>M(n)?.unit===`raw_activation`?null:M(r).max_act),u=V(()=>M(n)?.unit===`activation_over_max`);Cm(e,{get id(){return M(r).feature_id},get probeName(){return M(t).name},get label(){return M(a)},get layer(){return M(i)},get value(){return M(o)},get measured(){return M(s)},get maxAct(){return M(c)},get valueIsStrength(){return M(u)},get fallbackScale(){return M(l)},pinned:!0,onpush:()=>go(M(r).feature_id)})}},o=e=>{Cm(e,{get id(){return M(t).feature.id},get label(){return M(t).feature.label},get layer(){return M(i)},get value(){return M(t).feature.activation},get maxAct(){return M(t).feature.max_act},get fallbackScale(){return M(l)},pinned:!1,get busy(){return M(v)},onpin:e=>void b(e),onpush:()=>go(M(t).feature.id)})};T(r,e=>{M(t).kind===`pinned`?e(a):e(o,-1)}),B(n),D(n,()=>Zp,()=>({duration:C()?0:240,easing:p})),j(e,n)}),B(t),j(e,t)};T(d,e=>{M(m).length>0&&e(f)});var h=U(d,2),y=U(X(h),2);he(y);var S=U(y,2),w=U(S,2),E=e=>{var t=Dm(),n=U(X(t));c(n,{get text(){return Qn.sortMode}}),B(t),R(()=>H(t,`aria-label`,`Sorted by ${Qn.sortMode}. Sort by ${M(g)}`)),L(`click`,t,()=>vt(M(g))),j(e,t)};T(w,e=>{M(m).length>1&&e(E)}),B(h),R(e=>{r.inert=Qn.busy,S.disabled=e},[()=>M(v)||!M(_).trim()]),ae(`submit`,h,x),Ce(y,()=>M(_),e=>Y(_,e)),j(e,t)};T(w,e=>{M(n)&&e(E)}),B(S),j(e,S),ye()}A([`click`]);var jm=`This runtime replays the R lens alone`;function Mm(e,t){return e.layers.map(e=>({layer:e.layer,reads_as:{r:{family:`R`,weight:1,unit:`probability`,lens:t,centred:!1,absent:null,tokens:e.tokens.map(e=>({token_id:e.id,token:e.token,value:Math.exp(e.logprob)}))},s:{family:`S`,weight:0,unit:`footprint_z`,lens:null,centred:!1,tokens:[],absent:jm}}}))}var Nm=[`out`,`mid`],Pm={out:`A layer's output: neuron outputs and attention inputs. A head's input is read one layer down, at L−1.`,mid:`After attention, where the MLP reads: neuron inputs and attention outputs.`},Fm={R:[`r`,`j`],S:[`s`,`k`]};function Im(e,t){if(e&&e.weights.length>0)return e.weights.length;let n=-1;for(let e of t)for(let t of Object.values(e.layers??{}))for(let e of t)n=Math.max(n,e);return n+1}function Lm(e,t){if(!e||e.weights.length===0)return null;let n=t===`S`?0:1;return e.weights.map(e=>{let t=e[n];return typeof t==`number`&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):0})}function Rm(e,t){let n=-1,r=-1;return e.forEach((e,i)=>{t(e)&&(n<0&&(n=i),r=i)}),n<0?null:{first:n,last:r}}function zm(e,t){let n=Lm(e,t);return n?Rm(n,e=>e>0):null}function Bm(e){return e?e.first===e.last?`L${e.first}`:`L${e.first}–L${e.last}`:``}function Vm(e,t,n){let r=Array.from({length:n},()=>!1),i=Array.from({length:n},()=>null);for(let i of e?.layers?.[t]??[])i>=0&&i=n||typeof o!=`number`||!Number.isFinite(o)||(i[e]=o,a=!0)}return{covered:r,split:i,measured:a}}function Hm(e){let t=0;for(let n of e)for(let e of Object.values(n?.split_half??{}))for(let n of Object.values(e))Number.isFinite(n)&&(t=Math.max(t,Math.abs(n)));return t>0?t:null}function Um(e){let t=e.filter(e=>e!==null&&Number.isFinite(e));if(t.length===0)return``;let n=Math.min(...t).toFixed(2),r=Math.max(...t).toFixed(2);return n===r?n:`${n}–${r}`}function Wm(e){return Bm(Rm(e.covered.map(e=>+!!e),e=>e>0))}var Gm={J:`J-lens`,R:`R-lens`,K:`K-lens`,S:`S-lens`};function Km(e){return e?Gm[e]??e:`Lens`}function qm(e,t){return e&&e!==t?Gm[e]??e:``}function Jm(e){return!e||!Number.isFinite(e)?``:`${e.toLocaleString(`en-US`)} ${e===1?`document`:`documents`}`}function Ym(e){let t=Nm.filter(t=>e?.includes(t));return t.length===2?`out and mid`:t.length===1?`${t[0]} only`:``}function Xm(e,t){return e?.kind===`local`?`local`:e?.repo_id??t?.repo_id??``}function Zm(e,t,n){let r=new Map(e.filter(e=>e.family===n).map(e=>[e.source,e])),i=t.filter(e=>e.family===n).map(e=>({source:e.source,row:r.get(e.source)??null,provider:e})),a=new Set(i.map(e=>e.source));for(let e of r.values())a.has(e.source)||i.push({source:e.source,row:e,provider:null});return i}function Qm(e,t,n){if(!e)return null;let r=t.find(t=>t.source===e)?.family??n.find(t=>t.source===e)?.family;if(r)return r;let i=/^local:([jrks])/.exec(e);return i?i[1]===`j`||i[1]===`r`?`R`:`S`:null}function $m(e){let t=e.target?.closest?.(`[data-layer]`),n=Number(t?.dataset.layer);return Number.isInteger(n)?n:-1}function eh(e){return e?.active===!0&&e.compatible===!1}function th(e,t){if(!e||!t||e.state!==`error`||e.replaceable!==!0)return null;let n=`local:${t.kind}`;return e.source===n?n:null}function nh(e,t,n){let r=Jm(t);return`${e} already holds a lens${r?` over ${r}`:``}. This fit, over ${Jm(n)}, would replace it.`}function rh(e,t,n){let r=(n??``).trim();return e<=0&&r?r.charAt(0).toUpperCase()+r.slice(1):`${e} of ${t} documents`}function ih(e){let t=Number.isFinite(e)&&e>=1?Math.round(e):1,n=[1/8,1/4,1/2,1,2,4,8,16].map(e=>Math.max(1,Math.round(t*e)));return[...new Set(n)]}function ah(e,t,n){if(e.length===0)return t;if(n>0)return e.find(e=>e>t)??e[e.length-1];for(let n=e.length-1;n>=0;--n)if(e[n]at `),sh=I(`
Units
`),ch=I(`Off`),lh=I(``),uh=I(`
`),dh=I(`
`),fh=I(``),ph=I(`
`),mh=I(`
Lens
Probes
Features
Sampling
Sources
`);function hh(e,n){ge(n,!0);let r=e=>{var t=N(),n=G(t),r=e=>{var t=oh(),n=U(X(t)),r=J(n,!0),i=U(n,1,!0);B(t),R(()=>{P(r,M(s).lead?`·`:``),P(i,M(s).text)}),j(e,t)};T(n,e=>{M(s)&&e(r)}),j(e,t)},i=V(Ar),a=V(xs),s=V(()=>Rt.active?t(Rt.tokenText):null),l=V(()=>{let e=Wn.info?.instruments??[],t=t=>e.find(e=>e.family===t)?.source??null,n=e=>ii.sources.find(t=>t.family===e&&t.active===!0)??null,r=t(`lens`),i=ii.sources.find(e=>e.source===r)??null,a=n(`S`);return[{key:`R-lens`,value:r,meta:!(r&&Wn.info?.jlens_fitted===!1)&&!eh(i)?Ym(i?.sites):`not loaded for this model`},{key:`S-lens`,value:a?.source??null,meta:eh(a)?`not loaded for this model`:Ym(a?.sites)},{key:`SAE`,value:t(`sae`),meta:``}]});_e(()=>{ii.sources.length===0&&Wt()});let u=V(()=>Wn.info!==null&&!ua.busy),d=V(()=>Wn.info?To(So()?.signals,wo()?.snapshot.contextTokens??void 0):1),f=V(()=>Ur.temperature??1),p=V(()=>Ur.top_p??1),m=V(()=>Math.min(Ur.max_tokens||512,M(d))),h=V(()=>[{key:`temperature`,id:`sampling-temperature`,label:`Temperature`,help:Do.temperature,min:0,max:Math.max(2,M(f)),step:.05,value:M(f),shown:M(f).toFixed(2)},{key:`top_p`,id:`sampling-top-p`,label:`Top P`,help:Do.topP,min:0,max:1,step:.01,value:M(p),shown:M(p).toFixed(2)},{key:`max_tokens`,id:`sampling-max-tokens`,label:`Max tokens`,help:Do.maxTokens,min:16,max:Math.max(16,Math.min(M(d),Math.max(4096,M(m)))),step:16,value:M(m),shown:String(M(m))}]);function g(e,t){let n=t.valueAsNumber;return Number.isFinite(n)?e===`max_tokens`?Math.max(1,Math.min(M(d),Math.floor(n))):n:null}function _(e,t){let n=g(e,t.currentTarget);n!==null&&Mn(e,n)}async function v(e,t){let n=g(e,t.currentTarget);if(n!==null){Mn(e,n);try{await ar({[e]:n})}catch(e){console.warn(`[sampling] patch failed`,e)}}}let y=V(()=>Wn.info?.supports_thinking??!1),b=V(()=>Wn.info?.thinking_is_optional===!0),x=V(()=>M(y)&&!M(b));function S(e){Mn(`thinking`,e),ar({thinking:e}).catch(e=>console.warn(`[sampling] patch failed`,e))}let C=W(!1);F(()=>{if(!M(C))return;let e=setTimeout(()=>Y(C,!1),1800);return()=>clearTimeout(e)});async function w(){try{await da(!1),Y(C,!0),Pi(`Generation settings reset.`,{kind:`info`})}catch(e){Pi(aa(e,`Settings could not be fully reset. Try again.`),{kind:`error`})}}var E=mh(),D=X(E),k=e=>{var t=sh(),n=X(t),i=U(X(n));r(i),B(n),Yp(U(n,2),{family:`units`}),B(t),j(e,t)};T(D,e=>{M(a)&&e(k)});var A=U(D,2),ee=X(A);r(U(X(ee))),B(ee),ym(U(ee,2),{}),B(A);var te=U(A,2),I=X(te);r(U(X(I))),B(I);var ne=U(I,2);{let e=V(()=>M(a)?`geometry`:void 0);Yp(ne,{get family(){return M(e)}})}B(te);var re=U(te,2),ie=X(re),ae=U(X(ie)),se=e=>{var t=ch();j(e,t)},z=e=>{r(e)};T(ae,e=>{M(i)?e(z,-1):e(se)}),B(ie);var ce=U(ie,2),le=e=>{Am(e,{})},ue=e=>{var t=lh(),n=J(t);L(`click`,n,()=>xi(`artifacts`,`saes`)),j(e,t)};T(ce,e=>{M(i)?e(le):e(ue,-1)}),B(re);var de=U(re,2),fe=U(X(de),2);O(fe,21,()=>M(h),e=>e.key,(e,t)=>{var n=uh(),r=X(n),i=J(r,!0),a=U(r,2);he(a);var o=U(a,2),s=X(o);c(s,{get text(){return M(t).shown}}),B(o),B(n),R(()=>{H(r,`for`,M(t).id),H(r,`data-tip`,M(t).help),P(i,M(t).label),H(a,`id`,M(t).id),H(a,`min`,M(t).min),H(a,`max`,M(t).max),H(a,`step`,M(t).step),oe(a,M(t).value),a.disabled=!M(u),H(a,`aria-valuetext`,M(t).shown)}),L(`input`,a,e=>_(M(t).key,e)),L(`change`,a,e=>void v(M(t).key,e)),j(e,n)}),B(fe);var pe=U(fe,2),me=e=>{var t=dh(),n=X(t),r=X(n);{let e=V(()=>M(x)?!0:Ur.thinking??!1),t=V(()=>M(x)?`Thinking, always on`:`Thinking`),n=V(()=>M(x)?`This model always uses its reasoning phase.`:Do.thinking);o(r,{get checked(){return M(e)},onchange:S,get label(){return M(t)},get hint(){return M(n)}})}B(n),B(t),R(()=>n.inert=!M(u)||M(x)),j(e,t)};T(pe,e=>{M(y)&&e(me)});var ve=U(pe,2),K=X(ve),be=U(K,2),q=e=>{var t=fh();R(()=>t.disabled=!M(u)),L(`click`,t,()=>gi(`system_prompt`)),j(e,t)};T(be,e=>{Wn.info?.is_base_model||e(q)});var xe=U(be,2),Se=X(xe);{let e=V(()=>ua.busy?`Resetting…`:M(C)?`Settings reset`:`Reset to original`);c(Se,{get text(){return M(e)}})}B(xe),B(ve),B(de);var Ce=U(de,2),we=U(X(Ce),2);O(we,21,()=>M(l),e=>e.key,(e,t)=>{var n=ph(),r=X(n),i=J(r,!0),a=U(r,2);let o;var s=J(a,!0),c=U(a,2),l=J(c,!0);B(n),R(()=>{P(i,M(t).key),o=Z(a,1,`sv svelte-gpvd9j`,null,o,{none:!M(t).value}),P(s,M(t).value??`none`),P(l,M(t).meta)}),j(e,n)}),B(we);var Te=U(we,2);B(Ce),B(E),R(()=>{K.disabled=!M(u),xe.disabled=!Sn.info||ua.busy||Q.active}),L(`click`,K,()=>gi(`advanced_sampling`)),L(`click`,xe,()=>void w()),L(`click`,Te,()=>xi(`artifacts`,`lenses`)),j(e,E),ye()}A([`click`,`input`,`change`]);var gh=I(``),_h=I(`·`),vh=I(``),yh=I(``),bh=I(`
`),ky=I(``);function Ay(t,n){ge(n,!0);let i=new Map;function o(e){let t=i.get(e);t&&t.handle!==null&&clearTimeout(t.handle),i.delete(e),Li(e)}function s(e,t){t.remaining<=0?o(e):(t.startedAt=performance.now(),t.paused=!1,t.handle=setTimeout(()=>o(e),t.remaining))}function c(e){let t=i.get(e);t&&!t.paused&&t.handle!==null&&(clearTimeout(t.handle),t.handle=null,t.remaining=Math.max(0,t.remaining-(performance.now()-t.startedAt)),t.paused=!0)}function l(e){let t=i.get(e);t&&t.paused&&s(e,t)}F(()=>{for(let e of ji.entries){if(e.ttlMs===null||i.has(e.id))continue;let t={handle:null,remaining:e.ttlMs,startedAt:0,paused:!1};i.set(e.id,t),s(e.id,t)}let e=new Set(ji.entries.map(e=>e.id));for(let[t,n]of i)e.has(t)||(n.handle!==null&&clearTimeout(n.handle),i.delete(t))}),Se(()=>{for(let e of i.values())e.handle!==null&&clearTimeout(e.handle);i.clear()});var u=N(),d=G(u),f=t=>{var n=ky();O(n,21,()=>ji.entries,e=>e.id,(t,n)=>{var i=Oy();let s;var u=X(i),d=X(u),f=J(d,!0),p=U(d,2),m=e=>{var t=Dy(),r=J(t,!0);R(()=>P(r,M(n).detail)),j(e,t)};T(p,e=>{M(n).detail&&e(m)}),B(u);var h=U(u,2),g=X(h);e(g,{name:`close`}),B(h),B(i),R(()=>{s=Z(i,1,`toast svelte-3r7513`,null,s,{warning:M(n).kind===`warning`,error:M(n).kind===`error`}),H(i,`role`,M(n).kind===`error`?`alert`:`status`),H(i,`aria-live`,M(n).kind===`error`?`assertive`:`polite`),P(f,M(n).message),H(h,`aria-label`,`Dismiss notification: ${M(n).message}`)}),ae(`pointerenter`,i,()=>c(M(n).id)),ae(`pointerleave`,i,()=>l(M(n).id)),L(`focusin`,i,()=>c(M(n).id)),L(`focusout`,i,e=>{e.currentTarget.contains(e.relatedTarget)||l(M(n).id)}),L(`click`,h,()=>o(M(n).id)),Te(1,i,()=>a),Te(2,i,()=>r),j(t,i)}),B(n),j(t,n)};T(d,e=>{ji.entries.length>0&&e(f)}),j(t,u),ye()}A([`focusin`,`focusout`,`click`]);var jy=I(`
`);function My(e,t){ge(t,!0);let n=null,r=Promise.resolve(),i=!1;async function a(){if(n!==null&&clearTimeout(n),n=null,!$.loaded||Q.active)return r;let e;try{e=la()}catch(e){throw ha.status=`error`,ha.error=aa(e,`The chat could not be autosaved. Keep this page open and download a backup.`),e}let t=ha.activeId,a=Wn.info?.is_base_model?`base`:`chat`;ha.status=`saving`;let o=r.catch(()=>void 0).then(async()=>{try{let n=await ga.autosave(e,t,a);if(n===null?Ko(e):Yo(),i||$.root_id!==e.tree.root_id||ha.activeId!==t)return;ha.activeId=n?.id??null,ha.avatarSeed=n?.avatarSeed??null,ha.accent=n?.accent??`purple`,ha.status=n?`saved`:`idle`,ha.error=null}catch(e){throw i||(ha.status=`error`,ha.error=aa(e,`Autosave failed. Keep this page open and use Save chat to download a backup.`)),e}});return r=o,o}F(()=>{$.rev,$.loaded,Q.active,n!==null&&clearTimeout(n),n=null,$.loaded&&!Q.active&&Ti.open!==`load_conversation`&&(JSON.stringify(Ur),JSON.stringify([...cn.entries]),cn.subspaceAlong,cn.readOnlyRecipe,JSON.stringify(Qr.active.map(e=>Qr.entries.get(e)?.request)),Qr.sortMode,JSON.stringify(ln),ee(()=>{ha.status=`pending`}),n=setTimeout(()=>{a().catch(()=>void 0)},600))});function o(){if((n!==null||ha.status===`saving`)&&$.loaded&&!Q.active)try{Ko(sa())}catch{}}_e(()=>{i=!1;let e=fa(a),t=()=>{document.hidden&&(o(),a().catch(()=>void 0))};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`pagehide`,o),()=>{a().catch(()=>void 0),i=!0,e(),document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pagehide`,o)}});var s=N(),c=G(s),l=e=>{var t=jy(),n=X(t),r=J(n,!0),i=U(n,2),o=U(i,2);B(t),R(()=>P(r,ha.error)),L(`click`,i,()=>void a().catch(()=>void 0)),L(`click`,o,()=>gi(`save_conversation`)),j(e,t)};T(c,e=>{ha.status===`error`&&e(l)}),j(e,s),ye()}A([`click`]);var Ny=[`running`,`waiting`,`cancelling`];function Py(e,t){if(Ny.includes(e.status))return{note:[e.phase===`generating`&&e.fitAfterwards?`Step 1 of 2`:e.fitAfterwards?`Step 2 of 2`:``,t?`Keep this tab open`:``].filter(Boolean).join(` · `),tip:``};if(e.status!==`complete`)return{note:`Saved concept groups are kept`,tip:`Reopen the creator or library to try again`};switch(e.phase){case`generating`:return{note:``,tip:`Fit them from the library when ready`};case`scoring`:return{note:``,tip:`The template lab shows each answer's sum and mean probability`};case`installing`:return{note:``,tip:`Check its model fits before steering or probing`};default:return{note:`Saved and ready to steer or probe.`,tip:``}}}var Fy=I(``),Iy=I(``),Ly=I(``),Ry=I(` `,1),zy=I(`
`),By=I(`
`),Vy=I(`
`),Hy=I(`
`,1);function Uy(e,t){ge(t,!0);let n=q(t,`compact`,3,!1),r=W(z(Date.now())),i=V(()=>pi.current),a=V(()=>M(i)!==null&&[`running`,`waiting`,`cancelling`].includes(M(i).status)),o=V(()=>M(i)?.progress.completed!==null&&M(i)?.progress.total?M(i).progress.completed/M(i).progress.total:null),s=V(()=>M(i)&&M(a)?hi(M(i).samples,M(i).progress.total,M(r)):null),c=V(()=>M(i)?.status===`failed`?`Creation needs attention`:M(i)?.status===`cancelled`?`Creation cancelled`:M(i)?.status===`cancelling`?`Cancelling…`:M(i)?.progress.label??``),l=V(()=>M(i)?.status===`waiting`?`Fitting starts next`:M(i)?.status===`cancelling`?`Waiting for the current step to stop`:M(a)?M(s)===null?`Estimating this step…`:`${di(M(s))} in this step`:``),u=Vi.mode!==`http`,d=V(()=>M(i)?Py(M(i),u):{note:``,tip:``}),f=V(()=>M(i)?`${M(i).namespace}/${M(i).name}: ${M(c)}${M(a)&&M(o)!==null?`, ${Math.floor(M(o)*10)*10}% of this step`:``}`:``);F(()=>{if(!M(a))return;Y(r,Date.now(),!0);let e=setInterval(()=>{Y(r,Date.now(),!0)},1e3);return()=>clearInterval(e)});async function p(){try{await fi()}catch(e){Pi(`Could not cancel: ${Po(e)}`,{kind:`error`})}}function m(){M(i)&&(M(i).phase===`scoring`?gi(`template_lab`):gi(pt(cn.catalog.find(e=>e.namespace===M(i).namespace&&e.name===M(i).name))))}var h=Hy(),g=G(h),_=J(g,!0),v=U(g,2),y=e=>{var t=Vy();let s;var u=X(t),f=X(u),h=X(f),g=J(h,!0),_=U(h),v=J(_);B(f);var y=U(f,2),b=e=>{var t=Fy(),n=X(t);let r;B(t),R(e=>{H(t,`aria-label`,M(i).phase===`generating`?`Examples generated`:M(i).progress.label),H(t,`aria-valuenow`,e),H(t,`aria-valuetext`,M(o)===null?M(c):`${M(i).progress.completed} of ${M(i).progress.total} completed in this step`),r=we(n,``,r,{transform:`scaleX(${M(o)??0})`})},[()=>M(o)===null?void 0:Math.floor(M(o)*100)]),j(e,t)};T(y,e=>{(M(a)||M(i).status===`complete`)&&e(b)});var x=U(y,2),S=J(x,!0),C=U(x,2),w=e=>{var t=Iy(),n=J(t,!0);R(()=>P(n,M(l))),j(e,t)};T(C,e=>{M(l)&&e(w)});var E=U(C,2),D=J(E),O=U(E,2),k=X(O),A=e=>{var t=Ly();R(()=>t.disabled=M(i).status!==`running`),L(`click`,t,()=>void p()),j(e,t)},ee=e=>{var t=Ry(),n=G(t),r=U(n,2);R(()=>H(n,`data-tip`,M(d).tip||void 0)),L(`click`,n,m),L(`click`,r,function(...e){mi?.apply(this,e)}),j(e,t)};T(k,e=>{M(a)&&M(i).cancellable?e(A):M(a)||e(ee,1)}),B(O),B(u);var N=U(u,2),te=e=>{var t=zy(),n=J(t,!0);R(()=>P(n,M(i).error)),j(e,t)};T(N,e=>{M(i).error&&e(te)});var F=U(N,2),I=e=>{var t=By(),n=J(t,!0);R(()=>P(n,M(d).note)),j(e,t)};T(F,e=>{M(d).note&&e(I)}),B(t),R(e=>{s=Z(t,1,`job svelte-qepu2a`,null,s,{compact:n()}),H(t,`aria-label`,`Creation progress for ${M(i).namespace}/${M(i).name}`),P(g,M(c)),P(v,`${M(i).namespace??``}/${M(i).name??``}`),P(S,M(i).progress.completed!==null&&M(i).progress.total!==null?`${M(i).progress.completed} / ${M(i).progress.total} ${M(i).phase===`generating`?`examples`:`completed`}`:M(i).progress.detail),P(D,`${e??``} elapsed`)},[()=>ui((M(i).finishedAt??M(r))-M(i).startedAt)]),j(e,t)};T(v,e=>{M(i)&&e(y)}),R(()=>P(_,M(f))),j(e,h),ye()}A([`click`]);var Wy=I(``),Gy=I(``),Ky=I(`
`);function N(r,u){y(u,!0);let N=v(``),P=h(ae),F=v(``),I=v(`inherit`),L=v(null),R=v(null),z=v(null),B=v(!1),V=v(null),H=v(null),U=null,W=null,G=h(()=>O.info?.default_user_role??`user`),K=h(()=>O.info?.default_assistant_role??`assistant`),q=h(()=>[...new Set([a(G),a(K),oe.user_role.trim(),oe.assistant_role.trim()].filter(Boolean))]),J=h(()=>{let e=new Map;for(let[t,n]of Object.entries(D.roster)){let r=t===`user`?a(G):t===`assistant`?a(K):t;e.get(r)&&t!==`user`&&t!==`assistant`||e.set(r,{key:t,label:r,member:n})}for(let t of a(q)){if(e.has(t))continue;let n=t===a(G)?`user`:t===a(K)?`assistant`:t;e.set(t,{key:n,label:t,member:D.roster[n]??null})}let t=a(q).map(t=>e.get(t)).filter(e=>e!==void 0),n=[...e.values()].filter(e=>!a(q).includes(e.label)).sort((e,t)=>e.label.localeCompare(t.label));return[...t,...n]}),Y=h(()=>a(z)?D.roster[a(z)]??null:null),X=h(()=>a(z)!==null&&(a(N).trim()!==(a(Y)?.recipe?.steering??``)||a(F).trim()!==(a(Y)?.notes??``)||a(I)!==(typeof a(Y)?.recipe?.thinking==`boolean`?String(a(Y).recipe.thinking):`inherit`)||a(L)!==(a(Y)?.recipe?.seed??null))),Te=h(()=>a(B)?`Saving…`:a(X)?`Changes save automatically`:a(H)===a(z)?`Saved`:`Changes save automatically`);function Ee(e){S(R,e.label,!0),S(z,e.key,!0),S(N,e.member?.recipe?.steering??``,!0),S(F,e.member?.notes??``,!0),S(I,typeof e.member?.recipe?.thinking==`boolean`?String(e.member.recipe.thinking):`inherit`,!0),S(L,e.member?.recipe?.seed??null,!0),S(V,null)}te(()=>de({read:()=>({busy:a(B)||U!==null,dirty:a(X),values:{label:a(z),steering:a(N),thinking:a(I),seed:a(L),notes:a(F)}}),sync:()=>{let e=a(J).find(e=>e.key===a(z));e?Ee(e):(S(N,``),S(F,``),S(I,`inherit`),S(L,null))}}));function Z(){U!==null&&(clearTimeout(U),U=null)}function Q(){S(V,null),S(H,null),Z(),U=setTimeout(()=>{U=null,$()},450)}l(()=>{let e=a(J);a(z)!==null&&e.some(e=>e.key===a(z))||e[0]&&Ee(e[0])});async function $(){if(Z(),W&&!await W)return!1;let e=a(z);if(!e||!a(X))return!0;let t=a(R),n=a(N).trim(),r=a(F).trim(),i=a(I)===`inherit`?null:a(I)===`true`,o=a(L);S(B,!0),S(V,null);let s=(async()=>{try{let t=await E.castPut(e,{steering:n===``?null:n,notes:r,thinking:i,seed:o});return D.roster={...D.roster,[e]:t.member},a(z)===e&&S(H,e,!0),!0}catch(e){return S(V,se(e,`Unable to save ${t??`this role`}. Check the fields and try again.`),!0),!1}finally{S(B,!1)}})();W=s;let c=await s;return W===s&&(W=null),c&&a(z)===e&&a(X)?$():c}async function De(e){e.key!==a(z)&&await $()&&Ee(e)}async function Oe(){await $()&&k()}async function ke(e){try{await E.castDelete(e);let t={...D.roster};delete t[e],D.roster=t,a(z)===e&&(S(N,``),S(F,``),S(I,`inherit`),S(L,null),S(H,null))}catch(e){ce(se(e,`Unable to remove this speaker. Try again.`),{kind:`error`})}}async function Ae(){Z(),(!W||await W)&&a(z)&&await ke(a(z))}C(()=>{Z(),a(X)&&$()});var je=we(),Me=w(je),Ne=w(Me),Pe=w(Ne),Fe=_(w(Pe),2);e(Fe,{icon:`close`,label:`Close`,onclick:()=>void Oe()}),m(Pe);var Ie=_(Pe,2);n(Ie,21,()=>a(J),e=>e.label,(e,n)=>{var r=M();let o;var c=w(r),l=w(c);let u;var f=_(l,2),v=w(f),ee=x(v,!0),y=_(v,2),te=e=>{var t=_e();i(e,t)},ne=h(()=>a(n).member?.recipe&&Object.keys(a(n).member.recipe).length>0),b=e=>{var t=A();i(e,t)};t(y,e=>{a(ne)?e(te):e(b,-1)});var S=_(y,2),C=e=>{var t=j(),r=x(t,!0);p(()=>s(r,a(n).member.notes)),i(e,t)};t(S,e=>{a(n).member?.notes&&e(C)}),m(f),m(c),m(r),p(()=>{o=T(r,1,`member svelte-2ivmxu`,null,o,{editing:a(z)===a(n).key}),g(c,`aria-pressed`,a(z)===a(n).key),u=T(l,1,`dw-pip`,null,u,{"is-model":a(n).label===`assistant`}),s(ee,a(n).label)}),d(`click`,c,()=>void De(a(n))),i(e,r)}),m(Ie),m(Ne);var Le=_(Ne,2),Re=e=>{var r=Ce(),l=w(r),u=w(l),v=x(u,!0),y=_(u,2),te=x(y,!0);m(l);var b=_(l,2),C=w(b),E=_(C,2);let D;var ae=w(E),oe=e=>{var r=o(),l=ne(r);n(l,17,()=>ie(a(N)),c,(e,n,r)=>{var o=ye(),c=ne(o),l=e=>{var t=ve();i(e,t)};t(c,e=>{r&&e(l)});var u=_(c,1,!0);p(()=>s(u,a(n))),i(e,o)}),i(e,r)},se=e=>{var t=f(`None`);i(e,t)};t(ae,e=>{a(N)?e(oe):e(se,-1)}),m(E);var ce=_(E,2),k=w(ce),de=_(k,2),_e=e=>{var t=be();d(`click`,t,()=>{S(N,``),Q()}),i(e,t)};t(de,e=>{a(N)&&e(_e)}),m(ce),m(b);var A=_(b,2),j=w(A),M=w(j),we=_(M,2);{let e=h(()=>!O.info?.supports_thinking||!O.info?.thinking_is_optional),t=h(()=>`Thinking default for ${a(R)}`);ge(we,{get value(){return a(I)},options:[{value:`inherit`,label:`Reply setting`},{value:`true`,label:`On`},{value:`false`,label:`Off`}],get disabled(){return a(e)},get ariaLabel(){return a(t)},onchange:e=>{S(I,e,!0),Q()}})}m(j);var z=_(j,2),H=w(z),U=_(H,2);{let e=h(()=>fe(me().mode)),t=h(()=>`Seed default for ${a(R)}`);he(U,{get value(){return a(L)},get min(){return a(e)},get max(){return pe},step:1,allowEmpty:!0,placeholder:`Reply setting`,get ariaLabel(){return a(t)},onchange:e=>{S(L,e===null?null:Math.floor(e),!0),Q()}})}m(z),m(A);var W=_(A,2),G=_(w(W),2);ee(G),m(W);var K=_(W,2),q=e=>{var t=xe(),n=x(t,!0);p(()=>s(n,a(V))),i(e,t)};t(K,e=>{a(V)&&e(q)});var J=_(K,2),X=e=>{var t=Se(),n=x(t);p(()=>n.disabled=a(B)),d(`click`,n,()=>void Ae()),i(e,t)};t(J,e=>{a(Y)?.origin===`configured`&&e(X)}),m(r),p(()=>{s(v,a(R)),s(te,a(Te)),g(C,`data-tip`,ue.cast),D=T(E,1,`cast-recipe svelte-2ivmxu`,null,D,{none:!a(N)}),g(E,`aria-label`,`Steering for ${a(R)}`),k.disabled=!a(P)||a(P)===a(N),g(k,`data-tip`,a(P)?`Steer ${a(R)}'s turns with the recipe's chips: ${a(P)}`:`The recipe has no terms; add some with + Steer`),g(M,`data-tip`,le.thinking),g(H,`data-tip`,le.seed)}),d(`click`,k,()=>{S(N,a(P),!0),Q()}),d(`input`,G,Q),re(G,()=>a(F),e=>S(F,e)),i(e,r)};t(Le,e=>{a(z)&&a(R)&&e(Re)}),m(Me),m(je),i(r,je),b()}r([`click`,`input`]);export{N as default};
\ No newline at end of file
+import{p as e}from"./src-DWTrC_D-.js";import{A as t,D as n,H as r,I as i,K as a,L as o,N as s,O as c,Q as l,R as u,U as d,V as f,Z as p,bt as m,dt as h,h as g,it as _,lt as v,m as ee,mt as y,n as te,nt as ne,pt as b,rt as x,st as S,t as C,tt as w,u as re,y as T}from"./index-client-B2jUARBN.js";import{Vi as E,X as D,gn as ie,i as O,jt as ae,u as oe}from"./session.svelte-DG7XfPv3.js";import{t as se}from"./userFacingError-DNBzS3_o.js";import"./stores.svelte-Cf8e_r1G.js";import{m as ce}from"./selection.svelte-BIYbgTnf.js";import{t as k}from"./drawers.svelte-kEXNcFnO.js";import{n as le,t as ue}from"./parameterHelp-DIx0MhMz.js";import{l as de}from"./workspaceController-C2L33e3m.js";import{a as fe,n as pe}from"./samplingCapabilities-DM6eoDoc.js";import{r as me}from"./registry-CQv71XNh.js";import{t as he}from"./NumberInput-DKXkismd.js";import{t as ge}from"./Select-D_bUUsaw.js";var _e=u(`standing recipe`),A=u(`reply settings`),j=u(``),M=u(``),ve=u(``),ye=u(` `,1),be=u(``),xe=u(`
`),Se=u(``),Ce=u(`
Steering
Thinking
Seed
`),we=u(`
Conversation roles
`);function N(r,u){y(u,!0);let N=v(``),P=h(ae),F=v(``),I=v(`inherit`),L=v(null),R=v(null),z=v(null),B=v(!1),V=v(null),H=v(null),U=null,W=null,G=h(()=>O.info?.default_user_role??`user`),K=h(()=>O.info?.default_assistant_role??`assistant`),q=h(()=>[...new Set([a(G),a(K),oe.user_role.trim(),oe.assistant_role.trim()].filter(Boolean))]),J=h(()=>{let e=new Map;for(let[t,n]of Object.entries(D.roster)){let r=t===`user`?a(G):t===`assistant`?a(K):t;e.get(r)&&t!==`user`&&t!==`assistant`||e.set(r,{key:t,label:r,member:n})}for(let t of a(q)){if(e.has(t))continue;let n=t===a(G)?`user`:t===a(K)?`assistant`:t;e.set(t,{key:n,label:t,member:D.roster[n]??null})}let t=a(q).map(t=>e.get(t)).filter(e=>e!==void 0),n=[...e.values()].filter(e=>!a(q).includes(e.label)).sort((e,t)=>e.label.localeCompare(t.label));return[...t,...n]}),Y=h(()=>a(z)?D.roster[a(z)]??null:null),X=h(()=>a(z)!==null&&(a(N).trim()!==(a(Y)?.recipe?.steering??``)||a(F).trim()!==(a(Y)?.notes??``)||a(I)!==(typeof a(Y)?.recipe?.thinking==`boolean`?String(a(Y).recipe.thinking):`inherit`)||a(L)!==(a(Y)?.recipe?.seed??null))),Te=h(()=>a(B)?`Saving…`:a(X)?`Changes save automatically`:a(H)===a(z)?`Saved`:`Changes save automatically`);function Ee(e){S(R,e.label,!0),S(z,e.key,!0),S(N,e.member?.recipe?.steering??``,!0),S(F,e.member?.notes??``,!0),S(I,typeof e.member?.recipe?.thinking==`boolean`?String(e.member.recipe.thinking):`inherit`,!0),S(L,e.member?.recipe?.seed??null,!0),S(V,null)}te(()=>de({read:()=>({busy:a(B)||U!==null,dirty:a(X),values:{label:a(z),steering:a(N),thinking:a(I),seed:a(L),notes:a(F)}}),sync:()=>{let e=a(J).find(e=>e.key===a(z));e?Ee(e):(S(N,``),S(F,``),S(I,`inherit`),S(L,null))}}));function Z(){U!==null&&(clearTimeout(U),U=null)}function Q(){S(V,null),S(H,null),Z(),U=setTimeout(()=>{U=null,$()},450)}l(()=>{let e=a(J);a(z)!==null&&e.some(e=>e.key===a(z))||e[0]&&Ee(e[0])});async function $(){if(Z(),W&&!await W)return!1;let e=a(z);if(!e||!a(X))return!0;let t=a(R),n=a(N).trim(),r=a(F).trim(),i=a(I)===`inherit`?null:a(I)===`true`,o=a(L);S(B,!0),S(V,null);let s=(async()=>{try{let t=await E.castPut(e,{steering:n===``?null:n,notes:r,thinking:i,seed:o});return D.roster={...D.roster,[e]:t.member},a(z)===e&&S(H,e,!0),!0}catch(e){return S(V,se(e,`Unable to save ${t??`this role`}. Check the fields and try again.`),!0),!1}finally{S(B,!1)}})();W=s;let c=await s;return W===s&&(W=null),c&&a(z)===e&&a(X)?$():c}async function De(e){e.key!==a(z)&&await $()&&Ee(e)}async function Oe(){await $()&&k()}async function ke(e){try{await E.castDelete(e);let t={...D.roster};delete t[e],D.roster=t,a(z)===e&&(S(N,``),S(F,``),S(I,`inherit`),S(L,null),S(H,null))}catch(e){ce(se(e,`Unable to remove this speaker. Try again.`),{kind:`error`})}}async function Ae(){Z(),(!W||await W)&&a(z)&&await ke(a(z))}C(()=>{Z(),a(X)&&$()});var je=we(),Me=w(je),Ne=w(Me),Pe=w(Ne),Fe=_(w(Pe),2);e(Fe,{icon:`close`,label:`Close`,onclick:()=>void Oe()}),m(Pe);var Ie=_(Pe,2);n(Ie,21,()=>a(J),e=>e.label,(e,n)=>{var r=M();let o;var c=w(r),l=w(c);let u;var f=_(l,2),v=w(f),ee=x(v,!0),y=_(v,2),te=e=>{var t=_e();i(e,t)},ne=h(()=>a(n).member?.recipe&&Object.keys(a(n).member.recipe).length>0),b=e=>{var t=A();i(e,t)};t(y,e=>{a(ne)?e(te):e(b,-1)});var S=_(y,2),C=e=>{var t=j(),r=x(t,!0);p(()=>s(r,a(n).member.notes)),i(e,t)};t(S,e=>{a(n).member?.notes&&e(C)}),m(f),m(c),m(r),p(()=>{o=T(r,1,`member svelte-2ivmxu`,null,o,{editing:a(z)===a(n).key}),g(c,`aria-pressed`,a(z)===a(n).key),u=T(l,1,`dw-pip`,null,u,{"is-model":a(n).label===`assistant`}),s(ee,a(n).label)}),d(`click`,c,()=>void De(a(n))),i(e,r)}),m(Ie),m(Ne);var Le=_(Ne,2),Re=e=>{var r=Ce(),l=w(r),u=w(l),v=x(u,!0),y=_(u,2),te=x(y,!0);m(l);var b=_(l,2),C=w(b),E=_(C,2);let D;var ae=w(E),oe=e=>{var r=o(),l=ne(r);n(l,17,()=>ie(a(N)),c,(e,n,r)=>{var o=ye(),c=ne(o),l=e=>{var t=ve();i(e,t)};t(c,e=>{r&&e(l)});var u=_(c,1,!0);p(()=>s(u,a(n))),i(e,o)}),i(e,r)},se=e=>{var t=f(`None`);i(e,t)};t(ae,e=>{a(N)?e(oe):e(se,-1)}),m(E);var ce=_(E,2),k=w(ce),de=_(k,2),_e=e=>{var t=be();d(`click`,t,()=>{S(N,``),Q()}),i(e,t)};t(de,e=>{a(N)&&e(_e)}),m(ce),m(b);var A=_(b,2),j=w(A),M=w(j),we=_(M,2);{let e=h(()=>!O.info?.supports_thinking||!O.info?.thinking_is_optional),t=h(()=>`Thinking default for ${a(R)}`);ge(we,{get value(){return a(I)},options:[{value:`inherit`,label:`Reply setting`},{value:`true`,label:`On`},{value:`false`,label:`Off`}],get disabled(){return a(e)},get ariaLabel(){return a(t)},onchange:e=>{S(I,e,!0),Q()}})}m(j);var z=_(j,2),H=w(z),U=_(H,2);{let e=h(()=>fe(me().mode)),t=h(()=>`Seed default for ${a(R)}`);he(U,{get value(){return a(L)},get min(){return a(e)},get max(){return pe},step:1,allowEmpty:!0,placeholder:`Reply setting`,get ariaLabel(){return a(t)},onchange:e=>{S(L,e===null?null:Math.floor(e),!0),Q()}})}m(z),m(A);var W=_(A,2),G=_(w(W),2);ee(G),m(W);var K=_(W,2),q=e=>{var t=xe(),n=x(t,!0);p(()=>s(n,a(V))),i(e,t)};t(K,e=>{a(V)&&e(q)});var J=_(K,2),X=e=>{var t=Se(),n=x(t);p(()=>n.disabled=a(B)),d(`click`,n,()=>void Ae()),i(e,t)};t(J,e=>{a(Y)?.origin===`configured`&&e(X)}),m(r),p(()=>{s(v,a(R)),s(te,a(Te)),g(C,`data-tip`,ue.cast),D=T(E,1,`cast-recipe svelte-2ivmxu`,null,D,{none:!a(N)}),g(E,`aria-label`,`Steering for ${a(R)}`),k.disabled=!a(P)||a(P)===a(N),g(k,`data-tip`,a(P)?`Steer ${a(R)}'s turns with the recipe's chips: ${a(P)}`:`The recipe has no terms; add some with + Steer`),g(M,`data-tip`,le.thinking),g(H,`data-tip`,le.seed)}),d(`click`,k,()=>{S(N,a(P),!0),Q()}),d(`input`,G,Q),re(G,()=>a(F),e=>S(F,e)),i(e,r)};t(Le,e=>{a(z)&&a(R)&&e(Re)}),m(Me),m(je),i(r,je),b()}r([`click`,`input`]);export{N as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/CompareDrawer-D4OhevHO.js b/drowse/web/dist/assets/CompareDrawer-BC3-4KYB.js
similarity index 91%
rename from drowse/web/dist/assets/CompareDrawer-D4OhevHO.js
rename to drowse/web/dist/assets/CompareDrawer-BC3-4KYB.js
index a2d8876ee..04f77a753 100644
--- a/drowse/web/dist/assets/CompareDrawer-D4OhevHO.js
+++ b/drowse/web/dist/assets/CompareDrawer-BC3-4KYB.js
@@ -1 +1 @@
-import{f as e,p as t}from"./src-D3ehkdzy.js";import{A as n,D as r,H as i,I as a,K as o,N as s,Q as c,R as l,U as u,W as d,Z as f,bt as p,dt as m,et as h,h as g,it as _,lt as v,mt as y,n as b,nt as x,p as S,pt as C,rt as w,st as T,tt as E,v as ee,yt as D}from"./index-client-B2jUARBN.js";import{t as O}from"./errors-JtXkE1b1.js";import{d as k}from"./workspaceController-C2L33e3m.js";import{l as te}from"./interfaceSchemas-CEzHSS8w.js";import{t as ne}from"./types-CuMUbvHW.js";import{$t as re,Bt as ie,Ri as ae,x as A}from"./session.svelte-Dafz5mOy.js";import{t as oe}from"./drawers.svelte-BBPH3jMg.js";import{r as se}from"./registry-CQv71XNh.js";import{t as j}from"./userFacingError-Dn4DmQRG.js";import{n as ce,t as le}from"./HeatmapCell-DE4okENH.js";import"./stores.svelte-BvABcOLl.js";import{t as ue}from"./Select-BAEK04xt.js";var de=l(` × × layers`,1),fe=l(``),pe=l(`
`),me=l(`
`),he=l(`
Nothing to compare yet
`),ge=l(`
`),_e=l(`
`),ve=l(`
`),ye=l(`
`,1),be=l(``);function M(i,l){y(l,!0);let M=se().mode===`http`,N=m(()=>ce(re.names,A.active,A.entries,M)),P=v(``),F=v(``),I=m(()=>o(N).length===0?[{value:``,label:`(empty)`}]:o(N).map(e=>({value:e,label:e}))),L=v(null),R=v(!1),z=v(null);c(()=>{ie().catch(()=>{})}),c(()=>{o(N).length===0?(T(P,``),T(F,``)):(o(P)&&o(N).includes(o(P))||T(P,o(N)[0],!0),o(F)&&o(N).includes(o(F))||T(F,o(N).find(e=>e!==o(P))??o(P),!0))});async function xe(e,t){if(!e||!t)T(L,null);else{T(R,!0),T(z,null);try{T(L,await ae.pairwise(e,t),!0)}catch(e){if(e instanceof O){let t=e.body&&typeof e.body==`object`&&`detail`in e.body?String(e.body.detail):e.message;T(z,j(e,`Unable to compare these directions. ${t}`),!0)}else T(z,j(e,`Unable to compare these directions. Try again.`),!0);T(L,null)}finally{T(R,!1)}}}c(()=>{xe(o(P),o(F))});function B(e,t,n){return`${o(P)} L${e} × ${o(F)} L${t}: ${n==null?`-`:n.toFixed(3)}`}function V(){oe()}function Se(e){e.key===`Escape`&&(e.preventDefault(),V())}let H=v(`Select a cell to inspect its value`),U=m(()=>o(L)?.matrix??null),W=m(()=>o(L)?.layers_a??[]),G=m(()=>o(L)?.layers_b??[]);b(()=>k(`profile_compare`,{schema:te,read:()=>({busy:!1,values:{profile_a:o(P),profile_b:o(F)},available_profiles:o(N),loading:o(R),error:o(z)}),update:async e=>{for(let t of[`profile_a`,`profile_b`])if(e[t]!==void 0&&!o(N).includes(e[t]))throw new ne(`NOT_FOUND`,`Choose a profile from available_profiles.`);e.profile_a!==void 0&&T(P,e.profile_a,!0),e.profile_b!==void 0&&T(F,e.profile_b,!0)}}));var K=be();d(`keydown`,h,Se);var q=E(K),J=E(q),Y=_(E(J),2),Ce=E(Y),we=e=>{var t=de(),n=x(t),r=E(n),i=w(r,!0),c=_(r,2),l=w(c,!0);p(n);var u=_(n,2),d=E(u),m=w(d,!0),h=_(d,2),g=w(h,!0);D(),p(u);var v=_(u,2),y=w(v,!0);f(()=>{s(i,o(P)),s(l,o(F)),s(m,o(W).length),s(g,o(G).length),s(y,o(L).model??`-`)}),a(e,t)},Te=e=>{var t=fe(),n=w(t,!0);f(()=>s(n,o(N).length<2?`Needs two controls`:`Choose two controls`)),a(e,t)};n(Ce,e=>{o(L)?e(we):e(Te,-1)}),p(Y),p(J);var Ee=_(J,2);t(Ee,{icon:`close`,label:`Close`,onclick:V}),p(q);var X=_(q,2),Z=E(X),De=_(E(Z),2);{let e=m(()=>o(N).length===0);ue(De,{get options(){return o(I)},get disabled(){return o(e)},ariaLabel:`Concept A`,get value(){return o(P)},set value(e){T(P,e,!0)}})}p(Z);var Q=_(Z,2),Oe=_(E(Q),2);{let e=m(()=>o(N).length===0);ue(Oe,{get options(){return o(I)},get disabled(){return o(e)},ariaLabel:`Concept B`,get value(){return o(F)},set value(e){T(F,e,!0)}})}p(Q),p(X);var $=_(X,2),ke=E($),Ae=e=>{var t=pe(),n=w(t);f(()=>s(n,`Comparison failed: ${o(z)??``}`)),a(e,t)},je=e=>{var t=me();a(e,t)},Me=e=>{var t=he();a(e,t)},Ne=t=>{var n=ye(),i=x(n),c=E(i);e(c,{get text(){return o(H)},numbers:!1}),p(i);var l=_(i,2),h=E(l);ee(h,`--cell: 26px;`);var v=E(h),y=E(v),b=E(y),C=E(b),D=w(C);p(b);var O=_(b);r(O,16,()=>o(G),e=>e,(e,t)=>{var n=ge();S(n,()=>({class:`col-label`,scope:`col`,"aria-description":o(F)+` L`+t}),void 0,void 0,void 0,`svelte-ox6jpy`);var r=E(n),i=w(r);p(n),f(()=>s(i,`L${t??``}`)),a(e,n)}),p(y),p(v);var k=_(v);r(k,22,()=>o(W),e=>e,(e,t,n)=>{var i=ve(),c=E(i);S(c,()=>({class:`row-label`,scope:`row`,"aria-description":o(P)+` L`+t}),void 0,void 0,void 0,`svelte-ox6jpy`);var l=w(c),h=_(c);r(h,18,()=>o(G),e=>e,(e,r,i)=>{let s=m(()=>o(U)[o(n)]?.[o(i)]??null);var c=_e(),l=E(c),h=E(l);{let e=m(()=>B(t,r,o(s)));le(h,{get value(){return o(s)},size:26,get title(){return o(e)}})}p(l),p(c),f(e=>g(l,`aria-label`,e),[()=>B(t,r,o(s))]),d(`pointerenter`,l,()=>T(H,B(t,r,o(s)),!0)),d(`focus`,l,()=>T(H,B(t,r,o(s)),!0)),u(`click`,l,()=>T(H,B(t,r,o(s)),!0)),a(e,c)}),p(i),f(()=>s(l,`L${t??``}`)),a(e,i)}),p(k),p(h),p(l),f(()=>s(D,`${o(P)??``} by ${o(F)??``}`)),a(t,n)};n(ke,e=>{o(z)?e(Ae):o(R)&&!o(U)?e(je,1):!o(U)||o(W).length===0||o(G).length===0?e(Me,2):e(Ne,-1)}),p($),p(K),f(()=>g($,`aria-busy`,o(R))),a(i,K),C()}i([`click`]);export{M as default};
\ No newline at end of file
+import{f as e,p as t}from"./src-DWTrC_D-.js";import{A as n,D as r,H as i,I as a,K as o,N as s,Q as c,R as l,U as u,W as d,Z as f,bt as p,dt as m,et as h,h as g,it as _,lt as v,mt as y,n as b,nt as x,p as S,pt as C,rt as w,st as T,tt as E,v as ee,yt as D}from"./index-client-B2jUARBN.js";import{t as O}from"./errors-D9jT6Fvg.js";import{d as k}from"./workspaceController-C2L33e3m.js";import{l as te}from"./interfaceSchemas-CEzHSS8w.js";import{t as ne}from"./types-CuMUbvHW.js";import{$t as re,Bt as ie,Ri as ae,x as A}from"./session.svelte-DG7XfPv3.js";import{t as oe}from"./drawers.svelte-kEXNcFnO.js";import{r as se}from"./registry-CQv71XNh.js";import{t as j}from"./userFacingError-DNBzS3_o.js";import{n as ce,t as le}from"./HeatmapCell-DnPHmow9.js";import"./stores.svelte-Cf8e_r1G.js";import{t as ue}from"./Select-D_bUUsaw.js";var de=l(` × × layers`,1),fe=l(``),pe=l(`
`),me=l(`
`),he=l(`
Nothing to compare yet
`),ge=l(`
`),_e=l(`
`),ve=l(`
`),ye=l(`
`,1),be=l(``);function M(i,l){y(l,!0);let M=se().mode===`http`,N=m(()=>ce(re.names,A.active,A.entries,M)),P=v(``),F=v(``),I=m(()=>o(N).length===0?[{value:``,label:`(empty)`}]:o(N).map(e=>({value:e,label:e}))),L=v(null),R=v(!1),z=v(null);c(()=>{ie().catch(()=>{})}),c(()=>{o(N).length===0?(T(P,``),T(F,``)):(o(P)&&o(N).includes(o(P))||T(P,o(N)[0],!0),o(F)&&o(N).includes(o(F))||T(F,o(N).find(e=>e!==o(P))??o(P),!0))});async function xe(e,t){if(!e||!t)T(L,null);else{T(R,!0),T(z,null);try{T(L,await ae.pairwise(e,t),!0)}catch(e){if(e instanceof O){let t=e.body&&typeof e.body==`object`&&`detail`in e.body?String(e.body.detail):e.message;T(z,j(e,`Unable to compare these directions. ${t}`),!0)}else T(z,j(e,`Unable to compare these directions. Try again.`),!0);T(L,null)}finally{T(R,!1)}}}c(()=>{xe(o(P),o(F))});function B(e,t,n){return`${o(P)} L${e} × ${o(F)} L${t}: ${n==null?`-`:n.toFixed(3)}`}function V(){oe()}function Se(e){e.key===`Escape`&&(e.preventDefault(),V())}let H=v(`Select a cell to inspect its value`),U=m(()=>o(L)?.matrix??null),W=m(()=>o(L)?.layers_a??[]),G=m(()=>o(L)?.layers_b??[]);b(()=>k(`profile_compare`,{schema:te,read:()=>({busy:!1,values:{profile_a:o(P),profile_b:o(F)},available_profiles:o(N),loading:o(R),error:o(z)}),update:async e=>{for(let t of[`profile_a`,`profile_b`])if(e[t]!==void 0&&!o(N).includes(e[t]))throw new ne(`NOT_FOUND`,`Choose a profile from available_profiles.`);e.profile_a!==void 0&&T(P,e.profile_a,!0),e.profile_b!==void 0&&T(F,e.profile_b,!0)}}));var K=be();d(`keydown`,h,Se);var q=E(K),J=E(q),Y=_(E(J),2),Ce=E(Y),we=e=>{var t=de(),n=x(t),r=E(n),i=w(r,!0),c=_(r,2),l=w(c,!0);p(n);var u=_(n,2),d=E(u),m=w(d,!0),h=_(d,2),g=w(h,!0);D(),p(u);var v=_(u,2),y=w(v,!0);f(()=>{s(i,o(P)),s(l,o(F)),s(m,o(W).length),s(g,o(G).length),s(y,o(L).model??`-`)}),a(e,t)},Te=e=>{var t=fe(),n=w(t,!0);f(()=>s(n,o(N).length<2?`Needs two controls`:`Choose two controls`)),a(e,t)};n(Ce,e=>{o(L)?e(we):e(Te,-1)}),p(Y),p(J);var Ee=_(J,2);t(Ee,{icon:`close`,label:`Close`,onclick:V}),p(q);var X=_(q,2),Z=E(X),De=_(E(Z),2);{let e=m(()=>o(N).length===0);ue(De,{get options(){return o(I)},get disabled(){return o(e)},ariaLabel:`Concept A`,get value(){return o(P)},set value(e){T(P,e,!0)}})}p(Z);var Q=_(Z,2),Oe=_(E(Q),2);{let e=m(()=>o(N).length===0);ue(Oe,{get options(){return o(I)},get disabled(){return o(e)},ariaLabel:`Concept B`,get value(){return o(F)},set value(e){T(F,e,!0)}})}p(Q),p(X);var $=_(X,2),ke=E($),Ae=e=>{var t=pe(),n=w(t);f(()=>s(n,`Comparison failed: ${o(z)??``}`)),a(e,t)},je=e=>{var t=me();a(e,t)},Me=e=>{var t=he();a(e,t)},Ne=t=>{var n=ye(),i=x(n),c=E(i);e(c,{get text(){return o(H)},numbers:!1}),p(i);var l=_(i,2),h=E(l);ee(h,`--cell: 26px;`);var v=E(h),y=E(v),b=E(y),C=E(b),D=w(C);p(b);var O=_(b);r(O,16,()=>o(G),e=>e,(e,t)=>{var n=ge();S(n,()=>({class:`col-label`,scope:`col`,"aria-description":o(F)+` L`+t}),void 0,void 0,void 0,`svelte-ox6jpy`);var r=E(n),i=w(r);p(n),f(()=>s(i,`L${t??``}`)),a(e,n)}),p(y),p(v);var k=_(v);r(k,22,()=>o(W),e=>e,(e,t,n)=>{var i=ve(),c=E(i);S(c,()=>({class:`row-label`,scope:`row`,"aria-description":o(P)+` L`+t}),void 0,void 0,void 0,`svelte-ox6jpy`);var l=w(c),h=_(c);r(h,18,()=>o(G),e=>e,(e,r,i)=>{let s=m(()=>o(U)[o(n)]?.[o(i)]??null);var c=_e(),l=E(c),h=E(l);{let e=m(()=>B(t,r,o(s)));le(h,{get value(){return o(s)},size:26,get title(){return o(e)}})}p(l),p(c),f(e=>g(l,`aria-label`,e),[()=>B(t,r,o(s))]),d(`pointerenter`,l,()=>T(H,B(t,r,o(s)),!0)),d(`focus`,l,()=>T(H,B(t,r,o(s)),!0)),u(`click`,l,()=>T(H,B(t,r,o(s)),!0)),a(e,c)}),p(i),f(()=>s(l,`L${t??``}`)),a(e,i)}),p(k),p(h),p(l),f(()=>s(D,`${o(P)??``} by ${o(F)??``}`)),a(t,n)};n(ke,e=>{o(z)?e(Ae):o(R)&&!o(U)?e(je,1):!o(U)||o(W).length===0||o(G).length===0?e(Me,2):e(Ne,-1)}),p($),p(K),f(()=>g($,`aria-busy`,o(R))),a(i,K),C()}i([`click`]);export{M as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/CorrelationDrawer-DAr6b0RG.js b/drowse/web/dist/assets/CorrelationDrawer-Cq0QTden.js
similarity index 91%
rename from drowse/web/dist/assets/CorrelationDrawer-DAr6b0RG.js
rename to drowse/web/dist/assets/CorrelationDrawer-Cq0QTden.js
index 3f2e83c8c..8c2fa20c0 100644
--- a/drowse/web/dist/assets/CorrelationDrawer-DAr6b0RG.js
+++ b/drowse/web/dist/assets/CorrelationDrawer-Cq0QTden.js
@@ -1 +1 @@
-import{f as e,p as t}from"./src-D3ehkdzy.js";import{A as n,D as r,H as i,I as a,K as o,N as s,Q as c,R as l,U as u,W as d,Z as f,bt as p,dt as m,et as h,h as g,it as _,lt as v,mt as y,nt as b,p as x,pt as S,rt as C,st as w,tt as T,v as ee,yt as E}from"./index-client-B2jUARBN.js";import"./stores.svelte-BvABcOLl.js";import{At as D,Rt as te,Zt as O,x as k}from"./session.svelte-Dafz5mOy.js";import{t as A}from"./drawers.svelte-BBPH3jMg.js";import{r as j,t as M}from"./HeatmapCell-DE4okENH.js";import{t as N}from"./userFacingError-Dn4DmQRG.js";var ne=l(` omitted`),re=l(`,`),ie=l(` `,1),ae=l(`
Omitted:
`),oe=l(`
`),se=l(`
`),ce=l(`
No single-direction profiles to correlate
`),le=l(`
`),ue=l(`
`),de=l(`
`),fe=l(`
name
`,1),pe=l(``);function P(i,l){y(l,!0);let P=v(!1),F=v(null);async function I(){w(P,!0),w(F,null);try{await te(null)}catch(e){w(F,N(e,`Unable to compare the active directions. Try again.`),!0)}finally{w(P,!1)}}c(()=>{O.correlation&&D.fetched===D.revision||I()});let L=m(()=>O.correlation),R=m(()=>o(L)?.names??[]),z=m(()=>o(L)?j(k.active,k.entries,o(L).names):[]);function B(e,t,n){return`${e} vs ${t}: ${n==null?`-`:n.toFixed(3)}`}function V(){A()}function me(e){e.key===`Escape`&&(e.preventDefault(),V())}let H=v(`Select a cell to inspect its value`);var U=pe();d(`keydown`,h,me);var W=T(U),G=T(W),K=_(T(G),2),q=T(K),J=T(q),he=C(J,!0),ge=_(J);p(q);var _e=_(q,2),ve=e=>{var t=ne(),n=T(t),r=C(n,!0);E(),p(t),f(()=>s(r,o(z).length)),a(e,t)};n(_e,e=>{o(z).length>0&&e(ve)}),p(K),p(G);var Y=_(G,2),X=T(Y),ye=C(X,!0),be=_(X,2);t(be,{icon:`close`,label:`Close`,onclick:V}),p(Y),p(W);var Z=_(W,2),xe=e=>{var t=ae(),i=_(T(t),2);r(i,19,()=>o(z),e=>e.name,(e,t,r)=>{var i=ie(),c=b(i),l=e=>{var t=re();a(e,t)};n(c,e=>{o(r)>0&&e(l)});var u=_(c,2);x(u,()=>({class:`omitted`,"aria-description":o(t).reason}),void 0,void 0,void 0,`svelte-1iwlzgv`);var d=C(u,!0),p=_(u,2),m=C(p);f(()=>{s(d,o(t).name),s(m,`(${o(t).reason??``})`)}),a(e,i)}),p(t),a(e,t)};n(Z,e=>{o(L)&&o(z).length>0&&e(xe)});var Q=_(Z,2),Se=T(Q),Ce=e=>{var t=oe(),n=C(t);f(()=>s(n,`Correlation failed: ${o(F)??``}`)),a(e,t)},$=e=>{var t=se();a(e,t)},we=e=>{var t=ce();a(e,t)},Te=t=>{var n=fe(),i=b(n),c=T(i);e(c,{get text(){return o(H)},numbers:!1}),p(i);var l=_(i,2),h=T(l);ee(h,`--cell: 26px;`);var v=T(h),y=T(v),S=_(T(y));r(S,16,()=>o(R),e=>e,(e,t)=>{var n=le();x(n,()=>({class:`col-label`,scope:`col`,"aria-description":t}),void 0,void 0,void 0,`svelte-1iwlzgv`);var r=T(n),i=C(r,!0);p(n),f(()=>s(i,t)),a(e,n)}),p(y),p(v);var E=_(v);r(E,20,()=>o(R),e=>e,(e,t)=>{var n=de(),i=T(n);x(i,()=>({class:`row-label`,scope:`row`,"aria-description":t}),void 0,void 0,void 0,`svelte-1iwlzgv`);var c=C(i,!0),l=_(i);r(l,16,()=>o(R),e=>e,(e,n)=>{let r=m(()=>o(L).matrix[t]?.[n]??null);var i=ue(),s=T(i),c=T(s);{let e=m(()=>B(t,n,o(r)));M(c,{get value(){return o(r)},size:26,get title(){return o(e)}})}p(s),p(i),f(e=>g(s,`aria-label`,e),[()=>B(t,n,o(r))]),d(`pointerenter`,s,()=>w(H,B(t,n,o(r)),!0)),d(`focus`,s,()=>w(H,B(t,n,o(r)),!0)),u(`click`,s,()=>w(H,B(t,n,o(r)),!0)),a(e,i)}),p(n),f(()=>s(c,t)),a(e,n)}),p(E),p(h),p(l),a(t,n)};n(Se,e=>{o(F)?e(Ce):o(P)&&!o(L)?e($,1):!o(L)||o(R).length===0?e(we,2):e(Te,-1)}),p(Q),p(U),f(()=>{s(he,o(R).length),s(ge,` ${o(R).length===1?`direction`:`directions`}`),X.disabled=o(P),s(ye,o(P)?`Refreshing…`:`Refresh`),g(Q,`aria-busy`,o(P))}),u(`click`,X,()=>void I()),a(i,U),S()}i([`click`]);export{P as default};
\ No newline at end of file
+import{f as e,p as t}from"./src-DWTrC_D-.js";import{A as n,D as r,H as i,I as a,K as o,N as s,Q as c,R as l,U as u,W as d,Z as f,bt as p,dt as m,et as h,h as g,it as _,lt as v,mt as y,nt as b,p as x,pt as S,rt as C,st as w,tt as T,v as ee,yt as E}from"./index-client-B2jUARBN.js";import"./stores.svelte-Cf8e_r1G.js";import{At as D,Rt as te,Zt as O,x as k}from"./session.svelte-DG7XfPv3.js";import{t as A}from"./drawers.svelte-kEXNcFnO.js";import{r as j,t as M}from"./HeatmapCell-DnPHmow9.js";import{t as N}from"./userFacingError-DNBzS3_o.js";var ne=l(` omitted`),re=l(`,`),ie=l(` `,1),ae=l(`
Omitted:
`),oe=l(`
`),se=l(`
`),ce=l(`
No single-direction profiles to correlate
`),le=l(`
`),ue=l(`
`),de=l(`
`),fe=l(`
name
`,1),pe=l(``);function P(i,l){y(l,!0);let P=v(!1),F=v(null);async function I(){w(P,!0),w(F,null);try{await te(null)}catch(e){w(F,N(e,`Unable to compare the active directions. Try again.`),!0)}finally{w(P,!1)}}c(()=>{O.correlation&&D.fetched===D.revision||I()});let L=m(()=>O.correlation),R=m(()=>o(L)?.names??[]),z=m(()=>o(L)?j(k.active,k.entries,o(L).names):[]);function B(e,t,n){return`${e} vs ${t}: ${n==null?`-`:n.toFixed(3)}`}function V(){A()}function me(e){e.key===`Escape`&&(e.preventDefault(),V())}let H=v(`Select a cell to inspect its value`);var U=pe();d(`keydown`,h,me);var W=T(U),G=T(W),K=_(T(G),2),q=T(K),J=T(q),he=C(J,!0),ge=_(J);p(q);var _e=_(q,2),ve=e=>{var t=ne(),n=T(t),r=C(n,!0);E(),p(t),f(()=>s(r,o(z).length)),a(e,t)};n(_e,e=>{o(z).length>0&&e(ve)}),p(K),p(G);var Y=_(G,2),X=T(Y),ye=C(X,!0),be=_(X,2);t(be,{icon:`close`,label:`Close`,onclick:V}),p(Y),p(W);var Z=_(W,2),xe=e=>{var t=ae(),i=_(T(t),2);r(i,19,()=>o(z),e=>e.name,(e,t,r)=>{var i=ie(),c=b(i),l=e=>{var t=re();a(e,t)};n(c,e=>{o(r)>0&&e(l)});var u=_(c,2);x(u,()=>({class:`omitted`,"aria-description":o(t).reason}),void 0,void 0,void 0,`svelte-1iwlzgv`);var d=C(u,!0),p=_(u,2),m=C(p);f(()=>{s(d,o(t).name),s(m,`(${o(t).reason??``})`)}),a(e,i)}),p(t),a(e,t)};n(Z,e=>{o(L)&&o(z).length>0&&e(xe)});var Q=_(Z,2),Se=T(Q),Ce=e=>{var t=oe(),n=C(t);f(()=>s(n,`Correlation failed: ${o(F)??``}`)),a(e,t)},$=e=>{var t=se();a(e,t)},we=e=>{var t=ce();a(e,t)},Te=t=>{var n=fe(),i=b(n),c=T(i);e(c,{get text(){return o(H)},numbers:!1}),p(i);var l=_(i,2),h=T(l);ee(h,`--cell: 26px;`);var v=T(h),y=T(v),S=_(T(y));r(S,16,()=>o(R),e=>e,(e,t)=>{var n=le();x(n,()=>({class:`col-label`,scope:`col`,"aria-description":t}),void 0,void 0,void 0,`svelte-1iwlzgv`);var r=T(n),i=C(r,!0);p(n),f(()=>s(i,t)),a(e,n)}),p(y),p(v);var E=_(v);r(E,20,()=>o(R),e=>e,(e,t)=>{var n=de(),i=T(n);x(i,()=>({class:`row-label`,scope:`row`,"aria-description":t}),void 0,void 0,void 0,`svelte-1iwlzgv`);var c=C(i,!0),l=_(i);r(l,16,()=>o(R),e=>e,(e,n)=>{let r=m(()=>o(L).matrix[t]?.[n]??null);var i=ue(),s=T(i),c=T(s);{let e=m(()=>B(t,n,o(r)));M(c,{get value(){return o(r)},size:26,get title(){return o(e)}})}p(s),p(i),f(e=>g(s,`aria-label`,e),[()=>B(t,n,o(r))]),d(`pointerenter`,s,()=>w(H,B(t,n,o(r)),!0)),d(`focus`,s,()=>w(H,B(t,n,o(r)),!0)),u(`click`,s,()=>w(H,B(t,n,o(r)),!0)),a(e,i)}),p(n),f(()=>s(c,t)),a(e,n)}),p(E),p(h),p(l),a(t,n)};n(Se,e=>{o(F)?e(Ce):o(P)&&!o(L)?e($,1):!o(L)||o(R).length===0?e(we,2):e(Te,-1)}),p(Q),p(U),f(()=>{s(he,o(R).length),s(ge,` ${o(R).length===1?`direction`:`directions`}`),X.disabled=o(P),s(ye,o(P)?`Refreshing…`:`Refresh`),g(Q,`aria-busy`,o(P))}),u(`click`,X,()=>void I()),a(i,U),S()}i([`click`]);export{P as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/DownloadChatDrawer-BLOKthq5.js b/drowse/web/dist/assets/DownloadChatDrawer-B-fYqPp5.js
similarity index 90%
rename from drowse/web/dist/assets/DownloadChatDrawer-BLOKthq5.js
rename to drowse/web/dist/assets/DownloadChatDrawer-B-fYqPp5.js
index d7102a433..466575bd6 100644
--- a/drowse/web/dist/assets/DownloadChatDrawer-BLOKthq5.js
+++ b/drowse/web/dist/assets/DownloadChatDrawer-B-fYqPp5.js
@@ -1 +1 @@
-import{p as e}from"./src-D3ehkdzy.js";import{A as t,H as n,I as r,K as i,N as a,R as o,U as s,W as c,Z as l,bt as u,dt as d,h as f,it as p,lt as m,m as h,mt as g,n as _,nt as v,pt as y,rt as b,st as x,tt as S,u as C}from"./index-client-B2jUARBN.js";import"./stores.svelte-BvABcOLl.js";import{R as w}from"./session.svelte-Dafz5mOy.js";import{t as T}from"./drawers.svelte-BBPH3jMg.js";import{f as E,l as D,s as O,t as k,u as A}from"./savedConversations.svelte-mXMMdYwC.js";import{t as ee}from"./conversationWorkspace-Ba5k84Da.js";import{i as te,r as ne,t as j}from"./chatBackup-C-Dt98N7.js";import{t as M}from"./userFacingError-Dn4DmQRG.js";var N=o(`
Preparing…
`),P=o(`
`,1),F=o(`
`),I=o(``),L=o(``),R=o(``);function z(n,o){g(o,!0);let z=m(``),B=m(null),V=m(null),H=m(!0),U=m(!1),W=d(()=>j(i(z)));_(()=>{G()});async function G(){x(H,!0),x(V,null),x(B,null);try{if(w.active)throw Error(`Wait for the reply to finish, then try again.`);let e=ee(),t=O.activeId,n=null;if(t)try{n=await k.get(t)}catch(e){if(!(e instanceof D&&e.code===`NOT_FOUND`))throw e}n?.modelId!==e.model_id&&(n=null);let r=Date.now(),i={schemaVersion:1,id:n?.id??crypto.randomUUID(),name:n?.name??A(r),avatarSeed:n?.avatarSeed??E(),accent:n?.accent??O.accent,modelId:e.model_id,createdAt:n?.createdAt??r,updatedAt:Math.max(n?.updatedAt??r,r),snapshot:e};x(z,i.name,!0),x(B,new Blob([await te(i)],{type:`application/json`}),!0)}catch(e){x(V,M(e,`This chat could not be prepared for download.`),!0)}finally{x(H,!1)}}function K(e){if(e.preventDefault(),i(B)&&i(z).trim()&&!i(U)){x(U,!0);try{ne(i(B),i(z)),T()}catch(e){x(V,M(e,`The download could not start. Try again.`),!0),x(U,!1)}}}var q=R(),J=S(q),Y=p(S(J),2);e(Y,{icon:`close`,label:`Close`,get onclick(){return T}}),u(J);var X=p(J,4),re=e=>{var t=N();r(e,t)},ie=e=>{var t=P(),n=v(t),o=p(S(n),2);h(o),u(n);var s=p(n,2),c=S(s),d=b(c,!0),m=p(c,2),g=b(m);u(s),l(e=>{a(d,i(W)),f(m,`data-bytes`,i(B).size),a(g,`${e??``} bytes`)},[()=>i(B).size.toLocaleString()]),C(o,()=>i(z),e=>x(z,e)),r(e,t)};t(X,e=>{i(H)?e(re):i(B)&&e(ie,1)});var Z=p(X,2),ae=e=>{var t=F(),n=b(t,!0);l(()=>a(n,i(V))),r(e,t)};t(Z,e=>{i(V)&&e(ae)});var Q=p(Z,2),$=S(Q),oe=p($,2),se=e=>{var t=I();l(()=>t.disabled=i(H)),s(`click`,t,()=>void G()),r(e,t)},ce=e=>{var t=L();l(e=>t.disabled=e,[()=>!i(B)||!i(z).trim()||i(U)]),r(e,t)};t(oe,e=>{i(V)&&!i(B)?e(se):e(ce,-1)}),u(Q),u(q),c(`submit`,q,K),s(`click`,$,function(...e){T?.apply(this,e)}),r(n,q),y()}n([`click`]);export{z as default};
\ No newline at end of file
+import{p as e}from"./src-DWTrC_D-.js";import{A as t,H as n,I as r,K as i,N as a,R as o,U as s,W as c,Z as l,bt as u,dt as d,h as f,it as p,lt as m,m as h,mt as g,n as _,nt as v,pt as y,rt as b,st as x,tt as S,u as C}from"./index-client-B2jUARBN.js";import"./stores.svelte-Cf8e_r1G.js";import{R as w}from"./session.svelte-DG7XfPv3.js";import{t as T}from"./drawers.svelte-kEXNcFnO.js";import{f as E,l as D,s as O,t as k,u as A}from"./savedConversations.svelte-mXMMdYwC.js";import{t as ee}from"./conversationWorkspace-CZnZT52a.js";import{i as te,r as ne,t as j}from"./chatBackup-C-Dt98N7.js";import{t as M}from"./userFacingError-DNBzS3_o.js";var N=o(`
Preparing…
`),P=o(`
`,1),F=o(`
`),I=o(``),L=o(``),R=o(``);function z(n,o){g(o,!0);let z=m(``),B=m(null),V=m(null),H=m(!0),U=m(!1),W=d(()=>j(i(z)));_(()=>{G()});async function G(){x(H,!0),x(V,null),x(B,null);try{if(w.active)throw Error(`Wait for the reply to finish, then try again.`);let e=ee(),t=O.activeId,n=null;if(t)try{n=await k.get(t)}catch(e){if(!(e instanceof D&&e.code===`NOT_FOUND`))throw e}n?.modelId!==e.model_id&&(n=null);let r=Date.now(),i={schemaVersion:1,id:n?.id??crypto.randomUUID(),name:n?.name??A(r),avatarSeed:n?.avatarSeed??E(),accent:n?.accent??O.accent,modelId:e.model_id,createdAt:n?.createdAt??r,updatedAt:Math.max(n?.updatedAt??r,r),snapshot:e};x(z,i.name,!0),x(B,new Blob([await te(i)],{type:`application/json`}),!0)}catch(e){x(V,M(e,`This chat could not be prepared for download.`),!0)}finally{x(H,!1)}}function K(e){if(e.preventDefault(),i(B)&&i(z).trim()&&!i(U)){x(U,!0);try{ne(i(B),i(z)),T()}catch(e){x(V,M(e,`The download could not start. Try again.`),!0),x(U,!1)}}}var q=R(),J=S(q),Y=p(S(J),2);e(Y,{icon:`close`,label:`Close`,get onclick(){return T}}),u(J);var X=p(J,4),re=e=>{var t=N();r(e,t)},ie=e=>{var t=P(),n=v(t),o=p(S(n),2);h(o),u(n);var s=p(n,2),c=S(s),d=b(c,!0),m=p(c,2),g=b(m);u(s),l(e=>{a(d,i(W)),f(m,`data-bytes`,i(B).size),a(g,`${e??``} bytes`)},[()=>i(B).size.toLocaleString()]),C(o,()=>i(z),e=>x(z,e)),r(e,t)};t(X,e=>{i(H)?e(re):i(B)&&e(ie,1)});var Z=p(X,2),ae=e=>{var t=F(),n=b(t,!0);l(()=>a(n,i(V))),r(e,t)};t(Z,e=>{i(V)&&e(ae)});var Q=p(Z,2),$=S(Q),oe=p($,2),se=e=>{var t=I();l(()=>t.disabled=i(H)),s(`click`,t,()=>void G()),r(e,t)},ce=e=>{var t=L();l(e=>t.disabled=e,[()=>!i(B)||!i(z).trim()||i(U)]),r(e,t)};t(oe,e=>{i(V)&&!i(B)?e(se):e(ce,-1)}),u(Q),u(q),c(`submit`,q,K),s(`click`,$,function(...e){T?.apply(this,e)}),r(n,q),y()}n([`click`]);export{z as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/FeedbackDrawer-BSK6xYLL.js b/drowse/web/dist/assets/FeedbackDrawer-Czw6i_iY.js
similarity index 97%
rename from drowse/web/dist/assets/FeedbackDrawer-BSK6xYLL.js
rename to drowse/web/dist/assets/FeedbackDrawer-Czw6i_iY.js
index 53ca9bb14..088d384fb 100644
--- a/drowse/web/dist/assets/FeedbackDrawer-BSK6xYLL.js
+++ b/drowse/web/dist/assets/FeedbackDrawer-Czw6i_iY.js
@@ -1 +1 @@
-import{C as e,S as t,_ as n,b as r,f as i,p as a}from"./src-D3ehkdzy.js";import{A as o,B as s,H as c,I as l,K as u,L as d,N as f,Q as p,R as m,U as h,V as g,W as _,Z as v,bt as y,dt as b,et as x,ft as ee,h as S,it as C,lt as w,m as T,mt as E,nt as D,pt as O,q as k,r as A,rt as j,s as te,st as M,tt as N,u as ne,w as re,y as ie,yt as P}from"./index-client-B2jUARBN.js";import{t as ae}from"./Select-BAEK04xt.js";import{t as F}from"./Button-mXn-Bdtb.js";import{i as I,n as L,r as oe,t as R}from"./contact-CISgXJ1_.js";import{n as se,r as ce,t as le}from"./contact.svelte-CUVpmmWR.js";import{t as z}from"./drawers.svelte-BBPH3jMg.js";import{v as B}from"./selection.svelte-D1Qz6BJG.js";var ue=m(``),V=m(`
`);function W(e,t){E(t,!0);var n=ge(),r=N(n),i=C(N(r));a(i,{icon:`close`,label:`Close feedback`,get onclick(){return z}}),y(r);var o=C(r,2),s=N(o);U(s,{source:`feedback`,get ondone(){return z}});var c=C(s,2),u=C(N(c)),d=C(u,2),p=j(d,!0);P(),y(c),y(o),y(n),v(()=>{S(u,`href`,B.mode===`http`?`https://drowse.ai/contact`:`/contact`),S(d,`href`,`mailto:${R}`),f(p,R)}),l(e,n),O()}export{W as default};
\ No newline at end of file
+import{C as e,S as t,_ as n,b as r,f as i,p as a}from"./src-DWTrC_D-.js";import{A as o,B as s,H as c,I as l,K as u,L as d,N as f,Q as p,R as m,U as h,V as g,W as _,Z as v,bt as y,dt as b,et as x,ft as ee,h as S,it as C,lt as w,m as T,mt as E,nt as D,pt as O,q as k,r as A,rt as j,s as te,st as M,tt as N,u as ne,w as re,y as ie,yt as P}from"./index-client-B2jUARBN.js";import{t as ae}from"./Select-D_bUUsaw.js";import{t as F}from"./Button-D1moLsPN.js";import{i as I,n as L,r as oe,t as R}from"./contact-CISgXJ1_.js";import{n as se,r as ce,t as le}from"./contact.svelte-CUVpmmWR.js";import{t as z}from"./drawers.svelte-kEXNcFnO.js";import{v as B}from"./selection.svelte-BIYbgTnf.js";var ue=m(``),V=m(`
`);function W(e,t){E(t,!0);var n=ge(),r=N(n),i=C(N(r));a(i,{icon:`close`,label:`Close feedback`,get onclick(){return z}}),y(r);var o=C(r,2),s=N(o);U(s,{source:`feedback`,get ondone(){return z}});var c=C(s,2),u=C(N(c)),d=C(u,2),p=j(d,!0);P(),y(c),y(o),y(n),v(()=>{S(u,`href`,B.mode===`http`?`https://drowse.ai/contact`:`/contact`),S(d,`href`,`mailto:${R}`),f(p,R)}),l(e,n),O()}export{W as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/HealthDrawer-Bz0n0IeA.js b/drowse/web/dist/assets/HealthDrawer-CrElNAbW.js
similarity index 93%
rename from drowse/web/dist/assets/HealthDrawer-Bz0n0IeA.js
rename to drowse/web/dist/assets/HealthDrawer-CrElNAbW.js
index d8ed5b145..4b16cd860 100644
--- a/drowse/web/dist/assets/HealthDrawer-Bz0n0IeA.js
+++ b/drowse/web/dist/assets/HealthDrawer-CrElNAbW.js
@@ -1 +1 @@
-import{C as e,f as t,p as n}from"./src-D3ehkdzy.js";import{A as r,B as i,D as a,I as o,K as s,N as c,Q as l,R as u,V as d,Z as f,bt as p,dt as m,h,it as g,lt as _,mt as v,nt as y,pt as ee,r as te,rt as b,st as x,tt as S,y as C,yt as w}from"./index-client-B2jUARBN.js";import{t as T}from"./Button-mXn-Bdtb.js";import{$t as E,B as ne,R as D,Zt as O,c as k,i as A,ut as j,x as M}from"./session.svelte-Dafz5mOy.js";import{n as N,t as P}from"./settingsReset.svelte-6lWdltwC.js";import{t as F}from"./drawers.svelte-BBPH3jMg.js";import{m as re}from"./selection.svelte-D1Qz6BJG.js";import{t as I}from"./userFacingError-Dn4DmQRG.js";import"./stores.svelte-BvABcOLl.js";import{i as L,n as R,t as z}from"./health.svelte-BW9-0eCh.js";var B=u(`
Generation settings, the system prompt, roles, steering and readings go back to how they started. Chats and downloads stay.
`);function W(l,u){let d=i();v(u,!0);let _=te(u,`params`,3,null),y=m(()=>_()?.embedded===!0),x=m(()=>z.busy),w=m(()=>z.lastAudit?new Date(z.lastAudit).toLocaleTimeString():null),k=m(()=>z.error),N=m(()=>ne(D)),P=m(R),re=m(()=>[{key:`Generation`,value:D.active?`active`:D.finishReason??`idle`,meta:`${D.tokensSoFar}/${D.maxTokens||`–`} tokens · ${D.tokPerSec.toFixed(1)} tok/s`},{key:`Uncertainty`,value:s(N)===null?`–`:s(N).toFixed(2),meta:`entropy perplexity · ${D.ppl.count} steps`},{key:`Loom`,value:j.nodes.size?String(j.nodes.size):`–`,meta:`rev ${j.loaded?j.rev:`–`} · depth ${j.activePath.length||`–`}`},{key:`Manifolds`,value:String(O.catalog.length),meta:`${O.entries.size} racked · ${E.names.length} resident`},{key:`Probes`,value:String(M.active.length),meta:`${M.entries.size} rows · ${O.correlation?`correlation cached`:`no correlation`}`}]),I=m(()=>[{key:`Session`,ok:!!A.info,state:A.info?`loaded`:`unavailable`},{key:`Loom`,ok:j.loaded&&!j.error,state:j.loaded&&!j.error?`loaded`:`unavailable`},{key:`Manifolds`,ok:O.catalog.length>0,state:O.catalog.length>0?`available`:`none installed`},{key:`Probes`,ok:M.active.length>0,state:M.active.length>0?`active`:`none active`},{key:`Correlation`,ok:O.correlation!==null,state:O.correlation===null?`not measured`:`measured`}]),B=m(()=>s(I).filter(e=>e.ok).length);async function ie(){z.busy||await L()}var V=he();let H;var U=S(V),W=e=>{var t=oe(),r=g(S(t),2);n(r,{icon:`close`,label:`Close`,get onclick(){return F}}),p(t),o(e,t)};r(U,e=>{s(y)||e(W)});var G=g(U,2),K=S(G),ge=e=>{var t=se(),n=S(t),r=b(n,!0),i=g(n,2),a=b(i,!0);p(t),f(()=>{c(r,A.info?.model_id??`No model`),c(a,A.info?`${A.info.device}/${A.info.dtype}`:`offline`)}),o(e,t)};r(K,e=>{s(y)||e(ge)});var q=g(K,2),_e=S(q);T(_e,{get busy(){return s(x)},get disabled(){return s(x)},onclick:ie,children:(e,n)=>{{let n=m(()=>s(x)?`Checking…`:`Check again`);t(e,{get text(){return s(n)},numbers:!1})}},$$slots:{default:!0}});var ve=g(_e,2),ye=e=>{var t=ce(),n=b(t);f(()=>c(n,`Checked ${s(w)??``}`)),o(e,t)};r(ve,e=>{s(w)&&e(ye)}),p(q);var be=g(q,2),xe=e=>{var t=le(),n=b(t);f(()=>c(n,`Health check failed: ${s(k)??``}`)),o(e,t)};r(be,e=>{s(k)&&e(xe)});var J=g(be,2),Se=S(J),Ce=g(Se,2);a(Ce,21,()=>s(re),e=>e.key,(e,n)=>{var r=ue(),i=S(r),a=b(i,!0),l=g(i,2),u=S(l);t(u,{get text(){return s(n).value}}),p(l);var d=g(l,2),m=b(d,!0);p(r),f(()=>{c(a,s(n).key),c(m,s(n).meta)}),o(e,r)}),p(Ce),p(J);var Y=g(J,2),X=S(Y),we=S(X),Te=g(we),Ee=S(Te);{let e=m(()=>`${s(B)} of ${s(I).length}`);t(Ee,{get text(){return s(e)}})}p(Te),p(X);var De=g(X,2);a(De,21,()=>s(I),e=>e.key,(t,n)=>{var i=fe();let a;var l=S(i),u=S(l),d=t=>{e(t,{name:`check`})},m=e=>{var t=de();o(e,t)};r(u,e=>{s(n).ok?e(d):e(m,-1)}),p(l);var h=g(l,2),_=b(h,!0),v=g(h,2),y=b(v,!0);p(i),f(()=>{a=C(i,1,`row svelte-1p8xu43`,null,a,{ok:s(n).ok}),c(_,s(n).key),c(y,s(n).state)}),o(t,i)}),p(De),p(Y);var Z=g(Y,2),Q=S(Z),Oe=S(Q),ke=g(Oe),Ae=S(ke);{let e=m(()=>s(P).length?String(s(P).length):`None`);t(Ae,{get text(){return s(e)}})}p(ke),p(Q);var je=g(Q,2),Me=e=>{var t=me();a(t,20,()=>s(P),e=>e,(e,t)=>{var n=pe(),r=b(n,!0);f(()=>c(r,t)),o(e,n)}),p(t),o(e,t)};r(je,e=>{s(P).length&&e(Me)}),p(Z);var $=g(Z,2);ae(S($),{full:!0}),p($),p(G),p(V),f(()=>{H=C(V,1,`health svelte-1p8xu43`,null,H,{embedded:s(y)}),h(V,`role`,s(y)?`region`:void 0),h(V,`aria-label`,s(y)?`Model health`:`Health drawer`),h(G,`aria-busy`,s(x)),h(J,`aria-labelledby`,`${d}-now`),h(Se,`id`,`${d}-now`),h(Y,`aria-labelledby`,`${d}-checks`),h(we,`id`,`${d}-checks`),h(Z,`aria-labelledby`,`${d}-warnings`),h(Oe,`id`,`${d}-warnings`)}),o(l,V),ee()}export{W as default};
\ No newline at end of file
+import{C as e,f as t,p as n}from"./src-DWTrC_D-.js";import{A as r,B as i,D as a,I as o,K as s,N as c,Q as l,R as u,V as d,Z as f,bt as p,dt as m,h,it as g,lt as _,mt as v,nt as y,pt as ee,r as te,rt as b,st as x,tt as S,y as C,yt as w}from"./index-client-B2jUARBN.js";import{t as T}from"./Button-D1moLsPN.js";import{$t as E,B as ne,R as D,Zt as O,c as k,i as A,ut as j,x as M}from"./session.svelte-DG7XfPv3.js";import{n as N,t as P}from"./settingsReset.svelte-BlsArNGk.js";import{t as F}from"./drawers.svelte-kEXNcFnO.js";import{m as re}from"./selection.svelte-BIYbgTnf.js";import{t as I}from"./userFacingError-DNBzS3_o.js";import"./stores.svelte-Cf8e_r1G.js";import{i as L,n as R,t as z}from"./health.svelte-AyNmG6Kw.js";var B=u(`
Generation settings, the system prompt, roles, steering and readings go back to how they started. Chats and downloads stay.
`);function W(l,u){let d=i();v(u,!0);let _=te(u,`params`,3,null),y=m(()=>_()?.embedded===!0),x=m(()=>z.busy),w=m(()=>z.lastAudit?new Date(z.lastAudit).toLocaleTimeString():null),k=m(()=>z.error),N=m(()=>ne(D)),P=m(R),re=m(()=>[{key:`Generation`,value:D.active?`active`:D.finishReason??`idle`,meta:`${D.tokensSoFar}/${D.maxTokens||`–`} tokens · ${D.tokPerSec.toFixed(1)} tok/s`},{key:`Uncertainty`,value:s(N)===null?`–`:s(N).toFixed(2),meta:`entropy perplexity · ${D.ppl.count} steps`},{key:`Loom`,value:j.nodes.size?String(j.nodes.size):`–`,meta:`rev ${j.loaded?j.rev:`–`} · depth ${j.activePath.length||`–`}`},{key:`Manifolds`,value:String(O.catalog.length),meta:`${O.entries.size} racked · ${E.names.length} resident`},{key:`Probes`,value:String(M.active.length),meta:`${M.entries.size} rows · ${O.correlation?`correlation cached`:`no correlation`}`}]),I=m(()=>[{key:`Session`,ok:!!A.info,state:A.info?`loaded`:`unavailable`},{key:`Loom`,ok:j.loaded&&!j.error,state:j.loaded&&!j.error?`loaded`:`unavailable`},{key:`Manifolds`,ok:O.catalog.length>0,state:O.catalog.length>0?`available`:`none installed`},{key:`Probes`,ok:M.active.length>0,state:M.active.length>0?`active`:`none active`},{key:`Correlation`,ok:O.correlation!==null,state:O.correlation===null?`not measured`:`measured`}]),B=m(()=>s(I).filter(e=>e.ok).length);async function ie(){z.busy||await L()}var V=he();let H;var U=S(V),W=e=>{var t=oe(),r=g(S(t),2);n(r,{icon:`close`,label:`Close`,get onclick(){return F}}),p(t),o(e,t)};r(U,e=>{s(y)||e(W)});var G=g(U,2),K=S(G),ge=e=>{var t=se(),n=S(t),r=b(n,!0),i=g(n,2),a=b(i,!0);p(t),f(()=>{c(r,A.info?.model_id??`No model`),c(a,A.info?`${A.info.device}/${A.info.dtype}`:`offline`)}),o(e,t)};r(K,e=>{s(y)||e(ge)});var q=g(K,2),_e=S(q);T(_e,{get busy(){return s(x)},get disabled(){return s(x)},onclick:ie,children:(e,n)=>{{let n=m(()=>s(x)?`Checking…`:`Check again`);t(e,{get text(){return s(n)},numbers:!1})}},$$slots:{default:!0}});var ve=g(_e,2),ye=e=>{var t=ce(),n=b(t);f(()=>c(n,`Checked ${s(w)??``}`)),o(e,t)};r(ve,e=>{s(w)&&e(ye)}),p(q);var be=g(q,2),xe=e=>{var t=le(),n=b(t);f(()=>c(n,`Health check failed: ${s(k)??``}`)),o(e,t)};r(be,e=>{s(k)&&e(xe)});var J=g(be,2),Se=S(J),Ce=g(Se,2);a(Ce,21,()=>s(re),e=>e.key,(e,n)=>{var r=ue(),i=S(r),a=b(i,!0),l=g(i,2),u=S(l);t(u,{get text(){return s(n).value}}),p(l);var d=g(l,2),m=b(d,!0);p(r),f(()=>{c(a,s(n).key),c(m,s(n).meta)}),o(e,r)}),p(Ce),p(J);var Y=g(J,2),X=S(Y),we=S(X),Te=g(we),Ee=S(Te);{let e=m(()=>`${s(B)} of ${s(I).length}`);t(Ee,{get text(){return s(e)}})}p(Te),p(X);var De=g(X,2);a(De,21,()=>s(I),e=>e.key,(t,n)=>{var i=fe();let a;var l=S(i),u=S(l),d=t=>{e(t,{name:`check`})},m=e=>{var t=de();o(e,t)};r(u,e=>{s(n).ok?e(d):e(m,-1)}),p(l);var h=g(l,2),_=b(h,!0),v=g(h,2),y=b(v,!0);p(i),f(()=>{a=C(i,1,`row svelte-1p8xu43`,null,a,{ok:s(n).ok}),c(_,s(n).key),c(y,s(n).state)}),o(t,i)}),p(De),p(Y);var Z=g(Y,2),Q=S(Z),Oe=S(Q),ke=g(Oe),Ae=S(ke);{let e=m(()=>s(P).length?String(s(P).length):`None`);t(Ae,{get text(){return s(e)}})}p(ke),p(Q);var je=g(Q,2),Me=e=>{var t=me();a(t,20,()=>s(P),e=>e,(e,t)=>{var n=pe(),r=b(n,!0);f(()=>c(r,t)),o(e,n)}),p(t),o(e,t)};r(je,e=>{s(P).length&&e(Me)}),p(Z);var $=g(Z,2);ae(S($),{full:!0}),p($),p(G),p(V),f(()=>{H=C(V,1,`health svelte-1p8xu43`,null,H,{embedded:s(y)}),h(V,`role`,s(y)?`region`:void 0),h(V,`aria-label`,s(y)?`Model health`:`Health drawer`),h(G,`aria-busy`,s(x)),h(J,`aria-labelledby`,`${d}-now`),h(Se,`id`,`${d}-now`),h(Y,`aria-labelledby`,`${d}-checks`),h(we,`id`,`${d}-checks`),h(Z,`aria-labelledby`,`${d}-warnings`),h(Oe,`id`,`${d}-warnings`)}),o(l,V),ee()}export{W as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/HeatmapCell-DE4okENH.js b/drowse/web/dist/assets/HeatmapCell-DnPHmow9.js
similarity index 94%
rename from drowse/web/dist/assets/HeatmapCell-DE4okENH.js
rename to drowse/web/dist/assets/HeatmapCell-DnPHmow9.js
index a30ee0475..b146081df 100644
--- a/drowse/web/dist/assets/HeatmapCell-DE4okENH.js
+++ b/drowse/web/dist/assets/HeatmapCell-DnPHmow9.js
@@ -1 +1 @@
-import{A as e,I as t,K as n,N as r,R as i,Z as a,bt as o,dt as s,h as c,mt as l,pt as u,r as d,rt as f,tt as p,v as m,y as h}from"./index-client-B2jUARBN.js";import"./src-D3ehkdzy.js";import{mi as g}from"./session.svelte-Dafz5mOy.js";function _(e){return e.family===`geometry`&&e.is_affine&&e.intrinsic_dim===1}function v(e,t,n,r){let i=new Set(e);if(r)for(let e of t){let t=n.get(e)?.info;t&&_(t)&&i.add(e)}return[...i].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:`base`}))}function y(e,t,n){let r=new Set(n);return e.filter(e=>{let n=t.get(e)?.info;return!n||!_(n)||!r.has(e)}).map(e=>({name:e,reason:b(t.get(e)?.info)})).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}))}function b(e){return e?e.family===`lens`?`${e.namespace===`slens`?`S`:`R`}-lens readout, not a residual direction`:e.family===`sae`?`SAE readout, not a residual direction`:e.family===`units`?`a neuron or head, not a residual direction`:e.is_affine?e.intrinsic_dim===1?`not exposed as a direction by this runtime`:`multidimensional subspace, not one direction`:`curved manifold, not one direction`:`not exposed as a direction by this runtime`}var x=i(``),S=i(``);function C(i,_){l(_,!0);let v=d(_,`scale`,3,g),y=d(_,`size`,3,14),b=d(_,`positiveColor`,3,`var(--tint)`),C=d(_,`negativeColor`,3,`var(--ink3)`),w=d(_,`active`,3,!1),T=d(_,`showValue`,3,!1),E=s(()=>_.value===null||_.value===void 0||!Number.isFinite(_.value)),D=s(()=>{if(n(E))return 0;let e=Number.isFinite(v())&&v()>1e-6?v():g;return Math.max(-1,Math.min(1,_.value/e))}),O=s(()=>{if(n(E))return`var(--wash)`;let e=n(D);if(Math.abs(e)<1e-9)return`var(--wash2)`;let t=Math.round(15+Math.abs(e)*85);return e>0?`color-mix(in oklch, ${b()} ${t}%, var(--wash2))`:`color-mix(in oklab, ${C()} ${t}%, var(--wash2))`}),k=s(()=>!n(E)&&Math.abs(n(D))>=.55?`var(--paper)`:`var(--ink)`),A=s(()=>_.title??(n(E)?`-`:_.value.toFixed(3))),j=s(()=>T()&&!n(E)?_.value.toFixed(2):``);var M=S();let N;var P=p(M),F=e=>{var i=x(),o=f(i,!0);a(()=>r(o,n(j))),t(e,i)};e(P,e=>{n(j)&&e(F)}),o(M),a(()=>{N=h(M,1,`cell svelte-w2uko1`,null,N,{active:w()}),m(M,`width: ${y()??``}px; height: ${y()??``}px; background: ${n(O)??``}; color: ${n(k)??``};`),c(M,`aria-label`,n(A))}),t(i,M),u()}export{v as n,y as r,C as t};
\ No newline at end of file
+import{A as e,I as t,K as n,N as r,R as i,Z as a,bt as o,dt as s,h as c,mt as l,pt as u,r as d,rt as f,tt as p,v as m,y as h}from"./index-client-B2jUARBN.js";import"./src-DWTrC_D-.js";import{mi as g}from"./session.svelte-DG7XfPv3.js";function _(e){return e.family===`geometry`&&e.is_affine&&e.intrinsic_dim===1}function v(e,t,n,r){let i=new Set(e);if(r)for(let e of t){let t=n.get(e)?.info;t&&_(t)&&i.add(e)}return[...i].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:`base`}))}function y(e,t,n){let r=new Set(n);return e.filter(e=>{let n=t.get(e)?.info;return!n||!_(n)||!r.has(e)}).map(e=>({name:e,reason:b(t.get(e)?.info)})).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}))}function b(e){return e?e.family===`lens`?`${e.namespace===`slens`?`S`:`R`}-lens readout, not a residual direction`:e.family===`sae`?`SAE readout, not a residual direction`:e.family===`units`?`a neuron or head, not a residual direction`:e.is_affine?e.intrinsic_dim===1?`not exposed as a direction by this runtime`:`multidimensional subspace, not one direction`:`curved manifold, not one direction`:`not exposed as a direction by this runtime`}var x=i(``),S=i(``);function C(i,_){l(_,!0);let v=d(_,`scale`,3,g),y=d(_,`size`,3,14),b=d(_,`positiveColor`,3,`var(--tint)`),C=d(_,`negativeColor`,3,`var(--ink3)`),w=d(_,`active`,3,!1),T=d(_,`showValue`,3,!1),E=s(()=>_.value===null||_.value===void 0||!Number.isFinite(_.value)),D=s(()=>{if(n(E))return 0;let e=Number.isFinite(v())&&v()>1e-6?v():g;return Math.max(-1,Math.min(1,_.value/e))}),O=s(()=>{if(n(E))return`var(--wash)`;let e=n(D);if(Math.abs(e)<1e-9)return`var(--wash2)`;let t=Math.round(15+Math.abs(e)*85);return e>0?`color-mix(in oklch, ${b()} ${t}%, var(--wash2))`:`color-mix(in oklab, ${C()} ${t}%, var(--wash2))`}),k=s(()=>!n(E)&&Math.abs(n(D))>=.55?`var(--paper)`:`var(--ink)`),A=s(()=>_.title??(n(E)?`-`:_.value.toFixed(3))),j=s(()=>T()&&!n(E)?_.value.toFixed(2):``);var M=S();let N;var P=p(M),F=e=>{var i=x(),o=f(i,!0);a(()=>r(o,n(j))),t(e,i)};e(P,e=>{n(j)&&e(F)}),o(M),a(()=>{N=h(M,1,`cell svelte-w2uko1`,null,N,{active:w()}),m(M,`width: ${y()??``}px; height: ${y()??``}px; background: ${n(O)??``}; color: ${n(k)??``};`),c(M,`aria-label`,n(A))}),t(i,M),u()}export{v as n,y as r,C as t};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/HelpDrawer-oWDDIXef.js b/drowse/web/dist/assets/HelpDrawer-DRwGSaL1.js
similarity index 97%
rename from drowse/web/dist/assets/HelpDrawer-oWDDIXef.js
rename to drowse/web/dist/assets/HelpDrawer-DRwGSaL1.js
index 90c4576b2..eb6738303 100644
--- a/drowse/web/dist/assets/HelpDrawer-oWDDIXef.js
+++ b/drowse/web/dist/assets/HelpDrawer-DRwGSaL1.js
@@ -1 +1 @@
-import{S as e,p as t}from"./src-D3ehkdzy.js";import{A as n,D as r,I as i,K as a,N as o,O as s,R as c,Z as l,bt as u,h as d,it as f,lt as p,mt as m,nt as ee,pt as h,rt as g,st as _,tt as v}from"./index-client-B2jUARBN.js";import"./stores.svelte-BvABcOLl.js";import{t as y}from"./drawers.svelte-BBPH3jMg.js";import{i as b}from"./registry-CQv71XNh.js";import{t as x}from"./contact-CISgXJ1_.js";var S=c(`
`),te=c(`
Browser fitting
`),C=c(``),ne=c(``,1),re=c(`
`),ie=c(``),w=c(``),T=c(`
`),E=c(``),D=c(`
`),O=c(`
ExamplesGrammar
`),ae=c(`
Help
Where things are
Words
Questions or feedback:
`);function k(c,k){m(k,!0);let A=typeof navigator>`u`||/Mac|iPhone|iPad|iPod/.test(navigator.platform)?`⌘`:`Ctrl`,j=p(!1),M=p(!1),N=b(),P=[{name:`Workbench`,what:`The thread you are on, the conversation, and whatever you select: a token layer by layer, a probe, a steering term. With nothing selected, the instruments.`},{name:`Units`,what:`The model's neurons and heads on this conversation, token by token.`},{name:`Lens`,what:`What each layer reads and is disposed to say, token by token.`},{name:`Probes`,what:`The concepts you read by, token by token.`},{name:`Artifacts`,what:`Where what the model is read and steered with is prepared: the unit catalog, the lenses, probes (built, installed or combined), templates, the roles that speak, and SAEs.`},{name:`Model`,what:`The model's shape and what is prepared for it, its health, and API access.`},{name:`Loom`,what:`Every branch of the conversation. Weave shows your text beside its alternatives; Map shows where paths divide (drag to move, pinch to zoom).`}],F=[{term:`Token`,def:`One unit of text for the model: a word, part of one, or punctuation.`},{term:`Token surprisal`,def:`How unlikely the chosen token was after the sampling settings. It measures a word choice, not whether the reply is true.`},{term:`Sampler entropy`,def:`How spread out the next-token probabilities were after the sampling settings. Restrictive settings can make it low even when the reply is wrong.`},{term:`Direction`,def:`An internal pattern used to steer a reply toward or away from a trait.`},{term:`Reading`,def:`A measurement of an internal pattern. It observes the reply without changing it.`},{term:`R lens`,def:`A fitted projection of a layer's activations onto the tokens the model is disposed to say, as probabilities. Aggregate strength is the mean across fitted layers, not the sampler's probability or a record of the model's thoughts.`},{term:`S lens`,def:`A fitted projection of a layer's activations onto the tokens it has taken in from the input. It reads early layers, where the R lens is weakest; it describes what was read, not what will be said.`},{term:`SAE feature`,def:`A learned activation pattern. Its label is an interpretation, not proof of a concept or cause. Normalized strength compares activation with a reference maximum and can exceed 1.`},{term:`Captured or replayed`,def:`Captured readings were recorded during the original run. Replayed ones are computed later, with their source and steering beside them; an unsteered replay is a separate measurement.`}],I=[{group:`Anywhere`,rows:[{keys:[A,`K`],what:`Searches everything`},{keys:[`Esc`],what:`Closes a dialog or an open steering term, stops a generation, or clears the selection`}]},{group:`Units, Lens and Probes`,rows:[{keys:[`←`,`→`],or:!0,what:`Moves to the previous or next token, across turns`},{keys:[`Home`,`End`],or:!0,what:`Moves to the first or last token of the turn's thinking or text`}]},{group:`Composer`,rows:[{keys:[`Enter`],what:`Sends the turn`},{keys:[`Shift`,`Enter`],what:`Starts a new line`}]},{group:`Workbench`,rows:[{keys:[A,`R`],what:`Generates another answer`},{keys:[A,`E`],what:`Edits the current turn`},{keys:[A,`B`],what:`Branches from the current turn`},{keys:[A,`N`],what:`Opens the map navigator`},{keys:[A,`D`],what:`Deletes the branch and its continuations`}]},{group:`Loom, while it has focus`,rows:[{keys:[`j`,`k`],or:!0,what:`Moves between alternatives`},{keys:[`h`,`l`],or:!0,what:`Moves to an earlier turn or its first continuation`},{keys:[`Enter`],what:`Opens the branch`},{keys:[`s`],what:`Stars the turn`},{keys:[`n`],what:`Adds a note`},{keys:[`/`],what:`Searches the conversation`}]}],L=[{expr:`-0.3 deceptive`,what:`A light push past the default, toward honesty`},{expr:`0.4 warm@response`,what:`Warmth only during the reply`},{expr:`0.5 personas%pirate`,what:`The pirate point on the persona manifold`},{expr:`!sycophantic`,what:`The sycophantic direction removed`},{expr:`0.3 a + 0.5 b`,what:`Two directions together`}],R=[{name:`expr`,forms:[`term (("+" | "-") term)*`]},{name:`term`,forms:[`[coeff "*"?] ["!"] selector ["@" trigger]`]},{name:`selector`,forms:[`atom (("~" | "|") atom | "%" position)?`]},{name:`position`,forms:[`signed_num ("," signed_num)* | label`]},{name:`atom`,forms:[`[ns "/"] NAME ["." NAME] [":" variant] | "sae/" INT`]},{name:`trigger`,forms:[`before | after | both | thinking | response`,`prompt | generated | when:`]},{name:`variant`,forms:[`raw | sae | sae-`,`role- | from-`]}];var z=ae(),B=v(z),V=f(v(B),2);t(V,{icon:`close`,label:`Close`,get onclick(){return y}}),u(B);var H=f(B,2),U=v(H),W=f(v(U),2),G=v(W);r(G,17,()=>P,e=>e.name,(e,t)=>{var n=S(),r=v(n),s=g(r,!0),c=f(r),d=g(c,!0);u(n),l(()=>{o(s,a(t).name),o(d,a(t).what)}),i(e,n)});var K=f(G,2),q=e=>{var t=te(),n=f(v(t)),r=g(n);u(t),l(()=>o(r,`Up to ${N??``} dimensions; larger fits need the Python server.`)),i(e,t)};n(K,e=>{N!==null&&e(q)}),u(W),u(U);var J=f(U,2),Y=f(v(J),2);r(Y,21,()=>F,e=>e.term,(e,t)=>{var n=S(),r=v(n),s=g(r,!0),c=f(r),d=g(c,!0);u(n),l(()=>{o(s,a(t).term),o(d,a(t).def)}),i(e,n)}),u(Y),u(J);var X=f(J,2),Z=v(X);e(Z,{label:`Keyboard shortcuts`,get open(){return a(j)},set open(e){_(j,e,!0)},children:(e,t)=>{var c=w();r(c,21,()=>I,e=>e.group,(e,t)=>{var c=ie(),d=v(c),p=g(d,!0),m=f(d,2);r(m,21,()=>a(t).rows,e=>e.what,(e,t)=>{var c=re(),d=v(c);r(d,21,()=>a(t).keys,s,(e,r,s)=>{var c=ne(),u=ee(c),d=e=>{var n=C(),r=g(n,!0);l(()=>o(r,a(t).or?`/`:`+`)),i(e,n)};n(u,e=>{s>0&&e(d)});var p=f(u),m=g(p,!0);l(()=>o(m,a(r))),i(e,c)}),u(d);var p=f(d,2),m=g(p,!0);u(c),l(()=>o(m,a(t).what)),i(e,c)}),u(m),u(c),l(()=>o(p,a(t).group)),i(e,c)}),u(c),i(e,c)},$$slots:{default:!0}});var oe=f(Z,2);e(oe,{label:`Steering expressions`,get open(){return a(M)},set open(e){_(M,e,!0)},children:(e,t)=>{var n=O(),s=v(n),c=f(v(s),2);r(c,21,()=>L,e=>e.expr,(e,t)=>{var n=T(),r=v(n),s=g(r,!0),c=f(r),d=g(c,!0);u(n),l(()=>{o(s,a(t).expr),o(d,a(t).what)}),i(e,n)}),u(c),u(s);var d=f(s,2),p=f(v(d),2);r(p,21,()=>R,e=>e.name,(e,t)=>{var n=D(),s=v(n),c=v(s),d=g(c,!0);u(s);var p=f(s,2);r(p,20,()=>a(t).forms,e=>e,(e,t)=>{var n=E(),r=g(n,!0);l(()=>o(r,t)),i(e,n)}),u(p),u(n),l(()=>o(d,a(t).name)),i(e,n)}),u(p),u(d),u(n),i(e,n)},$$slots:{default:!0}}),u(X);var Q=f(X,2),$=f(v(Q)),se=g($,!0);u(Q),u(H),u(z),l(()=>{d($,`href`,`mailto:${x}`),o(se,x)}),i(c,z),h()}export{k as default};
\ No newline at end of file
+import{S as e,p as t}from"./src-DWTrC_D-.js";import{A as n,D as r,I as i,K as a,N as o,O as s,R as c,Z as l,bt as u,h as d,it as f,lt as p,mt as m,nt as ee,pt as h,rt as g,st as _,tt as v}from"./index-client-B2jUARBN.js";import"./stores.svelte-Cf8e_r1G.js";import{t as y}from"./drawers.svelte-kEXNcFnO.js";import{i as b}from"./registry-CQv71XNh.js";import{t as x}from"./contact-CISgXJ1_.js";var S=c(`
`),te=c(`
Browser fitting
`),C=c(``),ne=c(``,1),re=c(`
`),ie=c(``),w=c(``),T=c(`
`),E=c(``),D=c(`
`),O=c(`
ExamplesGrammar
`),ae=c(`
Help
Where things are
Words
Questions or feedback:
`);function k(c,k){m(k,!0);let A=typeof navigator>`u`||/Mac|iPhone|iPad|iPod/.test(navigator.platform)?`⌘`:`Ctrl`,j=p(!1),M=p(!1),N=b(),P=[{name:`Workbench`,what:`The thread you are on, the conversation, and whatever you select: a token layer by layer, a probe, a steering term. With nothing selected, the instruments.`},{name:`Units`,what:`The model's neurons and heads on this conversation, token by token.`},{name:`Lens`,what:`What each layer reads and is disposed to say, token by token.`},{name:`Probes`,what:`The concepts you read by, token by token.`},{name:`Artifacts`,what:`Where what the model is read and steered with is prepared: the unit catalog, the lenses, probes (built, installed or combined), templates, the roles that speak, and SAEs.`},{name:`Model`,what:`The model's shape and what is prepared for it, its health, and API access.`},{name:`Loom`,what:`Every branch of the conversation. Weave shows your text beside its alternatives; Map shows where paths divide (drag to move, pinch to zoom).`}],F=[{term:`Token`,def:`One unit of text for the model: a word, part of one, or punctuation.`},{term:`Token surprisal`,def:`How unlikely the chosen token was after the sampling settings. It measures a word choice, not whether the reply is true.`},{term:`Sampler entropy`,def:`How spread out the next-token probabilities were after the sampling settings. Restrictive settings can make it low even when the reply is wrong.`},{term:`Direction`,def:`An internal pattern used to steer a reply toward or away from a trait.`},{term:`Reading`,def:`A measurement of an internal pattern. It observes the reply without changing it.`},{term:`R lens`,def:`A fitted projection of a layer's activations onto the tokens the model is disposed to say, as probabilities. Aggregate strength is the mean across fitted layers, not the sampler's probability or a record of the model's thoughts.`},{term:`S lens`,def:`A fitted projection of a layer's activations onto the tokens it has taken in from the input. It reads early layers, where the R lens is weakest; it describes what was read, not what will be said.`},{term:`SAE feature`,def:`A learned activation pattern. Its label is an interpretation, not proof of a concept or cause. Normalized strength compares activation with a reference maximum and can exceed 1.`},{term:`Captured or replayed`,def:`Captured readings were recorded during the original run. Replayed ones are computed later, with their source and steering beside them; an unsteered replay is a separate measurement.`}],I=[{group:`Anywhere`,rows:[{keys:[A,`K`],what:`Searches everything`},{keys:[`Esc`],what:`Closes a dialog or an open steering term, stops a generation, or clears the selection`}]},{group:`Units, Lens and Probes`,rows:[{keys:[`←`,`→`],or:!0,what:`Moves to the previous or next token, across turns`},{keys:[`Home`,`End`],or:!0,what:`Moves to the first or last token of the turn's thinking or text`}]},{group:`Composer`,rows:[{keys:[`Enter`],what:`Sends the turn`},{keys:[`Shift`,`Enter`],what:`Starts a new line`}]},{group:`Workbench`,rows:[{keys:[A,`R`],what:`Generates another answer`},{keys:[A,`E`],what:`Edits the current turn`},{keys:[A,`B`],what:`Branches from the current turn`},{keys:[A,`N`],what:`Opens the map navigator`},{keys:[A,`D`],what:`Deletes the branch and its continuations`}]},{group:`Loom, while it has focus`,rows:[{keys:[`j`,`k`],or:!0,what:`Moves between alternatives`},{keys:[`h`,`l`],or:!0,what:`Moves to an earlier turn or its first continuation`},{keys:[`Enter`],what:`Opens the branch`},{keys:[`s`],what:`Stars the turn`},{keys:[`n`],what:`Adds a note`},{keys:[`/`],what:`Searches the conversation`}]}],L=[{expr:`-0.3 deceptive`,what:`A light push past the default, toward honesty`},{expr:`0.4 warm@response`,what:`Warmth only during the reply`},{expr:`0.5 personas%pirate`,what:`The pirate point on the persona manifold`},{expr:`!sycophantic`,what:`The sycophantic direction removed`},{expr:`0.3 a + 0.5 b`,what:`Two directions together`}],R=[{name:`expr`,forms:[`term (("+" | "-") term)*`]},{name:`term`,forms:[`[coeff "*"?] ["!"] selector ["@" trigger]`]},{name:`selector`,forms:[`atom (("~" | "|") atom | "%" position)?`]},{name:`position`,forms:[`signed_num ("," signed_num)* | label`]},{name:`atom`,forms:[`[ns "/"] NAME ["." NAME] [":" variant] | "sae/" INT`]},{name:`trigger`,forms:[`before | after | both | thinking | response`,`prompt | generated | when:`]},{name:`variant`,forms:[`raw | sae | sae-`,`role- | from-`]}];var z=ae(),B=v(z),V=f(v(B),2);t(V,{icon:`close`,label:`Close`,get onclick(){return y}}),u(B);var H=f(B,2),U=v(H),W=f(v(U),2),G=v(W);r(G,17,()=>P,e=>e.name,(e,t)=>{var n=S(),r=v(n),s=g(r,!0),c=f(r),d=g(c,!0);u(n),l(()=>{o(s,a(t).name),o(d,a(t).what)}),i(e,n)});var K=f(G,2),q=e=>{var t=te(),n=f(v(t)),r=g(n);u(t),l(()=>o(r,`Up to ${N??``} dimensions; larger fits need the Python server.`)),i(e,t)};n(K,e=>{N!==null&&e(q)}),u(W),u(U);var J=f(U,2),Y=f(v(J),2);r(Y,21,()=>F,e=>e.term,(e,t)=>{var n=S(),r=v(n),s=g(r,!0),c=f(r),d=g(c,!0);u(n),l(()=>{o(s,a(t).term),o(d,a(t).def)}),i(e,n)}),u(Y),u(J);var X=f(J,2),Z=v(X);e(Z,{label:`Keyboard shortcuts`,get open(){return a(j)},set open(e){_(j,e,!0)},children:(e,t)=>{var c=w();r(c,21,()=>I,e=>e.group,(e,t)=>{var c=ie(),d=v(c),p=g(d,!0),m=f(d,2);r(m,21,()=>a(t).rows,e=>e.what,(e,t)=>{var c=re(),d=v(c);r(d,21,()=>a(t).keys,s,(e,r,s)=>{var c=ne(),u=ee(c),d=e=>{var n=C(),r=g(n,!0);l(()=>o(r,a(t).or?`/`:`+`)),i(e,n)};n(u,e=>{s>0&&e(d)});var p=f(u),m=g(p,!0);l(()=>o(m,a(r))),i(e,c)}),u(d);var p=f(d,2),m=g(p,!0);u(c),l(()=>o(m,a(t).what)),i(e,c)}),u(m),u(c),l(()=>o(p,a(t).group)),i(e,c)}),u(c),i(e,c)},$$slots:{default:!0}});var oe=f(Z,2);e(oe,{label:`Steering expressions`,get open(){return a(M)},set open(e){_(M,e,!0)},children:(e,t)=>{var n=O(),s=v(n),c=f(v(s),2);r(c,21,()=>L,e=>e.expr,(e,t)=>{var n=T(),r=v(n),s=g(r,!0),c=f(r),d=g(c,!0);u(n),l(()=>{o(s,a(t).expr),o(d,a(t).what)}),i(e,n)}),u(c),u(s);var d=f(s,2),p=f(v(d),2);r(p,21,()=>R,e=>e.name,(e,t)=>{var n=D(),s=v(n),c=v(s),d=g(c,!0);u(s);var p=f(s,2);r(p,20,()=>a(t).forms,e=>e,(e,t)=>{var n=E(),r=g(n,!0);l(()=>o(r,t)),i(e,n)}),u(p),u(n),l(()=>o(d,a(t).name)),i(e,n)}),u(p),u(d),u(n),i(e,n)},$$slots:{default:!0}}),u(X);var Q=f(X,2),$=f(v(Q)),se=g($,!0);u(Q),u(H),u(z),l(()=>{d($,`href`,`mailto:${x}`),o(se,x)}),i(c,z),h()}export{k as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/LoadConversationDrawer-Cce-OftL.js b/drowse/web/dist/assets/LoadConversationDrawer-RSAFw741.js
similarity index 96%
rename from drowse/web/dist/assets/LoadConversationDrawer-Cce-OftL.js
rename to drowse/web/dist/assets/LoadConversationDrawer-RSAFw741.js
index 6ffe7041e..634223510 100644
--- a/drowse/web/dist/assets/LoadConversationDrawer-Cce-OftL.js
+++ b/drowse/web/dist/assets/LoadConversationDrawer-RSAFw741.js
@@ -1 +1 @@
-import{p as e}from"./src-D3ehkdzy.js";import{A as t,D as n,H as r,I as i,K as a,N as o,R as s,U as c,Z as l,at as u,bt as d,dt as f,h as p,it as m,lt as h,m as g,mt as _,n as v,p as y,pt as ee,q as te,rt as b,s as ne,st as x,tt as S,u as re,y as ie,yt as C}from"./index-client-B2jUARBN.js";import{n as ae,t as w}from"./savedChatOpen-D_z9NDb9.js";import{d as T,i as E,n as D,o as O,p as k,s as oe,t as A}from"./savedConversations.svelte-mXMMdYwC.js";import{R as j,i as se}from"./session.svelte-Dafz5mOy.js";import{a as M,t as N}from"./drawers.svelte-BBPH3jMg.js";import{a as ce,n as le}from"./chatBackup-C-Dt98N7.js";import"./stores.svelte-BvABcOLl.js";import{t as P}from"./userFacingError-Dn4DmQRG.js";import{m as F}from"./selection.svelte-D1Qz6BJG.js";var ue=s(`
The browser declined; your chats are still saved here.
`),de=s(`
Protect saved chats
`),fe=s(`
`),pe=s(`
Opening another chat waits for the reply to finish.
`),me=s(`
Loading…
`),he=s(`
`),ge=s(``),_e=s(``),ve=s(`open now`),ye=s(`
`),be=s(`
`),xe=s(`
`),Se=s(`
`),Ce=s(`
Delete this saved data for good?
`),we=s(`
Unreadable
`),Te=s(`
Could not be read; the data is still in storage
`),Ee=s(`
`),De=s(`
Saved chats
`);function I(r,s){_(s,!0);let I=h(null),L=h(u([])),R=h(u([])),z=h(``),B=h(!0),V=h(null),H=h(null),U=h(null),W=h(null),G=h(null),K=h(null),q=h(``),J=h(!1),Y=h(null),X=h(`checking`),Z=h(!1),Q=h(!1),Oe=f(()=>se.info?.model_id??null),ke=f(()=>{let e=a(z).trim().toLocaleLowerCase();return e?a(L).filter(t=>t.name.toLocaleLowerCase().includes(e)||T(t.modelId).toLocaleLowerCase().includes(e)):a(L)});v(()=>{Me(),Ae()});async function Ae(){if(!navigator.storage?.persisted)x(X,`unavailable`);else try{x(X,await navigator.storage.persisted()?`protected`:`unprotected`,!0)}catch{x(X,`unavailable`)}}async function je(){x(Z,!0);try{let e=await O();x(X,e===!0?`protected`:e===!1?`unprotected`:`unavailable`,!0),x(Q,e!==!0),e&&F(`Saved chats are protected from automatic browser cleanup.`,{kind:`info`})}finally{x(Z,!1)}}v(()=>E(Me));async function Me(){x(B,!0),x(V,null);try{let e=await A.listSummaries();x(L,e.conversations,!0),x(R,e.issues,!0)}catch(e){x(V,P(e,`Saved conversations could not be opened.`),!0)}finally{x(B,!1)}}async function Ne(e){if(!(e.modelId!==a(Oe)||j.active)){x(H,e.id,!0),x(V,null);try{await w(e.id),F(`Opened “${e.name}”.`,{kind:`info`}),N()}catch(e){x(V,P(e,`This conversation could not be opened. Your current work was left unchanged.`),!0)}finally{x(H,null)}}}function Pe(e){x(G,null),x(K,e.id,!0),x(q,e.name,!0),te().then(()=>{a(Y)?.focus(),a(Y)?.select()})}async function Fe(e){x(U,e.id,!0),x(V,null);try{He(await A.update(e.id,{name:a(q)})),x(K,null)}catch(e){x(V,P(e,`The conversation could not be renamed.`),!0)}finally{x(U,null)}}function Ie(e,t){e.key===`Enter`?(e.preventDefault(),a(q).trim()&&a(U)!==t.id&&Fe(t)):e.key===`Escape`&&(e.preventDefault(),x(K,null))}function Le(e){x(K,null),x(G,e,!0)}async function Re(e){x(U,e,!0),x(V,null);try{await A.delete(e),x(L,a(L).filter(t=>t.id!==e),!0),x(R,a(R).filter(t=>t.id!==e),!0),x(G,null),F(`Saved conversation deleted.`,{kind:`info`})}catch(e){x(V,P(e,`The saved conversation could not be deleted.`),!0)}finally{x(U,null)}}async function ze(e){x(U,e.id,!0),x(V,null);try{await D(),await le(A,e.id)}catch(e){x(V,P(e,`This conversation could not be exported. Your saved chat was not changed.`),!0)}finally{x(U,null)}}async function Be(e){let t=e.currentTarget,n=t.files?.[0]??null;if(t.value=``,n&&!a(J)){x(J,!0),x(V,null);try{let e=await ce(n,A);x(L,[k(e),...a(L)],!0),F(`Imported “${e.name}” as a separate chat.`,{kind:`info`}),O()}catch(e){x(V,P(e,`This conversation file could not be imported.`),!0)}finally{x(J,!1)}}}async function Ve(e){if(!(a(U)!==null||a(J)||a(H)!==null)){x(U,e.id,!0),x(W,e.id,!0),x(V,null);try{await D();let t=await A.duplicate(e.id);x(L,[k(t),...a(L)],!0),F(`Created “${t.name}”. The original chat is unchanged.`,{kind:`info`})}catch(e){x(V,P(e,`The chat could not be duplicated. The original chat was not changed.`),!0)}finally{x(U,null),x(W,null)}}}function He(e){x(L,a(L).map(t=>t.id===e.id?k(e):t),!0)}function Ue(e){let t=e-Date.now();for(let[e,n]of[[`year`,31536e6],[`month`,2592e6],[`day`,864e5],[`hour`,36e5],[`minute`,6e4]])if(Math.abs(t)>=n||e===`minute`){let r=Math.round(t/n);return new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}).format(r,e)}return`just now`}function We(e){return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e))}var Ge=De(),Ke=S(Ge),qe=m(S(Ke),2);e(qe,{icon:`close`,label:`Close`,get onclick(){return N}}),d(Ke);var Je=m(Ke,2),Ye=S(Je),Xe=m(S(Ye),2);g(Xe),d(Ye);var Ze=m(Ye,2);ne(Ze,e=>x(I,e),()=>a(I));var Qe=m(Ze,2),$e=S(Qe),$=m($e,2),et=b($,!0);d(Qe),d(Je);var tt=m(Je,2),nt=e=>{var n=de(),r=S(n),s=m(S(r),2),u=e=>{var t=ue();i(e,t)};t(s,e=>{a(Q)&&e(u)}),d(r);var f=m(r,2),p=b(f,!0);d(n),l(()=>{f.disabled=a(Z),o(p,a(Z)?`Checking…`:a(Q)?`Try again`:`Protect`)}),c(`click`,f,()=>void je()),i(e,n)};t(tt,e=>{!a(B)&&a(L).length>0&&a(X)===`unprotected`&&e(nt)});var rt=m(tt,2),it=S(rt),at=e=>{var t=fe(),n=b(t,!0);l(()=>o(n,a(V))),i(e,t)};t(it,e=>{a(V)&&e(at)});var ot=m(it,2),st=e=>{var t=pe();i(e,t)};t(ot,e=>{j.active&&e(st)});var ct=m(ot,2),lt=e=>{var t=me();i(e,t)},ut=e=>{var t=he(),n=b(t,!0);l(e=>o(n,e),[()=>a(z).trim()?`No matches`:`No saved chats yet`]),i(e,t)},dt=e=>{var r=Ee(),s=S(r);n(s,17,()=>a(ke),e=>e.id,(e,n)=>{let r=f(()=>a(n).modelId===a(Oe));var s=Se();let u;var h=S(s),_=S(h),v=S(_),ee=e=>{var t=ge(),r=m(S(t),2);g(r),ne(r,e=>x(Y,e),()=>a(Y)),d(t),l(()=>r.disabled=a(U)===a(n).id),c(`keydown`,r,e=>Ie(e,a(n))),re(r,()=>a(q),e=>x(q,e)),i(e,t)},te=e=>{var t=_e();y(t,()=>({"aria-description":a(n).name,dir:`auto`}),void 0,void 0,void 0,`svelte-1qiwp0e`);var r=b(t,!0);l(()=>{o(r,a(n).name),t.dir=t.dir}),i(e,t)};t(v,e=>{a(K)===a(n).id?e(ee):e(te,-1)});var C=m(v,2),w=S(C),E=S(w,!0),D=m(E),O=e=>{ae(e,{})};t(D,e=>{(a(n).modelType===`base`||a(r)&&se.info?.is_base_model)&&e(O)}),d(w);var k=m(w,2),A=e=>{var t=ve();i(e,t)};t(k,e=>{oe.activeId===a(n).id&&e(A)}),d(C),d(_);var M=m(_,2);y(M,(e,t)=>({class:`meta`,datetime:e,...t}),[()=>new Date(a(n).updatedAt).toISOString(),()=>({"aria-description":We(a(n).updatedAt)})],void 0,void 0,`svelte-1qiwp0e`);var N=b(M,!0);d(h);var ce=m(h,2),le=e=>{var t=ye(),r=S(t),o=m(r,2);d(t),l(e=>r.disabled=e,[()=>!a(q).trim()||a(U)===a(n).id]),c(`click`,r,()=>void Fe(a(n))),c(`click`,o,()=>x(K,null)),i(e,t)},P=e=>{var t=be(),r=S(t),s=b(r),u=m(r,2),f=m(u,2);d(t),l(()=>{p(t,`aria-label`,`Confirm deletion of ${a(n).name}`),o(s,`Delete “${a(n).name??``}” for good?`),u.disabled=a(U)===a(n).id}),c(`click`,u,()=>void Re(a(n).id)),c(`click`,f,()=>x(G,null)),i(e,t)},F=e=>{var t=xe(),s=S(t),u=()=>void Ne(a(n));y(s,e=>({type:`button`,class:`dw-quiet`,onclick:u,disabled:!a(r)||j.active||a(H)!==null,...e}),[()=>({"aria-description":a(r)?void 0:`Load ${T(a(n).modelId)} to open this chat`})],void 0,void 0,`svelte-1qiwp0e`);var f=b(s,!0),h=m(s,2),g=m(h,2),_=m(g,2),v=m(_,2);d(t),l(()=>{o(f,a(H)===a(n).id?`Opening…`:a(r)?`Open`:`Different model`),g.disabled=a(U)!==null,_.disabled=a(U)!==null||a(J)||a(H)!==null,p(_,`aria-label`,`Duplicate ${a(n).name}`),p(_,`aria-busy`,a(W)===a(n).id)}),c(`click`,h,()=>Pe(a(n))),c(`click`,g,()=>void ze(a(n))),c(`click`,_,()=>void Ve(a(n))),c(`click`,v,()=>Le(a(n).id)),i(e,t)};t(ce,e=>{a(K)===a(n).id?e(le):a(G)===a(n).id?e(P,1):e(F,-1)}),d(s),l((e,t)=>{u=ie(s,1,`conversation-card svelte-1qiwp0e`,null,u,{current:oe.activeId===a(n).id}),p(s,`data-saved-conversation`,a(n).id),o(E,e),o(N,t)},[()=>T(a(n).modelId),()=>Ue(a(n).updatedAt)]),i(e,s)});var u=m(s,2);n(u,17,()=>a(R),e=>e.id,(e,n)=>{var r=Te(),s=S(r),u=S(s),f=S(u),p=b(f,!0);C(2),d(u),d(s);var h=m(s,2),g=e=>{var t=Ce(),r=m(S(t),2),o=m(r,2);d(t),c(`click`,r,()=>void Re(a(n).id)),c(`click`,o,()=>x(G,null)),i(e,t)},_=e=>{var t=we(),r=S(t);y(r,e=>({class:`meta`,...e}),[()=>({"aria-description":P(a(n).reason,`This saved chat could not be read. The data is still in storage.`)})],void 0,void 0,`svelte-1qiwp0e`);var o=m(r,2);d(t),c(`click`,o,()=>Le(a(n).id)),i(e,t)};t(h,e=>{a(G)===a(n).id?e(g):e(_,-1)}),d(r),l(()=>o(p,a(n).name||`Unavailable saved chat`)),i(e,r)}),d(r),i(e,r)};t(ct,e=>{a(B)?e(lt):a(ke).length===0&&a(R).length===0?e(ut,1):e(dt,-1)}),d(rt),d(Ge),l(()=>{$e.disabled=j.active,$.disabled=a(J),p($,`aria-busy`,a(J)),o(et,a(J)?`Importing…`:`Import file`)}),re(Xe,()=>a(z),e=>x(z,e)),c(`change`,Ze,Be),c(`click`,$e,()=>M(`save_conversation`)),c(`click`,$,()=>a(I)?.click()),i(r,Ge),ee()}r([`change`,`click`,`keydown`]);export{I as default};
\ No newline at end of file
+import{p as e}from"./src-DWTrC_D-.js";import{A as t,D as n,H as r,I as i,K as a,N as o,R as s,U as c,Z as l,at as u,bt as d,dt as f,h as p,it as m,lt as h,m as g,mt as _,n as v,p as y,pt as ee,q as te,rt as b,s as ne,st as x,tt as S,u as re,y as ie,yt as C}from"./index-client-B2jUARBN.js";import{n as ae,t as w}from"./savedChatOpen-VOCemnUf.js";import{d as T,i as E,n as D,o as O,p as k,s as oe,t as A}from"./savedConversations.svelte-mXMMdYwC.js";import{R as j,i as se}from"./session.svelte-DG7XfPv3.js";import{a as M,t as N}from"./drawers.svelte-kEXNcFnO.js";import{a as ce,n as le}from"./chatBackup-C-Dt98N7.js";import"./stores.svelte-Cf8e_r1G.js";import{t as P}from"./userFacingError-DNBzS3_o.js";import{m as F}from"./selection.svelte-BIYbgTnf.js";var ue=s(`
The browser declined; your chats are still saved here.
`),de=s(`
Protect saved chats
`),fe=s(`
`),pe=s(`
Opening another chat waits for the reply to finish.
`),me=s(`
Loading…
`),he=s(`
`),ge=s(``),_e=s(``),ve=s(`open now`),ye=s(`
`),be=s(`
`),xe=s(`
`),Se=s(`
`),Ce=s(`
Delete this saved data for good?
`),we=s(`
Unreadable
`),Te=s(`
Could not be read; the data is still in storage
`),Ee=s(`
`),De=s(`
Saved chats
`);function I(r,s){_(s,!0);let I=h(null),L=h(u([])),R=h(u([])),z=h(``),B=h(!0),V=h(null),H=h(null),U=h(null),W=h(null),G=h(null),K=h(null),q=h(``),J=h(!1),Y=h(null),X=h(`checking`),Z=h(!1),Q=h(!1),Oe=f(()=>se.info?.model_id??null),ke=f(()=>{let e=a(z).trim().toLocaleLowerCase();return e?a(L).filter(t=>t.name.toLocaleLowerCase().includes(e)||T(t.modelId).toLocaleLowerCase().includes(e)):a(L)});v(()=>{Me(),Ae()});async function Ae(){if(!navigator.storage?.persisted)x(X,`unavailable`);else try{x(X,await navigator.storage.persisted()?`protected`:`unprotected`,!0)}catch{x(X,`unavailable`)}}async function je(){x(Z,!0);try{let e=await O();x(X,e===!0?`protected`:e===!1?`unprotected`:`unavailable`,!0),x(Q,e!==!0),e&&F(`Saved chats are protected from automatic browser cleanup.`,{kind:`info`})}finally{x(Z,!1)}}v(()=>E(Me));async function Me(){x(B,!0),x(V,null);try{let e=await A.listSummaries();x(L,e.conversations,!0),x(R,e.issues,!0)}catch(e){x(V,P(e,`Saved conversations could not be opened.`),!0)}finally{x(B,!1)}}async function Ne(e){if(!(e.modelId!==a(Oe)||j.active)){x(H,e.id,!0),x(V,null);try{await w(e.id),F(`Opened “${e.name}”.`,{kind:`info`}),N()}catch(e){x(V,P(e,`This conversation could not be opened. Your current work was left unchanged.`),!0)}finally{x(H,null)}}}function Pe(e){x(G,null),x(K,e.id,!0),x(q,e.name,!0),te().then(()=>{a(Y)?.focus(),a(Y)?.select()})}async function Fe(e){x(U,e.id,!0),x(V,null);try{He(await A.update(e.id,{name:a(q)})),x(K,null)}catch(e){x(V,P(e,`The conversation could not be renamed.`),!0)}finally{x(U,null)}}function Ie(e,t){e.key===`Enter`?(e.preventDefault(),a(q).trim()&&a(U)!==t.id&&Fe(t)):e.key===`Escape`&&(e.preventDefault(),x(K,null))}function Le(e){x(K,null),x(G,e,!0)}async function Re(e){x(U,e,!0),x(V,null);try{await A.delete(e),x(L,a(L).filter(t=>t.id!==e),!0),x(R,a(R).filter(t=>t.id!==e),!0),x(G,null),F(`Saved conversation deleted.`,{kind:`info`})}catch(e){x(V,P(e,`The saved conversation could not be deleted.`),!0)}finally{x(U,null)}}async function ze(e){x(U,e.id,!0),x(V,null);try{await D(),await le(A,e.id)}catch(e){x(V,P(e,`This conversation could not be exported. Your saved chat was not changed.`),!0)}finally{x(U,null)}}async function Be(e){let t=e.currentTarget,n=t.files?.[0]??null;if(t.value=``,n&&!a(J)){x(J,!0),x(V,null);try{let e=await ce(n,A);x(L,[k(e),...a(L)],!0),F(`Imported “${e.name}” as a separate chat.`,{kind:`info`}),O()}catch(e){x(V,P(e,`This conversation file could not be imported.`),!0)}finally{x(J,!1)}}}async function Ve(e){if(!(a(U)!==null||a(J)||a(H)!==null)){x(U,e.id,!0),x(W,e.id,!0),x(V,null);try{await D();let t=await A.duplicate(e.id);x(L,[k(t),...a(L)],!0),F(`Created “${t.name}”. The original chat is unchanged.`,{kind:`info`})}catch(e){x(V,P(e,`The chat could not be duplicated. The original chat was not changed.`),!0)}finally{x(U,null),x(W,null)}}}function He(e){x(L,a(L).map(t=>t.id===e.id?k(e):t),!0)}function Ue(e){let t=e-Date.now();for(let[e,n]of[[`year`,31536e6],[`month`,2592e6],[`day`,864e5],[`hour`,36e5],[`minute`,6e4]])if(Math.abs(t)>=n||e===`minute`){let r=Math.round(t/n);return new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}).format(r,e)}return`just now`}function We(e){return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e))}var Ge=De(),Ke=S(Ge),qe=m(S(Ke),2);e(qe,{icon:`close`,label:`Close`,get onclick(){return N}}),d(Ke);var Je=m(Ke,2),Ye=S(Je),Xe=m(S(Ye),2);g(Xe),d(Ye);var Ze=m(Ye,2);ne(Ze,e=>x(I,e),()=>a(I));var Qe=m(Ze,2),$e=S(Qe),$=m($e,2),et=b($,!0);d(Qe),d(Je);var tt=m(Je,2),nt=e=>{var n=de(),r=S(n),s=m(S(r),2),u=e=>{var t=ue();i(e,t)};t(s,e=>{a(Q)&&e(u)}),d(r);var f=m(r,2),p=b(f,!0);d(n),l(()=>{f.disabled=a(Z),o(p,a(Z)?`Checking…`:a(Q)?`Try again`:`Protect`)}),c(`click`,f,()=>void je()),i(e,n)};t(tt,e=>{!a(B)&&a(L).length>0&&a(X)===`unprotected`&&e(nt)});var rt=m(tt,2),it=S(rt),at=e=>{var t=fe(),n=b(t,!0);l(()=>o(n,a(V))),i(e,t)};t(it,e=>{a(V)&&e(at)});var ot=m(it,2),st=e=>{var t=pe();i(e,t)};t(ot,e=>{j.active&&e(st)});var ct=m(ot,2),lt=e=>{var t=me();i(e,t)},ut=e=>{var t=he(),n=b(t,!0);l(e=>o(n,e),[()=>a(z).trim()?`No matches`:`No saved chats yet`]),i(e,t)},dt=e=>{var r=Ee(),s=S(r);n(s,17,()=>a(ke),e=>e.id,(e,n)=>{let r=f(()=>a(n).modelId===a(Oe));var s=Se();let u;var h=S(s),_=S(h),v=S(_),ee=e=>{var t=ge(),r=m(S(t),2);g(r),ne(r,e=>x(Y,e),()=>a(Y)),d(t),l(()=>r.disabled=a(U)===a(n).id),c(`keydown`,r,e=>Ie(e,a(n))),re(r,()=>a(q),e=>x(q,e)),i(e,t)},te=e=>{var t=_e();y(t,()=>({"aria-description":a(n).name,dir:`auto`}),void 0,void 0,void 0,`svelte-1qiwp0e`);var r=b(t,!0);l(()=>{o(r,a(n).name),t.dir=t.dir}),i(e,t)};t(v,e=>{a(K)===a(n).id?e(ee):e(te,-1)});var C=m(v,2),w=S(C),E=S(w,!0),D=m(E),O=e=>{ae(e,{})};t(D,e=>{(a(n).modelType===`base`||a(r)&&se.info?.is_base_model)&&e(O)}),d(w);var k=m(w,2),A=e=>{var t=ve();i(e,t)};t(k,e=>{oe.activeId===a(n).id&&e(A)}),d(C),d(_);var M=m(_,2);y(M,(e,t)=>({class:`meta`,datetime:e,...t}),[()=>new Date(a(n).updatedAt).toISOString(),()=>({"aria-description":We(a(n).updatedAt)})],void 0,void 0,`svelte-1qiwp0e`);var N=b(M,!0);d(h);var ce=m(h,2),le=e=>{var t=ye(),r=S(t),o=m(r,2);d(t),l(e=>r.disabled=e,[()=>!a(q).trim()||a(U)===a(n).id]),c(`click`,r,()=>void Fe(a(n))),c(`click`,o,()=>x(K,null)),i(e,t)},P=e=>{var t=be(),r=S(t),s=b(r),u=m(r,2),f=m(u,2);d(t),l(()=>{p(t,`aria-label`,`Confirm deletion of ${a(n).name}`),o(s,`Delete “${a(n).name??``}” for good?`),u.disabled=a(U)===a(n).id}),c(`click`,u,()=>void Re(a(n).id)),c(`click`,f,()=>x(G,null)),i(e,t)},F=e=>{var t=xe(),s=S(t),u=()=>void Ne(a(n));y(s,e=>({type:`button`,class:`dw-quiet`,onclick:u,disabled:!a(r)||j.active||a(H)!==null,...e}),[()=>({"aria-description":a(r)?void 0:`Load ${T(a(n).modelId)} to open this chat`})],void 0,void 0,`svelte-1qiwp0e`);var f=b(s,!0),h=m(s,2),g=m(h,2),_=m(g,2),v=m(_,2);d(t),l(()=>{o(f,a(H)===a(n).id?`Opening…`:a(r)?`Open`:`Different model`),g.disabled=a(U)!==null,_.disabled=a(U)!==null||a(J)||a(H)!==null,p(_,`aria-label`,`Duplicate ${a(n).name}`),p(_,`aria-busy`,a(W)===a(n).id)}),c(`click`,h,()=>Pe(a(n))),c(`click`,g,()=>void ze(a(n))),c(`click`,_,()=>void Ve(a(n))),c(`click`,v,()=>Le(a(n).id)),i(e,t)};t(ce,e=>{a(K)===a(n).id?e(le):a(G)===a(n).id?e(P,1):e(F,-1)}),d(s),l((e,t)=>{u=ie(s,1,`conversation-card svelte-1qiwp0e`,null,u,{current:oe.activeId===a(n).id}),p(s,`data-saved-conversation`,a(n).id),o(E,e),o(N,t)},[()=>T(a(n).modelId),()=>Ue(a(n).updatedAt)]),i(e,s)});var u=m(s,2);n(u,17,()=>a(R),e=>e.id,(e,n)=>{var r=Te(),s=S(r),u=S(s),f=S(u),p=b(f,!0);C(2),d(u),d(s);var h=m(s,2),g=e=>{var t=Ce(),r=m(S(t),2),o=m(r,2);d(t),c(`click`,r,()=>void Re(a(n).id)),c(`click`,o,()=>x(G,null)),i(e,t)},_=e=>{var t=we(),r=S(t);y(r,e=>({class:`meta`,...e}),[()=>({"aria-description":P(a(n).reason,`This saved chat could not be read. The data is still in storage.`)})],void 0,void 0,`svelte-1qiwp0e`);var o=m(r,2);d(t),c(`click`,o,()=>Le(a(n).id)),i(e,t)};t(h,e=>{a(G)===a(n).id?e(g):e(_,-1)}),d(r),l(()=>o(p,a(n).name||`Unavailable saved chat`)),i(e,r)}),d(r),i(e,r)};t(ct,e=>{a(B)?e(lt):a(ke).length===0&&a(R).length===0?e(ut,1):e(dt,-1)}),d(rt),d(Ge),l(()=>{$e.disabled=j.active,$.disabled=a(J),p($,`aria-busy`,a(J)),o(et,a(J)?`Importing…`:`Import file`)}),re(Xe,()=>a(z),e=>x(z,e)),c(`change`,Ze,Be),c(`click`,$e,()=>M(`save_conversation`)),c(`click`,$,()=>a(I)?.click()),i(r,Ge),ee()}r([`change`,`click`,`keydown`]);export{I as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/ManifoldBuilderDrawer-m9MXhjy5.js b/drowse/web/dist/assets/ManifoldBuilderDrawer-PoFdPosz.js
similarity index 98%
rename from drowse/web/dist/assets/ManifoldBuilderDrawer-m9MXhjy5.js
rename to drowse/web/dist/assets/ManifoldBuilderDrawer-PoFdPosz.js
index 3c54da828..23cc7a3df 100644
--- a/drowse/web/dist/assets/ManifoldBuilderDrawer-m9MXhjy5.js
+++ b/drowse/web/dist/assets/ManifoldBuilderDrawer-PoFdPosz.js
@@ -1 +1 @@
-import{C as e,S as t,c as n,f as r,h as i,p as a,s as o,u as s}from"./src-D3ehkdzy.js";import{A as c,B as l,D as u,E as d,H as f,I as p,J as m,K as h,L as g,N as _,O as v,Q as y,R as b,U as x,V as ee,Z as S,_ as C,at as w,bt as T,dt as E,ft as te,h as D,it as O,l as k,lt as A,m as j,mt as ne,n as re,nt as M,pt as ie,q as ae,r as N,rt as P,s as F,st as I,tt as L,u as R,w as z,y as B,yt as V}from"./index-client-B2jUARBN.js";import{n as H}from"./errors-JtXkE1b1.js";import{d as oe}from"./workspaceController-C2L33e3m.js";import{d as U,o as W,r as se,t as G}from"./interfaceSchemas-CEzHSS8w.js";import{t as ce}from"./types-CuMUbvHW.js";import"./stores.svelte-BvABcOLl.js";import{o as le}from"./manifoldJobs.svelte-B_sczSb7.js";import{Ar as ue,Bi as de,Er as fe,Ii as pe,Kn as me,Ni as K,Pi as he,Zt as q,m as ge,zt as _e}from"./session.svelte-Dafz5mOy.js";import{m as J,p as ve,v as ye}from"./selection.svelte-D1Qz6BJG.js";import{a as be,r as Y,t as xe}from"./drawers.svelte-BBPH3jMg.js";import{t as Se}from"./userFacingError-Dn4DmQRG.js";import{i as Ce,t as we}from"./registry-CQv71XNh.js";import{t as Te}from"./selectors-D8zRdyMn.js";import{t as Ee}from"./surfaceGeometry-DdrOowY4.js";import{t as De}from"./Select-BAEK04xt.js";import{t as Oe}from"./NumberInput-B4CVeFgD.js";import{n as ke,t as Ae}from"./exampleBudget-UOIfiBzZ.js";import{t as je}from"./fittingCancellation-DywOCX-s.js";/* empty css */var X=b(``);function Me(e,n){ne(n,!0);let r=N(n,`expanded`,15,!1),i=N(n,`summary`,3,`Advanced options`);t(e,{get label(){return i()},get open(){return r()},set open(e){r(e)},children:(e,t)=>{var r=X(),i=L(r);d(i,()=>n.children),T(r),p(e,r)},$$slots:{default:!0}}),ie()}var Ne=b(`
`),Z=b(`
`);function Pe(e,t){let n=l();ne(t,!0);var r=g(),i=M(r),a=e=>{var r=Z(),i=L(r),a=P(i),o=O(i,2);u(o,20,()=>t.messages,e=>e,(e,t)=>{var n=Ne(),r=P(n,!0);S(()=>_(r,t)),p(e,n)}),T(o),T(r),S(()=>{D(r,`aria-labelledby`,`${n}-heading`),D(i,`id`,`${n}-heading`),_(a,`Check these before you ${t.verb??``}`)}),p(e,r)};c(i,e=>{t.messages.length>0&&e(a)}),p(e,r),ie()}var Q=b(`at most in the browser`),Fe=b(``),Ie=b(``),Le=b(``),Re=b(`
Linear (PCA) · curved layouts are not in the hosted release
`),He=b(`
`),Ue=b(`
Fit
`);function We(e,t){ne(t,!0);let n=N(t,`spectralNote`,3,`curved`),r=N(t,`linearOnly`,3,!1);y(()=>{r()&&t.tuning.fitMode!==`pca`&&t.onchange(`pca`)});var i=Ue(),a=L(i),o=L(a),l=e=>{var n=Be(),r=P(n,!0);S(()=>_(r,t.step)),p(e,n)};c(o,e=>{t.step&&e(l)}),V(),T(a);var u=O(a,2),d=e=>{var t=Ve();p(e,t)},f=e=>{var r=He(),i=L(r);{let e=E(()=>[{value:`auto`,label:`Auto`,hint:`Suggest a flat or periodic layout per model. This does not recover Klein-bottle or RP² coordinates.`},{value:`pca`,label:`PCA`,hint:`Flat`},{value:`spectral`,label:`Spectral`,hint:n()}]);s(i,{label:`Fit method`,get value(){return t.tuning.fitMode},get onchange(){return t.onchange},get options(){return h(e)}})}var a=O(i,2),o=P(a,!0);T(r),S(()=>_(o,t.tuning.fitMode===`auto`?`flat or periodic`:t.tuning.fitMode===`pca`?`flat`:n())),p(e,r)};c(u,e=>{r()?e(d):e(f,-1)}),T(i),p(e,i),ie()}function $(e){return e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`_`).replace(/^[_.-]+|[_.-]+$/g,``)}function Ge(e){return{namespace:$(e.namespace)||`local`,name:$(e.name),description:e.description.trim()}}function Ke(e){return e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean)}function qe(e=Ce(),t=!1){return{fitMode:t?`pca`:`auto`,maxDim:e===null?8:Math.min(8,e),varThreshold:.7,kNN:null,bandwidth:null}}function Je(e){let t={max_dim:e.maxDim};return(e.fitMode===`pca`||e.fitMode===`auto`)&&(t.var_threshold=e.varThreshold),(e.fitMode===`spectral`||e.fitMode===`auto`)&&(e.kNN!==null&&e.kNN>0&&(t.k_nn=e.kNN),e.bandwidth!==null&&e.bandwidth>0&&(t.bandwidth=e.bandwidth)),t}function Ye(e,t=Ce()){return e!==null&&e<1?`Use a maximum dimension of at least 1.`:e!==null&&t!==null&&e>t?`Hosted browser fitting supports at most ${t} dimensions.`:null}function Xe(e,t=Ce()){let n=[],r=Ye(e.maxDim,t);return r&&n.push(r),(e.fitMode===`pca`||e.fitMode===`auto`)&&(e.varThreshold<=0||e.varThreshold>1)&&n.push(`variance ∈ (0, 1]`),n}var Ze=b(`
`),Qe=b(`
`),$e=b(``),et=b(``),tt=b(`
`),nt=b(`
dimensions · at least nodes
`,1),rt=b(``),it=b(``),at=b(`
`),ot=b(`
`),st=b(`
`),ct=b(`
`),lt=b(``),ut=b(`
2Layout
3Nodes
`);function dt(t,a){ne(a,!0);let s=A(!1),l=Ce(),d=ye.mode!==`http`,f=w(qe(l,d)),m=A(!1),g=A(!1),y=A(!1),b=A(null),ee=A(null),k=A(`box`),N=A(2),R=A(2),B=A(w([{name:`x`,lo:0,hi:1,periodic:!1},{name:`y`,lo:0,hi:1,periodic:!1},{name:`z`,lo:0,hi:1,periodic:!1}])),H=E(()=>h(k)===`box`?h(N):h(k)===`sphere`?h(R):2),U=E(()=>h(k)===`projective`?6:2*h(H)+1);function W(){return!d&&h(k)===`klein`?{type:`klein`}:!d&&h(k)===`projective`?{type:`projective`,dim:2}:h(k)===`sphere`?{type:`sphere`,dim:h(R)}:{type:`box`,axes:h(B).slice(0,h(N)).map(e=>({name:e.name,periodic:e.periodic,period:e.hi-e.lo,lo:e.lo,hi:e.hi}))}}function se(e){I(N,e,!0),I(k,`box`),q()}function le(){I(k,`sphere`),q()}let ue=E(()=>h(k)===`box`?`box${h(N)}`:h(k)),de=[{value:`box1`,label:`Line`},{value:`box2`,label:`Plane`},{value:`box3`,label:`Box`},{value:`sphere`,label:`Sphere`},...d?[]:[{value:`klein`,label:`Klein bottle`},{value:`projective`,label:`Projective plane`}]];function fe(e){e===`box1`||e===`box2`||e===`box3`?se(Number(e.slice(3))):e===`sphere`?le():(I(k,e,!0),q())}function me(e){I(R,e,!0),q()}let K=A(w([])),he=/^[a-z0-9._-]+$/;function q(){let e=h(H);I(K,h(K).map(t=>{let n=t.coords.slice(0,e);for(;n.lengthn!==e),!0)}function Y(e,t,n){I(K,h(K).map((r,i)=>i===e?{...r,[t]:n}:r),!0)}function we(e,t,n){I(K,h(K).map((r,i)=>{if(i!==e)return r;let a=r.coords.slice();return a[t]=n,{...r,coords:a}}),!0)}function ke(e){return e.statements.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)}function Ae(e){if(!e.every(Number.isFinite))return!1;if(h(k)!==`box`)return!0;for(let t=0;tn.hi)return!1}return!0}let je=E(()=>{let e=[];if($(a.identity.name)||e.push(`name required`),!h(s)&&h(k)===`box`)for(let t=0;t lo`)}h(s)?h(K).length<2&&e.push(`nodes: ${h(K).length} / 2`):h(K).length$(e.label)===t).length>1?`Each node label must be unique.`:null:`Enter a label for this node.`}function Z(e){return!h(y)||h(s)||Ae(h(K)[e].coords)?null:`Keep every coordinate inside the selected domain.`}function Q(e){return!h(y)||ke(h(K)[e]).length>0?null:`Add at least one example statement.`}function Fe(e){if(!h(y))return null;let t=h(K)[e].role.trim();return t&&!he.test(t)?`Use lowercase letters, numbers, dots, underscores, or hyphens.`:null}function Ie(){if(!h(y))return null;let e=h(s)?2:h(U);return h(K).lengthe.hi<=e.lo);if(e>=0){h(b)?.querySelector(`#authored-axis-${e}-hi input`)?.focus();return}}if(Ie())h(ee)?.focus();else{for(let e=0;el?`Dimensions at most`:`Variance kept`)?.focus())}}}async function Ve(){if(h(g))return;if(I(y,!0),!h(je).ok){await Be();return}I(g,!0);let{namespace:e,name:t,description:n}=Ge(a.identity);if(h(s)){let r={namespace:e,name:t,description:n,fit_mode:f.fitMode,hyperparams:Je(f),nodes:h(K).map(e=>{let t=e.role.trim();return{label:$(e.label),statements:ke(e),...t?{role:t}:{}}})};try{await pe.createDiscover(r),await _e(),J(`Created ${e}/${t} (auto-domain, ${f.fitMode} fit). Open Manifolds to fit it.`,{kind:`info`}),a.oncomplete?a.oncomplete():(xe(),be(`manifolds`))}catch(e){J(`Couldn't create the manifold: ${He(e)}`,{kind:`error`,ttlMs:null})}finally{I(g,!1)}return}let r={namespace:e,name:t,description:n,domain:W(),nodes:h(K).map(e=>{let t=e.role.trim();return{label:$(e.label),coords:e.coords.slice(0,h(H)),statements:ke(e),...t?{role:t}:{}}})};try{let n=await pe.create(r);await _e();let i=n.advisories??[];i.length>0?J(`Created ${e}/${t}. Check ${i.length} coordinate ${i.length===1?`warning`:`warnings`}.`,{kind:`warning`,detail:i.join(`; `),ttlMs:1e4}):J(`built manifold ${e}/${t}`,{kind:`info`}),a.oncomplete?a.oncomplete():(xe(),be(`manifolds`))}catch(e){J(`Couldn't create the manifold: ${He(e)}`,{kind:`error`,ttlMs:null})}finally{I(g,!1)}}function He(e){return Se(e,`Unable to build this direction. Check the highlighted fields and try again.`)}re(()=>oe(`manifold_authored`,{schema:G,read:()=>({busy:h(g),values:{auto_domain:h(s),domain_kind:h(k),box_dim:h(N),sphere_dim:h(R),axes:h(B),nodes:h(K),tuning:f,advanced_open:h(m)},validation:h(je)}),update:async e=>{if(h(g))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);if(d&&[`klein`,`projective`].includes(e.domain_kind))throw new ce(`UNAVAILABLE`,`This domain is supported by the HTTP runtime only.`);e.auto_domain!==void 0&&I(s,e.auto_domain,!0),e.domain_kind!==void 0&&I(k,e.domain_kind,!0),e.box_dim!==void 0&&I(N,e.box_dim,!0),e.sphere_dim!==void 0&&I(R,e.sphere_dim,!0),e.axes!==void 0&&I(B,structuredClone(e.axes),!0),e.nodes!==void 0&&I(K,structuredClone(e.nodes),!0),e.tuning&&Object.assign(f,e.tuning),e.advanced_open!==void 0&&I(m,e.advanced_open,!0),e.nodes===void 0&&[`domain_kind`,`box_dim`,`sphere_dim`].some(t=>e[t]!==void 0)&&q()}}));var Ue=ut(),Ke=L(Ue),Ye=O(L(Ke),2),dt=L(Ye);n(dt,{get checked(){return h(s)},onchange:e=>I(s,e,!0),label:`Find the layout`,hint:`Skip the coordinates: the fit derives the layout per model`}),T(Ye);var ft=O(Ye,2),pt=e=>{var t=nt(),i=M(t);o(i,{label:`Domain shape`,get value(){return h(ue)},onchange:fe,get options(){return de},scroll:!0});var a=O(i,2),s=e=>{var t=$e();u(t,21,()=>h(B).slice(0,h(N)),v,(e,t,r)=>{var i=Qe(),a=L(i),o=O(L(a),2);j(o),T(a);var s=O(a,2),l=O(L(s),2);Oe(l,{get value(){return h(t).lo},step:.1,oninput:e=>{e!==null&&(h(B)[r].lo=e)}}),T(s);var u=O(s,2),d=O(L(u),2);D(d,`id`,`authored-axis-${r}-hi`);var f=L(d);{let e=E(()=>X(r)!==null),n=E(()=>`${h(t).name||`Axis ${r+1}`} high value`),i=E(()=>X(r)?`authored-axis-${r}-error`:void 0);Oe(f,{get value(){return h(t).hi},step:.1,get invalid(){return h(e)},get ariaLabel(){return h(n)},get ariaDescribedby(){return h(i)},oninput:e=>{e!==null&&(h(B)[r].hi=e)}})}T(d),T(u);var m=O(u,2),g=L(m);n(g,{get checked(){return h(t).periodic},label:`Wraps`,hint:`Periodic: the far end meets the near one`,onchange:e=>{h(B)[r].periodic=e}}),T(m);var v=O(m,2),y=e=>{var t=Ze();D(t,`id`,`authored-axis-${r}-error`);var n=P(t,!0);S(e=>_(n,e),[()=>X(r)]),p(e,t)},b=E(()=>X(r));c(v,e=>{h(b)&&e(y)}),T(i),S(()=>C(o,h(t).name)),x(`input`,o,e=>{h(B)[r].name=e.currentTarget.value}),p(e,i)}),T(t),p(e,t)},l=e=>{var t=et(),n=O(L(t),2);De(n,{get value(){return h(R)},options:[{value:1,label:`S¹ (circle)`},{value:2,label:`S² (sphere)`},{value:3,label:`S³`}],ariaLabel:`Sphere dimension`,onchange:me}),T(t),p(e,t)},d=e=>{var t=tt(),n=P(t,!0);S(e=>_(n,e),[()=>Ee(W())]),p(e,t)};c(a,e=>{h(k)===`box`?e(s):h(k)===`sphere`?e(l,1):e(d,-1)});var f=O(a,2),m=L(f),g=L(m);r(g,{get text(){return h(H)}}),T(m);var y=O(m,2),b=L(y);r(b,{get text(){return h(U)}}),T(y),V(),T(f),p(e,t)},mt=e=>{We(e,{get tuning(){return f},get linearOnly(){return d},spectralNote:`curved · best with ≥50 nodes`,onchange:e=>f.fitMode=e})};c(ft,e=>{h(s)?e(mt,-1):e(pt)}),T(Ke);var ht=O(Ke,2),gt=L(ht),_t=O(L(gt),2),vt=L(_t);{let e=E(()=>`${h(K).length} ${h(K).length===1?`node`:`nodes`}${h(s)?``:` · ${h(H)}D`}`);r(vt,{get text(){return h(e)}})}T(_t),T(gt);var yt=O(gt,2);u(yt,21,()=>h(K),v,(t,n,r)=>{var a=st();D(a,`data-node-index`,r);var o=L(a),l=L(o);D(l,`aria-controls`,`authored-node-${r}-details`);var d=L(l),f=L(d);e(f,{name:`down`}),T(d),T(l);var m=O(l,2);j(m),D(m,`aria-label`,`Node ${r+1} label`);var g=O(m,2),y=e=>{var t=it();u(t,21,()=>h(n).coords,v,(e,t,i)=>{var a=rt(),o=L(a);{let e=E(()=>`Node ${h(n).label||r+1}, coordinate ${i+1}`),a=E(()=>Z(r)!==null),s=E(()=>Z(r)?`authored-node-${r}-coords-error`:void 0);Oe(o,{get value(){return h(t)},step:.1,get ariaLabel(){return h(e)},get invalid(){return h(a)},get ariaDescribedby(){return h(s)},oninput:e=>we(r,i,e??0)})}T(a),p(e,a)}),T(t),p(e,t)};c(g,e=>{h(s)||e(y)});var b=O(g,2),ee=L(b);e(ee,{name:`close`}),T(b),T(o);var w=O(o,2),k=e=>{var t=at();D(t,`id`,`authored-node-${r}-label-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Ne(r)]),p(e,t)},A=E(()=>Ne(r));c(w,e=>{h(A)&&e(k)});var ne=O(w,2),re=e=>{var t=at();D(t,`id`,`authored-node-${r}-coords-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Z(r)]),p(e,t)},M=E(()=>Z(r));c(ne,e=>{h(M)&&e(re)});var ie=O(ne,2),ae=e=>{var t=at();D(t,`id`,`authored-node-${r}-role-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Fe(r)]),p(e,t)},N=E(()=>Fe(r));c(ie,e=>{h(N)&&e(ae)});var F=O(ie,2),I=e=>{var t=at();D(t,`id`,`authored-node-${r}-statements-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Q(r)]),p(e,t)},R=E(()=>Q(r));c(F,e=>{h(R)&&e(I)});var B=O(F,2),V=e=>{var t=ot();D(t,`id`,`authored-node-${r}-details`);var a=L(t),o=O(L(a),2);j(o),T(a);var s=O(a,2);te(s),T(t),S((e,t,i,c)=>{D(a,`data-tip`,Te),C(o,h(n).role),D(o,`aria-invalid`,e),D(o,`aria-describedby`,t),C(s,h(n).statements),D(s,`aria-label`,`Statements for node ${h(n).label||r+1}`),D(s,`aria-invalid`,i),D(s,`aria-describedby`,c)},[()=>Fe(r)!==null,()=>Fe(r)?`authored-node-${r}-role-error`:void 0,()=>Q(r)!==null,()=>Q(r)?`authored-node-${r}-statements-error`:void 0]),x(`input`,o,e=>Y(r,`role`,e.currentTarget.value)),x(`input`,s,e=>Y(r,`statements`,e.currentTarget.value)),z(3,t,()=>i),p(e,t)};c(B,e=>{h(n).expanded&&e(V)}),T(a),S((e,t)=>{D(l,`aria-expanded`,h(n).expanded),D(l,`aria-label`,`${h(n).expanded?`Collapse`:`Expand`} node ${h(n).label||r+1}`),C(m,h(n).label),D(m,`aria-invalid`,e),D(m,`aria-describedby`,t),D(b,`aria-label`,`remove node ${h(n).label??``}`)},[()=>Ne(r)!==null,()=>Ne(r)?`authored-node-${r}-label-error`:void 0]),x(`click`,l,()=>Y(r,`expanded`,!h(n).expanded)),x(`input`,m,e=>Y(r,`label`,e.currentTarget.value)),x(`click`,b,()=>ve(r)),p(t,a)}),T(yt);var bt=O(yt,2);F(bt,e=>I(ee,e),()=>h(ee));var xt=O(bt,2),St=e=>{var t=at(),n=P(t,!0);S(e=>_(n,e),[()=>Ie()]),p(e,t)},Ct=E(()=>Ie()),wt=e=>{var t=ct(),n=P(t);S(()=>_(n,`At least ${(h(s)?2:h(U))??``} nodes`)),p(e,t)};c(xt,e=>{h(Ct)?e(St):h(K).length===0&&e(wt,1)}),T(ht);var Tt=O(ht,2),Et=e=>{Me(e,{get expanded(){return h(m)},set expanded(e){I(m,e,!0)},children:(e,t)=>{ze(e,{get tuning(){return f},get maxDimLimit(){return l}})},$$slots:{default:!0}})};c(Tt,e=>{h(s)&&e(Et)});var Dt=O(Tt,2);{let e=E(()=>h(y)?h(je).messages:[]);Pe(Dt,{verb:`build`,get messages(){return h(e)}})}var Ot=O(Dt,2),kt=L(Ot),At=L(kt);{let e=E(()=>h(g)?`Building…`:`Build`);r(At,{get text(){return h(e)},numbers:!1})}T(kt);var jt=O(kt,2),Mt=e=>{var t=lt(),n=P(t);S(()=>_(n,`${f.fitMode===`pca`?`PCA`:f.fitMode===`auto`?`Auto`:`Spectral`} fit`)),p(e,t)};c(jt,e=>{h(s)&&e(Mt)}),T(Ot),T(Ue),F(Ue,e=>I(b,e),()=>h(b)),S(()=>kt.disabled=h(g)),x(`click`,bt,ge),x(`click`,kt,Ve),p(t,Ue),ie()}f([`input`,`click`]);var ft=b(``),pt=b(``),mt=b(``),ht=b(``),gt=b(``),_t=b(``),vt=b(` `,1),yt=b(``),bt=b(`No compatible feature pack installed`),xt=b(`
Feature space
`),St=b(``),Ct=b(`
`,1),wt=b(`
`),Tt=b(``),Et=b(``),Dt=b(`
`),Ot=b(`
`);function kt(e,t){ne(t,!0);let i=[],a=Ce(),o=ye.mode!==`http`,l=w(qe(a,o)),d=A(``),f=A(`concrete`),m=A(`You are {c}.`),g=A(1),b=A(`1`),C=A(!1),N=A(!1),z=A(``),B=A(!0),U=A(!1),W=A(!1),G=A(null),de={},pe=A(null),me=A(!1),q=A(!1),ve=E(()=>le.current!==null&&[`running`,`waiting`,`cancelling`].includes(le.current.status)),Y=A(!1),xe=A(null),Se=A(null),we=A(null),Ee=A(null),X=E(()=>Ke(h(d))),Ne=E(()=>h(g)*Ae),Z=E(()=>h(Ne)*h(X).length),Q=E(()=>[{value:``,label:`Standard fit (no feature pack)`},...ue.sources.map(e=>({value:e.source,label:e.name?.trim()||e.source}))]);re(()=>{o&&fe()});let Fe=E(()=>{let e=[];$(t.identity.name)||e.push(`name required`),h(X).length<2&&e.push(`concepts: ${h(X).length} / 2`);let n=new Set;for(let t of h(X)){let r=$(t);r?n.has(r)?e.push(`duplicate concept "${r}"`):n.add(r):e.push(`invalid concept "${t}"`)}if((!Number.isSafeInteger(h(g))||h(g)<1)&&e.push(`Choose a whole number of responses per prompt, at least 1.`),h(f)===`custom`){let t=h(m).trim();t?t.includes(`{c}`)||e.push(`system template needs "{c}"`):e.push(`system template required`)}return e.push(...Xe(l,a)),{ok:e.length===0,messages:e}}),Ie=E(()=>{if(!h(Y))return null;if(h(X).length<2)return`Enter at least two concepts.`;let e=new Set;for(let t of h(X)){let n=$(t);if(!n)return`Concept “${t}” needs a letter or number.`;if(e.has(n))return`Each concept must be unique after formatting.`;e.add(n)}return null}),Le=E(()=>h(Y)&&(!Number.isSafeInteger(h(g))||h(g)<1)?`Use a whole number, at least 1.`:null),Re=E(()=>!h(Y)||h(f)!==`custom`?null:h(m).trim()?h(m).includes(`{c}`)?null:`Include the "{c}" placeholder.`:`Enter a system template.`);y(()=>{let e=h(we)?.querySelector(`input`);e&&(h(Le)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`discover-samples-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))});function Be(){return(h(xe)?.closest(`.mb-form`))?.querySelector(`input[data-identity="name"]`)??null}function Ve(e){let t=h(xe)?.querySelectorAll(`.field`)??[];for(let n of t)if(n.querySelector(`.label`)?.textContent?.trim()===e)return n.querySelector(`input`);return null}async function He(){await ae(),$(t.identity.name)?h(Ie)?h(Se)?.focus():h(Le)?h(we)?.querySelector(`input`)?.focus():h(Re)?h(Ee)?.focus():Xe(l,a).length!==0&&(I(U,!0),await ae(),Ve(l.maxDim<1||a!==null&&l.maxDim>a?`Dimensions at most`:`Variance kept`)?.focus()):Be()?.focus()}async function Ue(){if(h(W)||h(ve))return;if(I(Y,!0),!h(Fe).ok){await He();return}I(W,!0),I(pe,null),I(G,null),I(q,!1);let{namespace:e,name:n,description:r}=Ge(t.identity),i=Je(l),a={namespace:e,name:n,description:r,concepts:h(X).map(e=>$(e)),kind:h(f),custom_system:h(f)===`custom`?h(m).trim():void 0,samples_per_prompt:h(g),fit_mode:l.fitMode,hyperparams:i,force:h(N),role_per_node:h(C)};de={sae:h(z).trim()||null,fit_mode:l.fitMode,hyperparams:i};let o=h(B);try{await he(a,()=>{},o),I(G,{namespace:e,name:n,fitted:!1},!0),o&&(await K(e,n,de,()=>{}),I(G,{namespace:e,name:n,fitted:!0},!0)),await _e()}catch(e){I(pe,je(e)?h(G)?`Fitting cancelled. Your examples are saved; you can fit them below.`:`Generation cancelled. Completed concept groups are kept; run again to fill any missing groups.`:`${h(G)?`Examples were saved, but fitting failed`:`Could not generate the examples`}: ${H(e)}`,!0),await _e()}finally{I(W,!1)}}async function Ye(){if(!h(G)||h(W)||h(ve))return;let e=h(G);I(W,!0),I(pe,null);try{await K(e.namespace,e.name,de,()=>{}),I(G,{...e,fitted:!0},!0),await _e()}catch(e){I(pe,je(e)?`Fitting cancelled. Your saved examples are ready to try again.`:`Could not fit the saved examples: ${H(e)}`,!0)}finally{I(W,!1)}}async function Ze(){if(h(G)?.fitted&&!h(me)){I(me,!0);try{await ge(`${h(G).namespace}/${h(G).name}`),I(q,!0),J(`Probe added. Generate a reply to see its readings.`)}catch(e){I(pe,`Could not add the probe: ${H(e)}`)}finally{I(me,!1)}}}re(()=>oe(`manifold_discover`,{schema:se,read:()=>({busy:h(W)||h(me)||h(ve),values:{concepts_text:h(d),kind:h(f),custom_system:h(m),samples_per_prompt:h(g),role_per_node:h(C),force:h(N),sae_release:h(z),also_fit:h(B),advanced_open:h(U),tuning:l},validation:h(Fe),examples_per_concept:h(Ne),total_examples:h(Z)}),update:async e=>{if(h(W)||h(me)||h(ve))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);e.concepts_text!==void 0&&I(d,e.concepts_text,!0),e.kind!==void 0&&I(f,e.kind,!0),e.custom_system!==void 0&&I(m,e.custom_system,!0),e.samples_per_prompt!==void 0&&(I(g,e.samples_per_prompt,!0),I(b,String(h(g)),!0)),e.role_per_node!==void 0&&I(C,e.role_per_node,!0),e.force!==void 0&&I(N,e.force,!0),e.sae_release!==void 0&&I(z,e.sae_release,!0),e.also_fit!==void 0&&I(B,e.also_fit,!0),e.advanced_open!==void 0&&I(U,e.advanced_open,!0),e.tuning&&Object.assign(l,e.tuning)}}));var Qe=Ot(),$e=L(Qe),et=L($e),tt=O(L(et),2),nt=O(L(tt),2);te(nt),F(nt,e=>I(Se,e),()=>h(Se));var rt=O(nt,2),it=e=>{var t=ft(),n=P(t,!0);S(()=>_(n,h(Ie))),p(e,t)};c(rt,e=>{h(Ie)&&e(it)});var at=O(rt,2),ot=L(at),st=L(ot);r(st,{get text(){return h(X).length}}),T(ot),V(),T(at),T(tt);var ct=O(tt,2),lt=L(ct);s(lt,{label:`Concept kind`,get value(){return h(f)},onchange:e=>I(f,e,!0),options:[{value:`concrete`,label:`Roles`,hint:`Roles or characters: “a pirate”`},{value:`abstract`,label:`Traits`,hint:`Traits or feelings: “someone patient”`},{value:`custom`,label:`Custom`,hint:`Your own system template, with {c} for the concept`}]}),T(ct);var ut=O(ct,2),dt=e=>{var t=mt(),n=O(L(t),2);te(n),F(n,e=>I(Ee,e),()=>h(Ee));var r=O(n,2),i=e=>{var t=pt(),n=P(t,!0);S(()=>_(n,h(Re))),p(e,t)};c(r,e=>{h(Re)&&e(i)}),T(t),S(()=>{D(n,`aria-invalid`,!!h(Re)),D(n,`aria-describedby`,h(Re)?`discover-system-error`:void 0)}),R(n,()=>h(m),e=>I(m,e)),p(e,t)};c(ut,e=>{h(f)===`custom`&&e(dt)}),T(et);var kt=O(et,2),At=O(L(kt),2),jt=L(At);u(jt,17,()=>ke,v,(e,t)=>{var n=ht(),r=L(n);j(r);var a,o=O(r,2),s=P(o,!0),c=O(o),l=P(c);T(n),S(e=>{D(n,`data-tip`,h(t).description),a!==(a=e)&&(r.value=(r.__value=a)??``),_(s,h(t).label),_(l,`${h(t).rounds*Ae} per concept`)},[()=>String(h(t).rounds)]),x(`change`,r,()=>I(g,h(t).rounds,!0)),k(i,[],r,()=>(String(h(t).rounds),h(b)),e=>I(b,e)),p(e,n)});var Mt=O(jt,2),Nt=L(Mt);j(Nt),Nt.value=Nt.__value=`custom`,V(3),T(Mt),T(At);var Pt=O(At,2),Ft=e=>{var t=_t(),n=O(L(t),2);Oe(n,{get value(){return h(g)},min:1,step:1,oninput:e=>{e!==null&&I(g,e,!0)}});var r=O(n,2),i=e=>{var t=gt(),n=P(t,!0);S(()=>_(n,h(Le))),p(e,t)};c(r,e=>{h(Le)&&e(i)}),T(t),F(t,e=>I(we,e),()=>h(we)),p(e,t)};c(Pt,e=>{h(b)===`custom`&&e(Ft)});var It=O(Pt,2),Lt=L(It),Rt=e=>{var t=vt(),n=M(t),r=P(n,!0),i=O(n);S(e=>{_(r,e),_(i,` · ${h(X).length??``} × ${h(Ne)??``}`)},[()=>`${h(Z).toLocaleString()} examples total`]),p(e,t)},zt=E(()=>Number.isSafeInteger(h(Z))&&h(Z)>0),Bt=e=>{var t=ee(`Choose concepts and a budget`);p(e,t)};c(Lt,e=>{h(zt)?e(Rt):e(Bt,-1)}),T(It),T(kt),Me(O(kt,2),{get expanded(){return h(U)},set expanded(e){I(U,e,!0)},children:(e,t)=>{var r=Ct(),i=M(r);We(i,{get tuning(){return l},get linearOnly(){return o},spectralNote:`curved · best with ≥50 nodes`,onchange:e=>l.fitMode=e});var s=O(i,2),u=e=>{var t=xt(),n=O(L(t),2);{let e=E(()=>ue.loading||ue.busy);De(n,{get options(){return h(Q)},get disabled(){return h(e)},ariaLabel:`Feature space used for manifold fitting`,get value(){return h(z)},set value(e){I(z,e,!0)}})}var r=O(n,2),i=e=>{var t=yt(),n=P(t,!0);S(()=>_(n,ue.error)),p(e,t)},a=e=>{var t=bt();p(e,t)};c(r,e=>{ue.error?e(i):!ue.loading&&ue.sources.length===0&&e(a,1)}),T(t),p(e,t)},d=e=>{var t=St(),n=O(L(t),2);j(n),T(t),R(n,()=>h(z),e=>I(z,e)),p(e,t)};c(s,e=>{o?e(u):e(d,-1)});var f=O(s,2);ze(f,{get tuning(){return l},get maxDimLimit(){return a}});var m=O(f,2),g=L(m);n(g,{get checked(){return h(B)},onchange:e=>I(B,e,!0),label:`Fit after generating examples`});var v=O(g,2);{let e=E(()=>`${Te} A chat template without roles fails before fitting.`);n(v,{get checked(){return h(C)},onchange:e=>I(C,e,!0),label:`Use a separate role for each concept`,get hint(){return h(e)}})}var y=O(v,2);n(y,{get checked(){return h(N)},onchange:e=>I(N,e,!0),label:`Replace existing examples with this name`,hint:`Without replacement, existing concept groups are reused. To change their budget, use a new name or replace them.`}),T(m),p(e,r)},$$slots:{default:!0}}),T($e);var Vt=O($e,2),Ht=e=>{var t=wt(),n=P(t,!0);S(()=>_(n,h(pe))),p(e,t)};c(Vt,e=>{h(pe)&&e(Ht)});var Ut=O(Vt,2),Wt=e=>{var n=Dt(),r=L(n),i=L(r),a=P(i),o=O(i),s=P(o,!0);T(r);var l=O(r,2),u=L(l),d=e=>{var t=Tt(),n=P(t,!0);S(()=>{t.disabled=h(q)||h(me),_(n,h(q)?`Probe added`:`Add probe`)}),x(`click`,t,()=>void Ze()),p(e,t)},f=e=>{var t=Et();S(()=>t.disabled=h(ve)),x(`click`,t,()=>void Ye()),p(e,t)};c(u,e=>{h(G).fitted?e(d):e(f,-1)});var m=O(u,2);T(l),T(n),S(()=>{_(a,`${h(G).namespace??``}/${h(G).name??``}`),_(s,h(G).fitted?`Ready to use`:`Examples saved`)}),x(`click`,m,()=>t.oncomplete?t.oncomplete(h(G)):be(`subspace`)),p(e,n)};c(Ut,e=>{h(G)&&!h(W)&&e(Wt)});var Gt=O(Ut,2);{let e=E(()=>h(Y)?h(Fe).messages:[]);Pe(Gt,{verb:`generate examples`,get messages(){return h(e)}})}var Kt=O(Gt,2),qt=L(Kt),Jt=L(qt);{let e=E(()=>h(B)?`Generate and fit`:`Generate examples`);r(Jt,{get text(){return h(e)}})}T(qt),T(Kt),T(Qe),F(Qe,e=>I(xe,e),()=>h(xe)),S(()=>{D(Qe,`aria-busy`,h(W)),$e.disabled=h(W)||h(ve),D(nt,`aria-invalid`,!!h(Ie)),D(nt,`aria-describedby`,h(Ie)?`discover-concepts-error`:void 0),D(It,`data-tip`,`Each round covers all ${Ae} prompts. More examples can reduce sampling noise, but do not guarantee a better probe.`),qt.disabled=h(W)||h(ve)}),R(nt,()=>h(d),e=>I(d,e)),k(i,[],Nt,()=>h(b),e=>I(b,e)),x(`click`,qt,Ue),p(e,Qe),ie()}f([`change`,`click`]);var At=b(`
`),jt=b(``),Mt=b(`
slot · values × contexts
`),Nt=b(` `,1),Pt=b(``),Ft=b(`at most in the browser`),It=b(` `,1),Lt=b(``),Rt=b(`
2Template
`);function zt(e,t){ne(t,!0);let i=Ce(),a=ye.mode!==`http`,o=w(qe(i,a)),s=A(w([])),l=A(!0),u=A(``),d=A(null),f=A(!0),m=A(!1),g=A(!1),v=A(!1),b=A(``),ee=A(null),C=A(null),te=A(null),k=A(null),j=A(!1),N=A(!1),R=we();re(async()=>{try{I(s,(await de.list()).templates,!0)}catch(e){J(`couldn't load templates: ${H(e)}`,{kind:`error`})}finally{I(l,!1)}});let z=E(()=>h(s).map(e=>({value:`${e.namespace}/${e.name}`,label:`${e.namespace}/${e.name} · ${e.slot} · ${e.n_values}×${e.n_contexts}`}))),B=E(()=>h(s).find(e=>`${e.namespace}/${e.name}`===h(u))??null),W=E(()=>{let e=[];$(t.identity.name)||e.push(`name required`),h(B)||e.push(`template required`);let n=Ye(h(d),i);return n&&e.push(n),{ok:e.length===0,messages:e}}),se=E(()=>h(v)&&!h(B)?`Choose a template.`:null),G=E(()=>h(v)?Ye(h(d),i):null);y(()=>{let e=h(C)?.querySelector(`button`);e&&(h(se)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`templated-source-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))}),y(()=>{let e=h(te)?.querySelector(`input`);e&&(h(G)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`templated-max-dim-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))});function le(){return(h(ee)?.closest(`.mb-form`))?.querySelector(`input[data-identity="name"]`)??null}async function ue(){await ae(),$(t.identity.name)?h(se)?(h(C)?.querySelector(`button`)??h(k))?.focus():h(G)&&(I(m,!0),await ae(),h(te)?.querySelector(`input`)?.focus()):le()?.focus()}function fe(){xe(),be(`template_lab`,{tab:`build`})}async function me(){if(R&&h(j)&&!h(N)){I(N,!0),I(b,`Cancelling fit…`);try{await R.cancelFitting()}catch(e){J(`Couldn't cancel the fit: ${H(e)}`,{kind:`error`,ttlMs:null})}finally{I(N,!1)}}}async function he(){if(h(g))return;if(I(v,!0),!h(W).ok||!h(B)){await ue();return}I(g,!0),I(b,`Starting authoring…`);let{namespace:e,name:n,description:r}=Ge(t.identity),i={};h(d)!==null&&h(d)>=1&&(i.max_dim=h(d));let a={namespace:e,name:n,description:r,fit_mode:o.fitMode,template_ref:`${h(B).namespace}/${h(B).name}`,hyperparams:i},s=J(`authoring ${e}/${n}…`,{kind:`info`,ttlMs:null});try{if(await pe.createFromTemplate(a),ve(s),h(f)){I(b,`Starting fit…`),I(j,!0);try{await K(e,n,{fit_mode:o.fitMode,hyperparams:i},e=>{if(e.event!==`progress`)return;let t=e.data&&typeof e.data==`object`?e.data.message:null;t&&I(b,t,!0)}),J(`fit ${e}/${n} (${o.fitMode})`,{kind:`info`})}catch(t){je(t)?J(`Fit cancelled. ${e}/${n} was kept and can be fitted later.`,{kind:`info`}):J(`Couldn't fit the manifold: ${H(t)}`,{kind:`error`,ttlMs:null})}finally{I(j,!1),I(N,!1)}}else J(`Created ${e}/${n}. Open Manifolds to fit it.`,{kind:`info`});await _e(),t.oncomplete?t.oncomplete():(xe(),be(`manifolds`))}catch(e){ve(s),J(`Couldn't create the manifold: ${H(e)}`,{kind:`error`,ttlMs:null})}finally{I(g,!1),I(b,``)}}re(()=>oe(`manifold_templated`,{schema:U,read:()=>({busy:h(g)||h(j)||h(N),values:{selected_key:h(u),max_dim:h(d),also_fit:h(f),advanced_open:h(m),tuning:o},validation:h(W),available_templates:h(z),loading_templates:h(l)}),update:async e=>{if(h(g)||h(j)||h(N))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);if(e.selected_key&&!h(z).some(t=>t.value===e.selected_key))throw new ce(`NOT_FOUND`,`Choose a template from available_templates.`);e.selected_key!==void 0&&I(u,e.selected_key,!0),e.max_dim!==void 0&&I(d,e.max_dim,!0),e.also_fit!==void 0&&I(f,e.also_fit,!0),e.advanced_open!==void 0&&I(m,e.advanced_open,!0),e.tuning&&Object.assign(o,e.tuning)}}));var q=Rt(),ge=L(q),Y=O(L(ge),2),Se=e=>{var t=At();p(e,t)},Te=e=>{var t=Nt(),n=M(t),r=O(L(n),2);{let e=E(()=>[{value:``,label:`Choose a template`},...h(z)]);De(r,{get value(){return h(u)},get options(){return h(e)},ariaLabel:`Template`,onchange:e=>{I(u,String(e),!0)}})}var i=O(r,2),a=e=>{var t=jt(),n=P(t,!0);S(()=>_(n,h(se))),p(e,t)};c(i,e=>{h(se)&&e(a)}),T(n),F(n,e=>I(C,e),()=>h(C));var o=O(n,2),s=e=>{var t=Mt(),n=O(L(t)),r=P(n,!0),i=O(n,2),a=P(i,!0),o=O(i,2),s=P(o,!0);V(),T(t),S(()=>{_(r,h(B).slot),_(a,h(B).n_values),_(s,h(B).n_contexts)}),p(e,t)};c(o,e=>{h(B)&&e(s)}),p(e,t)};c(Y,e=>{h(l)?e(Se):h(s).length>0&&e(Te,1)});var Ee=O(Y,2),ke=P(Ee,!0);F(Ee,e=>I(k,e),()=>h(k)),T(ge);var Ae=O(ge,2);We(Ae,{get tuning(){return o},step:3,get linearOnly(){return a},onchange:e=>o.fitMode=e});var X=O(Ae,2);Me(X,{get expanded(){return h(m)},set expanded(e){I(m,e,!0)},children:(e,t)=>{var r=It(),a=M(r),o=O(L(a),2);{let e=E(()=>i??void 0),t=E(()=>i===null?`auto`:`auto · max ${i}`);Oe(o,{get value(){return h(d)},min:1,get max(){return h(e)},step:1,allowEmpty:!0,get placeholder(){return h(t)},oninput:e=>{I(d,e,!0)}})}var s=O(o,2),l=e=>{var t=Pt(),n=P(t,!0);S(()=>_(n,h(G))),p(e,t)},u=e=>{var t=Ft(),n=O(L(t)),r=P(n,!0);V(),T(t),S(()=>_(r,i)),p(e,t)};c(s,e=>{h(G)?e(l):i!==null&&e(u,1)}),T(a),F(a,e=>I(te,e),()=>h(te));var m=O(a,2),g=L(m);n(g,{get checked(){return h(f)},onchange:e=>I(f,e,!0),label:`Fit now`}),T(m),p(e,r)},$$slots:{default:!0}});var Ne=O(X,2);{let e=E(()=>h(v)?h(W).messages:[]);Pe(Ne,{verb:`building`,get messages(){return h(e)}})}var Z=O(Ne,2),Q=L(Z),Fe=L(Q);{let e=E(()=>h(g)?`Building…`:h(f)?`Build and fit`:`Build`);r(Fe,{get text(){return h(e)},numbers:!1})}T(Q);var Ie=O(Q,2),Le=e=>{var t=Lt(),n=L(t);{let e=E(()=>h(N)?`cancelling…`:`cancel`);r(n,{get text(){return h(e)},numbers:!1})}T(t),S(()=>t.disabled=h(N)),x(`click`,t,me),p(e,t)};c(Ie,e=>{R&&h(j)&&e(Le)});var Re=O(Ie,2),ze=L(Re);r(ze,{get text(){return h(b)}}),T(Re),T(Z),T(q),F(q,e=>I(ee,e),()=>h(ee)),S(()=>{D(q,`aria-busy`,h(g)),_(ke,h(s).length===0&&!h(l)?`Write the first template`:`Write a template`),Q.disabled=h(g)}),x(`click`,Ee,fe),x(`click`,Q,he),p(e,q),ie()}f([`click`]);var Bt=b(`
Create a concept or scale
`),Vt=b(``),Ht=b(`
1Name
`);function Ut(e,t){ne(t,!0);let n=E(()=>t.params?.embedded===!0),r=E(()=>t.params?.returnToToken),i=A(w(m(()=>[`authored`,`templated`].includes(t.params?.mode??``)?t.params.mode:`discover`))),o=A(w([]));y(()=>{h(o).includes(h(i))||I(o,[...h(o),h(i)],!0)});let l=E(()=>le.current!==null&&[`running`,`waiting`,`cancelling`].includes(le.current.status)),d=w({namespace:`local`,name:``,description:``});function f(){h(r)?be(`token_drilldown`,h(r)):xe()}function g(e){if(Y.open!==`manifold_builder`)return;let{namespace:t,name:n}=e??Ge(d),i=q.catalog.find(e=>e.namespace===t&&e.name===n);be(me(i),{returnToToken:h(r)})}re(()=>oe(`manifold_builder`,{schema:W,read:()=>({busy:h(l),values:{mode:h(i),...d}}),update:async e=>{if(h(l))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);e.mode!==void 0&&I(i,e.mode,!0);for(let t of[`namespace`,`name`,`description`])e[t]!==void 0&&(d[t]=e[t])}}));var _=Ht();let v;var b=L(_),x=e=>{var t=Bt(),n=O(L(t),2);a(n,{icon:`close`,label:`Close`,onclick:f}),T(t),p(e,t)};c(b,e=>{h(n)||e(x)});var ee=O(b,2),C=L(ee),te=L(C);s(te,{get value(){return h(i)},onchange:e=>{h(l)||I(i,e,!0)},options:[{value:`discover`,label:`Generate`,hint:`Name two or more contrasting concepts; drowse writes the examples and fits a direction`},{value:`templated`,label:`Template`,hint:`A template's possible answers (days, months, directions) become the examples`},{value:`authored`,label:`Your examples`,hint:`Your own labelled statements, on coordinates you place or a layout drowse finds`}],label:`Authoring mode`}),T(C);var k=O(C,2),M=O(L(k),2),ae=L(M),N=O(L(ae),2);j(N),T(ae);var P=O(ae,2),F=O(L(P),2);j(F),T(P),T(M);var z=O(M,2),V=O(L(z),2);j(V),T(z),T(k);var H=O(k,2);u(H,16,()=>h(o),e=>e,(e,t)=>{var n=Vt(),r=L(n),a=e=>{dt(e,{get identity(){return d},oncomplete:g})},o=e=>{kt(e,{get identity(){return d},oncomplete:g})},s=e=>{zt(e,{get identity(){return d},oncomplete:g})};c(r,e=>{t===`authored`?e(a):t===`discover`?e(o,1):e(s,-1)}),T(n),S(()=>{D(n,`hidden`,h(i)!==t),n.inert=h(i)!==t}),p(e,n)}),T(ee),T(_),S(()=>{v=B(_,1,`mf-tool`,null,v,{dialog:!h(n)}),C.disabled=h(l),N.disabled=h(l),F.disabled=h(l),V.disabled=h(l)}),R(N,()=>d.namespace,e=>d.namespace=e),R(F,()=>d.name,e=>d.name=e),R(V,()=>d.description,e=>d.description=e),p(e,_),ie()}export{Ut as default};
\ No newline at end of file
+import{C as e,S as t,c as n,f as r,h as i,p as a,s as o,u as s}from"./src-DWTrC_D-.js";import{A as c,B as l,D as u,E as d,H as f,I as p,J as m,K as h,L as g,N as _,O as v,Q as y,R as b,U as x,V as ee,Z as S,_ as C,at as w,bt as T,dt as E,ft as te,h as D,it as O,l as k,lt as A,m as j,mt as ne,n as re,nt as M,pt as ie,q as ae,r as N,rt as P,s as F,st as I,tt as L,u as R,w as z,y as B,yt as V}from"./index-client-B2jUARBN.js";import{n as H}from"./errors-D9jT6Fvg.js";import{d as oe}from"./workspaceController-C2L33e3m.js";import{d as U,o as W,r as se,t as G}from"./interfaceSchemas-CEzHSS8w.js";import{t as ce}from"./types-CuMUbvHW.js";import"./stores.svelte-Cf8e_r1G.js";import{o as le}from"./manifoldJobs.svelte-CHFVfjZ7.js";import{Ar as ue,Bi as de,Er as fe,Ii as pe,Kn as me,Ni as K,Pi as he,Zt as q,m as ge,zt as _e}from"./session.svelte-DG7XfPv3.js";import{m as J,p as ve,v as ye}from"./selection.svelte-BIYbgTnf.js";import{a as be,r as Y,t as xe}from"./drawers.svelte-kEXNcFnO.js";import{t as Se}from"./userFacingError-DNBzS3_o.js";import{i as Ce,t as we}from"./registry-CQv71XNh.js";import{t as Te}from"./selectors-D8zRdyMn.js";import{t as Ee}from"./surfaceGeometry-DdrOowY4.js";import{t as De}from"./Select-D_bUUsaw.js";import{t as Oe}from"./NumberInput-DKXkismd.js";import{n as ke,t as Ae}from"./exampleBudget-UOIfiBzZ.js";import{t as je}from"./fittingCancellation-kNIVVxQ6.js";/* empty css */var X=b(``);function Me(e,n){ne(n,!0);let r=N(n,`expanded`,15,!1),i=N(n,`summary`,3,`Advanced options`);t(e,{get label(){return i()},get open(){return r()},set open(e){r(e)},children:(e,t)=>{var r=X(),i=L(r);d(i,()=>n.children),T(r),p(e,r)},$$slots:{default:!0}}),ie()}var Ne=b(`
`),Z=b(`
`);function Pe(e,t){let n=l();ne(t,!0);var r=g(),i=M(r),a=e=>{var r=Z(),i=L(r),a=P(i),o=O(i,2);u(o,20,()=>t.messages,e=>e,(e,t)=>{var n=Ne(),r=P(n,!0);S(()=>_(r,t)),p(e,n)}),T(o),T(r),S(()=>{D(r,`aria-labelledby`,`${n}-heading`),D(i,`id`,`${n}-heading`),_(a,`Check these before you ${t.verb??``}`)}),p(e,r)};c(i,e=>{t.messages.length>0&&e(a)}),p(e,r),ie()}var Q=b(`at most in the browser`),Fe=b(``),Ie=b(``),Le=b(``),Re=b(`
Linear (PCA) · curved layouts are not in the hosted release
`),He=b(`
`),Ue=b(`
Fit
`);function We(e,t){ne(t,!0);let n=N(t,`spectralNote`,3,`curved`),r=N(t,`linearOnly`,3,!1);y(()=>{r()&&t.tuning.fitMode!==`pca`&&t.onchange(`pca`)});var i=Ue(),a=L(i),o=L(a),l=e=>{var n=Be(),r=P(n,!0);S(()=>_(r,t.step)),p(e,n)};c(o,e=>{t.step&&e(l)}),V(),T(a);var u=O(a,2),d=e=>{var t=Ve();p(e,t)},f=e=>{var r=He(),i=L(r);{let e=E(()=>[{value:`auto`,label:`Auto`,hint:`Suggest a flat or periodic layout per model. This does not recover Klein-bottle or RP² coordinates.`},{value:`pca`,label:`PCA`,hint:`Flat`},{value:`spectral`,label:`Spectral`,hint:n()}]);s(i,{label:`Fit method`,get value(){return t.tuning.fitMode},get onchange(){return t.onchange},get options(){return h(e)}})}var a=O(i,2),o=P(a,!0);T(r),S(()=>_(o,t.tuning.fitMode===`auto`?`flat or periodic`:t.tuning.fitMode===`pca`?`flat`:n())),p(e,r)};c(u,e=>{r()?e(d):e(f,-1)}),T(i),p(e,i),ie()}function $(e){return e.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,`_`).replace(/^[_.-]+|[_.-]+$/g,``)}function Ge(e){return{namespace:$(e.namespace)||`local`,name:$(e.name),description:e.description.trim()}}function Ke(e){return e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean)}function qe(e=Ce(),t=!1){return{fitMode:t?`pca`:`auto`,maxDim:e===null?8:Math.min(8,e),varThreshold:.7,kNN:null,bandwidth:null}}function Je(e){let t={max_dim:e.maxDim};return(e.fitMode===`pca`||e.fitMode===`auto`)&&(t.var_threshold=e.varThreshold),(e.fitMode===`spectral`||e.fitMode===`auto`)&&(e.kNN!==null&&e.kNN>0&&(t.k_nn=e.kNN),e.bandwidth!==null&&e.bandwidth>0&&(t.bandwidth=e.bandwidth)),t}function Ye(e,t=Ce()){return e!==null&&e<1?`Use a maximum dimension of at least 1.`:e!==null&&t!==null&&e>t?`Hosted browser fitting supports at most ${t} dimensions.`:null}function Xe(e,t=Ce()){let n=[],r=Ye(e.maxDim,t);return r&&n.push(r),(e.fitMode===`pca`||e.fitMode===`auto`)&&(e.varThreshold<=0||e.varThreshold>1)&&n.push(`variance ∈ (0, 1]`),n}var Ze=b(`
`),Qe=b(`
`),$e=b(``),et=b(``),tt=b(`
`),nt=b(`
dimensions · at least nodes
`,1),rt=b(``),it=b(``),at=b(`
`),ot=b(`
`),st=b(`
`),ct=b(`
`),lt=b(``),ut=b(`
2Layout
3Nodes
`);function dt(t,a){ne(a,!0);let s=A(!1),l=Ce(),d=ye.mode!==`http`,f=w(qe(l,d)),m=A(!1),g=A(!1),y=A(!1),b=A(null),ee=A(null),k=A(`box`),N=A(2),R=A(2),B=A(w([{name:`x`,lo:0,hi:1,periodic:!1},{name:`y`,lo:0,hi:1,periodic:!1},{name:`z`,lo:0,hi:1,periodic:!1}])),H=E(()=>h(k)===`box`?h(N):h(k)===`sphere`?h(R):2),U=E(()=>h(k)===`projective`?6:2*h(H)+1);function W(){return!d&&h(k)===`klein`?{type:`klein`}:!d&&h(k)===`projective`?{type:`projective`,dim:2}:h(k)===`sphere`?{type:`sphere`,dim:h(R)}:{type:`box`,axes:h(B).slice(0,h(N)).map(e=>({name:e.name,periodic:e.periodic,period:e.hi-e.lo,lo:e.lo,hi:e.hi}))}}function se(e){I(N,e,!0),I(k,`box`),q()}function le(){I(k,`sphere`),q()}let ue=E(()=>h(k)===`box`?`box${h(N)}`:h(k)),de=[{value:`box1`,label:`Line`},{value:`box2`,label:`Plane`},{value:`box3`,label:`Box`},{value:`sphere`,label:`Sphere`},...d?[]:[{value:`klein`,label:`Klein bottle`},{value:`projective`,label:`Projective plane`}]];function fe(e){e===`box1`||e===`box2`||e===`box3`?se(Number(e.slice(3))):e===`sphere`?le():(I(k,e,!0),q())}function me(e){I(R,e,!0),q()}let K=A(w([])),he=/^[a-z0-9._-]+$/;function q(){let e=h(H);I(K,h(K).map(t=>{let n=t.coords.slice(0,e);for(;n.lengthn!==e),!0)}function Y(e,t,n){I(K,h(K).map((r,i)=>i===e?{...r,[t]:n}:r),!0)}function we(e,t,n){I(K,h(K).map((r,i)=>{if(i!==e)return r;let a=r.coords.slice();return a[t]=n,{...r,coords:a}}),!0)}function ke(e){return e.statements.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)}function Ae(e){if(!e.every(Number.isFinite))return!1;if(h(k)!==`box`)return!0;for(let t=0;tn.hi)return!1}return!0}let je=E(()=>{let e=[];if($(a.identity.name)||e.push(`name required`),!h(s)&&h(k)===`box`)for(let t=0;t lo`)}h(s)?h(K).length<2&&e.push(`nodes: ${h(K).length} / 2`):h(K).length$(e.label)===t).length>1?`Each node label must be unique.`:null:`Enter a label for this node.`}function Z(e){return!h(y)||h(s)||Ae(h(K)[e].coords)?null:`Keep every coordinate inside the selected domain.`}function Q(e){return!h(y)||ke(h(K)[e]).length>0?null:`Add at least one example statement.`}function Fe(e){if(!h(y))return null;let t=h(K)[e].role.trim();return t&&!he.test(t)?`Use lowercase letters, numbers, dots, underscores, or hyphens.`:null}function Ie(){if(!h(y))return null;let e=h(s)?2:h(U);return h(K).lengthe.hi<=e.lo);if(e>=0){h(b)?.querySelector(`#authored-axis-${e}-hi input`)?.focus();return}}if(Ie())h(ee)?.focus();else{for(let e=0;el?`Dimensions at most`:`Variance kept`)?.focus())}}}async function Ve(){if(h(g))return;if(I(y,!0),!h(je).ok){await Be();return}I(g,!0);let{namespace:e,name:t,description:n}=Ge(a.identity);if(h(s)){let r={namespace:e,name:t,description:n,fit_mode:f.fitMode,hyperparams:Je(f),nodes:h(K).map(e=>{let t=e.role.trim();return{label:$(e.label),statements:ke(e),...t?{role:t}:{}}})};try{await pe.createDiscover(r),await _e(),J(`Created ${e}/${t} (auto-domain, ${f.fitMode} fit). Open Manifolds to fit it.`,{kind:`info`}),a.oncomplete?a.oncomplete():(xe(),be(`manifolds`))}catch(e){J(`Couldn't create the manifold: ${He(e)}`,{kind:`error`,ttlMs:null})}finally{I(g,!1)}return}let r={namespace:e,name:t,description:n,domain:W(),nodes:h(K).map(e=>{let t=e.role.trim();return{label:$(e.label),coords:e.coords.slice(0,h(H)),statements:ke(e),...t?{role:t}:{}}})};try{let n=await pe.create(r);await _e();let i=n.advisories??[];i.length>0?J(`Created ${e}/${t}. Check ${i.length} coordinate ${i.length===1?`warning`:`warnings`}.`,{kind:`warning`,detail:i.join(`; `),ttlMs:1e4}):J(`built manifold ${e}/${t}`,{kind:`info`}),a.oncomplete?a.oncomplete():(xe(),be(`manifolds`))}catch(e){J(`Couldn't create the manifold: ${He(e)}`,{kind:`error`,ttlMs:null})}finally{I(g,!1)}}function He(e){return Se(e,`Unable to build this direction. Check the highlighted fields and try again.`)}re(()=>oe(`manifold_authored`,{schema:G,read:()=>({busy:h(g),values:{auto_domain:h(s),domain_kind:h(k),box_dim:h(N),sphere_dim:h(R),axes:h(B),nodes:h(K),tuning:f,advanced_open:h(m)},validation:h(je)}),update:async e=>{if(h(g))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);if(d&&[`klein`,`projective`].includes(e.domain_kind))throw new ce(`UNAVAILABLE`,`This domain is supported by the HTTP runtime only.`);e.auto_domain!==void 0&&I(s,e.auto_domain,!0),e.domain_kind!==void 0&&I(k,e.domain_kind,!0),e.box_dim!==void 0&&I(N,e.box_dim,!0),e.sphere_dim!==void 0&&I(R,e.sphere_dim,!0),e.axes!==void 0&&I(B,structuredClone(e.axes),!0),e.nodes!==void 0&&I(K,structuredClone(e.nodes),!0),e.tuning&&Object.assign(f,e.tuning),e.advanced_open!==void 0&&I(m,e.advanced_open,!0),e.nodes===void 0&&[`domain_kind`,`box_dim`,`sphere_dim`].some(t=>e[t]!==void 0)&&q()}}));var Ue=ut(),Ke=L(Ue),Ye=O(L(Ke),2),dt=L(Ye);n(dt,{get checked(){return h(s)},onchange:e=>I(s,e,!0),label:`Find the layout`,hint:`Skip the coordinates: the fit derives the layout per model`}),T(Ye);var ft=O(Ye,2),pt=e=>{var t=nt(),i=M(t);o(i,{label:`Domain shape`,get value(){return h(ue)},onchange:fe,get options(){return de},scroll:!0});var a=O(i,2),s=e=>{var t=$e();u(t,21,()=>h(B).slice(0,h(N)),v,(e,t,r)=>{var i=Qe(),a=L(i),o=O(L(a),2);j(o),T(a);var s=O(a,2),l=O(L(s),2);Oe(l,{get value(){return h(t).lo},step:.1,oninput:e=>{e!==null&&(h(B)[r].lo=e)}}),T(s);var u=O(s,2),d=O(L(u),2);D(d,`id`,`authored-axis-${r}-hi`);var f=L(d);{let e=E(()=>X(r)!==null),n=E(()=>`${h(t).name||`Axis ${r+1}`} high value`),i=E(()=>X(r)?`authored-axis-${r}-error`:void 0);Oe(f,{get value(){return h(t).hi},step:.1,get invalid(){return h(e)},get ariaLabel(){return h(n)},get ariaDescribedby(){return h(i)},oninput:e=>{e!==null&&(h(B)[r].hi=e)}})}T(d),T(u);var m=O(u,2),g=L(m);n(g,{get checked(){return h(t).periodic},label:`Wraps`,hint:`Periodic: the far end meets the near one`,onchange:e=>{h(B)[r].periodic=e}}),T(m);var v=O(m,2),y=e=>{var t=Ze();D(t,`id`,`authored-axis-${r}-error`);var n=P(t,!0);S(e=>_(n,e),[()=>X(r)]),p(e,t)},b=E(()=>X(r));c(v,e=>{h(b)&&e(y)}),T(i),S(()=>C(o,h(t).name)),x(`input`,o,e=>{h(B)[r].name=e.currentTarget.value}),p(e,i)}),T(t),p(e,t)},l=e=>{var t=et(),n=O(L(t),2);De(n,{get value(){return h(R)},options:[{value:1,label:`S¹ (circle)`},{value:2,label:`S² (sphere)`},{value:3,label:`S³`}],ariaLabel:`Sphere dimension`,onchange:me}),T(t),p(e,t)},d=e=>{var t=tt(),n=P(t,!0);S(e=>_(n,e),[()=>Ee(W())]),p(e,t)};c(a,e=>{h(k)===`box`?e(s):h(k)===`sphere`?e(l,1):e(d,-1)});var f=O(a,2),m=L(f),g=L(m);r(g,{get text(){return h(H)}}),T(m);var y=O(m,2),b=L(y);r(b,{get text(){return h(U)}}),T(y),V(),T(f),p(e,t)},mt=e=>{We(e,{get tuning(){return f},get linearOnly(){return d},spectralNote:`curved · best with ≥50 nodes`,onchange:e=>f.fitMode=e})};c(ft,e=>{h(s)?e(mt,-1):e(pt)}),T(Ke);var ht=O(Ke,2),gt=L(ht),_t=O(L(gt),2),vt=L(_t);{let e=E(()=>`${h(K).length} ${h(K).length===1?`node`:`nodes`}${h(s)?``:` · ${h(H)}D`}`);r(vt,{get text(){return h(e)}})}T(_t),T(gt);var yt=O(gt,2);u(yt,21,()=>h(K),v,(t,n,r)=>{var a=st();D(a,`data-node-index`,r);var o=L(a),l=L(o);D(l,`aria-controls`,`authored-node-${r}-details`);var d=L(l),f=L(d);e(f,{name:`down`}),T(d),T(l);var m=O(l,2);j(m),D(m,`aria-label`,`Node ${r+1} label`);var g=O(m,2),y=e=>{var t=it();u(t,21,()=>h(n).coords,v,(e,t,i)=>{var a=rt(),o=L(a);{let e=E(()=>`Node ${h(n).label||r+1}, coordinate ${i+1}`),a=E(()=>Z(r)!==null),s=E(()=>Z(r)?`authored-node-${r}-coords-error`:void 0);Oe(o,{get value(){return h(t)},step:.1,get ariaLabel(){return h(e)},get invalid(){return h(a)},get ariaDescribedby(){return h(s)},oninput:e=>we(r,i,e??0)})}T(a),p(e,a)}),T(t),p(e,t)};c(g,e=>{h(s)||e(y)});var b=O(g,2),ee=L(b);e(ee,{name:`close`}),T(b),T(o);var w=O(o,2),k=e=>{var t=at();D(t,`id`,`authored-node-${r}-label-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Ne(r)]),p(e,t)},A=E(()=>Ne(r));c(w,e=>{h(A)&&e(k)});var ne=O(w,2),re=e=>{var t=at();D(t,`id`,`authored-node-${r}-coords-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Z(r)]),p(e,t)},M=E(()=>Z(r));c(ne,e=>{h(M)&&e(re)});var ie=O(ne,2),ae=e=>{var t=at();D(t,`id`,`authored-node-${r}-role-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Fe(r)]),p(e,t)},N=E(()=>Fe(r));c(ie,e=>{h(N)&&e(ae)});var F=O(ie,2),I=e=>{var t=at();D(t,`id`,`authored-node-${r}-statements-error`);var n=P(t,!0);S(e=>_(n,e),[()=>Q(r)]),p(e,t)},R=E(()=>Q(r));c(F,e=>{h(R)&&e(I)});var B=O(F,2),V=e=>{var t=ot();D(t,`id`,`authored-node-${r}-details`);var a=L(t),o=O(L(a),2);j(o),T(a);var s=O(a,2);te(s),T(t),S((e,t,i,c)=>{D(a,`data-tip`,Te),C(o,h(n).role),D(o,`aria-invalid`,e),D(o,`aria-describedby`,t),C(s,h(n).statements),D(s,`aria-label`,`Statements for node ${h(n).label||r+1}`),D(s,`aria-invalid`,i),D(s,`aria-describedby`,c)},[()=>Fe(r)!==null,()=>Fe(r)?`authored-node-${r}-role-error`:void 0,()=>Q(r)!==null,()=>Q(r)?`authored-node-${r}-statements-error`:void 0]),x(`input`,o,e=>Y(r,`role`,e.currentTarget.value)),x(`input`,s,e=>Y(r,`statements`,e.currentTarget.value)),z(3,t,()=>i),p(e,t)};c(B,e=>{h(n).expanded&&e(V)}),T(a),S((e,t)=>{D(l,`aria-expanded`,h(n).expanded),D(l,`aria-label`,`${h(n).expanded?`Collapse`:`Expand`} node ${h(n).label||r+1}`),C(m,h(n).label),D(m,`aria-invalid`,e),D(m,`aria-describedby`,t),D(b,`aria-label`,`remove node ${h(n).label??``}`)},[()=>Ne(r)!==null,()=>Ne(r)?`authored-node-${r}-label-error`:void 0]),x(`click`,l,()=>Y(r,`expanded`,!h(n).expanded)),x(`input`,m,e=>Y(r,`label`,e.currentTarget.value)),x(`click`,b,()=>ve(r)),p(t,a)}),T(yt);var bt=O(yt,2);F(bt,e=>I(ee,e),()=>h(ee));var xt=O(bt,2),St=e=>{var t=at(),n=P(t,!0);S(e=>_(n,e),[()=>Ie()]),p(e,t)},Ct=E(()=>Ie()),wt=e=>{var t=ct(),n=P(t);S(()=>_(n,`At least ${(h(s)?2:h(U))??``} nodes`)),p(e,t)};c(xt,e=>{h(Ct)?e(St):h(K).length===0&&e(wt,1)}),T(ht);var Tt=O(ht,2),Et=e=>{Me(e,{get expanded(){return h(m)},set expanded(e){I(m,e,!0)},children:(e,t)=>{ze(e,{get tuning(){return f},get maxDimLimit(){return l}})},$$slots:{default:!0}})};c(Tt,e=>{h(s)&&e(Et)});var Dt=O(Tt,2);{let e=E(()=>h(y)?h(je).messages:[]);Pe(Dt,{verb:`build`,get messages(){return h(e)}})}var Ot=O(Dt,2),kt=L(Ot),At=L(kt);{let e=E(()=>h(g)?`Building…`:`Build`);r(At,{get text(){return h(e)},numbers:!1})}T(kt);var jt=O(kt,2),Mt=e=>{var t=lt(),n=P(t);S(()=>_(n,`${f.fitMode===`pca`?`PCA`:f.fitMode===`auto`?`Auto`:`Spectral`} fit`)),p(e,t)};c(jt,e=>{h(s)&&e(Mt)}),T(Ot),T(Ue),F(Ue,e=>I(b,e),()=>h(b)),S(()=>kt.disabled=h(g)),x(`click`,bt,ge),x(`click`,kt,Ve),p(t,Ue),ie()}f([`input`,`click`]);var ft=b(``),pt=b(``),mt=b(``),ht=b(``),gt=b(``),_t=b(``),vt=b(` `,1),yt=b(``),bt=b(`No compatible feature pack installed`),xt=b(`
Feature space
`),St=b(``),Ct=b(`
`,1),wt=b(`
`),Tt=b(``),Et=b(``),Dt=b(`
`),Ot=b(`
`);function kt(e,t){ne(t,!0);let i=[],a=Ce(),o=ye.mode!==`http`,l=w(qe(a,o)),d=A(``),f=A(`concrete`),m=A(`You are {c}.`),g=A(1),b=A(`1`),C=A(!1),N=A(!1),z=A(``),B=A(!0),U=A(!1),W=A(!1),G=A(null),de={},pe=A(null),me=A(!1),q=A(!1),ve=E(()=>le.current!==null&&[`running`,`waiting`,`cancelling`].includes(le.current.status)),Y=A(!1),xe=A(null),Se=A(null),we=A(null),Ee=A(null),X=E(()=>Ke(h(d))),Ne=E(()=>h(g)*Ae),Z=E(()=>h(Ne)*h(X).length),Q=E(()=>[{value:``,label:`Standard fit (no feature pack)`},...ue.sources.map(e=>({value:e.source,label:e.name?.trim()||e.source}))]);re(()=>{o&&fe()});let Fe=E(()=>{let e=[];$(t.identity.name)||e.push(`name required`),h(X).length<2&&e.push(`concepts: ${h(X).length} / 2`);let n=new Set;for(let t of h(X)){let r=$(t);r?n.has(r)?e.push(`duplicate concept "${r}"`):n.add(r):e.push(`invalid concept "${t}"`)}if((!Number.isSafeInteger(h(g))||h(g)<1)&&e.push(`Choose a whole number of responses per prompt, at least 1.`),h(f)===`custom`){let t=h(m).trim();t?t.includes(`{c}`)||e.push(`system template needs "{c}"`):e.push(`system template required`)}return e.push(...Xe(l,a)),{ok:e.length===0,messages:e}}),Ie=E(()=>{if(!h(Y))return null;if(h(X).length<2)return`Enter at least two concepts.`;let e=new Set;for(let t of h(X)){let n=$(t);if(!n)return`Concept “${t}” needs a letter or number.`;if(e.has(n))return`Each concept must be unique after formatting.`;e.add(n)}return null}),Le=E(()=>h(Y)&&(!Number.isSafeInteger(h(g))||h(g)<1)?`Use a whole number, at least 1.`:null),Re=E(()=>!h(Y)||h(f)!==`custom`?null:h(m).trim()?h(m).includes(`{c}`)?null:`Include the "{c}" placeholder.`:`Enter a system template.`);y(()=>{let e=h(we)?.querySelector(`input`);e&&(h(Le)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`discover-samples-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))});function Be(){return(h(xe)?.closest(`.mb-form`))?.querySelector(`input[data-identity="name"]`)??null}function Ve(e){let t=h(xe)?.querySelectorAll(`.field`)??[];for(let n of t)if(n.querySelector(`.label`)?.textContent?.trim()===e)return n.querySelector(`input`);return null}async function He(){await ae(),$(t.identity.name)?h(Ie)?h(Se)?.focus():h(Le)?h(we)?.querySelector(`input`)?.focus():h(Re)?h(Ee)?.focus():Xe(l,a).length!==0&&(I(U,!0),await ae(),Ve(l.maxDim<1||a!==null&&l.maxDim>a?`Dimensions at most`:`Variance kept`)?.focus()):Be()?.focus()}async function Ue(){if(h(W)||h(ve))return;if(I(Y,!0),!h(Fe).ok){await He();return}I(W,!0),I(pe,null),I(G,null),I(q,!1);let{namespace:e,name:n,description:r}=Ge(t.identity),i=Je(l),a={namespace:e,name:n,description:r,concepts:h(X).map(e=>$(e)),kind:h(f),custom_system:h(f)===`custom`?h(m).trim():void 0,samples_per_prompt:h(g),fit_mode:l.fitMode,hyperparams:i,force:h(N),role_per_node:h(C)};de={sae:h(z).trim()||null,fit_mode:l.fitMode,hyperparams:i};let o=h(B);try{await he(a,()=>{},o),I(G,{namespace:e,name:n,fitted:!1},!0),o&&(await K(e,n,de,()=>{}),I(G,{namespace:e,name:n,fitted:!0},!0)),await _e()}catch(e){I(pe,je(e)?h(G)?`Fitting cancelled. Your examples are saved; you can fit them below.`:`Generation cancelled. Completed concept groups are kept; run again to fill any missing groups.`:`${h(G)?`Examples were saved, but fitting failed`:`Could not generate the examples`}: ${H(e)}`,!0),await _e()}finally{I(W,!1)}}async function Ye(){if(!h(G)||h(W)||h(ve))return;let e=h(G);I(W,!0),I(pe,null);try{await K(e.namespace,e.name,de,()=>{}),I(G,{...e,fitted:!0},!0),await _e()}catch(e){I(pe,je(e)?`Fitting cancelled. Your saved examples are ready to try again.`:`Could not fit the saved examples: ${H(e)}`,!0)}finally{I(W,!1)}}async function Ze(){if(h(G)?.fitted&&!h(me)){I(me,!0);try{await ge(`${h(G).namespace}/${h(G).name}`),I(q,!0),J(`Probe added. Generate a reply to see its readings.`)}catch(e){I(pe,`Could not add the probe: ${H(e)}`)}finally{I(me,!1)}}}re(()=>oe(`manifold_discover`,{schema:se,read:()=>({busy:h(W)||h(me)||h(ve),values:{concepts_text:h(d),kind:h(f),custom_system:h(m),samples_per_prompt:h(g),role_per_node:h(C),force:h(N),sae_release:h(z),also_fit:h(B),advanced_open:h(U),tuning:l},validation:h(Fe),examples_per_concept:h(Ne),total_examples:h(Z)}),update:async e=>{if(h(W)||h(me)||h(ve))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);e.concepts_text!==void 0&&I(d,e.concepts_text,!0),e.kind!==void 0&&I(f,e.kind,!0),e.custom_system!==void 0&&I(m,e.custom_system,!0),e.samples_per_prompt!==void 0&&(I(g,e.samples_per_prompt,!0),I(b,String(h(g)),!0)),e.role_per_node!==void 0&&I(C,e.role_per_node,!0),e.force!==void 0&&I(N,e.force,!0),e.sae_release!==void 0&&I(z,e.sae_release,!0),e.also_fit!==void 0&&I(B,e.also_fit,!0),e.advanced_open!==void 0&&I(U,e.advanced_open,!0),e.tuning&&Object.assign(l,e.tuning)}}));var Qe=Ot(),$e=L(Qe),et=L($e),tt=O(L(et),2),nt=O(L(tt),2);te(nt),F(nt,e=>I(Se,e),()=>h(Se));var rt=O(nt,2),it=e=>{var t=ft(),n=P(t,!0);S(()=>_(n,h(Ie))),p(e,t)};c(rt,e=>{h(Ie)&&e(it)});var at=O(rt,2),ot=L(at),st=L(ot);r(st,{get text(){return h(X).length}}),T(ot),V(),T(at),T(tt);var ct=O(tt,2),lt=L(ct);s(lt,{label:`Concept kind`,get value(){return h(f)},onchange:e=>I(f,e,!0),options:[{value:`concrete`,label:`Roles`,hint:`Roles or characters: “a pirate”`},{value:`abstract`,label:`Traits`,hint:`Traits or feelings: “someone patient”`},{value:`custom`,label:`Custom`,hint:`Your own system template, with {c} for the concept`}]}),T(ct);var ut=O(ct,2),dt=e=>{var t=mt(),n=O(L(t),2);te(n),F(n,e=>I(Ee,e),()=>h(Ee));var r=O(n,2),i=e=>{var t=pt(),n=P(t,!0);S(()=>_(n,h(Re))),p(e,t)};c(r,e=>{h(Re)&&e(i)}),T(t),S(()=>{D(n,`aria-invalid`,!!h(Re)),D(n,`aria-describedby`,h(Re)?`discover-system-error`:void 0)}),R(n,()=>h(m),e=>I(m,e)),p(e,t)};c(ut,e=>{h(f)===`custom`&&e(dt)}),T(et);var kt=O(et,2),At=O(L(kt),2),jt=L(At);u(jt,17,()=>ke,v,(e,t)=>{var n=ht(),r=L(n);j(r);var a,o=O(r,2),s=P(o,!0),c=O(o),l=P(c);T(n),S(e=>{D(n,`data-tip`,h(t).description),a!==(a=e)&&(r.value=(r.__value=a)??``),_(s,h(t).label),_(l,`${h(t).rounds*Ae} per concept`)},[()=>String(h(t).rounds)]),x(`change`,r,()=>I(g,h(t).rounds,!0)),k(i,[],r,()=>(String(h(t).rounds),h(b)),e=>I(b,e)),p(e,n)});var Mt=O(jt,2),Nt=L(Mt);j(Nt),Nt.value=Nt.__value=`custom`,V(3),T(Mt),T(At);var Pt=O(At,2),Ft=e=>{var t=_t(),n=O(L(t),2);Oe(n,{get value(){return h(g)},min:1,step:1,oninput:e=>{e!==null&&I(g,e,!0)}});var r=O(n,2),i=e=>{var t=gt(),n=P(t,!0);S(()=>_(n,h(Le))),p(e,t)};c(r,e=>{h(Le)&&e(i)}),T(t),F(t,e=>I(we,e),()=>h(we)),p(e,t)};c(Pt,e=>{h(b)===`custom`&&e(Ft)});var It=O(Pt,2),Lt=L(It),Rt=e=>{var t=vt(),n=M(t),r=P(n,!0),i=O(n);S(e=>{_(r,e),_(i,` · ${h(X).length??``} × ${h(Ne)??``}`)},[()=>`${h(Z).toLocaleString()} examples total`]),p(e,t)},zt=E(()=>Number.isSafeInteger(h(Z))&&h(Z)>0),Bt=e=>{var t=ee(`Choose concepts and a budget`);p(e,t)};c(Lt,e=>{h(zt)?e(Rt):e(Bt,-1)}),T(It),T(kt),Me(O(kt,2),{get expanded(){return h(U)},set expanded(e){I(U,e,!0)},children:(e,t)=>{var r=Ct(),i=M(r);We(i,{get tuning(){return l},get linearOnly(){return o},spectralNote:`curved · best with ≥50 nodes`,onchange:e=>l.fitMode=e});var s=O(i,2),u=e=>{var t=xt(),n=O(L(t),2);{let e=E(()=>ue.loading||ue.busy);De(n,{get options(){return h(Q)},get disabled(){return h(e)},ariaLabel:`Feature space used for manifold fitting`,get value(){return h(z)},set value(e){I(z,e,!0)}})}var r=O(n,2),i=e=>{var t=yt(),n=P(t,!0);S(()=>_(n,ue.error)),p(e,t)},a=e=>{var t=bt();p(e,t)};c(r,e=>{ue.error?e(i):!ue.loading&&ue.sources.length===0&&e(a,1)}),T(t),p(e,t)},d=e=>{var t=St(),n=O(L(t),2);j(n),T(t),R(n,()=>h(z),e=>I(z,e)),p(e,t)};c(s,e=>{o?e(u):e(d,-1)});var f=O(s,2);ze(f,{get tuning(){return l},get maxDimLimit(){return a}});var m=O(f,2),g=L(m);n(g,{get checked(){return h(B)},onchange:e=>I(B,e,!0),label:`Fit after generating examples`});var v=O(g,2);{let e=E(()=>`${Te} A chat template without roles fails before fitting.`);n(v,{get checked(){return h(C)},onchange:e=>I(C,e,!0),label:`Use a separate role for each concept`,get hint(){return h(e)}})}var y=O(v,2);n(y,{get checked(){return h(N)},onchange:e=>I(N,e,!0),label:`Replace existing examples with this name`,hint:`Without replacement, existing concept groups are reused. To change their budget, use a new name or replace them.`}),T(m),p(e,r)},$$slots:{default:!0}}),T($e);var Vt=O($e,2),Ht=e=>{var t=wt(),n=P(t,!0);S(()=>_(n,h(pe))),p(e,t)};c(Vt,e=>{h(pe)&&e(Ht)});var Ut=O(Vt,2),Wt=e=>{var n=Dt(),r=L(n),i=L(r),a=P(i),o=O(i),s=P(o,!0);T(r);var l=O(r,2),u=L(l),d=e=>{var t=Tt(),n=P(t,!0);S(()=>{t.disabled=h(q)||h(me),_(n,h(q)?`Probe added`:`Add probe`)}),x(`click`,t,()=>void Ze()),p(e,t)},f=e=>{var t=Et();S(()=>t.disabled=h(ve)),x(`click`,t,()=>void Ye()),p(e,t)};c(u,e=>{h(G).fitted?e(d):e(f,-1)});var m=O(u,2);T(l),T(n),S(()=>{_(a,`${h(G).namespace??``}/${h(G).name??``}`),_(s,h(G).fitted?`Ready to use`:`Examples saved`)}),x(`click`,m,()=>t.oncomplete?t.oncomplete(h(G)):be(`subspace`)),p(e,n)};c(Ut,e=>{h(G)&&!h(W)&&e(Wt)});var Gt=O(Ut,2);{let e=E(()=>h(Y)?h(Fe).messages:[]);Pe(Gt,{verb:`generate examples`,get messages(){return h(e)}})}var Kt=O(Gt,2),qt=L(Kt),Jt=L(qt);{let e=E(()=>h(B)?`Generate and fit`:`Generate examples`);r(Jt,{get text(){return h(e)}})}T(qt),T(Kt),T(Qe),F(Qe,e=>I(xe,e),()=>h(xe)),S(()=>{D(Qe,`aria-busy`,h(W)),$e.disabled=h(W)||h(ve),D(nt,`aria-invalid`,!!h(Ie)),D(nt,`aria-describedby`,h(Ie)?`discover-concepts-error`:void 0),D(It,`data-tip`,`Each round covers all ${Ae} prompts. More examples can reduce sampling noise, but do not guarantee a better probe.`),qt.disabled=h(W)||h(ve)}),R(nt,()=>h(d),e=>I(d,e)),k(i,[],Nt,()=>h(b),e=>I(b,e)),x(`click`,qt,Ue),p(e,Qe),ie()}f([`change`,`click`]);var At=b(`
`),jt=b(``),Mt=b(`
slot · values × contexts
`),Nt=b(` `,1),Pt=b(``),Ft=b(`at most in the browser`),It=b(` `,1),Lt=b(``),Rt=b(`
2Template
`);function zt(e,t){ne(t,!0);let i=Ce(),a=ye.mode!==`http`,o=w(qe(i,a)),s=A(w([])),l=A(!0),u=A(``),d=A(null),f=A(!0),m=A(!1),g=A(!1),v=A(!1),b=A(``),ee=A(null),C=A(null),te=A(null),k=A(null),j=A(!1),N=A(!1),R=we();re(async()=>{try{I(s,(await de.list()).templates,!0)}catch(e){J(`couldn't load templates: ${H(e)}`,{kind:`error`})}finally{I(l,!1)}});let z=E(()=>h(s).map(e=>({value:`${e.namespace}/${e.name}`,label:`${e.namespace}/${e.name} · ${e.slot} · ${e.n_values}×${e.n_contexts}`}))),B=E(()=>h(s).find(e=>`${e.namespace}/${e.name}`===h(u))??null),W=E(()=>{let e=[];$(t.identity.name)||e.push(`name required`),h(B)||e.push(`template required`);let n=Ye(h(d),i);return n&&e.push(n),{ok:e.length===0,messages:e}}),se=E(()=>h(v)&&!h(B)?`Choose a template.`:null),G=E(()=>h(v)?Ye(h(d),i):null);y(()=>{let e=h(C)?.querySelector(`button`);e&&(h(se)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`templated-source-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))}),y(()=>{let e=h(te)?.querySelector(`input`);e&&(h(G)?(e.setAttribute(`aria-invalid`,`true`),e.setAttribute(`aria-describedby`,`templated-max-dim-error`)):(e.removeAttribute(`aria-invalid`),e.removeAttribute(`aria-describedby`)))});function le(){return(h(ee)?.closest(`.mb-form`))?.querySelector(`input[data-identity="name"]`)??null}async function ue(){await ae(),$(t.identity.name)?h(se)?(h(C)?.querySelector(`button`)??h(k))?.focus():h(G)&&(I(m,!0),await ae(),h(te)?.querySelector(`input`)?.focus()):le()?.focus()}function fe(){xe(),be(`template_lab`,{tab:`build`})}async function me(){if(R&&h(j)&&!h(N)){I(N,!0),I(b,`Cancelling fit…`);try{await R.cancelFitting()}catch(e){J(`Couldn't cancel the fit: ${H(e)}`,{kind:`error`,ttlMs:null})}finally{I(N,!1)}}}async function he(){if(h(g))return;if(I(v,!0),!h(W).ok||!h(B)){await ue();return}I(g,!0),I(b,`Starting authoring…`);let{namespace:e,name:n,description:r}=Ge(t.identity),i={};h(d)!==null&&h(d)>=1&&(i.max_dim=h(d));let a={namespace:e,name:n,description:r,fit_mode:o.fitMode,template_ref:`${h(B).namespace}/${h(B).name}`,hyperparams:i},s=J(`authoring ${e}/${n}…`,{kind:`info`,ttlMs:null});try{if(await pe.createFromTemplate(a),ve(s),h(f)){I(b,`Starting fit…`),I(j,!0);try{await K(e,n,{fit_mode:o.fitMode,hyperparams:i},e=>{if(e.event!==`progress`)return;let t=e.data&&typeof e.data==`object`?e.data.message:null;t&&I(b,t,!0)}),J(`fit ${e}/${n} (${o.fitMode})`,{kind:`info`})}catch(t){je(t)?J(`Fit cancelled. ${e}/${n} was kept and can be fitted later.`,{kind:`info`}):J(`Couldn't fit the manifold: ${H(t)}`,{kind:`error`,ttlMs:null})}finally{I(j,!1),I(N,!1)}}else J(`Created ${e}/${n}. Open Manifolds to fit it.`,{kind:`info`});await _e(),t.oncomplete?t.oncomplete():(xe(),be(`manifolds`))}catch(e){ve(s),J(`Couldn't create the manifold: ${H(e)}`,{kind:`error`,ttlMs:null})}finally{I(g,!1),I(b,``)}}re(()=>oe(`manifold_templated`,{schema:U,read:()=>({busy:h(g)||h(j)||h(N),values:{selected_key:h(u),max_dim:h(d),also_fit:h(f),advanced_open:h(m),tuning:o},validation:h(W),available_templates:h(z),loading_templates:h(l)}),update:async e=>{if(h(g)||h(j)||h(N))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);if(e.selected_key&&!h(z).some(t=>t.value===e.selected_key))throw new ce(`NOT_FOUND`,`Choose a template from available_templates.`);e.selected_key!==void 0&&I(u,e.selected_key,!0),e.max_dim!==void 0&&I(d,e.max_dim,!0),e.also_fit!==void 0&&I(f,e.also_fit,!0),e.advanced_open!==void 0&&I(m,e.advanced_open,!0),e.tuning&&Object.assign(o,e.tuning)}}));var q=Rt(),ge=L(q),Y=O(L(ge),2),Se=e=>{var t=At();p(e,t)},Te=e=>{var t=Nt(),n=M(t),r=O(L(n),2);{let e=E(()=>[{value:``,label:`Choose a template`},...h(z)]);De(r,{get value(){return h(u)},get options(){return h(e)},ariaLabel:`Template`,onchange:e=>{I(u,String(e),!0)}})}var i=O(r,2),a=e=>{var t=jt(),n=P(t,!0);S(()=>_(n,h(se))),p(e,t)};c(i,e=>{h(se)&&e(a)}),T(n),F(n,e=>I(C,e),()=>h(C));var o=O(n,2),s=e=>{var t=Mt(),n=O(L(t)),r=P(n,!0),i=O(n,2),a=P(i,!0),o=O(i,2),s=P(o,!0);V(),T(t),S(()=>{_(r,h(B).slot),_(a,h(B).n_values),_(s,h(B).n_contexts)}),p(e,t)};c(o,e=>{h(B)&&e(s)}),p(e,t)};c(Y,e=>{h(l)?e(Se):h(s).length>0&&e(Te,1)});var Ee=O(Y,2),ke=P(Ee,!0);F(Ee,e=>I(k,e),()=>h(k)),T(ge);var Ae=O(ge,2);We(Ae,{get tuning(){return o},step:3,get linearOnly(){return a},onchange:e=>o.fitMode=e});var X=O(Ae,2);Me(X,{get expanded(){return h(m)},set expanded(e){I(m,e,!0)},children:(e,t)=>{var r=It(),a=M(r),o=O(L(a),2);{let e=E(()=>i??void 0),t=E(()=>i===null?`auto`:`auto · max ${i}`);Oe(o,{get value(){return h(d)},min:1,get max(){return h(e)},step:1,allowEmpty:!0,get placeholder(){return h(t)},oninput:e=>{I(d,e,!0)}})}var s=O(o,2),l=e=>{var t=Pt(),n=P(t,!0);S(()=>_(n,h(G))),p(e,t)},u=e=>{var t=Ft(),n=O(L(t)),r=P(n,!0);V(),T(t),S(()=>_(r,i)),p(e,t)};c(s,e=>{h(G)?e(l):i!==null&&e(u,1)}),T(a),F(a,e=>I(te,e),()=>h(te));var m=O(a,2),g=L(m);n(g,{get checked(){return h(f)},onchange:e=>I(f,e,!0),label:`Fit now`}),T(m),p(e,r)},$$slots:{default:!0}});var Ne=O(X,2);{let e=E(()=>h(v)?h(W).messages:[]);Pe(Ne,{verb:`building`,get messages(){return h(e)}})}var Z=O(Ne,2),Q=L(Z),Fe=L(Q);{let e=E(()=>h(g)?`Building…`:h(f)?`Build and fit`:`Build`);r(Fe,{get text(){return h(e)},numbers:!1})}T(Q);var Ie=O(Q,2),Le=e=>{var t=Lt(),n=L(t);{let e=E(()=>h(N)?`cancelling…`:`cancel`);r(n,{get text(){return h(e)},numbers:!1})}T(t),S(()=>t.disabled=h(N)),x(`click`,t,me),p(e,t)};c(Ie,e=>{R&&h(j)&&e(Le)});var Re=O(Ie,2),ze=L(Re);r(ze,{get text(){return h(b)}}),T(Re),T(Z),T(q),F(q,e=>I(ee,e),()=>h(ee)),S(()=>{D(q,`aria-busy`,h(g)),_(ke,h(s).length===0&&!h(l)?`Write the first template`:`Write a template`),Q.disabled=h(g)}),x(`click`,Ee,fe),x(`click`,Q,he),p(e,q),ie()}f([`click`]);var Bt=b(`
Create a concept or scale
`),Vt=b(``),Ht=b(`
1Name
`);function Ut(e,t){ne(t,!0);let n=E(()=>t.params?.embedded===!0),r=E(()=>t.params?.returnToToken),i=A(w(m(()=>[`authored`,`templated`].includes(t.params?.mode??``)?t.params.mode:`discover`))),o=A(w([]));y(()=>{h(o).includes(h(i))||I(o,[...h(o),h(i)],!0)});let l=E(()=>le.current!==null&&[`running`,`waiting`,`cancelling`].includes(le.current.status)),d=w({namespace:`local`,name:``,description:``});function f(){h(r)?be(`token_drilldown`,h(r)):xe()}function g(e){if(Y.open!==`manifold_builder`)return;let{namespace:t,name:n}=e??Ge(d),i=q.catalog.find(e=>e.namespace===t&&e.name===n);be(me(i),{returnToToken:h(r)})}re(()=>oe(`manifold_builder`,{schema:W,read:()=>({busy:h(l),values:{mode:h(i),...d}}),update:async e=>{if(h(l))throw new ce(`BUSY`,`Wait for this interface operation to finish.`);e.mode!==void 0&&I(i,e.mode,!0);for(let t of[`namespace`,`name`,`description`])e[t]!==void 0&&(d[t]=e[t])}}));var _=Ht();let v;var b=L(_),x=e=>{var t=Bt(),n=O(L(t),2);a(n,{icon:`close`,label:`Close`,onclick:f}),T(t),p(e,t)};c(b,e=>{h(n)||e(x)});var ee=O(b,2),C=L(ee),te=L(C);s(te,{get value(){return h(i)},onchange:e=>{h(l)||I(i,e,!0)},options:[{value:`discover`,label:`Generate`,hint:`Name two or more contrasting concepts; drowse writes the examples and fits a direction`},{value:`templated`,label:`Template`,hint:`A template's possible answers (days, months, directions) become the examples`},{value:`authored`,label:`Your examples`,hint:`Your own labelled statements, on coordinates you place or a layout drowse finds`}],label:`Authoring mode`}),T(C);var k=O(C,2),M=O(L(k),2),ae=L(M),N=O(L(ae),2);j(N),T(ae);var P=O(ae,2),F=O(L(P),2);j(F),T(P),T(M);var z=O(M,2),V=O(L(z),2);j(V),T(z),T(k);var H=O(k,2);u(H,16,()=>h(o),e=>e,(e,t)=>{var n=Vt(),r=L(n),a=e=>{dt(e,{get identity(){return d},oncomplete:g})},o=e=>{kt(e,{get identity(){return d},oncomplete:g})},s=e=>{zt(e,{get identity(){return d},oncomplete:g})};c(r,e=>{t===`authored`?e(a):t===`discover`?e(o,1):e(s,-1)}),T(n),S(()=>{D(n,`hidden`,h(i)!==t),n.inert=h(i)!==t}),p(e,n)}),T(ee),T(_),S(()=>{v=B(_,1,`mf-tool`,null,v,{dialog:!h(n)}),C.disabled=h(l),N.disabled=h(l),F.disabled=h(l),V.disabled=h(l)}),R(N,()=>d.namespace,e=>d.namespace=e),R(F,()=>d.name,e=>d.name=e),R(V,()=>d.description,e=>d.description=e),p(e,_),ie()}export{Ut as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/ManifoldMergeDrawer-BG8ja0Tw.js b/drowse/web/dist/assets/ManifoldMergeDrawer-ChhF70Ho.js
similarity index 92%
rename from drowse/web/dist/assets/ManifoldMergeDrawer-BG8ja0Tw.js
rename to drowse/web/dist/assets/ManifoldMergeDrawer-ChhF70Ho.js
index ae0376d34..92ac49e1f 100644
--- a/drowse/web/dist/assets/ManifoldMergeDrawer-BG8ja0Tw.js
+++ b/drowse/web/dist/assets/ManifoldMergeDrawer-ChhF70Ho.js
@@ -1 +1 @@
-import{C as e,f as t,g as n,p as r}from"./src-D3ehkdzy.js";import{n as i}from"./errors-JtXkE1b1.js";import{A as a,D as o,H as s,I as c,K as l,N as u,R as d,U as f,W as p,Z as m,bt as h,dt as g,g as ee,it as _,lt as v,m as y,mt as b,n as x,p as S,pt as C,rt as w,st as T,tt as E,u as D,v as te,w as ne,y as O}from"./index-client-B2jUARBN.js";import{d as k}from"./workspaceController-C2L33e3m.js";import{s as A}from"./interfaceSchemas-CEzHSS8w.js";import{t as j}from"./types-CuMUbvHW.js";import{a as M,t as N}from"./drawers.svelte-BBPH3jMg.js";import{t as re}from"./Select-BAEK04xt.js";/* empty css */import{Ii as P,Wn as F,Zt as I,ji as L,zt as R}from"./session.svelte-Dafz5mOy.js";import"./stores.svelte-BvABcOLl.js";import{m as z,p as B}from"./selection.svelte-D1Qz6BJG.js";var ie=d(`
Combine
`),ae=d(`
Combining needs two or more learned manifolds.
`),V=d(``),oe=d(``),se=d(`
`),ce=d(``),le=d(``),ue=d(``);function H(s,d){b(d,!0);let H=g(()=>d.params?.embedded===!0);function U(e){return`${e.namespace}/${e.name}`}let W=new L,G=v(``),K=v(``),q=v(!1),J=g(()=>I.catalog.filter(e=>F(e)));function de(e){W.has(e)?W.delete(e):W.add(e)}let Y=g(()=>{let e=new Set;for(let t of W){let n=I.catalog.find(e=>U(e)===t);n&&n.fit_mode&&e.add(n.fit_mode)}return[...e].sort()}),X=g(()=>!l(q)&&W.size>=2&&l(G).trim().length>0&&(l(Y).length<=1||l(K)!==``));async function fe(e){e.preventDefault();let t=l(G).trim();if(W.size<2){z(`pick >= 2 discover manifolds to merge`,{kind:`error`});return}if(!t){z(`target name required`,{kind:`error`});return}let n=[...W].map(e=>{let[t,n]=e.split(`/`);return{namespace:t,name:n}});T(q,!0);let r=z(`merging ${n.length} manifolds into '${t}'…`,{kind:`info`,ttlMs:null});try{await P.merge({name:t,sources:n,fit_mode:l(K)||void 0}),await R(),B(r),z(`Merged into local/${t}. Fit the merged manifold next.`,{kind:`info`}),N()}catch(e){B(r),z(`Couldn't merge the manifolds: ${i(e)}`,{kind:`error`,ttlMs:null})}finally{T(q,!1)}}x(()=>{R()}),x(()=>k(`manifold_merge`,{schema:A,read:()=>({busy:l(q),values:{sources:[...W],target_name:l(G),fit_mode:l(K)},available_sources:l(J).map(U),can_submit:l(X)}),update:async e=>{if(l(q))throw new j(`BUSY`,`Wait for this interface operation to finish.`);if(e.sources&&e.sources.some(e=>!l(J).some(t=>U(t)===e)))throw new j(`NOT_FOUND`,`Choose merge sources from available_sources.`);if(e.sources!==void 0){W.clear();for(let t of e.sources)W.add(t)}e.target_name!==void 0&&T(G,e.target_name,!0),e.fit_mode!==void 0&&T(K,e.fit_mode,!0)}}));var Z=ue();let Q;var $=E(Z),pe=e=>{var t=ie(),n=_(E(t),2);r(n,{icon:`close`,label:`Close`,get onclick(){return N}}),h(t),c(e,t)};a($,e=>{l(H)||e(pe)});var me=_($,2),he=e=>{var t=ae(),n=_(E(t),2);h(t),f(`click`,n,()=>M(`manifold_builder`)),c(e,t)},ge=r=>{var i=le(),s=E(i),d=E(s),v=_(E(d),2),b=E(v);{let e=g(()=>`${W.size} of ${l(J).length}`);t(b,{get text(){return l(e)}})}h(v),h(d);var x=_(d,2);o(x,23,()=>l(J),e=>U(e),(t,r,i)=>{let o=g(()=>U(l(r)));var s=oe();let d;var p=E(s),v=E(p);y(v);var b=_(v,2),x=E(b),S=w(x,!0),C=_(x,2),T=w(C);h(b);var D=_(b,2),O=E(D),k=t=>{var r=V(),i=E(r);e(i,{name:`check`}),h(r),ne(1,r,()=>n),c(t,r)},A=g(()=>W.has(l(o)));a(O,e=>{l(A)&&e(k)}),h(D),h(p),h(s),m(e=>{d=te(s,``,d,{"--i":l(i)}),ee(v,e),v.disabled=l(q),u(S,l(o)),u(T,`${l(r).domain_label??``} · ${l(r).node_count??``} ${l(r).node_count===1?`node`:`nodes`} · ${l(r).fit_mode??``}`)},[()=>W.has(l(o))]),f(`change`,v,()=>de(l(o))),c(t,s)}),h(x),h(s);var C=_(s,2),O=_(E(C),2),k=E(O),A=_(E(k),2);y(A),h(k);var j=_(k,2),M=_(E(j),2);{let e=g(()=>l(q)||W.size===0),t=g(()=>[...l(Y).length<=1?[{value:``,label:`Match the sources (${l(Y)[0]??`automatic`})`}]:[],{value:`pca`,label:`PCA`},{value:`spectral`,label:`Spectral`}]);re(M,{ariaLabel:`Combined response control layout method`,get disabled(){return l(e)},get options(){return l(t)},get value(){return l(K)},set value(e){T(K,e,!0)}})}h(j),h(O);var P=_(O,2),F=e=>{var t=se(),n=w(t);m(e=>u(n,`The sources use different layouts (${e??``}): choose one.`),[()=>l(Y).join(`, `)]),c(e,t)};a(P,e=>{l(Y).length>1&&e(F)}),h(C);var I=_(C,2),L=E(I);S(L,e=>({type:`submit`,class:`dw-button`,disabled:!l(X),...e}),[()=>({"aria-description":W.size<2?`Choose at least two response controls`:l(G).trim()?`Combine controls`:`Enter a name for the combined control`})],void 0,void 0,`svelte-1nhgk63`);var R=E(L);{let e=g(()=>l(q)?`Combining…`:`Combine ${W.size}`);t(R,{get text(){return l(e)}})}h(L);var z=_(L,2),B=e=>{var t=ce();f(`click`,t,function(...e){N?.apply(this,e)}),c(e,t)};a(z,e=>{l(H)||e(B)}),h(I),h(i),m(()=>A.disabled=l(q)),p(`submit`,i,fe),D(A,()=>l(G),e=>T(G,e)),c(r,i)};a(me,e=>{l(J).length<2?e(he):e(ge,-1)}),h(Z),m(()=>Q=O(Z,1,`mf-tool`,null,Q,{dialog:!l(H)})),c(s,Z),C()}s([`click`,`change`]);export{H as default};
\ No newline at end of file
+import{C as e,f as t,g as n,p as r}from"./src-DWTrC_D-.js";import{n as i}from"./errors-D9jT6Fvg.js";import{A as a,D as o,H as s,I as c,K as l,N as u,R as d,U as f,W as p,Z as m,bt as h,dt as g,g as ee,it as _,lt as v,m as y,mt as b,n as x,p as S,pt as C,rt as w,st as T,tt as E,u as D,v as te,w as ne,y as O}from"./index-client-B2jUARBN.js";import{d as k}from"./workspaceController-C2L33e3m.js";import{s as A}from"./interfaceSchemas-CEzHSS8w.js";import{t as j}from"./types-CuMUbvHW.js";import{a as M,t as N}from"./drawers.svelte-kEXNcFnO.js";import{t as re}from"./Select-D_bUUsaw.js";/* empty css */import{Ii as P,Wn as F,Zt as I,ji as L,zt as R}from"./session.svelte-DG7XfPv3.js";import"./stores.svelte-Cf8e_r1G.js";import{m as z,p as B}from"./selection.svelte-BIYbgTnf.js";var ie=d(`
Combine
`),ae=d(`
Combining needs two or more learned manifolds.
`),V=d(``),oe=d(``),se=d(`
`),ce=d(``),le=d(``),ue=d(``);function H(s,d){b(d,!0);let H=g(()=>d.params?.embedded===!0);function U(e){return`${e.namespace}/${e.name}`}let W=new L,G=v(``),K=v(``),q=v(!1),J=g(()=>I.catalog.filter(e=>F(e)));function de(e){W.has(e)?W.delete(e):W.add(e)}let Y=g(()=>{let e=new Set;for(let t of W){let n=I.catalog.find(e=>U(e)===t);n&&n.fit_mode&&e.add(n.fit_mode)}return[...e].sort()}),X=g(()=>!l(q)&&W.size>=2&&l(G).trim().length>0&&(l(Y).length<=1||l(K)!==``));async function fe(e){e.preventDefault();let t=l(G).trim();if(W.size<2){z(`pick >= 2 discover manifolds to merge`,{kind:`error`});return}if(!t){z(`target name required`,{kind:`error`});return}let n=[...W].map(e=>{let[t,n]=e.split(`/`);return{namespace:t,name:n}});T(q,!0);let r=z(`merging ${n.length} manifolds into '${t}'…`,{kind:`info`,ttlMs:null});try{await P.merge({name:t,sources:n,fit_mode:l(K)||void 0}),await R(),B(r),z(`Merged into local/${t}. Fit the merged manifold next.`,{kind:`info`}),N()}catch(e){B(r),z(`Couldn't merge the manifolds: ${i(e)}`,{kind:`error`,ttlMs:null})}finally{T(q,!1)}}x(()=>{R()}),x(()=>k(`manifold_merge`,{schema:A,read:()=>({busy:l(q),values:{sources:[...W],target_name:l(G),fit_mode:l(K)},available_sources:l(J).map(U),can_submit:l(X)}),update:async e=>{if(l(q))throw new j(`BUSY`,`Wait for this interface operation to finish.`);if(e.sources&&e.sources.some(e=>!l(J).some(t=>U(t)===e)))throw new j(`NOT_FOUND`,`Choose merge sources from available_sources.`);if(e.sources!==void 0){W.clear();for(let t of e.sources)W.add(t)}e.target_name!==void 0&&T(G,e.target_name,!0),e.fit_mode!==void 0&&T(K,e.fit_mode,!0)}}));var Z=ue();let Q;var $=E(Z),pe=e=>{var t=ie(),n=_(E(t),2);r(n,{icon:`close`,label:`Close`,get onclick(){return N}}),h(t),c(e,t)};a($,e=>{l(H)||e(pe)});var me=_($,2),he=e=>{var t=ae(),n=_(E(t),2);h(t),f(`click`,n,()=>M(`manifold_builder`)),c(e,t)},ge=r=>{var i=le(),s=E(i),d=E(s),v=_(E(d),2),b=E(v);{let e=g(()=>`${W.size} of ${l(J).length}`);t(b,{get text(){return l(e)}})}h(v),h(d);var x=_(d,2);o(x,23,()=>l(J),e=>U(e),(t,r,i)=>{let o=g(()=>U(l(r)));var s=oe();let d;var p=E(s),v=E(p);y(v);var b=_(v,2),x=E(b),S=w(x,!0),C=_(x,2),T=w(C);h(b);var D=_(b,2),O=E(D),k=t=>{var r=V(),i=E(r);e(i,{name:`check`}),h(r),ne(1,r,()=>n),c(t,r)},A=g(()=>W.has(l(o)));a(O,e=>{l(A)&&e(k)}),h(D),h(p),h(s),m(e=>{d=te(s,``,d,{"--i":l(i)}),ee(v,e),v.disabled=l(q),u(S,l(o)),u(T,`${l(r).domain_label??``} · ${l(r).node_count??``} ${l(r).node_count===1?`node`:`nodes`} · ${l(r).fit_mode??``}`)},[()=>W.has(l(o))]),f(`change`,v,()=>de(l(o))),c(t,s)}),h(x),h(s);var C=_(s,2),O=_(E(C),2),k=E(O),A=_(E(k),2);y(A),h(k);var j=_(k,2),M=_(E(j),2);{let e=g(()=>l(q)||W.size===0),t=g(()=>[...l(Y).length<=1?[{value:``,label:`Match the sources (${l(Y)[0]??`automatic`})`}]:[],{value:`pca`,label:`PCA`},{value:`spectral`,label:`Spectral`}]);re(M,{ariaLabel:`Combined response control layout method`,get disabled(){return l(e)},get options(){return l(t)},get value(){return l(K)},set value(e){T(K,e,!0)}})}h(j),h(O);var P=_(O,2),F=e=>{var t=se(),n=w(t);m(e=>u(n,`The sources use different layouts (${e??``}): choose one.`),[()=>l(Y).join(`, `)]),c(e,t)};a(P,e=>{l(Y).length>1&&e(F)}),h(C);var I=_(C,2),L=E(I);S(L,e=>({type:`submit`,class:`dw-button`,disabled:!l(X),...e}),[()=>({"aria-description":W.size<2?`Choose at least two response controls`:l(G).trim()?`Combine controls`:`Enter a name for the combined control`})],void 0,void 0,`svelte-1nhgk63`);var R=E(L);{let e=g(()=>l(q)?`Combining…`:`Combine ${W.size}`);t(R,{get text(){return l(e)}})}h(L);var z=_(L,2),B=e=>{var t=ce();f(`click`,t,function(...e){N?.apply(this,e)}),c(e,t)};a(z,e=>{l(H)||e(B)}),h(I),h(i),m(()=>A.disabled=l(q)),p(`submit`,i,fe),D(A,()=>l(G),e=>T(G,e)),c(r,i)};a(me,e=>{l(J).length<2?e(he):e(ge,-1)}),h(Z),m(()=>Q=O(Z,1,`mf-tool`,null,Q,{dialog:!l(H)})),c(s,Z),C()}s([`click`,`change`]);export{H as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/ManifoldPacksDrawer-CXslLbHO.js b/drowse/web/dist/assets/ManifoldPacksDrawer-C5xD-SgP.js
similarity index 97%
rename from drowse/web/dist/assets/ManifoldPacksDrawer-CXslLbHO.js
rename to drowse/web/dist/assets/ManifoldPacksDrawer-C5xD-SgP.js
index 5a880ae76..8fc94dc03 100644
--- a/drowse/web/dist/assets/ManifoldPacksDrawer-CXslLbHO.js
+++ b/drowse/web/dist/assets/ManifoldPacksDrawer-C5xD-SgP.js
@@ -1 +1 @@
-import{C as e,f as t,p as n,u as r}from"./src-D3ehkdzy.js";import{A as i,D as a,H as o,I as s,K as c,N as l,Q as u,R as d,U as f,V as p,Z as m,at as h,bt as g,dt as _,f as v,h as y,it as b,lt as x,m as S,mt as C,n as w,nt as T,p as E,pt as D,rt as O,st as k,tt as A,u as ee,v as te,y as ne}from"./index-client-B2jUARBN.js";import{t as re}from"./errors-JtXkE1b1.js";import{n as ie}from"./artifactUpdates-Cjeu6LJc.js";import{Fi as ae,Ii as j,Zt as M,x as oe,zt as N}from"./session.svelte-Dafz5mOy.js";import{_ as se,m as P,v as ce}from"./selection.svelte-D1Qz6BJG.js";import{t as le}from"./drawers.svelte-BBPH3jMg.js";import{t as F}from"./userFacingError-Dn4DmQRG.js";import"./stores.svelte-BvABcOLl.js";import{i as ue,r as de}from"./selectors-D8zRdyMn.js";/* empty css */var fe=d(`
Packs
`),pe=d(``),me=d(`
`),he=d(``),ge=d(`
`),_e=d(`
This replaces the installed pack and its templates. The current files stay until the replacement passes verification.
`),ve=d(`
`),ye=d(`Delete from this device? `,1),be=d(` `,1),xe=d(`
`),Se=d(`
`),Ce=d(`
Portable files
`),we=d(`
Installed
`),Te=d(`
`),Ee=d(``),De=d(``),Oe=d(`
`),ke=d(` `,1),Ae=d(``),je=d(`
Public, browser-compatible drowse packs
`),Me=d(`
`),Ne=d(``),Pe=d(`
`),Fe=d(``),Ie=d(`
`);function Le(o,d){C(d,!0);let Le=_(()=>d.params?.embedded===!0),I=x(`installed`),L=x(``),R=x(h([])),z=x(!1),B=x(null),Re=x(null),V=x(null),H=ce.mode!==`http`,U=se(`manifold_artifacts`),ze=!H||U.available,Be=x(h([])),Ve=x(!1),W=x(null),G=x(null),K=x(null),q=x(null),J=x(null),He=null;function Ue(){He&&clearTimeout(He);let e=c(L).trim();e?(k(z,!0),He=setTimeout(()=>{We(e)},300)):(k(R,[],!0),k(B,null),k(z,!1))}async function We(e){try{let t=await j.search(e,20);k(R,t.results??[],!0),k(B,null)}catch(e){k(R,[],!0),e instanceof re?e.status===503?k(B,H?`Hugging Face search is unavailable. Check your connection and try again.`:'huggingface_hub isn\'t installed on the server. Run `pip install -e ".[serve]"` and restart.',!0):e.status===502?k(B,F(e,`Hugging Face search was interrupted. Check your connection and try again.`),!0):k(B,F(e,`Unable to search Hugging Face. Try again.`),!0):k(B,F(e,`Unable to search Hugging Face. Try again.`),!0)}finally{k(z,!1)}}async function Ge(e){let t=typeof e.repository==`string`?e.repository:`${e.namespace}/${e.name}`,n=Q(e),r=typeof e.revision==`string`?`${t}@${e.revision}`:t;k(Re,n,!0),k(V,null);try{let e=await ae({target:r},e=>{if(e.event===`progress`){let t=e.data;if(t?.message)k(V,t.message,!0);else if(t?.phase===`downloading`&&t.downloadedBytes!==void 0){let e=`${(t.downloadedBytes/1e6).toFixed(1)} MB`,n=t.totalBytes?` of ${(t.totalBytes/1e6).toFixed(1)} MB`:``;k(V,`Downloading ${e}${n}`)}else t?.phase&&k(V,`${t.phase[0].toUpperCase()}${t.phase.slice(1)} archive`)}});await N(),k(I,`installed`),P(`installed ${e.namespace}/${e.name}`,{kind:`info`})}catch(e){e instanceof re?e.status===503?P(H?`Hugging Face install is unavailable. Check your connection and try again.`:`huggingface_hub isn't installed on the server`,{kind:`error`,ttlMs:null}):e.status===502?P(F(e,`The Hugging Face download was interrupted. Check your connection and try again.`),{kind:`error`,ttlMs:null}):e.status===409?P(`${n} is already installed`,{kind:`error`,ttlMs:null}):P(F(e,`Unable to install ${n}. Check the pack and try again.`),{kind:`error`,ttlMs:null}):P(F(e,`Unable to install ${n}. Check the pack and try again.`),{kind:`error`,ttlMs:null})}finally{k(Re,null),k(V,null)}}async function Y(){if(H&&U.available){k(Ve,!0);try{k(Be,(await j.drowseArchiveList()).packs,!0),k(G,null)}catch(e){k(G,Z(e),!0)}finally{k(Ve,!1)}}}async function Ke(e,t=!1){if(!e.name.toLowerCase().endsWith(`.drowse`))k(G,`Choose a .drowse file.`);else{k(W,`import`),k(G,null),k(K,`Inspecting archive`);try{let n=await j.drowseArchiveInstall(e,{force:t},e=>{if(!e.data||typeof e.data!=`object`)return;let t=e.data;k(K,t.path?`${t.phase??`Verifying`}: ${t.path}`:t.phase??`Verifying archive`,!0)});k(q,null),await Y(),await N(),P(`installed ${n.namespace}/${n.name}`,{kind:`info`})}catch(n){let r=Z(n);k(G,r,!0),k(q,/already installed/i.test(r)&&!t?e:null,!0)}finally{k(W,null),k(K,null)}}}let X=x(null);u(()=>{if(!c(X))return;let e=setTimeout(()=>k(X,null),1800);return()=>clearTimeout(e)});async function qe(e){k(W,`export:${e.id}`),k(G,null);try{let t=await j.drowseArchiveExport(e.id),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${e.name}.drowse`,r.click(),k(X,e.id,!0),setTimeout(()=>URL.revokeObjectURL(n),0)}catch(e){k(G,Z(e),!0)}finally{k(W,null)}}async function Je(e){let t=ue(e,de(e,M.entries,oe.entries));if(t)k(G,t,!0);else{k(W,`delete:${e.id}`),k(G,null);try{await j.drowseArchiveDelete(e.id),k(J,null),await Y(),await N()}catch(e){k(G,Z(e),!0)}finally{k(W,null)}}}function Z(e){return F(e,`Unable to update local direction packs. Check the file and try again.`)}function Ye(e){k(I,e,!0)}function Q(e){return`repository`in e&&typeof e.repository==`string`?e.repository:`${e.namespace}/${e.name}`}function Xe(e){return e.fit_mode&&e.fit_mode!==`authored`?e.fit_mode:null}let Ze=Array.from({length:12},(e,t)=>Math.round(100-t/11*100));function Qe(e){let t=e.fitted_models.length-+!!e.fitted_for_session,n=t>0?` · fitted for ${t} other model${t===1?``:`s`}`:``;return e.fitted_for_session&&e.stale?{fitted:!0,word:`stale`,tip:`Fitted for this model, but stale: refit it${n}`}:e.fitted_for_session?{fitted:!0,word:``,tip:`Fitted for this model${n}`}:e.stale?{fitted:!1,word:`stale`,tip:`Stale: refit it${n}`}:{fitted:!1,word:`not fitted`,tip:`Not fitted for this model${n}`}}w(()=>ie(async e=>{e===`manifolds`&&await Y()})),w(()=>{N(),Y()});var $=Ie();let $e;var et=A($),tt=e=>{var t=fe(),r=b(A(t),2);n(r,{icon:`close`,label:`Close`,get onclick(){return le}}),g(t),s(e,t)};i(et,e=>{c(Le)||e(tt)});var nt=b(et,2),rt=A(nt),it=e=>{r(e,{label:`Manifold pack views`,get value(){return c(I)},onchange:e=>Ye(e),options:[{value:`installed`,label:`Installed`},{value:`search`,label:`Hugging Face`}]})};i(rt,e=>{ze&&e(it)});var at=b(rt,2),ot=A(at);{let e=_(()=>c(I)===`installed`?`${M.catalog.length} installed`:c(L).trim()?`${c(R).length} found`:``);t(ot,{get text(){return c(e)}})}g(at),g(nt);var st=b(nt,2),ct=A(st),lt=e=>{var n=ke(),r=T(n),o=e=>{var n=Ce(),r=A(n),o=b(A(r),2),u=e=>{var n=pe();let r;var i=A(n);{let e=_(()=>c(W)===`import`?`Verifying…`:`Import pack`);t(i,{get text(){return c(e)}})}var a=b(i,2);g(n),m(()=>{r=ne(n,1,`dw-quiet file-action svelte-lozhsl`,null,r,{disabled:c(W)!==null}),a.disabled=c(W)!==null}),f(`change`,a,e=>{let t=e.currentTarget,n=t.files?.[0];n&&Ke(n),t.value=``}),s(e,n)};i(o,e=>{U.available&&e(u)}),g(r);var d=b(r,2),h=e=>{var t=me(),n=O(t,!0);m(()=>l(n,U.reason)),s(e,t)},v=e=>{var n=he(),r=A(n);{let e=_(()=>c(K).split(`: `)[0]);t(r,{get text(){return c(e)},numbers:!1})}var a=b(r),o=e=>{var t=p();m(e=>l(t,`· ${e??``}`),[()=>c(K).slice(c(K).indexOf(`: `)+2)]),s(e,t)},u=_(()=>c(K).includes(`: `));i(a,e=>{c(u)&&e(o)}),g(n),s(e,n)};i(d,e=>{U.available?c(K)&&e(v,1):e(h)});var y=b(d,2),x=e=>{var t=ge(),n=O(t,!0);m(()=>l(n,c(G))),s(e,t)};i(y,e=>{U.available&&c(G)&&e(x)});var S=b(y,2),C=e=>{var t=_e(),n=b(A(t),2),r=A(n),i=b(r,2);g(n),g(t),m(()=>{r.disabled=c(W)!==null,i.disabled=c(W)!==null}),f(`click`,r,()=>void Ke(c(q),!0)),f(`click`,i,()=>k(q,null)),s(e,t)};i(S,e=>{U.available&&c(q)&&e(C)});var w=b(S,2),E=e=>{var t=ve();s(e,t)},D=e=>{var n=Se();a(n,23,()=>c(Be),e=>e.id,(e,n,r)=>{var a=xe();let o;var u=A(a),d=A(u),p=O(d),h=b(d,2),v=O(h);g(u);var y=b(u,2),x=A(y),S=e=>{var t=ye(),r=b(T(t),2),i=b(r,2);m(()=>{r.disabled=c(W)!==null,i.disabled=c(W)!==null}),f(`click`,r,()=>void Je(c(n))),f(`click`,i,()=>k(J,null)),s(e,t)},C=e=>{var r=be(),i=T(r),a=A(i);{let e=_(()=>c(W)===`export:${c(n).id}`?`Preparing…`:c(X)===c(n).id?`Download started`:`Export`);t(a,{get text(){return c(e)},numbers:!1})}g(i);var o=b(i,2);m(()=>{i.disabled=c(W)!==null,o.disabled=c(W)!==null}),f(`click`,i,()=>void qe(c(n))),f(`click`,o,()=>k(J,c(n).id,!0)),s(e,r)};i(x,e=>{c(J)===c(n).id?e(S):e(C,-1)}),g(y),g(a),m(()=>{o=te(a,``,o,{"--i":c(r)}),l(p,`${c(n).namespace??``}/${c(n).name??``}`),l(v,`${(c(n).source.repository?`${c(n).source.repository}@${c(n).source.revision}`:c(n).source.uri)??``} · publisher unverified`)}),s(e,a)}),g(n),s(e,n)};i(w,e=>{U.available&&c(Ve)?e(E):U.available&&c(Be).length>0&&e(D,1)}),g(n),s(e,n)};i(r,e=>{H&&e(o)});var u=b(r,2),d=A(u),h=e=>{var t=we();s(e,t)};i(d,e=>{H&&e(h)});var x=b(d,2),S=e=>{var t=Te();s(e,t)},C=e=>{var t=me(),n=O(t,!0);m(()=>l(n,U.available?H?`Nothing installed yet. Import a .drowse or search Hugging Face.`:`Nothing installed yet. Search Hugging Face for a pack.`:`Nothing installed yet.`)),s(e,t)},w=e=>{var t=Se();a(t,23,()=>M.catalog,e=>Q(e),(e,t,n)=>{let r=_(()=>Q(c(t))),o=_(()=>Xe(c(t))),u=_(()=>Qe(c(t)));var d=Oe();E(d,()=>({class:`mf-row stack rise`,"aria-description":c(t).description||c(r),[v]:{"--i":c(n)}}),void 0,void 0,void 0,`svelte-lozhsl`);var f=A(d),p=A(f),h=O(p,!0),x=b(p,2),S=O(x);g(f);var C=b(f,2),w=A(C),T=e=>{var t=Ee(),n=O(t,!0);m(()=>l(n,c(u).word)),s(e,t)};i(w,e=>{c(u).word&&e(T)});var D=b(w,2);let k;a(D,20,()=>Ze,e=>e,(e,t)=>{var n=De();let r;m(()=>r=te(n,``,r,{"--p":`${t??``}%`})),s(e,n)}),g(D),g(C),g(d),m(()=>{l(h,c(r)),l(S,`${c(t).domain_label??``} · ${c(t).node_count??``} ${c(t).node_count===1?`node`:`nodes`}${c(o)?` · ${c(o)}`:``}`),k=ne(D,1,`mf-depth`,null,k,{"is-fitted":c(u).fitted,"is-stale":c(t).stale}),y(D,`aria-label`,c(u).tip),y(D,`data-tip`,c(u).tip)}),s(e,d)}),g(t),s(e,t)};i(x,e=>{M.loading&&M.catalog.length===0?e(S):M.catalog.length===0?e(C,1):e(w,-1)}),g(u),s(e,n)},ut=n=>{var r=Fe(),o=A(r),u=A(o);e(u,{name:`search`});var d=b(u,4);S(d);var p=b(d,2),h=t=>{var n=Ae(),r=A(n);e(r,{name:`close`}),g(n),f(`click`,n,()=>{k(L,``),Ue()}),s(t,n)};i(p,e=>{c(L)&&e(h)}),g(o);var y=b(o,2),x=e=>{var t=je();s(e,t)},C=_(()=>!c(L).trim()),w=e=>{var t=Me();s(e,t)},T=e=>{var t=ge(),n=O(t,!0);m(()=>l(n,c(B))),s(e,t)},D=e=>{var t=me(),n=O(t);m(e=>l(n,`Nothing matches “${e??``}”`),[()=>c(L).trim()]),s(e,t)},te=e=>{var n=Se();a(n,23,()=>c(R),e=>Q(e),(e,n,r)=>{let a=_(()=>Q(c(n))),o=_(()=>c(Re)===c(a)),u=_(()=>Xe(c(n)));var d=Pe();E(d,()=>({class:`mf-row stack rise`,"aria-description":c(n).description||c(a),[v]:{"--i":c(r)}}),void 0,void 0,void 0,`svelte-lozhsl`);var f=A(d),p=A(f),h=O(p,!0),y=b(p,2),x=O(y),S=b(y,2),C=e=>{var n=Ne(),r=A(n);t(r,{get text(){return c(V)}}),g(n),s(e,n)};i(S,e=>{c(o)&&c(V)&&e(C)}),g(f);var w=b(f,2),T=A(w),D=()=>void Ge(c(n));E(T,()=>({type:`button`,class:`dw-quiet`,disabled:c(o),onclick:D,"aria-description":`install ${c(a)}`}),void 0,void 0,void 0,`svelte-lozhsl`);var k=A(T);{let e=_(()=>c(o)?`Installing…`:`Install`);t(k,{get text(){return c(e)}})}g(T),g(w),g(d),m(()=>{l(h,c(a)),l(x,`${c(n).domain_label??``} · ${c(n).node_count??``} ${c(n).node_count===1?`node`:`nodes`}${c(u)?` · ${c(u)}`:``}${c(n).tensor_models.length>0?` · ${c(n).tensor_models.length} fit${c(n).tensor_models.length===1?``:`s`}`:``}`)}),s(e,d)}),g(n),s(e,n)};i(y,e=>{c(C)?e(x):c(z)?e(w,1):c(B)?e(T,2):c(R).length===0?e(D,3):e(te,-1)}),g(r),f(`input`,d,Ue),ee(d,()=>c(L),e=>k(L,e)),s(n,r)};i(ct,e=>{c(I)===`installed`?e(lt):e(ut,-1)}),g(st),g($),m(()=>$e=ne($,1,`mf-tool`,null,$e,{dialog:!c(Le)})),s(o,$),D()}o([`change`,`click`,`input`]);export{Le as default};
\ No newline at end of file
+import{C as e,f as t,p as n,u as r}from"./src-DWTrC_D-.js";import{A as i,D as a,H as o,I as s,K as c,N as l,Q as u,R as d,U as f,V as p,Z as m,at as h,bt as g,dt as _,f as v,h as y,it as b,lt as x,m as S,mt as C,n as w,nt as T,p as E,pt as D,rt as O,st as k,tt as A,u as ee,v as te,y as ne}from"./index-client-B2jUARBN.js";import{t as re}from"./errors-D9jT6Fvg.js";import{n as ie}from"./artifactUpdates-Cjeu6LJc.js";import{Fi as ae,Ii as j,Zt as M,x as oe,zt as N}from"./session.svelte-DG7XfPv3.js";import{_ as se,m as P,v as ce}from"./selection.svelte-BIYbgTnf.js";import{t as le}from"./drawers.svelte-kEXNcFnO.js";import{t as F}from"./userFacingError-DNBzS3_o.js";import"./stores.svelte-Cf8e_r1G.js";import{i as ue,r as de}from"./selectors-D8zRdyMn.js";/* empty css */var fe=d(`
Packs
`),pe=d(``),me=d(`
`),he=d(``),ge=d(`
`),_e=d(`
This replaces the installed pack and its templates. The current files stay until the replacement passes verification.
`),ve=d(`
`),ye=d(`Delete from this device? `,1),be=d(` `,1),xe=d(`
`),Se=d(`
`),Ce=d(`
Portable files
`),we=d(`
Installed
`),Te=d(`
`),Ee=d(``),De=d(``),Oe=d(`
`),ke=d(` `,1),Ae=d(``),je=d(`
Public, browser-compatible drowse packs
`),Me=d(`
`),Ne=d(``),Pe=d(`
`),Fe=d(``),Ie=d(`
`);function Le(o,d){C(d,!0);let Le=_(()=>d.params?.embedded===!0),I=x(`installed`),L=x(``),R=x(h([])),z=x(!1),B=x(null),Re=x(null),V=x(null),H=ce.mode!==`http`,U=se(`manifold_artifacts`),ze=!H||U.available,Be=x(h([])),Ve=x(!1),W=x(null),G=x(null),K=x(null),q=x(null),J=x(null),He=null;function Ue(){He&&clearTimeout(He);let e=c(L).trim();e?(k(z,!0),He=setTimeout(()=>{We(e)},300)):(k(R,[],!0),k(B,null),k(z,!1))}async function We(e){try{let t=await j.search(e,20);k(R,t.results??[],!0),k(B,null)}catch(e){k(R,[],!0),e instanceof re?e.status===503?k(B,H?`Hugging Face search is unavailable. Check your connection and try again.`:'huggingface_hub isn\'t installed on the server. Run `pip install -e ".[serve]"` and restart.',!0):e.status===502?k(B,F(e,`Hugging Face search was interrupted. Check your connection and try again.`),!0):k(B,F(e,`Unable to search Hugging Face. Try again.`),!0):k(B,F(e,`Unable to search Hugging Face. Try again.`),!0)}finally{k(z,!1)}}async function Ge(e){let t=typeof e.repository==`string`?e.repository:`${e.namespace}/${e.name}`,n=Q(e),r=typeof e.revision==`string`?`${t}@${e.revision}`:t;k(Re,n,!0),k(V,null);try{let e=await ae({target:r},e=>{if(e.event===`progress`){let t=e.data;if(t?.message)k(V,t.message,!0);else if(t?.phase===`downloading`&&t.downloadedBytes!==void 0){let e=`${(t.downloadedBytes/1e6).toFixed(1)} MB`,n=t.totalBytes?` of ${(t.totalBytes/1e6).toFixed(1)} MB`:``;k(V,`Downloading ${e}${n}`)}else t?.phase&&k(V,`${t.phase[0].toUpperCase()}${t.phase.slice(1)} archive`)}});await N(),k(I,`installed`),P(`installed ${e.namespace}/${e.name}`,{kind:`info`})}catch(e){e instanceof re?e.status===503?P(H?`Hugging Face install is unavailable. Check your connection and try again.`:`huggingface_hub isn't installed on the server`,{kind:`error`,ttlMs:null}):e.status===502?P(F(e,`The Hugging Face download was interrupted. Check your connection and try again.`),{kind:`error`,ttlMs:null}):e.status===409?P(`${n} is already installed`,{kind:`error`,ttlMs:null}):P(F(e,`Unable to install ${n}. Check the pack and try again.`),{kind:`error`,ttlMs:null}):P(F(e,`Unable to install ${n}. Check the pack and try again.`),{kind:`error`,ttlMs:null})}finally{k(Re,null),k(V,null)}}async function Y(){if(H&&U.available){k(Ve,!0);try{k(Be,(await j.drowseArchiveList()).packs,!0),k(G,null)}catch(e){k(G,Z(e),!0)}finally{k(Ve,!1)}}}async function Ke(e,t=!1){if(!e.name.toLowerCase().endsWith(`.drowse`))k(G,`Choose a .drowse file.`);else{k(W,`import`),k(G,null),k(K,`Inspecting archive`);try{let n=await j.drowseArchiveInstall(e,{force:t},e=>{if(!e.data||typeof e.data!=`object`)return;let t=e.data;k(K,t.path?`${t.phase??`Verifying`}: ${t.path}`:t.phase??`Verifying archive`,!0)});k(q,null),await Y(),await N(),P(`installed ${n.namespace}/${n.name}`,{kind:`info`})}catch(n){let r=Z(n);k(G,r,!0),k(q,/already installed/i.test(r)&&!t?e:null,!0)}finally{k(W,null),k(K,null)}}}let X=x(null);u(()=>{if(!c(X))return;let e=setTimeout(()=>k(X,null),1800);return()=>clearTimeout(e)});async function qe(e){k(W,`export:${e.id}`),k(G,null);try{let t=await j.drowseArchiveExport(e.id),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${e.name}.drowse`,r.click(),k(X,e.id,!0),setTimeout(()=>URL.revokeObjectURL(n),0)}catch(e){k(G,Z(e),!0)}finally{k(W,null)}}async function Je(e){let t=ue(e,de(e,M.entries,oe.entries));if(t)k(G,t,!0);else{k(W,`delete:${e.id}`),k(G,null);try{await j.drowseArchiveDelete(e.id),k(J,null),await Y(),await N()}catch(e){k(G,Z(e),!0)}finally{k(W,null)}}}function Z(e){return F(e,`Unable to update local direction packs. Check the file and try again.`)}function Ye(e){k(I,e,!0)}function Q(e){return`repository`in e&&typeof e.repository==`string`?e.repository:`${e.namespace}/${e.name}`}function Xe(e){return e.fit_mode&&e.fit_mode!==`authored`?e.fit_mode:null}let Ze=Array.from({length:12},(e,t)=>Math.round(100-t/11*100));function Qe(e){let t=e.fitted_models.length-+!!e.fitted_for_session,n=t>0?` · fitted for ${t} other model${t===1?``:`s`}`:``;return e.fitted_for_session&&e.stale?{fitted:!0,word:`stale`,tip:`Fitted for this model, but stale: refit it${n}`}:e.fitted_for_session?{fitted:!0,word:``,tip:`Fitted for this model${n}`}:e.stale?{fitted:!1,word:`stale`,tip:`Stale: refit it${n}`}:{fitted:!1,word:`not fitted`,tip:`Not fitted for this model${n}`}}w(()=>ie(async e=>{e===`manifolds`&&await Y()})),w(()=>{N(),Y()});var $=Ie();let $e;var et=A($),tt=e=>{var t=fe(),r=b(A(t),2);n(r,{icon:`close`,label:`Close`,get onclick(){return le}}),g(t),s(e,t)};i(et,e=>{c(Le)||e(tt)});var nt=b(et,2),rt=A(nt),it=e=>{r(e,{label:`Manifold pack views`,get value(){return c(I)},onchange:e=>Ye(e),options:[{value:`installed`,label:`Installed`},{value:`search`,label:`Hugging Face`}]})};i(rt,e=>{ze&&e(it)});var at=b(rt,2),ot=A(at);{let e=_(()=>c(I)===`installed`?`${M.catalog.length} installed`:c(L).trim()?`${c(R).length} found`:``);t(ot,{get text(){return c(e)}})}g(at),g(nt);var st=b(nt,2),ct=A(st),lt=e=>{var n=ke(),r=T(n),o=e=>{var n=Ce(),r=A(n),o=b(A(r),2),u=e=>{var n=pe();let r;var i=A(n);{let e=_(()=>c(W)===`import`?`Verifying…`:`Import pack`);t(i,{get text(){return c(e)}})}var a=b(i,2);g(n),m(()=>{r=ne(n,1,`dw-quiet file-action svelte-lozhsl`,null,r,{disabled:c(W)!==null}),a.disabled=c(W)!==null}),f(`change`,a,e=>{let t=e.currentTarget,n=t.files?.[0];n&&Ke(n),t.value=``}),s(e,n)};i(o,e=>{U.available&&e(u)}),g(r);var d=b(r,2),h=e=>{var t=me(),n=O(t,!0);m(()=>l(n,U.reason)),s(e,t)},v=e=>{var n=he(),r=A(n);{let e=_(()=>c(K).split(`: `)[0]);t(r,{get text(){return c(e)},numbers:!1})}var a=b(r),o=e=>{var t=p();m(e=>l(t,`· ${e??``}`),[()=>c(K).slice(c(K).indexOf(`: `)+2)]),s(e,t)},u=_(()=>c(K).includes(`: `));i(a,e=>{c(u)&&e(o)}),g(n),s(e,n)};i(d,e=>{U.available?c(K)&&e(v,1):e(h)});var y=b(d,2),x=e=>{var t=ge(),n=O(t,!0);m(()=>l(n,c(G))),s(e,t)};i(y,e=>{U.available&&c(G)&&e(x)});var S=b(y,2),C=e=>{var t=_e(),n=b(A(t),2),r=A(n),i=b(r,2);g(n),g(t),m(()=>{r.disabled=c(W)!==null,i.disabled=c(W)!==null}),f(`click`,r,()=>void Ke(c(q),!0)),f(`click`,i,()=>k(q,null)),s(e,t)};i(S,e=>{U.available&&c(q)&&e(C)});var w=b(S,2),E=e=>{var t=ve();s(e,t)},D=e=>{var n=Se();a(n,23,()=>c(Be),e=>e.id,(e,n,r)=>{var a=xe();let o;var u=A(a),d=A(u),p=O(d),h=b(d,2),v=O(h);g(u);var y=b(u,2),x=A(y),S=e=>{var t=ye(),r=b(T(t),2),i=b(r,2);m(()=>{r.disabled=c(W)!==null,i.disabled=c(W)!==null}),f(`click`,r,()=>void Je(c(n))),f(`click`,i,()=>k(J,null)),s(e,t)},C=e=>{var r=be(),i=T(r),a=A(i);{let e=_(()=>c(W)===`export:${c(n).id}`?`Preparing…`:c(X)===c(n).id?`Download started`:`Export`);t(a,{get text(){return c(e)},numbers:!1})}g(i);var o=b(i,2);m(()=>{i.disabled=c(W)!==null,o.disabled=c(W)!==null}),f(`click`,i,()=>void qe(c(n))),f(`click`,o,()=>k(J,c(n).id,!0)),s(e,r)};i(x,e=>{c(J)===c(n).id?e(S):e(C,-1)}),g(y),g(a),m(()=>{o=te(a,``,o,{"--i":c(r)}),l(p,`${c(n).namespace??``}/${c(n).name??``}`),l(v,`${(c(n).source.repository?`${c(n).source.repository}@${c(n).source.revision}`:c(n).source.uri)??``} · publisher unverified`)}),s(e,a)}),g(n),s(e,n)};i(w,e=>{U.available&&c(Ve)?e(E):U.available&&c(Be).length>0&&e(D,1)}),g(n),s(e,n)};i(r,e=>{H&&e(o)});var u=b(r,2),d=A(u),h=e=>{var t=we();s(e,t)};i(d,e=>{H&&e(h)});var x=b(d,2),S=e=>{var t=Te();s(e,t)},C=e=>{var t=me(),n=O(t,!0);m(()=>l(n,U.available?H?`Nothing installed yet. Import a .drowse or search Hugging Face.`:`Nothing installed yet. Search Hugging Face for a pack.`:`Nothing installed yet.`)),s(e,t)},w=e=>{var t=Se();a(t,23,()=>M.catalog,e=>Q(e),(e,t,n)=>{let r=_(()=>Q(c(t))),o=_(()=>Xe(c(t))),u=_(()=>Qe(c(t)));var d=Oe();E(d,()=>({class:`mf-row stack rise`,"aria-description":c(t).description||c(r),[v]:{"--i":c(n)}}),void 0,void 0,void 0,`svelte-lozhsl`);var f=A(d),p=A(f),h=O(p,!0),x=b(p,2),S=O(x);g(f);var C=b(f,2),w=A(C),T=e=>{var t=Ee(),n=O(t,!0);m(()=>l(n,c(u).word)),s(e,t)};i(w,e=>{c(u).word&&e(T)});var D=b(w,2);let k;a(D,20,()=>Ze,e=>e,(e,t)=>{var n=De();let r;m(()=>r=te(n,``,r,{"--p":`${t??``}%`})),s(e,n)}),g(D),g(C),g(d),m(()=>{l(h,c(r)),l(S,`${c(t).domain_label??``} · ${c(t).node_count??``} ${c(t).node_count===1?`node`:`nodes`}${c(o)?` · ${c(o)}`:``}`),k=ne(D,1,`mf-depth`,null,k,{"is-fitted":c(u).fitted,"is-stale":c(t).stale}),y(D,`aria-label`,c(u).tip),y(D,`data-tip`,c(u).tip)}),s(e,d)}),g(t),s(e,t)};i(x,e=>{M.loading&&M.catalog.length===0?e(S):M.catalog.length===0?e(C,1):e(w,-1)}),g(u),s(e,n)},ut=n=>{var r=Fe(),o=A(r),u=A(o);e(u,{name:`search`});var d=b(u,4);S(d);var p=b(d,2),h=t=>{var n=Ae(),r=A(n);e(r,{name:`close`}),g(n),f(`click`,n,()=>{k(L,``),Ue()}),s(t,n)};i(p,e=>{c(L)&&e(h)}),g(o);var y=b(o,2),x=e=>{var t=je();s(e,t)},C=_(()=>!c(L).trim()),w=e=>{var t=Me();s(e,t)},T=e=>{var t=ge(),n=O(t,!0);m(()=>l(n,c(B))),s(e,t)},D=e=>{var t=me(),n=O(t);m(e=>l(n,`Nothing matches “${e??``}”`),[()=>c(L).trim()]),s(e,t)},te=e=>{var n=Se();a(n,23,()=>c(R),e=>Q(e),(e,n,r)=>{let a=_(()=>Q(c(n))),o=_(()=>c(Re)===c(a)),u=_(()=>Xe(c(n)));var d=Pe();E(d,()=>({class:`mf-row stack rise`,"aria-description":c(n).description||c(a),[v]:{"--i":c(r)}}),void 0,void 0,void 0,`svelte-lozhsl`);var f=A(d),p=A(f),h=O(p,!0),y=b(p,2),x=O(y),S=b(y,2),C=e=>{var n=Ne(),r=A(n);t(r,{get text(){return c(V)}}),g(n),s(e,n)};i(S,e=>{c(o)&&c(V)&&e(C)}),g(f);var w=b(f,2),T=A(w),D=()=>void Ge(c(n));E(T,()=>({type:`button`,class:`dw-quiet`,disabled:c(o),onclick:D,"aria-description":`install ${c(a)}`}),void 0,void 0,void 0,`svelte-lozhsl`);var k=A(T);{let e=_(()=>c(o)?`Installing…`:`Install`);t(k,{get text(){return c(e)}})}g(T),g(w),g(d),m(()=>{l(h,c(a)),l(x,`${c(n).domain_label??``} · ${c(n).node_count??``} ${c(n).node_count===1?`node`:`nodes`}${c(u)?` · ${c(u)}`:``}${c(n).tensor_models.length>0?` · ${c(n).tensor_models.length} fit${c(n).tensor_models.length===1?``:`s`}`:``}`)}),s(e,d)}),g(n),s(e,n)};i(y,e=>{c(C)?e(x):c(z)?e(w,1):c(B)?e(T,2):c(R).length===0?e(D,3):e(te,-1)}),g(r),f(`input`,d,Ue),ee(d,()=>c(L),e=>k(L,e)),s(n,r)};i(ct,e=>{c(I)===`installed`?e(lt):e(ut,-1)}),g(st),g($),m(()=>$e=ne($,1,`mf-tool`,null,$e,{dialog:!c(Le)})),s(o,$),D()}o([`change`,`click`,`input`]);export{Le as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/NodeCompareDrawer-DlkfuNWE.js b/drowse/web/dist/assets/NodeCompareDrawer-CFd-IFUk.js
similarity index 97%
rename from drowse/web/dist/assets/NodeCompareDrawer-DlkfuNWE.js
rename to drowse/web/dist/assets/NodeCompareDrawer-CFd-IFUk.js
index 1192724c3..4d4ad34a6 100644
--- a/drowse/web/dist/assets/NodeCompareDrawer-DlkfuNWE.js
+++ b/drowse/web/dist/assets/NodeCompareDrawer-CFd-IFUk.js
@@ -1 +1 @@
-import{f as e,p as t,u as n}from"./src-D3ehkdzy.js";import{A as r,D as i,I as a,K as o,L as s,N as c,O as l,Q as u,R as d,Z as f,at as p,bt as m,d as h,dt as g,it as _,lt as v,mt as y,n as b,nt as x,p as S,pt as C,rt as w,st as T,tt as E,v as D,y as O,yt as k}from"./index-client-B2jUARBN.js";import{t as A}from"./errors-JtXkE1b1.js";import{d as j}from"./workspaceController-C2L33e3m.js";import{c as M}from"./interfaceSchemas-CEzHSS8w.js";import{Qr as N,Vi as P,ut as F}from"./session.svelte-Dafz5mOy.js";import{r as I,t as ee}from"./drawers.svelte-BBPH3jMg.js";import{t as L}from"./userFacingError-Dn4DmQRG.js";import"./stores.svelte-BvABcOLl.js";function R(e,t){let n=new Set,r=[];for(let i of e){let e=t===`a`?i.a_index:i.b_index;e<0||n.has(e)||(n.add(e),r.push(i))}return r}var te=d(` branches`),ne=d(`Select two or more replies`),re=d(`
Select two or more generated replies on the loom
`),ie=d(`
`),ae=d(`
`),oe=d(`
`),se=d(`
Siblings
Reply
Mean log p
Top token kept
Mean ≈KL
`),ce=d(`
`),z=d(``),le=d(``),ue=d(`
A
`),de=d(`+`),fe=d(`−`),pe=d(``),me=d(``),he=d(`
Computing token probabilities…
`),ge=d(`
`),_e=d(``),ve=d(`
`),ye=d(`
Log probabilities
Pos
Token
A
B
Δ A token
≈KL
Top token changed
`),be=d(`
No aligned tokens
`),xe=d(`
→
`),Se=d(`
Readings
`),Ce=d(`
No readings
`),we=d(``),Te=d(`
A
`,1),Ee=d(`
Compare branches
`);function B(d,B){y(B,!0);let V=g(()=>{let e=B.params??I.params??{};return Array.isArray(e.node_ids)?e.node_ids.filter(Boolean):[]}),H=g(()=>o(V)[0]??null),U=v(p([])),W=v(p([])),G=v(!1),K=v(null),q=v(`side-by-side`),J=v(`magnitude`);async function De(){let e=o(V);if(e.length<2||!o(H)){T(U,[],!0),T(W,[],!0);return}T(G,!0);let t=P.replayCapabilities().catch(e=>({jointLogprobs:{available:!1,reason:L(e,`Token likelihood replay is unavailable in this runtime.`)}})),n=[];try{for(let t=1;t({kind:`unavailable`,message:n})),!0);return}T(W,t.slice(1).map(()=>({kind:`loading`})),!0);let n=[];for(let e=1;e{o(V),De()}),b(()=>()=>{N()});function Y(e){let t=(F.nodes.get(e)?.text??``).replace(/\s+/g,` `).trim();return t?t.length>80?t.slice(0,80)+`…`:t:`(empty)`}function ke(e){let t=[...e];return o(J)===`magnitude`?t.sort((e,t)=>Math.abs(t.delta)-Math.abs(e.delta)):t.sort((e,t)=>e.name.localeCompare(t.name)),t}function Ae(e,t=5){let n=[...e].sort((e,t)=>Math.abs(t.delta)-Math.abs(e.delta));return new Set(n.slice(0,t).map(e=>e.name))}function je(e){return R(e,`a`)}function Me(e){return R(e,`b`)}function Ne(e){return`${e.delta>=0?`+`:``}${e.delta.toFixed(3)}`}function Pe(e){return e===`insert`?`color-mix(in oklch, var(--tint) 18%, transparent)`:e===`delete`?`color-mix(in oklab, var(--ink3) 18%, transparent)`:`transparent`}function Fe(e){return e.split(/(\s+)/)}function Ie(e){return!e.reading_deltas||e.reading_deltas.length===0?``:e.reading_deltas.slice(0,3).map(e=>`${e.name} ${Ne(e)}`).join(` · `)}function X(e){return e==null||!Number.isFinite(e)?`-`:e.toFixed(2)}function Le(e,t){if(e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t))return`-`;let n=e-t;return`${n>=0?`+`:``}${n.toFixed(2)}`}function Re(e){return e==null||!Number.isFinite(e)?`-`:Math.abs(e)<.01?e.toExponential(1):e.toFixed(2)}function ze(e){return e.filter(e=>e.aligned)}let Z=g(()=>{if(o(V).length<2)return[];let e=[];for(let t=0;t0){a.rank1Unchanged=1-e.data.n_rank1_changed/t.length;let n=0,r=0;for(let e of t)e.approx_kl!=null&&Number.isFinite(e.approx_kl)&&(n+=e.approx_kl,r+=1);a.klMean=r>0?n/r:null}a.jointReady=!0}else(e.kind===`err`||e.kind===`unavailable`)&&(a.jointReady=!0)}}e.push(a)}return e});function Be(e){return e==null||!Number.isFinite(e)?`-`:`${(e*100).toFixed(0)}%`}function Ve(e){return e==null||!Number.isFinite(e)?`-`:Math.abs(e)<.01?e.toExponential(1):e.toFixed(3)}b(()=>j(`node_compare`,{schema:M,read:()=>({busy:!1,values:{layout:o(q),sort_by:o(J)}}),update:async e=>{e.layout!==void 0&&T(q,e.layout,!0),e.sort_by!==void 0&&T(J,e.sort_by,!0)}}));var Q=Ee(),$=E(Q),He=E($),Ue=_(E(He),2),We=E(Ue),Ge=t=>{var n=te(),r=E(n),i=E(r);e(i,{get text(){return o(V).length}}),m(r),k(),m(n),a(t,n)},Ke=e=>{var t=ne();a(e,t)};r(We,e=>{o(V).length>=2?e(Ge):e(Ke,-1)}),m(Ue),m(He);var qe=_(He,2);t(qe,{icon:`close`,label:`Close`,get onclick(){return ee}}),m($);var Je=_($,2),Ye=E(Je);n(Ye,{label:`Layout`,get value(){return o(q)},onchange:e=>T(q,e,!0),options:[{value:`side-by-side`,label:`Side by side`},{value:`unified`,label:`Unified`}]});var Xe=_(Ye,2);n(Xe,{label:`Sort readings by`,get value(){return o(J)},onchange:e=>T(J,e,!0),options:[{value:`magnitude`,label:`Largest change`},{value:`name`,label:`Name`}]}),m(Je);var Ze=_(Je,2),Qe=E(Ze),$e=e=>{var t=re();a(e,t)},et=e=>{var t=ie();a(e,t)},tt=t=>{var n=Te(),u=x(n);let d;var p=E(u),v=E(p),y=_(E(v),2),b=w(y,!0);m(v);var C=_(v,2),k=w(C,!0);m(p);var A=_(p,2);i(A,18,()=>o(V).slice(1),e=>e,(e,t,n)=>{var r=ae(),i=E(r),s=E(i),l=w(s),u=_(s,2),d=w(u,!0);m(i);var p=_(i,2),h=w(p,!0);m(r),f((e,t)=>{c(l,`B${o(V).length>2?o(n)+1:``}`),c(d,e),c(h,t)},[()=>t.slice(0,12),()=>Y(t)]),a(e,r)}),m(u);var j=_(u,2),M=t=>{var n=se(),r=E(n),s=_(E(r),2),l=w(s);m(r);var u=_(r,2),d=E(u),p=E(d),h=E(p),v=_(E(h),2);S(v,()=>({class:`num`,"aria-description":`mean logprob`}),void 0,void 0,void 0,`svelte-lzsal6`);var y=_(v);S(y,()=>({class:`num`,"aria-description":`rank-1 agreement`}),void 0,void 0,void 0,`svelte-lzsal6`);var b=_(y);S(b,()=>({class:`num`,"aria-description":`approximate KL`}),void 0,void 0,void 0,`svelte-lzsal6`),m(h),m(p);var x=_(p);i(x,21,()=>o(Z),e=>e.nodeId,(t,n)=>{var r=oe();let i;var s=E(r),l=w(s,!0),u=_(s),d=w(u,!0),p=_(u),h=w(p,!0),v=_(p),y=E(v);{let t=g(()=>o(n).isAnchor?`-`:o(n).jointReady?Be(o(n).rank1Unchanged):`…`);e(y,{get text(){return o(t)}})}m(v);var b=_(v),x=E(b);{let t=g(()=>o(n).isAnchor?`-`:o(n).jointReady?Ve(o(n).klMean):`…`);e(x,{get text(){return o(t)}})}m(b),m(r),f(e=>{i=O(r,1,`svelte-lzsal6`,null,i,{anchor:o(n).isAnchor}),c(l,o(n).label),c(d,o(n).preview),c(h,e)},[()=>X(o(n).meanLogprob)]),a(t,r)}),m(x),m(d),m(u),m(n),f(()=>c(l,`against ${o(Z)[0]?.label??`A`??``}`)),a(t,n)};r(j,e=>{o(Z).length>0&&e(M)});var N=_(j,2);i(N,17,()=>o(U),l,(t,n,u)=>{var d=s(),p=x(d),v=e=>{var t=ce(),r=w(t,!0);f(()=>c(r,o(n).message)),a(e,t)},y=t=>{let d=g(()=>o(n).diff),p=g(()=>Ae(o(d).readings,5)),v=g(()=>ke(o(d).readings)),y=g(()=>o(W)[u]);var b=we(),C=E(b),k=E(C),A=w(k,!0),j=_(k,2),M=e=>{var t=z();S(t,()=>({class:`meta`,"aria-description":`steering delta A → B`}),void 0,void 0,void 0,`svelte-lzsal6`);var n=w(t);f(()=>c(n,`steering ${(o(d).steering_delta||`unchanged`)??``}`)),a(e,t)};r(j,e=>{(o(d).parent_applied_steering!==null||o(d).steering_delta)&&e(M)}),m(C);var N=_(C,2),P=e=>{let t=g(()=>je(o(d).per_token)),n=g(()=>Me(o(d).per_token));var p=ue(),v=E(p),y=_(E(v),2),b=E(y),C=e=>{var n=s(),r=x(n);i(r,17,()=>o(t),e=>`a-${e.a_index}`,(e,t)=>{var n=z(),r=()=>T(K,o(t).a_index,!0),i=()=>T(K,null);S(n,e=>({class:`tok`,...e,onmouseenter:r,onmouseleave:i,[h]:{"highlight-anchor":o(K)===o(t).a_index}}),[()=>({"aria-description":Ie(o(t))})],void 0,void 0,`svelte-lzsal6`);var s=w(n,!0);f(()=>c(s,o(t).a_text)),a(e,n)}),a(e,n)},D=e=>{var t=s(),n=x(t);i(n,17,()=>Fe(o(d).a_text),l,(e,t)=>{var n=le(),r=w(n,!0);f(()=>c(r,o(t))),a(e,n)}),a(e,t)};r(b,e=>{o(t).length>0?e(C):e(D,-1)}),m(y),m(v);var O=_(v,2),k=E(O),A=w(k),j=_(k,2),M=E(j),N=e=>{var t=s(),r=x(t);i(r,17,()=>o(n),e=>`b-${e.b_index}`,(e,t)=>{let n=g(()=>o(t).a_index>=0&&o(K)!==null&&o(t).a_index===o(K));var r=z();S(r,e=>({class:`tok`,...e,[h]:{"highlight-target":o(n)}}),[()=>({"aria-description":Ie(o(t))})],void 0,void 0,`svelte-lzsal6`);var i=w(r,!0);f(()=>c(i,o(t).b_text)),a(e,r)}),a(e,t)},P=e=>{var t=s(),n=x(t);i(n,17,()=>Fe(o(d).b_text),l,(e,t)=>{var n=le(),r=w(n,!0);f(()=>c(r,o(t))),a(e,n)}),a(e,t)};r(M,e=>{o(n).length>0?e(N):e(P,-1)}),m(j),m(O),m(p),f(()=>c(A,`B${o(V).length>2?u+1:``}`)),a(e,p)},F=e=>{var t=me();i(t,21,()=>o(d).text,l,(e,t)=>{var n=pe();let i;var s=E(n),l=e=>{var t=de();a(e,t)},u=e=>{var t=fe();a(e,t)};r(s,e=>{o(t).state===`insert`?e(l):o(t).state===`delete`&&e(u,1)});var d=_(s);m(n),f(e=>{i=O(n,1,`tok-span svelte-lzsal6`,null,i,{"span-equal":o(t).state===`equal`,"span-insert":o(t).state===`insert`,"span-delete":o(t).state===`delete`}),D(n,e),c(d,`${o(t).text??``} `)},[()=>`background-color: ${Pe(o(t).state)}`]),a(e,n)}),m(t),a(e,t)};r(N,e=>{o(q)===`side-by-side`?e(P):e(F,-1)});var I=_(N,2),ee=e=>{var t=s(),n=x(t),l=e=>{var t=he();a(e,t)},u=e=>{var t=ce(),n=w(t);f(()=>c(n,`Log probabilities: ${o(y).message??``}`)),a(e,t)},d=e=>{var t=ge(),n=w(t);f(()=>c(n,`${o(y).message??``} The text and saved readings still compare.`)),a(e,t)},p=e=>{let t=g(()=>ze(o(y).data.rows));var n=s(),l=x(n),u=e=>{var n=ye(),s=E(n),l=_(E(s),2),u=E(l),d=w(u,!0),p=_(u);m(l),m(s);var h=_(s,2),g=E(h),v=E(g),b=E(v),x=_(E(b),4);S(x,()=>({class:`num`,"aria-description":`log pB(A token) − log pA(A token)`}),void 0,void 0,void 0,`svelte-lzsal6`);var C=_(x);S(C,()=>({class:`num`,"aria-description":`approx KL(A ∥ B) · top-K`}),void 0,void 0,void 0,`svelte-lzsal6`);var T=_(C);S(T,()=>({class:`flag`,"aria-description":`argmax differs`}),void 0,void 0,void 0,`svelte-lzsal6`),m(b),m(v);var D=_(v);i(D,21,()=>o(t),e=>`${e.a_index}-${e.b_index}`,(e,t)=>{var n=ve();let i;var s=E(n),l=w(s,!0),u=_(s),d=w(u,!0),p=_(u),h=w(p,!0),g=_(p),v=w(g,!0),y=_(g),b=w(y,!0),x=_(y),S=w(x,!0),C=_(x),T=E(C),D=e=>{var t=_e();a(e,t)};r(T,e=>{o(t).rank_changed&&e(D)}),m(C),m(n),f((e,r,a,s,u)=>{i=O(n,1,`svelte-lzsal6`,null,i,{"rank-flip":o(t).rank_changed}),c(l,o(t).a_index),c(d,e),c(h,r),c(v,a),c(b,s),c(S,u)},[()=>JSON.stringify(o(t).a_text),()=>X(o(t).lp_a_in_a),()=>X(o(t).lp_b_in_b),()=>Le(o(t).lp_a_in_b,o(t).lp_a_in_a),()=>Re(o(t).approx_kl)]),a(e,n)}),m(D),m(g),m(h),m(n),f(()=>{c(d,o(y).data.n_rank1_changed),c(p,` of ${o(t).length??``} top tokens change`)}),a(e,n)},d=e=>{var t=be();a(e,t)};r(l,e=>{o(t).length>0?e(u):e(d,-1)}),a(e,n)};r(n,e=>{o(y).kind===`loading`?e(l):o(y).kind===`err`?e(u,1):o(y).kind===`unavailable`?e(d,2):e(p,-1)}),a(e,t)};r(I,e=>{o(y)&&e(ee)});var L=_(I,2),R=t=>{var n=Se(),r=_(E(n),2);i(r,21,()=>o(v),e=>e.name,(t,n)=>{let r=g(()=>o(p).has(o(n).name));var i=xe();let s;var l=E(i),u=w(l,!0),d=_(l,2),h=E(d);{let t=g(()=>o(n).a_value.toFixed(3));e(h,{get text(){return o(t)}})}var v=_(h,4);{let t=g(()=>o(n).b_value.toFixed(3));e(v,{get text(){return o(t)}})}m(d);var y=_(d,2),b=E(y);let x;m(y);var S=_(y,2),C=E(S);{let t=g(()=>Ne(o(n)));e(C,{get text(){return o(t)}})}m(S),m(i),f(e=>{s=O(i,1,`reading-row svelte-lzsal6`,null,s,{"top-delta":o(r)}),c(u,o(n).name),D(b,e),x=O(b,1,`svelte-lzsal6`,null,x,{neg:o(n).delta<0})},[()=>`width: ${Math.min(100,Math.abs(o(n).delta)*100)}%`]),a(t,i)}),m(r),m(n),a(t,n)},te=e=>{var t=Ce();a(e,t)};r(L,e=>{o(v).length>0?e(R):e(te,-1)}),m(b),f(()=>c(A,o(V).length===2?`A and B`:`A and B${u+1}`)),a(t,b)};r(p,e=>{o(n).kind===`err`?e(v):e(y,-1)}),a(t,d)}),f((e,t)=>{d=O(u,1,`columns svelte-lzsal6`,null,d,{unified:o(q)===`unified`}),c(b,e),c(k,t)},[()=>o(H)?.slice(0,12)??``,()=>Y(o(H)??``)]),a(t,n)};r(Qe,e=>{o(V).length<2?e($e):o(G)&&o(U).length===0?e(et,1):e(tt,-1)}),m(Ze),m(Q),a(d,Q),C()}export{B as default};
\ No newline at end of file
+import{f as e,p as t,u as n}from"./src-DWTrC_D-.js";import{A as r,D as i,I as a,K as o,L as s,N as c,O as l,Q as u,R as d,Z as f,at as p,bt as m,d as h,dt as g,it as _,lt as v,mt as y,n as b,nt as x,p as S,pt as C,rt as w,st as T,tt as E,v as D,y as O,yt as k}from"./index-client-B2jUARBN.js";import{t as A}from"./errors-D9jT6Fvg.js";import{d as j}from"./workspaceController-C2L33e3m.js";import{c as M}from"./interfaceSchemas-CEzHSS8w.js";import{Qr as N,Vi as P,ut as F}from"./session.svelte-DG7XfPv3.js";import{r as I,t as ee}from"./drawers.svelte-kEXNcFnO.js";import{t as L}from"./userFacingError-DNBzS3_o.js";import"./stores.svelte-Cf8e_r1G.js";function R(e,t){let n=new Set,r=[];for(let i of e){let e=t===`a`?i.a_index:i.b_index;e<0||n.has(e)||(n.add(e),r.push(i))}return r}var te=d(` branches`),ne=d(`Select two or more replies`),re=d(`
Select two or more generated replies on the loom
`),ie=d(`
`),ae=d(`
`),oe=d(`
`),se=d(`
Siblings
Reply
Mean log p
Top token kept
Mean ≈KL
`),ce=d(`
`),z=d(``),le=d(``),ue=d(`
A
`),de=d(`+`),fe=d(`−`),pe=d(``),me=d(``),he=d(`
Computing token probabilities…
`),ge=d(`
`),_e=d(``),ve=d(`
`),ye=d(`
Log probabilities
Pos
Token
A
B
Δ A token
≈KL
Top token changed
`),be=d(`
No aligned tokens
`),xe=d(`
→
`),Se=d(`
Readings
`),Ce=d(`
No readings
`),we=d(``),Te=d(`
A
`,1),Ee=d(`
Compare branches
`);function B(d,B){y(B,!0);let V=g(()=>{let e=B.params??I.params??{};return Array.isArray(e.node_ids)?e.node_ids.filter(Boolean):[]}),H=g(()=>o(V)[0]??null),U=v(p([])),W=v(p([])),G=v(!1),K=v(null),q=v(`side-by-side`),J=v(`magnitude`);async function De(){let e=o(V);if(e.length<2||!o(H)){T(U,[],!0),T(W,[],!0);return}T(G,!0);let t=P.replayCapabilities().catch(e=>({jointLogprobs:{available:!1,reason:L(e,`Token likelihood replay is unavailable in this runtime.`)}})),n=[];try{for(let t=1;t({kind:`unavailable`,message:n})),!0);return}T(W,t.slice(1).map(()=>({kind:`loading`})),!0);let n=[];for(let e=1;e{o(V),De()}),b(()=>()=>{N()});function Y(e){let t=(F.nodes.get(e)?.text??``).replace(/\s+/g,` `).trim();return t?t.length>80?t.slice(0,80)+`…`:t:`(empty)`}function ke(e){let t=[...e];return o(J)===`magnitude`?t.sort((e,t)=>Math.abs(t.delta)-Math.abs(e.delta)):t.sort((e,t)=>e.name.localeCompare(t.name)),t}function Ae(e,t=5){let n=[...e].sort((e,t)=>Math.abs(t.delta)-Math.abs(e.delta));return new Set(n.slice(0,t).map(e=>e.name))}function je(e){return R(e,`a`)}function Me(e){return R(e,`b`)}function Ne(e){return`${e.delta>=0?`+`:``}${e.delta.toFixed(3)}`}function Pe(e){return e===`insert`?`color-mix(in oklch, var(--tint) 18%, transparent)`:e===`delete`?`color-mix(in oklab, var(--ink3) 18%, transparent)`:`transparent`}function Fe(e){return e.split(/(\s+)/)}function Ie(e){return!e.reading_deltas||e.reading_deltas.length===0?``:e.reading_deltas.slice(0,3).map(e=>`${e.name} ${Ne(e)}`).join(` · `)}function X(e){return e==null||!Number.isFinite(e)?`-`:e.toFixed(2)}function Le(e,t){if(e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t))return`-`;let n=e-t;return`${n>=0?`+`:``}${n.toFixed(2)}`}function Re(e){return e==null||!Number.isFinite(e)?`-`:Math.abs(e)<.01?e.toExponential(1):e.toFixed(2)}function ze(e){return e.filter(e=>e.aligned)}let Z=g(()=>{if(o(V).length<2)return[];let e=[];for(let t=0;t0){a.rank1Unchanged=1-e.data.n_rank1_changed/t.length;let n=0,r=0;for(let e of t)e.approx_kl!=null&&Number.isFinite(e.approx_kl)&&(n+=e.approx_kl,r+=1);a.klMean=r>0?n/r:null}a.jointReady=!0}else(e.kind===`err`||e.kind===`unavailable`)&&(a.jointReady=!0)}}e.push(a)}return e});function Be(e){return e==null||!Number.isFinite(e)?`-`:`${(e*100).toFixed(0)}%`}function Ve(e){return e==null||!Number.isFinite(e)?`-`:Math.abs(e)<.01?e.toExponential(1):e.toFixed(3)}b(()=>j(`node_compare`,{schema:M,read:()=>({busy:!1,values:{layout:o(q),sort_by:o(J)}}),update:async e=>{e.layout!==void 0&&T(q,e.layout,!0),e.sort_by!==void 0&&T(J,e.sort_by,!0)}}));var Q=Ee(),$=E(Q),He=E($),Ue=_(E(He),2),We=E(Ue),Ge=t=>{var n=te(),r=E(n),i=E(r);e(i,{get text(){return o(V).length}}),m(r),k(),m(n),a(t,n)},Ke=e=>{var t=ne();a(e,t)};r(We,e=>{o(V).length>=2?e(Ge):e(Ke,-1)}),m(Ue),m(He);var qe=_(He,2);t(qe,{icon:`close`,label:`Close`,get onclick(){return ee}}),m($);var Je=_($,2),Ye=E(Je);n(Ye,{label:`Layout`,get value(){return o(q)},onchange:e=>T(q,e,!0),options:[{value:`side-by-side`,label:`Side by side`},{value:`unified`,label:`Unified`}]});var Xe=_(Ye,2);n(Xe,{label:`Sort readings by`,get value(){return o(J)},onchange:e=>T(J,e,!0),options:[{value:`magnitude`,label:`Largest change`},{value:`name`,label:`Name`}]}),m(Je);var Ze=_(Je,2),Qe=E(Ze),$e=e=>{var t=re();a(e,t)},et=e=>{var t=ie();a(e,t)},tt=t=>{var n=Te(),u=x(n);let d;var p=E(u),v=E(p),y=_(E(v),2),b=w(y,!0);m(v);var C=_(v,2),k=w(C,!0);m(p);var A=_(p,2);i(A,18,()=>o(V).slice(1),e=>e,(e,t,n)=>{var r=ae(),i=E(r),s=E(i),l=w(s),u=_(s,2),d=w(u,!0);m(i);var p=_(i,2),h=w(p,!0);m(r),f((e,t)=>{c(l,`B${o(V).length>2?o(n)+1:``}`),c(d,e),c(h,t)},[()=>t.slice(0,12),()=>Y(t)]),a(e,r)}),m(u);var j=_(u,2),M=t=>{var n=se(),r=E(n),s=_(E(r),2),l=w(s);m(r);var u=_(r,2),d=E(u),p=E(d),h=E(p),v=_(E(h),2);S(v,()=>({class:`num`,"aria-description":`mean logprob`}),void 0,void 0,void 0,`svelte-lzsal6`);var y=_(v);S(y,()=>({class:`num`,"aria-description":`rank-1 agreement`}),void 0,void 0,void 0,`svelte-lzsal6`);var b=_(y);S(b,()=>({class:`num`,"aria-description":`approximate KL`}),void 0,void 0,void 0,`svelte-lzsal6`),m(h),m(p);var x=_(p);i(x,21,()=>o(Z),e=>e.nodeId,(t,n)=>{var r=oe();let i;var s=E(r),l=w(s,!0),u=_(s),d=w(u,!0),p=_(u),h=w(p,!0),v=_(p),y=E(v);{let t=g(()=>o(n).isAnchor?`-`:o(n).jointReady?Be(o(n).rank1Unchanged):`…`);e(y,{get text(){return o(t)}})}m(v);var b=_(v),x=E(b);{let t=g(()=>o(n).isAnchor?`-`:o(n).jointReady?Ve(o(n).klMean):`…`);e(x,{get text(){return o(t)}})}m(b),m(r),f(e=>{i=O(r,1,`svelte-lzsal6`,null,i,{anchor:o(n).isAnchor}),c(l,o(n).label),c(d,o(n).preview),c(h,e)},[()=>X(o(n).meanLogprob)]),a(t,r)}),m(x),m(d),m(u),m(n),f(()=>c(l,`against ${o(Z)[0]?.label??`A`??``}`)),a(t,n)};r(j,e=>{o(Z).length>0&&e(M)});var N=_(j,2);i(N,17,()=>o(U),l,(t,n,u)=>{var d=s(),p=x(d),v=e=>{var t=ce(),r=w(t,!0);f(()=>c(r,o(n).message)),a(e,t)},y=t=>{let d=g(()=>o(n).diff),p=g(()=>Ae(o(d).readings,5)),v=g(()=>ke(o(d).readings)),y=g(()=>o(W)[u]);var b=we(),C=E(b),k=E(C),A=w(k,!0),j=_(k,2),M=e=>{var t=z();S(t,()=>({class:`meta`,"aria-description":`steering delta A → B`}),void 0,void 0,void 0,`svelte-lzsal6`);var n=w(t);f(()=>c(n,`steering ${(o(d).steering_delta||`unchanged`)??``}`)),a(e,t)};r(j,e=>{(o(d).parent_applied_steering!==null||o(d).steering_delta)&&e(M)}),m(C);var N=_(C,2),P=e=>{let t=g(()=>je(o(d).per_token)),n=g(()=>Me(o(d).per_token));var p=ue(),v=E(p),y=_(E(v),2),b=E(y),C=e=>{var n=s(),r=x(n);i(r,17,()=>o(t),e=>`a-${e.a_index}`,(e,t)=>{var n=z(),r=()=>T(K,o(t).a_index,!0),i=()=>T(K,null);S(n,e=>({class:`tok`,...e,onmouseenter:r,onmouseleave:i,[h]:{"highlight-anchor":o(K)===o(t).a_index}}),[()=>({"aria-description":Ie(o(t))})],void 0,void 0,`svelte-lzsal6`);var s=w(n,!0);f(()=>c(s,o(t).a_text)),a(e,n)}),a(e,n)},D=e=>{var t=s(),n=x(t);i(n,17,()=>Fe(o(d).a_text),l,(e,t)=>{var n=le(),r=w(n,!0);f(()=>c(r,o(t))),a(e,n)}),a(e,t)};r(b,e=>{o(t).length>0?e(C):e(D,-1)}),m(y),m(v);var O=_(v,2),k=E(O),A=w(k),j=_(k,2),M=E(j),N=e=>{var t=s(),r=x(t);i(r,17,()=>o(n),e=>`b-${e.b_index}`,(e,t)=>{let n=g(()=>o(t).a_index>=0&&o(K)!==null&&o(t).a_index===o(K));var r=z();S(r,e=>({class:`tok`,...e,[h]:{"highlight-target":o(n)}}),[()=>({"aria-description":Ie(o(t))})],void 0,void 0,`svelte-lzsal6`);var i=w(r,!0);f(()=>c(i,o(t).b_text)),a(e,r)}),a(e,t)},P=e=>{var t=s(),n=x(t);i(n,17,()=>Fe(o(d).b_text),l,(e,t)=>{var n=le(),r=w(n,!0);f(()=>c(r,o(t))),a(e,n)}),a(e,t)};r(M,e=>{o(n).length>0?e(N):e(P,-1)}),m(j),m(O),m(p),f(()=>c(A,`B${o(V).length>2?u+1:``}`)),a(e,p)},F=e=>{var t=me();i(t,21,()=>o(d).text,l,(e,t)=>{var n=pe();let i;var s=E(n),l=e=>{var t=de();a(e,t)},u=e=>{var t=fe();a(e,t)};r(s,e=>{o(t).state===`insert`?e(l):o(t).state===`delete`&&e(u,1)});var d=_(s);m(n),f(e=>{i=O(n,1,`tok-span svelte-lzsal6`,null,i,{"span-equal":o(t).state===`equal`,"span-insert":o(t).state===`insert`,"span-delete":o(t).state===`delete`}),D(n,e),c(d,`${o(t).text??``} `)},[()=>`background-color: ${Pe(o(t).state)}`]),a(e,n)}),m(t),a(e,t)};r(N,e=>{o(q)===`side-by-side`?e(P):e(F,-1)});var I=_(N,2),ee=e=>{var t=s(),n=x(t),l=e=>{var t=he();a(e,t)},u=e=>{var t=ce(),n=w(t);f(()=>c(n,`Log probabilities: ${o(y).message??``}`)),a(e,t)},d=e=>{var t=ge(),n=w(t);f(()=>c(n,`${o(y).message??``} The text and saved readings still compare.`)),a(e,t)},p=e=>{let t=g(()=>ze(o(y).data.rows));var n=s(),l=x(n),u=e=>{var n=ye(),s=E(n),l=_(E(s),2),u=E(l),d=w(u,!0),p=_(u);m(l),m(s);var h=_(s,2),g=E(h),v=E(g),b=E(v),x=_(E(b),4);S(x,()=>({class:`num`,"aria-description":`log pB(A token) − log pA(A token)`}),void 0,void 0,void 0,`svelte-lzsal6`);var C=_(x);S(C,()=>({class:`num`,"aria-description":`approx KL(A ∥ B) · top-K`}),void 0,void 0,void 0,`svelte-lzsal6`);var T=_(C);S(T,()=>({class:`flag`,"aria-description":`argmax differs`}),void 0,void 0,void 0,`svelte-lzsal6`),m(b),m(v);var D=_(v);i(D,21,()=>o(t),e=>`${e.a_index}-${e.b_index}`,(e,t)=>{var n=ve();let i;var s=E(n),l=w(s,!0),u=_(s),d=w(u,!0),p=_(u),h=w(p,!0),g=_(p),v=w(g,!0),y=_(g),b=w(y,!0),x=_(y),S=w(x,!0),C=_(x),T=E(C),D=e=>{var t=_e();a(e,t)};r(T,e=>{o(t).rank_changed&&e(D)}),m(C),m(n),f((e,r,a,s,u)=>{i=O(n,1,`svelte-lzsal6`,null,i,{"rank-flip":o(t).rank_changed}),c(l,o(t).a_index),c(d,e),c(h,r),c(v,a),c(b,s),c(S,u)},[()=>JSON.stringify(o(t).a_text),()=>X(o(t).lp_a_in_a),()=>X(o(t).lp_b_in_b),()=>Le(o(t).lp_a_in_b,o(t).lp_a_in_a),()=>Re(o(t).approx_kl)]),a(e,n)}),m(D),m(g),m(h),m(n),f(()=>{c(d,o(y).data.n_rank1_changed),c(p,` of ${o(t).length??``} top tokens change`)}),a(e,n)},d=e=>{var t=be();a(e,t)};r(l,e=>{o(t).length>0?e(u):e(d,-1)}),a(e,n)};r(n,e=>{o(y).kind===`loading`?e(l):o(y).kind===`err`?e(u,1):o(y).kind===`unavailable`?e(d,2):e(p,-1)}),a(e,t)};r(I,e=>{o(y)&&e(ee)});var L=_(I,2),R=t=>{var n=Se(),r=_(E(n),2);i(r,21,()=>o(v),e=>e.name,(t,n)=>{let r=g(()=>o(p).has(o(n).name));var i=xe();let s;var l=E(i),u=w(l,!0),d=_(l,2),h=E(d);{let t=g(()=>o(n).a_value.toFixed(3));e(h,{get text(){return o(t)}})}var v=_(h,4);{let t=g(()=>o(n).b_value.toFixed(3));e(v,{get text(){return o(t)}})}m(d);var y=_(d,2),b=E(y);let x;m(y);var S=_(y,2),C=E(S);{let t=g(()=>Ne(o(n)));e(C,{get text(){return o(t)}})}m(S),m(i),f(e=>{s=O(i,1,`reading-row svelte-lzsal6`,null,s,{"top-delta":o(r)}),c(u,o(n).name),D(b,e),x=O(b,1,`svelte-lzsal6`,null,x,{neg:o(n).delta<0})},[()=>`width: ${Math.min(100,Math.abs(o(n).delta)*100)}%`]),a(t,i)}),m(r),m(n),a(t,n)},te=e=>{var t=Ce();a(e,t)};r(L,e=>{o(v).length>0?e(R):e(te,-1)}),m(b),f(()=>c(A,o(V).length===2?`A and B`:`A and B${u+1}`)),a(t,b)};r(p,e=>{o(n).kind===`err`?e(v):e(y,-1)}),a(t,d)}),f((e,t)=>{d=O(u,1,`columns svelte-lzsal6`,null,d,{unified:o(q)===`unified`}),c(b,e),c(k,t)},[()=>o(H)?.slice(0,12)??``,()=>Y(o(H)??``)]),a(t,n)};r(Qe,e=>{o(V).length<2?e($e):o(G)&&o(U).length===0?e(et,1):e(tt,-1)}),m(Ze),m(Q),a(d,Q),C()}export{B as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/NumberInput-B4CVeFgD.js b/drowse/web/dist/assets/NumberInput-DKXkismd.js
similarity index 97%
rename from drowse/web/dist/assets/NumberInput-B4CVeFgD.js
rename to drowse/web/dist/assets/NumberInput-DKXkismd.js
index b648a2484..7ba5ac1e8 100644
--- a/drowse/web/dist/assets/NumberInput-B4CVeFgD.js
+++ b/drowse/web/dist/assets/NumberInput-DKXkismd.js
@@ -1 +1 @@
-import{C as e,f as t}from"./src-D3ehkdzy.js";import{A as n,H as r,I as i,K as a,R as o,U as s,Z as c,bt as l,dt as u,it as d,lt as f,mt as p,p as m,pt as h,r as g,s as _,st as v,tt as y,y as b}from"./index-client-B2jUARBN.js";var x=o(``),S=o(``),C=o(``);function w(r,o){p(o,!0);let w=g(o,`value`,15),T=g(o,`step`,3,1),E=g(o,`disabled`,3,!1),D=g(o,`invalid`,3,!1),O=g(o,`allowEmpty`,3,!1),k=f(!1),A=f(null);function j(){a(A)?.focus()}function M(){a(A)?.select()}function N(e){if(e===null)return null;let t=e;return o.min!==void 0&&to.max&&(t=o.max),t}function P(e){let t=N(e);a(A)&&t!==e&&(a(A).value=t===null?``:String(t)),w(t),o.oninput?.(t)}function F(e){let t=N(e);a(A)&&t!==e&&(a(A).value=t===null?``:String(t)),w(t),o.onchange?.(t)}function I(e){let t=e.currentTarget.value;if(t===``){P(O()?null:0);return}let n=Number(t);Number.isFinite(n)&&P(n)}function L(e){let t=e.currentTarget.value;if(t===``){F(O()?null:0);return}let n=Number(t);Number.isFinite(n)&&F(n)}function R(e){if(o.onkeydown?.(e),e.defaultPrevented||e.key!==`Enter`)return;e.preventDefault(),e.stopPropagation();let t=a(A)?.value??``;if(t===``){F(O()?null:0);return}let n=Number(t);Number.isFinite(n)&&F(n)}function z(e){if(E())return;let t=(w()??0)+e*T(),n=(T().toString().split(`.`)[1]??``).length;t=Number(t.toFixed(n)),P(t),o.onchange?.(N(t)),a(A)?.focus()}var B={focus:j,select:M},V=C();let H;var U=y(V),W=()=>v(k,!0),G=()=>v(k,!1);m(U,()=>({onfocus:W,onblur:G,type:`number`,class:`sk-number-input`,value:w()===null?``:w(),min:o.min,max:o.max,step:T(),placeholder:o.placeholder,disabled:E(),"aria-description":o.title,"aria-label":o.ariaLabel,"aria-invalid":D(),"aria-describedby":o.ariaDescribedby,oninput:I,onchange:L,onkeydown:R}),void 0,void 0,void 0,`svelte-j94t9a`,!0),_(U,e=>v(A,e),()=>a(A));var K=d(U,2),q=e=>{var n=x(),r=y(n);{let e=u(()=>String(w()));t(r,{get text(){return a(e)}})}l(n),i(e,n)};n(K,e=>{!a(k)&&w()!==null&&e(q)});var J=d(K,2),Y=t=>{var n=S(),r=y(n),a=y(r);e(a,{name:`up`,size:12}),l(r);var o=d(r,2),c=y(o);e(c,{name:`down`,size:12}),l(o),l(n),s(`click`,r,()=>z(1)),s(`click`,o,()=>z(-1)),i(t,n)};return n(J,e=>{E()||e(Y)}),l(V),c(()=>H=b(V,1,`sk-number svelte-j94t9a`,null,H,{"is-disabled":E(),"is-invalid":D(),resting:!a(k)&&w()!==null})),i(r,V),h(B)}r([`click`]);export{w as t};
\ No newline at end of file
+import{C as e,f as t}from"./src-DWTrC_D-.js";import{A as n,H as r,I as i,K as a,R as o,U as s,Z as c,bt as l,dt as u,it as d,lt as f,mt as p,p as m,pt as h,r as g,s as _,st as v,tt as y,y as b}from"./index-client-B2jUARBN.js";var x=o(``),S=o(``),C=o(``);function w(r,o){p(o,!0);let w=g(o,`value`,15),T=g(o,`step`,3,1),E=g(o,`disabled`,3,!1),D=g(o,`invalid`,3,!1),O=g(o,`allowEmpty`,3,!1),k=f(!1),A=f(null);function j(){a(A)?.focus()}function M(){a(A)?.select()}function N(e){if(e===null)return null;let t=e;return o.min!==void 0&&to.max&&(t=o.max),t}function P(e){let t=N(e);a(A)&&t!==e&&(a(A).value=t===null?``:String(t)),w(t),o.oninput?.(t)}function F(e){let t=N(e);a(A)&&t!==e&&(a(A).value=t===null?``:String(t)),w(t),o.onchange?.(t)}function I(e){let t=e.currentTarget.value;if(t===``){P(O()?null:0);return}let n=Number(t);Number.isFinite(n)&&P(n)}function L(e){let t=e.currentTarget.value;if(t===``){F(O()?null:0);return}let n=Number(t);Number.isFinite(n)&&F(n)}function R(e){if(o.onkeydown?.(e),e.defaultPrevented||e.key!==`Enter`)return;e.preventDefault(),e.stopPropagation();let t=a(A)?.value??``;if(t===``){F(O()?null:0);return}let n=Number(t);Number.isFinite(n)&&F(n)}function z(e){if(E())return;let t=(w()??0)+e*T(),n=(T().toString().split(`.`)[1]??``).length;t=Number(t.toFixed(n)),P(t),o.onchange?.(N(t)),a(A)?.focus()}var B={focus:j,select:M},V=C();let H;var U=y(V),W=()=>v(k,!0),G=()=>v(k,!1);m(U,()=>({onfocus:W,onblur:G,type:`number`,class:`sk-number-input`,value:w()===null?``:w(),min:o.min,max:o.max,step:T(),placeholder:o.placeholder,disabled:E(),"aria-description":o.title,"aria-label":o.ariaLabel,"aria-invalid":D(),"aria-describedby":o.ariaDescribedby,oninput:I,onchange:L,onkeydown:R}),void 0,void 0,void 0,`svelte-j94t9a`,!0),_(U,e=>v(A,e),()=>a(A));var K=d(U,2),q=e=>{var n=x(),r=y(n);{let e=u(()=>String(w()));t(r,{get text(){return a(e)}})}l(n),i(e,n)};n(K,e=>{!a(k)&&w()!==null&&e(q)});var J=d(K,2),Y=t=>{var n=S(),r=y(n),a=y(r);e(a,{name:`up`,size:12}),l(r);var o=d(r,2),c=y(o);e(c,{name:`down`,size:12}),l(o),l(n),s(`click`,r,()=>z(1)),s(`click`,o,()=>z(-1)),i(t,n)};return n(J,e=>{E()||e(Y)}),l(V),c(()=>H=b(V,1,`sk-number svelte-j94t9a`,null,H,{"is-disabled":E(),"is-invalid":D(),resting:!a(k)&&w()!==null})),i(r,V),h(B)}r([`click`]);export{w as t};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/ProbeGeometryPlot-CkcyyROo.js b/drowse/web/dist/assets/ProbeGeometryPlot-oNkgeFdk.js
similarity index 98%
rename from drowse/web/dist/assets/ProbeGeometryPlot-CkcyyROo.js
rename to drowse/web/dist/assets/ProbeGeometryPlot-oNkgeFdk.js
index 95bb4c735..1f5b7549a 100644
--- a/drowse/web/dist/assets/ProbeGeometryPlot-CkcyyROo.js
+++ b/drowse/web/dist/assets/ProbeGeometryPlot-oNkgeFdk.js
@@ -1,2 +1,2 @@
-import{A as e,D as t,H as n,I as r,K as i,N as a,O as o,Q as s,R as c,U as l,Z as u,at as d,bt as f,dt as p,h as m,it as h,lt as g,mt as _,nt as v,p as y,pt as b,r as x,rt as S,s as C,st as w,tt as T,v as E,y as D}from"./index-client-B2jUARBN.js";import{t as O}from"./userFacingError-Dn4DmQRG.js";import{E as k,S as ee,f as A}from"./src-D3ehkdzy.js";import{d as j}from"./workspaceController-C2L33e3m.js";import{_ as M}from"./selection.svelte-D1Qz6BJG.js";import{F as N,Li as te,Si as P,Sr as F,bi as I}from"./session.svelte-Dafz5mOy.js";import{C as L,y as ne}from"./unitTerms-Diu4Qe4X.js";import{t as R}from"./types-CuMUbvHW.js";import{i as re}from"./interfaceSchemas-CEzHSS8w.js";import{i as ie,n as z,r as ae,t as B}from"./chartValues-DDT2TtWf.js";function oe(e){return e==null||!Number.isFinite(e)?null:`color-mix(in oklch, var(--deep) ${Math.round((1-Math.max(0,Math.min(1,e)))*100)}%, var(--late))`}function se(e,t){return!Number.isFinite(e)||!Number.isFinite(t)||t<=0?null:Math.max(0,Math.min(1,e/t))}function V(e,t,n=[]){if(e==null||!Number.isFinite(e))return null;let r=t!=null&&Number.isFinite(t)&&t>1?t-1:0;if(r===0){let e=Math.max(0,...n);e>0&&new Set(n).size===e+1&&(r=e)}return r>0?Math.round(Math.max(0,Math.min(1,e))*r):null}function ce(e){let t=null,n=-1;for(let[r,i]of Object.entries(e??{})){let e=Number(r);if(!Number.isFinite(e)||typeof i!=`number`||!Number.isFinite(i))continue;let a=Math.abs(i);a>n&&(n=a,t=e)}return t}function H(e,{scale:t,limit:n=48}={}){let r=n>0&&e.length>n?e.slice(e.length-n):e,i=t!==void 0&&Number.isFinite(t)&&t>0?t:0;if(i===0)for(let e of r)typeof e==`number`&&Number.isFinite(e)&&(i=Math.max(i,Math.abs(e)));return r.map(e=>{if(typeof e!=`number`||!Number.isFinite(e))return{height:0,negative:!1,missing:!0};let t=i>0?Math.min(1,Math.abs(e)/i):0;return{height:e===0?0:Math.max(8,Math.round(t*1e3)/10),negative:e<0,missing:!1}})}function le(e,t){let n=e=>typeof e==`number`&&Number.isFinite(e)?e:null;if(t<=0||e.length<=t)return{values:e.map(n),size:1};let r=Math.ceil(e.length/t),i=[];for(let t=0;tMath.abs(a))&&(a=e)}i.push(a)}return{values:i,size:r}}function ue(e,{signed:t=!1,percent:n=!1}={}){if(e==null||!Number.isFinite(e))return`–`;if(n){let t=e*100;return`${t!==0&&Math.abs(t)<.1?`<0.1`:t.toFixed(t>=10?0:1)}%`}let r=Math.abs(e).toFixed(Math.abs(e)>=100?0:2);return e<0&&r!==`0.00`?`−${r}`:t&&e>0?`+${r}`:r}function U(e,t){return ue(t,{signed:!0,percent:e.startsWith(`jlens/`)})}function de(e,t,n=null){if(e?.family===`sae`&&typeof e.feature_id==`number`)return{lead:!1,text:`${n===null?``:`L${n} `}f${e.feature_id}`};if(e?.family===`lens`&&typeof e.word==`string`&&e.word.length>0){let t=k(e.word);return{lead:t.lead,text:t.empty?JSON.stringify(e.word):t.text}}return{lead:!1,text:t.split(`/`).pop()||t}}function W(e,t,n,{numericNames:r=!1}={}){let i=r?(e,t)=>e.localeCompare(t,void 0,{numeric:!0}):(e,t)=>e.localeCompare(t),a=[...e,...t];return n===`name`?a.sort((e,t)=>i(e.sortName,t.sortName)||t.strength-e.strength):n===`depth`?a.sort((e,t)=>(e.com??1/0)-(t.com??1/0)||t.strength-e.strength):a.sort((e,t)=>t.strength-e.strength||i(e.sortName,t.sortName)),a}function G(e,t){let n=new Set(t.filter(e=>e.namespace===`jlens`).map(e=>e.id).filter(e=>typeof e==`number`));return e.filter(([,,,,e])=>!n.has(e)).map(([e,t,n,r,i])=>({key:`aggregate:${i}`,id:i,sortName:e.trim(),token:e,strength:t,com:n,spread:r}))}function fe(e,t,n){return t.map(t=>{let r=e?.[String(t)]?.find(([,,e])=>e===n);return{layer:t,p:r?r[1]:null}})}function pe(e){let t=[],n=new Set;for(let r of e){if(n.has(r))continue;let i=r.pinned?e.find(e=>e!==r&&e.pinned&&e.token===r.token&&e.namespace!==r.namespace):void 0,a=i?r.namespace===`jlens`?[r,i]:[i,r]:[r];for(let e of a)t.push(e),n.add(e)}return t}var me=c(``),he=c(``);function ge(t,n){_(n,!0);let a=x(n,`width`,3,144),o=x(n,`height`,3,8),s=x(n,`bipolar`,3,!1),c=x(n,`percentage`,3,!1),l=p(()=>B(n.value,n.max)*(s()?50:100)),d=p(()=>s()?n.value<0?50-i(l):50:0),g=p(()=>n.color??(n.value<0?`var(--ink3)`:`var(--tint)`)),v=p(()=>n.color===void 0&&n.value<0),y=p(()=>n.title??z(n.value,n.max,c()));var S=he();let C;var w=T(S);let O,k;var ee=h(w,2),A=e=>{var t=me();r(e,t)};e(ee,e=>{s()&&e(A)}),f(S),u(()=>{m(S,`aria-label`,i(y)),C=E(S,``,C,{"--bar-width":`${a()}px`,height:`${o()}px`}),O=D(w,1,`fill svelte-irr9qk`,null,O,{faint:i(v)}),k=E(w,``,k,{left:`${i(d)}%`,width:`${i(l)}%`,background:i(g)})}),r(t,S),b()}function _e(e,t){let n=t.x-e.x,r=t.y-e.y;return{center:{x:e.x+n/2,y:e.y+r/2},distance:Math.hypot(n,r)}}function ve(e,t,n,r,i){return!Number.isFinite(e)||!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0?Math.min(i,Math.max(r,e)):Math.min(i,Math.max(r,e*n/t))}var ye=c(``),be=c(``);function xe(e,n){_(n,!0);let a=x(n,`limit`,3,48),s=x(n,`maxBars`,3,160),c=x(n,`height`,3,24),l=x(n,`cursor`,3,null),d=p(()=>a()>0&&n.values.length>a()?n.values.slice(n.values.length-a()):n.values),h=p(()=>n.values.length-i(d).length),g=p(()=>le(i(d),s())),v=p(()=>H(i(g).values,{scale:n.scale,limit:0})),y=p(()=>l()===null||l()i(g).size===1?n.colors?.[i(h)+e]??void 0:void 0;var C=be();let w,T;t(C,21,()=>i(v),o,(e,t,n)=>{var a=ye();let o,s;u(e=>{o=D(a,1,`svelte-bd6j4o`,null,o,{neg:i(t).negative,missing:i(t).missing,on:i(y)===n}),s=E(a,``,s,{height:i(t).missing?void 0:`${i(t).height}%`,background:e})},[()=>i(t).missing||i(t).negative?void 0:S(n)]),r(e,a)}),f(C),u(()=>{w=D(C,1,`trace svelte-bd6j4o`,null,w,{"has-cursor":i(y)!==null}),m(C,`aria-label`,n.label),T=E(C,``,T,{height:`${c()??``}px`,gap:i(v).length>80?`0px`:i(v).length>40?`1px`:`2px`})}),r(e,C),b()}function K(e){return e?.family===`geometry`&&!e.is_affine}function Se(e,t){if(!t)return null;let{base:n}=I(e);return n===e?n:null}var Ce=e=>typeof e==`number`&&Number.isFinite(e)?e:null;function q(e,t,{share:n=!1}={}){if(!e)return null;let r=Se(t,n);return Ce(r===null?P(e,t):e.measurements?.instruments?.geometry?.readings?.[r]?.fraction)}function J(e,t,n={}){return(e?.tokens??[]).map(e=>q(e,t,n))}function Y(e,t={}){for(let n=N.turns.length-1;n>=0;--n){let r=N.turns[n];if(!r.generated||!r.tokens?.length)continue;let i=J(r,e,t);return i.some(e=>e!==null)?i:null}return null}function we(e=null){for(let t=N.turns.length-1;t>=0;--t){let n=N.turns[t],r=n.tokens??[];if(!n.generated||r.length===0)continue;let i=r[e===null?r.length-1:Math.max(0,Math.min(r.length-1,e))];return{token:i,nodeId:n.nodeId??null,rawIndex:i.rawIndex??null}}return null}function Te(e,t=null,{share:n=!1}={}){let r=we(t);if(!r)return null;let{base:i}=I(e),a=ne(F(L(r.token.measurements))?.[i],Se(e,n)!==null);return a!==null&&Object.keys(a).length>0?a:null}function Ee(e){let t=getComputedStyle(e),n=(e,n=`transparent`)=>t.getPropertyValue(e).trim()||n;return{fg:n(`--ink`),fgDim:n(`--ink2`),muted:n(`--ink3`),border:n(`--wash2`),accent:n(`--ink`),purple:n(`--tint`),bg:n(`--wash`),node:n(`--geom-node`,n(`--tint`)),neutral:n(`--geom-neutral`,n(`--ink3`)),live:n(`--tint`),light:n(`--paper`)}}var De=`500 11px "Wix Madefor Text", system-ui, sans-serif`,Oe=`500 10px "Wix Madefor Text", system-ui, sans-serif`,X=28,ke=1.1,Ae=6,Z=11,je=6;function Me(e){let t=e.getContext(`2d`);if(!t)return null;let n=e.getBoundingClientRect(),r=window.devicePixelRatio||1,i=Math.max(1,Math.floor(n.width)),a=Math.max(1,Math.floor(n.height));return e.width=Math.floor(i*r),e.height=Math.floor(a*r),t.setTransform(r,0,0,r,0,0),t.lineCap=`round`,t.lineJoin=`round`,t.clearRect(0,0,i,a),{ctx:t,w:i,h:a}}function Q(e){let t=1/0,n=-1/0,r=1/0,i=-1/0;for(let[a,o]of e)an&&(n=a),oi&&(i=o);if(!Number.isFinite(t))return{minX:-1,maxX:1,minY:-1,maxY:1};let a=n-t||1,o=i-r||1;return{minX:t-a*.08,maxX:n+a*.08,minY:r-o*.08,maxY:i+o*.08}}function Ne(e,t,n){let r=t-56,i=n-56,a=Math.max(e.maxX-e.minX,e.maxY-e.minY)||1,o=Math.min(r,i)/a,s=(e.minX+e.maxX)/2,c=(e.minY+e.maxY)/2;return(e,r)=>[t/2+(e-s)*o,n/2-(r-c)*o]}function $(e,t,n,r,i,a=1){e.globalAlpha=a,e.beginPath(),e.arc(t,n,r,0,Math.PI*2),e.fillStyle=i,e.fill(),e.globalAlpha=1}function Pe(e,t,n,r){e.globalAlpha=.95,e.beginPath(),e.arc(t,n,6.5,0,Math.PI*2),e.strokeStyle=r.live,e.lineWidth=2,e.stroke(),e.beginPath(),e.arc(t,n,3.2,0,Math.PI*2),e.fillStyle=r.light,e.fill(),e.globalAlpha=1}function Fe(e,t,n,r,i,a){e.globalAlpha=.9,e.fillStyle=i,e.font=De,e.fillText(r,Ie(e,t,n,r,a)[0],n-4),e.globalAlpha=1}function Ie(e,t,n,r,i){e.font=De;let a=e.measureText(r).width,o=t+5+a<=i-8?t+5:Math.max(8,t-5-a);return[o,n-15,o+a,n-1]}function Le(e,t,n,r,i){let a=[],o=new Set;for(let s of[...t].reverse()){let[t,c]=n(s),l=Ie(e,t,c,r(s),i);a.some(e=>l[0]{let n=t-56,r=u.maxX-u.minX||1;return X+(e-u.minX)/r*n};e.strokeStyle=i.border,e.lineWidth=1,e.beginPath(),e.moveTo(X,d),e.lineTo(t-X,d),e.stroke();let p=f(o.neutral_white[0]??0);a.push({screen:[p,d],label:`neutral`,point:o.neutral_white}),e.strokeStyle=i.neutral,e.beginPath(),e.moveTo(p,d-8),e.lineTo(p,d+8),e.stroke(),Fe(e,p,d-6,`neutral`,i.neutral,t),o.node_white.forEach((n,o)=>{let s=f(n[0]??0);a.push({screen:[s,d],label:r.nodeLabels[o]??`node ${o+1}`,point:n}),$(e,s,d,4,i.node),Fe(e,s,d+18,r.nodeLabels[o]??``,i.fgDim,t)}),c.forEach((t,n)=>{let r=.1+.7*(n/Math.max(1,c.length-1));$(e,f(t[0]??0),d,2.5,i.live,r)}),s&&Pe(e,f(s[0]??0),d,i),s&&a.push({screen:[f(s[0]??0),d],label:`live`,point:s})}function Be(e,t,n,r,i,a,o){let{geom:s,live:c,trail:l}=r,u=[];for(let e of s.node_white)u.push([e[0]??0,e[1]??0]);if(u.push([s.neutral_white[0]??0,s.neutral_white[1]??0]),s.overlay?.kind===`curve`)for(let e of s.overlay.points)u.push([e[0]??0,e[1]??0]);let d=Ne(Q(u),t,n);{let[r,a]=d(0,0);e.strokeStyle=i.border,e.lineWidth=1,e.globalAlpha=.35,e.beginPath(),e.moveTo(X,a),e.lineTo(t-X,a),e.moveTo(r,X),e.lineTo(r,n-X),e.stroke(),e.globalAlpha=.7,e.fillStyle=i.muted,e.font=Oe,e.fillText(`PC1`,t-X-22,a-4),e.fillText(`PC2`,r+4,38),e.globalAlpha=1}s.overlay?.kind===`curve`&&s.overlay.points.length>1&&(e.strokeStyle=i.purple,e.globalAlpha=.5,e.lineWidth=1.5,e.beginPath(),s.overlay.points.forEach((t,n)=>{let[r,i]=d(t[0]??0,t[1]??0);n===0?e.moveTo(r,i):e.lineTo(r,i)}),e.stroke(),e.globalAlpha=1);{let[t,n]=d(s.neutral_white[0]??0,s.neutral_white[1]??0);o.push({screen:[t,n],label:`neutral`,point:s.neutral_white}),e.strokeStyle=i.neutral,e.lineWidth=1.5,e.beginPath(),e.arc(t,n,4,0,Math.PI*2),e.stroke()}if(s.node_white.forEach((n,r)=>{let[s,c]=d(n[0]??0,n[1]??0);o.push({screen:[s,c],label:a(r),point:n}),$(e,s,c,3.5,i.node),Fe(e,s,c,a(r),i.fgDim,t)}),Re(e,l.map(e=>d(e[0]??0,e[1]??0)),i.live),c){let[t,n]=d(c[0]??0,c[1]??0);o.push({screen:[t,n],label:`live`,point:c}),Pe(e,t,n,i)}}function Ve(e,t){let n=0,r=0,i=0,a=Math.min(e.length,t.length);for(let o=0;on[e]&&(n[e]=r[e]);return[(t[0]+n[0])/2,(t[1]+n[1])/2,(t[2]+n[2])/2]}function Ye(e,t,n,r,i,a,o){let{geom:s,live:c,trail:l,orbit:u}=r,d=s.pca_rotation;if(!d)return;let f=u.q,p=u.zoom||1,m=s.node_white.map(e=>Ve(e,d)),h=Ve(s.neutral_white,d),g=(s.overlay?.points??[]).map(e=>Ve(e,d)),_=l.map(e=>Ve(e,d)),v=c?Ve(c,d):null,y=[...m,h,...g,..._,...v?[v]:[]],b=Je(y),x=0;for(let e of y){let t=Math.hypot(e[0]-b[0],e[1]-b[1],e[2]-b[2]);t>x&&(x=t)}x||=1;let S=t-56,C=n-56,w=Math.min(S,C)/2/(x*ke)*p,T=t/2,E=n/2,D=e=>{let t=Ge(f,[e[0]-b[0],e[1]-b[1],e[2]-b[2]]);return{s:[T+t[0]*w,E-t[1]*w],z:t[2]}},O=m.map(D),k=D(h);o.push({screen:k.s,label:`neutral`,point:s.neutral_white});let ee=g.map(D),A=_.map(D),j=v?D(v):null,M=1/0,N=-1/0;for(let e of O)e.zN&&(N=e.z);let te=N-M||1,P=e=>(e-M)/te;{let r=[k,...O,...A,...j?[j]:[]].map(e=>e.s),a=x*ke,o=[{dir:[1,0,0],name:`PC1`},{dir:[0,1,0],name:`PC2`},{dir:[0,0,1],name:`PC3`}];e.strokeStyle=i.border,e.lineWidth=1;for(let{dir:s,name:c}of o){let o=D([b[0]+s[0]*a,b[1]+s[1]*a,b[2]+s[2]*a]),l=D([b[0]-s[0]*a,b[1]-s[1]*a,b[2]-s[2]*a]);e.globalAlpha=.35,e.beginPath(),e.moveTo(l.s[0],l.s[1]),e.lineTo(o.s[0],o.s[1]),e.stroke(),e.globalAlpha=.7,e.fillStyle=i.muted,e.font=Oe;let u=Math.hypot(o.s[0]-T,o.s[1]-E),d=u>1e-6?(o.s[0]-T)/u:Math.SQRT1_2,f=u>1e-6?(o.s[1]-E)/u:-Math.SQRT1_2,p=e.measureText(c).width,m=e=>{let r=T+d*(e+Ae),i=E+f*(e+Ae);return[Math.max(2,Math.min(t-2-p,d>=0?r:r-p)),Math.max(12,Math.min(n-2,f<=0?i:i+Z))]},h=([e,t])=>r.some(([n,r])=>n>=e-je&&n<=e+p+je&&r>=t-Z-je&&r<=t+je),g=m(u),[_,v]=h(g)?m(Math.max(u,x*ke*w)):g;e.fillText(c,_,v)}e.globalAlpha=1}if(s.overlay&&ee.length>1){if(e.strokeStyle=i.purple,e.lineWidth=1,s.overlay.kind===`curve`)e.globalAlpha=.4,e.beginPath(),ee.forEach((t,n)=>{n===0?e.moveTo(t.s[0],t.s[1]):e.lineTo(t.s[0],t.s[1])}),e.stroke(),e.globalAlpha=1;else if(s.overlay.kind===`surface`&&s.overlay.grid_shape){let[t,n]=s.overlay.grid_shape;e.globalAlpha=.28;for(let r=0;r({i:t,z:e.z})).sort((e,t)=>e.z-t.z),I=Le(e,F.map(({i:e})=>e).filter(e=>P(O[e].z)>.55),e=>O[e].s,a,t);for(let{i:n}of F){let r=O[n];o.push({screen:r.s,label:a(n),point:s.node_white[n]});let c=P(r.z);$(e,r.s[0],r.s[1],2.5+2.5*c,i.node,.4+.6*c),I.has(n)&&Fe(e,r.s[0],r.s[1],a(n),i.fgDim,t)}Re(e,A.map(e=>e.s),i.live),j&&Pe(e,j.s[0],j.s[1],i),j&&c&&o.push({screen:j.s,label:`live`,point:c})}function Xe(e,t){let n=Me(e);if(!n)return[];let r=[],{ctx:i,w:a,h:o}=n,s=Ee(e),c=e=>t.nodeLabels[e]??``,l=t.geom.rank;return l<=1?ze(i,a,o,t,s,r):l===2?Be(i,a,o,t,s,c,r):Ye(i,a,o,t,s,c,r),r}var Ze=c(``),Qe=c(`
A replay can't reproduce where this reply's steering fired, so these readings are replayed without it.
`),Si=y(``),Ci=y(``),wi=y(` `,1),Ti=y(`
`),Ei=y(`
`),Di=y(`
token
`,1),Oi=y(`
`),ki=y(``);function Ai(t,n){F(n,!0);let i=z(n,`docked`,3,!1),u=z(n,`active`,3,!0),d=z(n,`mobile`,3,!1),h=O(()=>u()&&Ve.room===`workbench`),_=N(null),y=O(()=>n.params);function b(){n.onclose?n.onclose():i()?He():We()}let T=O(()=>m(y)?{turnIdx:m(y).turnIdx,seg:m(y).isThinking?`thinking`:`response`,tokenIdx:m(y).tokenIdx}:null),D=O(()=>m(T)),M=N(`primary`),W=O(()=>Ye.turns.map((e,t)=>t===(m(D)?.turnIdx??-1)&&m(M)===`shadow`&&e.abPair?e.abPair:e)),G=O(()=>Te(m(W))),q=O(()=>m(D)?ve(m(G),m(D)):null),ae=-1,oe;v(()=>{let e=m(q)?.turnIdx??-1,t=n.params;if(e===ae&&t===oe)return;let r=e===ae;ae=e,oe=t;let i=Oe(p(()=>m(M)),{sameTurn:r,stepped:p(()=>vt.stepped)});i!==p(()=>m(M))&&H(M,i,!0)});let se=O(()=>m(q)!=null&&m(q).turnIdx>=0&&m(q).turnIdxm(q)?m(W)[m(q).turnIdx]??null:null),Y=O(()=>m(q)?Ee(m(J),m(q).seg):[]),X=O(()=>m(q)!=null&&m(q).tokenIdx>=0&&m(q).tokenIdxm(q)?`${m(q).turnIdx}:${m(q).seg}:${m(q).tokenIdx}`:`none`),Z=O(()=>m(q)?m(M)===`shadow`?m(J)?.nodeId??null:we(m(q).turnIdx):null),ue=O(()=>kt(m(Z)?ft.nodes.get(m(Z)):null,m(X),m(J)?.appliedSteering)),de=O(()=>m(ue).index),fe=O(()=>m(Z)!=null&&m(de)!=null),Q=O(()=>m(M)===`primary`&&m(Z)!=null&&m(X)?.rawIndex!=null&&!Qe.active),me=N(!1),$=N(``),_e=N(!1),be=N(null),Se=N(null);v(()=>{m(Z),m(X)?.rawIndex,H(be,null),H(me,!1),H($,``)});async function Ce(){if(!m(Q)||!m(X))return;H($,m(X).text,!0),H(me,!0),H(be,null),await ee(),m(Se)?.focus();let e=m($).search(/\S/),t=m($).trimEnd().length;m(Se)?.setSelectionRange(e>=0?e:0,t>0?t:m($).length)}function ke(){(!i()||d())&&b(),lt.view=`map`,he()}async function Ae(e,t){H(be,null),H(_e,!0);try{await e(),ke()}catch(e){H(be,It(e,t),!0)}finally{H(_e,!1)}}async function je(){if(!m(Q)||!m(Z)||m(X)?.rawIndex==null)return;if(m($).length===0){H(be,`Write the text to branch with`),m(Se)?.focus();return}let e=m(Z),t=m(X).rawIndex;if(m($)===m(X).text&&m(X).tokenId!=null){let n=m(X).tokenId;await Ae(()=>tt(e,t,n,!0),`Unable to continue this branch from the selected token.`)}else{let n=m($);await Ae(()=>mt(e,t,n),`Unable to replace this token and start a new branch.`)}}async function Me(e){if(!m(Q)||!m(Z)||m(X)?.rawIndex==null)return;let t=m(Z),n=m(X).rawIndex;await Ae(()=>tt(t,n,e),`Unable to create a branch from this word choice. Try another alternative.`)}let Ne=O(()=>m(Z)?ft.nodes.get(m(Z))??null:null),Pe=O(()=>m(Ne)?.recipe?.sampling??null),Fe=O(()=>m(ue).steering);function Be(e){return e==null||!Number.isFinite(e)?`–`:String(Number(e.toFixed(2)))}let Ue=O(()=>{let e=m(Pe),t=m(Ne)?.recipe;if(!e&&!t)return``;let n=[`temperature ${Be(e?.temperature)}`,`top-p ${Be(e?.top_p)}`,...e?.top_k?[`top-k ${e.top_k}`]:[],`${Be(e?.max_tokens)} tokens`],r=t?.seed??e?.seed;return r!=null&&n.push(`seed ${r}`),e?.presence_penalty&&n.push(`presence ${Be(e.presence_penalty)}`),e?.frequency_penalty&&n.push(`frequency ${Be(e.frequency_penalty)}`),t?.thinking!=null&&n.push(t.thinking?`thinking`:`no thinking`),(t?.probes.length??0)>0&&n.push(`${t.probes.length} probes`),n.join(` · `)});function Ke(e){De(e)}let qe=O(()=>m(q)!=null&&xe(m(G),m(q),-1)!==null),Je=O(()=>m(q)!=null&&xe(m(G),m(q),1)!==null);function Ze(e){m(q)&&Ke(xe(m(G),m(q),e))}function ht(e){m(q)&&Ke(ye(m(G),m(q),e))}function _t(e){m(q)&&De({...m(q),tokenIdx:e===`home`?0:Math.max(0,m(Y).length-1)})}let bt=O(()=>{if(!m(q))return null;let e=m(q).seg===`thinking`?`response`:`thinking`;return m(G).some(t=>t.turnIdx===m(q).turnIdx&&t.seg===e)?e:null});function Ct(){m(q)&&m(bt)&&De({turnIdx:m(q).turnIdx,seg:m(bt),tokenIdx:0})}function wt(e){if(e.defaultPrevented||!m(h)||(d()||i())&&!m(_)?.contains(e.target))return;if(e.key===`Escape`){e.preventDefault(),(!i()||d())&&b();return}let t=e.target;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable||t.closest(`[role="slider"], [role="listbox"]`)))){switch(e.key){case`ArrowLeft`:Ze(-1);break;case`ArrowRight`:Ze(1);break;case`ArrowUp`:ht(-1);break;case`ArrowDown`:ht(1);break;case`Home`:_t(`home`);break;case`End`:_t(`end`);break;default:return}e.preventDefault()}}let Tt=O(()=>e(m(X)?.text??``)),Et=O(()=>m(X)?.logprob==null?null:Math.exp(m(X).logprob)),At=O(()=>{let e=m(X)?.topAlts;if(!e||e.length===0||m(X)?.tokenId==null)return null;let t=e.findIndex(e=>e.id===m(X).tokenId);return t>=0?t+1:null}),Mt=O(()=>{if(!m(q))return[];let e=m(q).tokenIdx,t=Math.max(0,e-12);return m(Y).slice(t,Math.min(m(Y).length,e+7)).map((e,n)=>({text:e.text.replace(/\n/g,`⏎`),i:t+n}))}),Lt=O(()=>m(se)?.abPair!=null),Rt=O(()=>it.info?.jlens_fitted===!0),zt=O(ct),Bt=N(`unknown`);I(()=>{let e=!0;return li(`sae`).then(t=>{e&&H(Bt,t,!0)}),()=>{e=!1}});let Vt=O(()=>ut(`lens`)?.capabilities.token_readout===!0),Ht=O(()=>ut(`sae`)?.capabilities.token_readout===!0),Ut=O(()=>ut(`geometry`)?.capabilities.token_readout===!0),Wt=O(()=>et(dt.return_top_k)),Gt=new xn,Kt=new xn,qt=new xn,Jt=xt(St().instruments).tokenAnatomy,Yt=new xn,Xt=typeof St().instruments.unitLabels==`function`?new ge:null;te(()=>{Gt.dispose(),Kt.dispose(),qt.dispose(),Yt.dispose()});let Zt=N(!0),Qt=N(!0),$t=N(!0),en=O(()=>m(Zt)&&m(Qt)&&m($t)),tn=O(()=>Dt({anatomy:Jt,tokenReadout:m(Vt),rLens:m(Rt),activeLens:gt.sources.some(e=>e.active),replayContext:m(fe)})),nn=O(()=>m(tn).available),rn=O(()=>m(tn).anatomy),an=O(()=>m(nn)||m(Ht)||m(Ut)),on=O(()=>m(an)&&m(fe)&&(m(Fe)!==null||!m(en)));function sn(e){let t=e===`steered`;H(Zt,t||!m(nn),!0),H(Qt,t||!m(Ht),!0),H($t,t||!m(Ut),!0)}let cn=N(null),ln=O(()=>m(cn)!==null&&m(cn)===m(Z));v(()=>{(qt.refused||Yt.refused||Gt.refused||Kt.refused)&&m(Z)&&m(cn)!==m(Z)&&(H(cn,m(Z),!0),sn(`unsteered`))});let un=O(()=>pt.active.some(e=>pt.entries.get(e)?.info.family===`geometry`)),dn=O(()=>Nt(m(X)?.measurements)),fn=O(()=>{let e=m(dn)?.instruments.lens;return!e?.readout||!m(X)?null:{node_id:m(Z)??``,raw_index:m(de)??-1,token_id:m(X).tokenId??-1,token_text:m(X).text,steering:e.binding.steering,aggregate:e.readout.aggregate,layers:e.readout.layers??[]}}),pn=O(()=>m(dn)?.instruments.lens?.readout?.layers!==void 0),mn=O(()=>{let e=m(dn)?.instruments.sae;return!e?.readout||!m(X)?null:{node_id:m(Z)??``,raw_index:m(de)??-1,token_id:m(X).tokenId??-1,token_text:m(X).text,steering:e.binding.steering,layer:e.binding.layer??-1,features:e.readout.features}}),hn=O(()=>{let e=m(dn)?.instruments.geometry;return!e||Object.keys(e.readings??{}).length===0?null:{steering:e.binding?.steering??null,readings:e.readings}}),gn=O(()=>Pt(m(hn)?.readings)),_n=O(()=>jt({anatomy:m(rn),steered:m(Zt),captured:m(dn)?.instruments.lens?.readings,anatomyPins:Yt.pins,lensPins:Gt.pins,saePins:Kt.pins,saeSteered:m(Qt),scores:m(X)?.measurements?.scores??null}));v(()=>{if(!m(h))return;m(X),Qe.active,m(Z);let e=m(hn);!m(Ut)&&!m($t)&&H($t,!0);let t=m(Z),n=m(de),r=m(Ut)&&m(un)&&!!t&&n!=null;if((m($t)||!m(Ut))&&e&&(m(gn)||!r)){qt.adopt(e,null);return}if(qt.clear(),!r||!t||n==null)return;let i=m($t),a=i&&e?{data:e,source:null}:null,o=Ot({steered:i,captured:e,row:Ft(m(X)?.measurements)});qt.replay(`geometry`,t,n,{steered:i,raw:Xe()},o,a)}),v(()=>{if(!m(h))return;m(X),Qe.active,m(Z);let e=m(mn);if(!m(Ht)&&!m(Qt)&&H(Qt,!0),(m(Qt)||!m(Ht))&&e){Kt.adopt(e,m(dn)?.instruments.sae?.binding.source??null,m(dn)?.instruments.sae?.readings??null);return}if(Kt.clear(),!m(Ht)||!m(zt))return;let t=m(Z),n=m(de);if(!t||n==null)return;let r=m(X)?.tokenId??-1,i=m(X)?.text??``,a=Ge.sources.find(e=>e.active)?.source??ut(`sae`)?.source??null;Kt.replay(`sae`,t,n,{topK:m(Wt),steered:m(Qt),raw:Xe()},e=>{let o=e.instruments.sae;if(!o?.readout)throw Error(`No SAE reading came back. Check the active feature source.`);return{data:{node_id:t,raw_index:n,token_id:r,token_text:i,steering:o?.binding.steering??null,layer:o?.binding.layer??-1,features:o.readout.features},source:o?.binding.source??a??null,pins:o.readings??null}})}),v(()=>{if(!m(h)||!Jt)return;m(X),Qe.active;let e=m(Z),t=m(de);!m(rn)||!e||t==null?Yt.clear():Yt.anatomy(e,t,{k:Math.min(256,Math.max(1,m(Wt))),units:8,patterns:4,steered:m(Zt),raw:Xe()},e=>{let t=e.anatomy;if(!t)throw Error(`No anatomy came back for this token. Select it again to retry.`);return{data:t,source:t.binding.sources.R??null,pins:e.instruments.lens?.readings??null}})}),v(()=>{if(!m(h))return;if(m(rn)){Gt.clear();return}m(X),Qe.active,m(Z);let e=m(fn);!m(nn)&&!m(Zt)&&H(Zt,!0);let t=m(Z),n=m(de),r=!Jt&&m(Vt)&&m(Rt)&&!!t&&n!=null;if((m(Zt)||!m(nn))&&e&&(m(pn)||!r)){Gt.adopt(e,m(dn)?.instruments.lens?.binding.sources.R??null,m(dn)?.instruments.lens?.readings??null);return}if(Gt.clear(),!r||!t||n==null)return;let i=m(X)?.tokenId??-1,a=m(X)?.text??``,o=gt.sources.find(e=>e.active&&e.family!==`S`)?.source??null,s=m(Zt)&&e?{data:e,source:m(dn)?.instruments.lens?.binding.sources.R??null,pins:m(dn)?.instruments.lens?.readings??null}:null;Gt.replay(`lens`,t,n,{topK:m(Wt),steered:m(Zt),raw:Xe(),layers:`all`},e=>{let r=e.instruments.lens;if(!r?.readout)throw Error(`No lens reading came back. Check the active lens source.`);return{data:{node_id:t,raw_index:n,token_id:i,token_text:a,steering:r?.binding.steering??null,aggregate:r.readout.aggregate,layers:r.readout.layers??[]},source:r?.binding.sources.R??o??null,pins:r.readings??null}},s)});let yn=O(()=>Yt.data?Yt.data.layers.length-1:Gt.data?pe(Gt.data.layers):null),bn={};function Sn(e,t){return bn[t]=e,{destroy:()=>{bn[t]===e&&delete bn[t]}}}async function Cn(e){wn.tab=e,await ee(),bn[e]?.scrollIntoView({block:`nearest`})}let Tn=null;v(()=>{m(h)&&m(y)&&Tn!==m(y)&&m(X)&&(Tn=m(y),m(y).initialTab&&Cn(m(y).initialTab))}),v(()=>{if(m(h))return Re(`token_inspector`,{schema:Le,read:()=>({values:{cursor:m(q),branch:m(M),tab:wn.tab,apply_recipe:{geometry:m($t),lens:m(Zt),sae:m(Qt)},presentation:i()?`dock`:`drawer`},node_id:m(Z),raw_index:m(X)?.rawIndex??null,shadow_available:m(Lt),replay:{geometry:m(Ut),lens:m(nn),sae:m(Ht)}}),update:async e=>{if(e.move&&(e.cursor||e.branch))throw new ze(`INVALID_INPUT`,`Choose a relative move or an explicit cursor and branch.`);let t=e.cursor??m(q),n=e.branch??(e.cursor&&t?.turnIdx!==m(q)?.turnIdx?`primary`:m(M));if(!t)throw new ze(`NOT_FOUND`,`Select a token before changing the inspector.`);let r=Ye.turns[t.turnIdx];if(n===`shadow`&&!r?.abPair)throw new ze(`NOT_FOUND`,`This turn has no shadow comparison.`);let i=n===`shadow`?r?.abPair:r,a=Ee(i??null,t.seg)[t.tokenIdx];if(!a)throw new ze(`NOT_FOUND`,`The requested token is not present on that branch and segment.`);let o=e.apply_recipe;for(let[e,t]of[[`geometry`,m(Ut)],[`lens`,m(nn)],[`sae`,m(Ht)]]){if(o?.[e]===!1&&(!t||a.rawIndex==null))throw new ze(`UNAVAILABLE`,`Unsteered ${e} inspection requires token replay support and a recorded raw token index.`);if(o?.[e]===!1&&(e===`geometry`&&!m(un)||e===`lens`&&!m(tn).ready||e===`sae`&&!m(zt)))throw new ze(`UNAVAILABLE`,`Prepare the ${e} instrument before requesting an unsteered replay.`)}let s=null;if(e.move&&(e.move===`next`||e.move===`previous`?s=xe(m(G),t,e.move===`next`?1:-1):e.move===`next_turn`||e.move===`previous_turn`?s=ye(m(G),t,e.move===`next_turn`?1:-1):e.move===`segment_start`||e.move===`segment_end`?s={...t,tokenIdx:e.move===`segment_start`?0:m(Y).length-1}:e.move===`anchor`?s=m(T):m(bt)&&(s={...t,seg:m(bt),tokenIdx:0}),!s))throw new ze(`NOT_FOUND`,`There is no token in that direction.`);(e.cursor||s)&&(De(s??{...t}),await ee()),e.branch!==void 0&&H(M,n,!0),o?.geometry!==void 0&&H($t,o.geometry,!0),o?.lens!==void 0&&H(Zt,o.lens,!0),o?.sae!==void 0&&H(Qt,o.sae,!0),await ee(),e.tab!==void 0&&await Cn(e.tab),e.presentation===`hide`&&b()}})});let En=O(()=>rt(`jlens`)),Dn=O(()=>rt(`slens`)),On=O(ot),kn=O(()=>st.find(e=>e.value===m(On))??st[0]);I(()=>{gt.sources.length===0&&$e()});let jn=N(!1),Mn=O(()=>m(X)?.tokenId!=null&&pt.active.some(e=>{let t=pt.entries.get(e)?.info;return t?.family===`lens`&&t.namespace===m(On)&&t.token_id===m(X)?.tokenId}));async function Nn(){let e=m(X)?.tokenId;if(e==null||m(jn))return;H(jn,!0);let t=`${m(On)}/#${e}`;try{await at(t),yt(`Probing ${m(Tt).empty?`∅`:m(Tt).text.trim()||JSON.stringify(m(Tt).text)}`,{kind:`info`})}catch(e){yt(`Couldn't probe ${t}: ${It(e)}`,{kind:`error`})}finally{H(jn,!1)}}function Pn(){let e=m(X)?.tokenId;e!=null&&Ie({id:e,text:m(X)?.text??``},m(On))}var Fn=ki();C(`keydown`,k,wt);let In;var Ln=U(Fn),Rn=e=>{var t=Di(),n=L(t),i=U(n),u=U(i),d=U(u),p=B(d,!0),h=j(d);{let e=O(()=>m(Tt).empty?`∅`:m(Tt).text);r(h,{get text(){return m(e)},numbers:!1,get identity(){return m(ce)}})}E(u);var _=j(u,2),v=U(_);{let e=O(()=>!m(qe));o(v,{icon:`left`,label:`Previous token`,get disabled(){return m(e)},onclick:()=>Ze(-1)})}var y=j(v,2);{let e=O(()=>!m(Je));o(y,{icon:`right`,label:`Next token`,get disabled(){return m(e)},onclick:()=>Ze(1)})}E(_),E(i);var b=j(i,2),T=U(b),D=j(U(T)),k=U(D);{let e=O(()=>String(m(q).tokenIdx+1));r(k,{get text(){return m(e)}})}E(D);var N=j(D);E(T);var F=j(T,2),I=e=>{var t=ui(),n=j(U(t)),i=U(n);{let e=O(()=>le(m(Et)));r(i,{get text(){return m(e)},get identity(){return m(ce)}})}E(n),E(t),w(e=>A(t,`data-tip`,e),[()=>`sampled p · log p ${m(X).logprob?.toFixed(3)} · after the sampler's temperature and top-k/top-p, not the model's own probability`]),f(e,t)};c(F,e=>{m(Et)!==null&&e(I)});var R=j(F,2),ee=e=>{var t=di(),n=j(U(t)),r=B(n,!0);E(t),w(()=>g(r,m(At))),f(e,t)};c(R,e=>{m(At)!==null&&e(ee)});var z=j(R,2),te=e=>{var t=fi(),n=B(t,!0);w(()=>{A(t,`aria-label`,`Show the ${m(bt)}`),g(n,m(q).seg)}),x(`click`,t,Ct),f(e,t)},W=e=>{var t=pi();f(e,t)};c(z,e=>{m(bt)?e(te):m(q).seg===`thinking`&&e(W,1)});var G=j(z,2),ae=e=>{var t=mi();w(()=>A(t,`aria-pressed`,m(M)===`shadow`)),x(`click`,t,()=>H(M,m(M)===`shadow`?`primary`:`shadow`,!0)),f(e,t)};c(G,e=>{m(Lt)&&e(ae)});var oe=j(G,2),se=e=>{var t=hi();f(e,t)};c(oe,e=>{m(de)??e(se)}),E(b);var J=j(b,2),Z=e=>{var t=vi(),n=U(t),r=e=>{var t=gi(),n=B(t,!0);w(()=>g(n,m(Fe))),f(e,t)};c(n,e=>{m(Fe)&&e(r)});var i=j(n),a=e=>{var t=_i();t.textContent=` · `,f(e,t)};c(i,e=>{m(Fe)&&m(Ue)&&e(a)});var o=j(i,1,!0);E(t),w(()=>g(o,m(Ue))),f(e,t)};c(J,e=>{(m(Fe)||m(Ue))&&e(Z)});var ue=j(J,2),pe=e=>{var t=bi();l(t,21,()=>m(Mt),e=>e.i,(e,t)=>{var n=yi(),r=L(n),i=e=>{var t=S();t.nodeValue=` `,f(e,t)},a=O(()=>m(t).i===m(q).tokenIdx&&m(t).text.startsWith(` `));c(r,e=>{m(a)&&e(i)});var o=j(r);let s;var l=B(o,!0);w(e=>{s=K(o,1,`ctok svelte-b6e72b`,null,s,{here:m(t).i===m(q).tokenIdx}),g(l,e)},[()=>m(t).i===m(q).tokenIdx&&m(t).text.startsWith(` `)?m(t).text.slice(1):m(t).text]),x(`click`,o,()=>{m(q)&&De({...m(q),tokenIdx:m(t).i})}),f(e,n)}),E(t),f(e,t)};c(ue,e=>{m(Mt).length>1&&e(pe)}),An(j(ue,2),{get token(){return m(X)},get canBranch(){return m(Q)},get busy(){return m(_e)},onbranch:e=>void Me(e)}),E(n),ie(n,(e,t)=>Sn?.(e,t),()=>`logits`);var he=j(n,2),ge=e=>{var t=xi();f(e,t)},ve=e=>{var t=Si(),n=U(t);{let e=O(()=>m(en)?`steered`:`unsteered`),t=O(()=>[{value:`steered`,label:`Steered`,hint:m(Fe)??void 0},{value:`unsteered`,label:`Unsteered`,hint:`Replayed without the steering`}]);s(n,{label:`Readings`,get value(){return m(e)},onchange:sn,get options(){return m(t)}})}E(t),f(e,t)};c(he,e=>{m(ln)?e(ge):m(on)&&e(ve,1)});var ye=j(he,2),xe=U(ye),we=e=>{vn(e,{get readout(){return Yt},get tokenText(){return m(X).text},get labels(){return Xt}})},Te=e=>{{let t=O(()=>it.info?.model_id??null);Qn(e,{get readout(){return Gt},get tokenText(){return m(X).text},get jlensFitted(){return m(tn).ready},get hasReplayContext(){return m(fe)},get modelId(){return m(t)},get replayAvailable(){return m(nn)}})}};c(xe,e=>{m(rn)?e(we):e(Te,-1)}),E(ye),ie(ye,(e,t)=>Sn?.(e,t),()=>`lens`);var Ee=j(ye,2),Oe=U(Ee);{let e=O(()=>({turnIdx:m(q).turnIdx,tokenIdx:m(q).tokenIdx,isThinking:m(q).seg===`thinking`}));kr(Oe,{get readout(){return qt},get pinned(){return m(_n)},get hasGeometryProbes(){return m(un)},get hasReplayContext(){return m(fe)},get replayAvailable(){return m(Ut)},get returnToToken(){return m(e)}})}E(Ee),ie(Ee,(e,t)=>Sn?.(e,t),()=>`geometry`);var ke=j(Ee,2);si(U(ke),{get readout(){return Kt},get saeLoaded(){return m(zt)},get availability(){return m(Bt)},get hasReplayContext(){return m(fe)},get replayAvailable(){return m(Ht)},get lastLayer(){return m(yn)}}),E(ke),ie(ke,(e,t)=>Sn?.(e,t),()=>`sae`);var Ae=j(ke,2),Ne=U(Ae),Pe=e=>{var t=Ci(),n=j(U(t),2);P(n),V(n,e=>H(Se,e),()=>m(Se));var i=j(n,2),o=U(i);{let e=O(()=>m(_e)?`Starting…`:`Branch`);r(o,{get text(){return m(e)},numbers:!1})}E(i);var s=j(i,2);E(t),w(()=>i.disabled=!m(Q)||m(_e)||m($).length===0),C(`submit`,t,e=>{e.preventDefault(),je()}),x(`keydown`,n,e=>{e.key===`Escape`&&(e.preventDefault(),H(me,!1),H(be,null))}),ne(n,()=>m($),e=>H($,e)),x(`click`,s,()=>{H(me,!1),H(be,null)}),re(3,t,()=>a),f(e,t)},Ie=e=>{var t=Ti(),n=U(t),r=e=>{var t=wi(),n=L(t),r=e=>{{let t=O(()=>[...st]);s(e,{label:`Read this token`,get value(){return m(On)},get options(){return m(t)},onchange:e=>nt.namespace=e})}};c(n,e=>{m(En)&&m(Dn)&&e(r)});var i=j(n,2),a=j(U(i)),o=B(a,!0),l=j(a,1,!0);E(i);var u=j(i,2);w(()=>{i.disabled=m(jn)||m(Mn),A(i,`data-tip`,m(Mn)?`Already a lens probe`:`Read this token at every layer, every token from now on: ${m(kn).hint}`),g(o,m(Tt).lead?`·`:``),g(l,m(Tt).empty?`∅`:m(Tt).text),A(u,`data-tip`,`Add a lens term that pushes this way: ${m(kn).hint}`)}),x(`click`,i,()=>void Nn()),x(`click`,u,Pn),f(e,t)};c(n,e=>{(m(En)||m(Dn))&&m(X).tokenId!=null&&e(r)});var i=j(n,2);E(t),w(()=>{i.disabled=!m(Q)||m(_e),A(i,`data-tip`,m(Q)?`Keep the text up to here and write a new ending; the original stays`:Qe.active?`Finish or stop the generation first`:`This token has no replay boundary`)}),x(`click`,i,()=>void Ce()),f(e,t)};c(Ne,e=>{m(me)?e(Pe):e(Ie,-1)});var Le=j(Ne,2),Re=e=>{var t=Ei(),n=B(t,!0);w(()=>g(n,m(be))),f(e,t)};c(Le,e=>{m(be)&&e(Re)}),E(Ae),w(()=>{A(u,`data-tip`,`id ${m(X).tokenId??`–`}${m(X).rawIndex==null?``:` · position ${m(X).rawIndex}`}`),g(p,m(Tt).lead?`·`:``),g(N,` of ${m(Y).length??``}`)}),f(e,t)},zn=e=>{var t=Oi(),n=B(t,!0);w(()=>g(n,m(y)?`This token is gone; select another`:`Select a token`)),f(e,t)};c(Ln,e=>{m(X)&&m(q)?e(Rn):e(zn,-1)}),E(Fn),V(Fn,e=>H(_,e),()=>m(_)),w(()=>{In=K(Fn,1,`token svelte-b6e72b`,null,In,{mobile:d()}),A(Fn,`data-morph-snapshot`,m(ce))}),f(t,Fn),R()}d([`click`,`keydown`]);export{Ai as default};
\ No newline at end of file
+import{E as e,a as t,d as n,f as r,g as i,h as a,p as o,u as s}from"./src-DWTrC_D-.js";import{A as c,D as l,E as u,H as d,I as f,J as p,K as m,L as h,N as g,O as _,Q as v,R as y,St as b,U as x,V as S,W as C,Z as w,at as T,bt as E,c as D,dt as O,et as k,h as A,it as j,k as M,lt as N,m as P,mt as F,n as I,nt as L,pt as R,q as ee,r as z,rt as B,s as V,st as H,t as te,tt as U,u as ne,v as W,w as re,x as ie,xt as G,y as K,yt as q}from"./index-client-B2jUARBN.js";import{n as ae}from"./errors-D9jT6Fvg.js";import{A as oe,B as se,C as J,D as Y,E as X,F as ce,I as le,L as Z,M as ue,N as de,O as fe,P as Q,R as pe,S as me,T as $,U as he,_ as ge,b as _e,d as ve,f as ye,g as be,h as xe,j as Se,k as Ce,l as we,m as Te,p as Ee,r as De,u as Oe,v as ke,w as Ae,x as je,y as Me,z as Ne}from"./tokenCursor.svelte-uCuumA5L.js";import{a as Pe,o as Fe,r as Ie}from"./steerActions-BfsIFjtA.js";import{f as Le}from"./interfaceSchemas-CEzHSS8w.js";import{d as Re}from"./workspaceController-C2L33e3m.js";import{t as ze}from"./types-CuMUbvHW.js";import{a as Be,d as Ve,i as He,l as Ue,t as We}from"./drawers.svelte-kEXNcFnO.js";import"./stores.svelte-Cf8e_r1G.js";import{Ar as Ge,Di as Ke,Ei as qe,Er as Je,F as Ye,L as Xe,Oi as Ze,R as Qe,Tr as $e,Vr as et,_t as tt,gr as nt,hr as rt,i as it,m as at,mr as ot,or as st,r as ct,ri as lt,t as ut,u as dt,ut as ft,x as pt,xt as mt,y as ht,yr as gt}from"./session.svelte-DG7XfPv3.js";import{g as _t,l as vt,m as yt,o as bt}from"./selection.svelte-BIYbgTnf.js";import{t as xt}from"./contracts-CHaBu2Ze.js";import{r as St,t as Ct}from"./registry-CQv71XNh.js";import{o as wt,s as Tt}from"./samplingCapabilities-DM6eoDoc.js";import{a as Et,i as Dt,n as Ot,o as kt,r as At,s as jt,t as Mt}from"./readings-D0NRR4XW.js";import{C as Nt,_ as Pt,x as Ft}from"./unitTerms-Diu4Qe4X.js";import{t as It}from"./userFacingError-DNBzS3_o.js";var Lt=y(``),Rt=y(``),zt=y(``),Bt=y(`
`);function Vt(e,t){F(t,!0);let r=z(t,`blocks`,19,()=>[56]),i=O(()=>t.progress&&t.progress.progress>0?t.progress.progress:null);var a=Bt(),o=U(a);l(o,17,r,_,(e,t)=>{var n=Lt();let r;w(()=>r=W(n,``,r,{height:`${m(t)??``}px`})),f(e,n)});var s=j(o,2),u=e=>{var r=zt(),a=U(r),o=e=>{var r=Rt(),a=U(r);{let e=O(()=>`${Math.round(m(i)*100)}%`);n(a,{get value(){return m(i)},get label(){return m(e)},width:48})}E(r),w(e=>{A(r,`aria-label`,t.label),A(r,`aria-valuenow`,e)},[()=>Math.round(m(i)*100)]),f(e,r)};c(a,e=>{m(i)!==null&&e(o)});var s=j(a,2),l=B(s,!0);E(r),w(()=>g(l,t.progress.message)),f(e,r)};c(s,e=>{t.progress&&e(u)}),E(a),w(()=>A(a,`aria-label`,t.label)),f(e,a),R()}var Ht=(e,t=G,n=G,r=G)=>{var i=Jt(),a=U(i),o=e=>{{let n=O(()=>r()===`-`?`Push −`:`Push`),i=O(()=>`Push ${Se(t())}${r()===`-`?` on its − pole`:``}`),a=O(()=>r()===`-`?`Push on its − pole, the side that fired here`:`Push along its write`);be(e,{get label(){return m(n)},get aria(){return m(i)},get tip(){return m(a)},onclick:()=>Pe(t(),r()??`+`)})}};c(a,e=>{n()===`neuron`&&e(o)});var s=j(a,2);{let e=O(()=>`Silence ${Se(t())}`);be(s,{label:`Silence`,get aria(){return m(e)},tip:`Hold it at its neutral mean`,onclick:()=>Fe(t())})}E(i),f(e,i)},Ut=y(``),Wt=y(`–`),Gt=y(``),Kt=y(``),qt=y(``),Jt=y(``),Yt=y(``),Xt=y(`
`),Zt=y(``),Qt=y(`
`),$t=y(``),en=y(`
Pushed toward
`),tn=y(`
Pushed toward
`),nn=y(``),rn=y(``),an=y(`
`),on=y(`
Heads read from
`),sn=y(``),cn=y(``),ln=y(`
`),un=y(``),dn=y(``),fn=y(``),pn=y(`
`),mn=y(``),hn=y(`
`),gn=y(` `,1),_n=y(`
Layer by layer
`,1);function vn(n,r){F(r,!0);let i=(t,n=G,r=G)=>{let i=O(()=>me(n(),r()));var a=Kt(),o=U(a),s=e=>{var t=Ut();f(e,t)},u=t=>{let a=O(()=>Ce(m(i)));var o=h(),s=L(o),u=e=>{var t=Wt();w(e=>A(t,`data-tip`,e),[()=>m(a).absentFamily?ke(m(se),r(),m(a).absentFamily,n().layer):m(a).absent]),f(e,t)},d=t=>{var n=h(),r=L(n);l(r,17,()=>m(a).tokens,_,(t,n)=>{let r=O(()=>e(m(n).token));var i=Gt();let o;var s=U(i),c=B(s,!0),l=j(s,1,!0);E(i),w(()=>{o=K(i,1,`chip svelte-1s9xch8`,null,o,{it:m(n).id===m(p),agree:m(a).agree&&m(n).id!==m(p),faint:m(n).faint}),A(i,`data-tip`,m(n).tip),g(c,m(r).lead?`·`:``),g(l,m(r).empty?`∅`:m(r).text)}),f(t,i)}),f(t,n)};c(s,e=>{m(a).absent===null?e(d,-1):e(u)}),f(t,o)};c(o,e=>{m(i)===null?e(s):e(u,-1)}),E(a),f(t,a)},a=e=>{var t=qt(),n=B(t,!0);w(()=>g(n,m(Z)?`Every third layer`:`All ${m(d).length} layers`)),x(`click`,t,()=>H(Z,!m(Z))),f(e,t)},o=(e,t=G,n=G,r=G,i=G,a=G,o=G,l=G,u=G)=>{let d=O(()=>s()?.label(t(),n(),o())??null);var p=Xt();let h,_;var v=U(p),b=U(v),S=B(b,!0),C=j(b,2),T=e=>{var t=Yt(),n=B(t,!0);w(()=>g(n,m(d).text)),f(e,t)};c(C,e=>{m(d)&&e(T)});var D=j(C,2);let k;var M=U(D);let N;E(D);var P=j(D,2),F=B(P,!0);E(v),Ht(j(v,2),t,n,o),E(p),w((e,t,n,r,a)=>{h=K(p,1,`unit svelte-1s9xch8`,null,h,{bare:m(d)===null}),_=W(p,``,_,{"--tint":e}),A(v,`data-tip`,t),g(S,n),k=K(D,1,`umeter svelte-1s9xch8`,null,k,{neg:i()<0}),N=W(M,``,N,{width:r}),g(F,a)},[()=>Q(r(),m(y)),()=>xe(t(),i(),n(),o(),l(),u(),m(d)?.tip),()=>Se(t()),()=>`${Math.max(2,a()*100)}%`,()=>J(i())]),x(`click`,v,()=>bt({kind:`unit`,id:t()})),f(e,p)},s=z(r,`labels`,3,null),u=O(()=>r.readout.data),d=O(()=>m(u)?.layers??[]),p=O(()=>m(u)?.token.token_id??-1),y=O(()=>Math.max(0,m(d).length-1)),b=O(()=>e(r.tokenText)),S=O(()=>m(u)?_e(m(d),m(p),m(u).token.probability):[]),C=O(()=>je(m(d),m(p))),T=O(()=>Math.max(1e-9,...m(S).map(e=>e.p??0))),k=O(()=>Math.max(0,...m(d).map(e=>e.reads_as.r.tokens.length))),M={reads_as:`Reads as`,attention:`Attention added`,mlp:`MLP added`,steering:`Steering added`},P=O(()=>m(d).some(e=>e.steering!==null)),I=N(480),ee=N(`read`),V=O(()=>m(P)?[`read`,`added`,`steering`]:[`read`,`added`]),te=O(()=>m(I)>=350),ne=O(()=>m(V).includes(m(ee))?m(ee):`read`),re=O(()=>m(te)?m(P)&&m(I)>=480?[`reads_as`,`attention`,`mlp`,`steering`]:[`reads_as`,`attention`,`mlp`]:m(ne)===`read`?[`reads_as`]:m(ne)===`added`?[`attention`,`mlp`]:[`steering`]),ie=O(()=>m(V)[(m(V).indexOf(m(ne))+1)%m(V).length]),q={read:`Reads as`,added:`Attention and MLP`,steering:`Steering`},ae=O(()=>`var(--lnum) repeat(${m(re).length}, minmax(0, 1fr))`),se=O(()=>X(m(d))),Z=N(!1),de=O(()=>m(Z)?new Set(m(d).map(e=>e.layer)):ce(m(d).map(e=>e.layer),m(C))),pe=O(()=>m(de).size{m(u),H(he,null)});let ge=O(()=>m(u)?oe(m(u).units,m(d)):[]),ve=O(()=>m(u)?fe(m(u).patterns,m(u).context):[]),ye=O(()=>s()?.credit??null);v(()=>{s()&&m(u)&&s().want([...m(ge).map(e=>({unit:e.unit,pole:e.pole})),...m(ve).map(e=>({unit:e.unit,pole:null}))])}),v(()=>{if(!s()||m(he)===null)return;let e=m(d).find(e=>e.layer===m(he));e&&s().want($(e,4).map(e=>({unit:e.unit,pole:be(e)})))});function be(e){return e.kind===`neuron`&&e.activation?e.activation>0?`+`:`-`:null}function xe(e,t,n,r,i,a,o){return[`${e} · ${J(t)} to the logit`,n===`neuron`&&r?`${r===`+`?`+`:`−`} pole`:``,Me(n,i,a,m(u)?.units_scale??null),o??``].filter(Boolean).join(` · `)}var we=h(),Te=L(we),Ee=e=>{var t=Zt();Vt(U(t),{get progress(){return r.readout.progress},label:`Token anatomy`,blocks:[56,240,120]}),E(t),f(e,t)},De=e=>{var t=Qt(),n=U(t),i=B(n,!0);E(t),w(()=>g(i,r.readout.error)),f(e,t)},Oe=e=>{var n=_n(),r=L(n),v=e=>{var t=en(),n=U(t),r=U(n),i=j(U(r)),a=B(i,!0),s=j(i,1,!0);E(r);var u=j(r,2),d=e=>{var t=$t(),n=B(t,!0);w(()=>g(n,m(ye))),f(e,t)};c(u,e=>{m(ye)&&e(d)}),E(n);var p=j(n,2);l(p,21,()=>m(ge),e=>e.unit,(e,t)=>{o(e,()=>m(t).unit,()=>m(t).kind,()=>m(t).layer,()=>m(t).contribution,()=>m(t).share,()=>m(t).pole,()=>m(t).activation,()=>m(t).overScale)}),E(p),E(t),w(()=>{g(a,m(b).lead?`·`:``),g(s,m(b).empty?`∅`:m(b).text)}),f(e,t)},N=e=>{var t=tn(),n=U(t),r=U(n),i=j(U(r)),a=B(i,!0),o=j(i,1,!0);E(r),E(n);var s=j(n,2),c=B(s,!0);E(t),w(()=>{g(a,m(b).lead?`·`:``),g(o,m(b).empty?`∅`:m(b).text),g(c,m(u).units_absent)}),f(e,t)};c(r,e=>{m(ge).length>0?e(v):m(u).units_absent&&e(N,1)});var P=j(r,2),F=e=>{var t=on(),n=j(U(t),2);l(n,21,()=>m(ve),e=>e.unit,(e,t)=>{let n=O(()=>s()?.label(m(t).unit,`head`,null)??null);var r=an();let i;var a=U(r),o=B(a,!0),u=j(a,2);l(u,21,()=>m(t).pieces,_,(e,t)=>{var n=h(),r=L(n),i=e=>{var t=nn();t.textContent=` … `,f(e,t)},a=e=>{var n=rn();let r,i;var a=B(n,!0);w((e,o)=>{r=K(n,1,`ht svelte-1s9xch8`,null,r,{here:m(t).here}),A(n,`data-tip`,e),i=W(n,``,i,{"--a":`${m(t).tint??``}%`}),g(a,o)},[()=>`${le(m(t).weight)}`,()=>m(t).text.replace(/\n/g,`⏎`)]),f(e,n)};c(r,e=>{m(t).pos<0?e(i):e(a,-1)}),f(e,n)}),E(u),Ht(j(u,2),()=>m(t).unit,()=>`head`,()=>null),E(r),w((e,n)=>{i=W(r,``,i,{"--tint":e}),A(a,`data-tip`,n),g(o,m(t).short)},[()=>Q(m(t).layer,m(y)),()=>[`${m(t).unit} · ${J(m(t).contribution)} to the logit`,`${le(m(t).sink)} on the first token`,m(n)?.text??``].filter(Boolean).join(` · `)]),x(`click`,a,()=>bt({kind:`unit`,id:m(t).unit})),f(e,r)}),E(n),E(t),f(e,t)};c(P,e=>{m(ve).length>0&&e(F)});var R=j(P,2),z=U(R),V=U(z),ne=U(V),G=B(ne,!0),oe=j(ne);E(V);var X=j(V,2),ce=B(X);E(z);var Z=j(z,2),fe=U(Z);l(fe,21,()=>m(S),e=>e.layer,(e,t)=>{var n=sn();let r,i;w((e,a,o)=>{A(n,`data-tip`,e),r=K(n,1,`svelte-1s9xch8`,null,r,{dim:m(C)!==null&&m(t).layer`L${m(t).layer} · ${m(t).p===null?`below the top ${m(k)}`:`p ${le(m(t).p)}`}${m(t).final?` · the model's output`:``}`,()=>`${m(t).p===null?4:Math.max(4,m(t).p/m(T)*100)}%`,()=>Q(m(t).layer,m(y))]),f(e,n)}),E(fe);var _e=j(fe,2),xe=U(_e),Se=B(xe),Ce=j(xe),we=B(Ce);E(_e),E(Z),E(R);var Te=j(R,2),Ee=U(Te),De=j(U(Ee),2),Oe=e=>{var t=cn(),n=U(t);a(n),E(t),f(e,t)};c(De,e=>{m(te)&&m(pe)&&e(Oe)}),E(Ee);var je=j(Ee,2),Me=e=>{var t=ln(),n=U(t),r=B(n,!0),i=j(n,2),o=e=>{a(e)};c(i,e=>{m(pe)&&e(o)}),E(t),w(()=>g(r,q[m(ie)])),x(`click`,n,()=>H(ee,m(ie),!0)),f(e,t)};c(je,e=>{m(te)||e(Me)});var Ne=j(je,2);let Pe;var Fe=U(Ne),Ie=j(U(Fe));l(Ie,16,()=>m(re),e=>e,(e,t)=>{var n=un(),r=B(n,!0);w(()=>g(r,M[t])),f(e,n)}),E(Fe);var Le=j(Fe,2);l(Le,17,()=>m(d),e=>e.layer,(e,n)=>{var r=h(),a=L(r),s=e=>{var r=gn(),a=L(r);let s,u;var d=U(a),_=j(U(d)),v=j(_),b=B(v,!0);E(d);var S=j(d,2);l(S,16,()=>m(re),e=>e,(e,t)=>{i(e,()=>m(n),()=>t)}),E(a);var T=j(a,2),D=e=>{let r=O(()=>$(m(n),4)),i=O(()=>Math.max(1e-12,...m(r).map(e=>Math.abs(e.contribution))));var a=hn();let s;var u=U(a);l(u,16,()=>[`reads_as`,`attention`,`mlp`,`steering`],e=>e,(e,r)=>{let i=O(()=>me(m(n),r));var a=h(),o=L(a),s=e=>{let a=O(()=>m(i).s.weight>=m(i).r.weight?[m(i).s,m(i).r]:[m(i).r,m(i).s]);var o=pn(),s=U(o),u=B(s,!0),d=j(s,2);l(d,21,()=>m(a),e=>e.family,(e,i)=>{var o=h(),s=L(o),u=e=>{var n=fn();let r;l(n,23,()=>m(i).tokens,e=>e.token_id,(e,n,r)=>{var a=dn();let o;var s=U(a);t(s,{get token(){return m(n).token},get value(){return m(n).value},get i(){return m(r)}}),E(a),w(e=>{o=K(a,1,`it-wrap svelte-1s9xch8`,null,o,{it:m(n).token_id===m(p)}),A(a,`data-tip`,e)},[()=>`${m(i).lens??m(i).family} · ${Ae(m(i),m(n))}`]),f(e,a)}),E(n),w(()=>{r=K(n,1,`toks svelte-1s9xch8`,null,r,{faint:m(i)!==m(a)[0]}),A(n,`data-tip`,m(i).lens??void 0)}),f(e,n)},d=e=>{var t=$t(),a=B(t,!0);w(e=>g(a,e),[()=>ke(m(se),r,m(i).family,m(n).layer)]),f(e,t)};c(s,e=>{m(i).weight>0&&m(i).tokens.length>0?e(u):m(i).weight>0&&m(i).absent&&e(d,1)}),f(e,o)}),E(d),E(o),w(()=>g(u,M[r])),f(e,o)};c(o,e=>{m(i)&&e(s)}),f(e,a)});var d=j(u,2),_=e=>{var t=mn();l(t,21,()=>m(r),e=>e.unit,(e,t)=>{{let n=O(()=>Math.abs(m(t).contribution)/m(i)),r=O(()=>be(m(t)));o(e,()=>m(t).unit,()=>m(t).kind,()=>m(t).layer,()=>m(t).contribution,()=>m(n),()=>m(r),()=>m(t).activation,()=>m(t).activation_over_scale)}}),E(t),f(e,t)};c(d,e=>{m(r).length>0&&e(_)}),E(a),w(e=>s=W(a,``,s,{"--tint":e}),[()=>Q(m(n).layer,m(y))]),f(e,a)};c(T,e=>{m(he)===m(n).layer&&e(D)}),w((e,t,r)=>{s=K(a,1,`lrow svelte-1s9xch8`,null,s,{lead:m(n).layer===m(C)}),A(a,`aria-expanded`,m(he)===m(n).layer),u=W(a,``,u,{"--tint":e}),g(_,`L${m(n).layer??``}`),A(v,`data-tip`,t),g(b,r)},[()=>Q(m(n).layer,m(y)),()=>ue(m(n).reads_as),()=>Y(m(n).reads_as)]),x(`click`,a,()=>H(he,m(he)===m(n).layer?null:m(n).layer,!0)),f(e,r)},u=O(()=>m(de).has(m(n).layer));c(a,e=>{m(u)&&e(s)}),f(e,r)}),E(Ne),E(Te),w(e=>{g(G,m(b).lead?`·`:``),g(oe,`${(m(b).empty?`∅`:m(b).text)??``} by depth`),g(ce,`model p ${e??``}${m(C)===null?``:` · leads from L${m(C)}`}`),A(fe,`aria-label`,`Probability of ${m(b).text||`the token`} by layer`),g(Se,`L${m(d)[0]?.layer??0??``}`),g(we,`L${m(y)??``}`),Pe=W(Ne,``,Pe,{"--cols":m(ae)})},[()=>le(m(u).token.probability)]),D(Ne,`clientWidth`,e=>H(I,e)),f(e,n)};c(Te,e=>{r.readout.loading?e(Ee):r.readout.error?e(De,1):m(u)&&e(Oe,2)}),f(n,we),R()}d([`click`]);function yn(e,t){return!t||!e||typeof e!=`object`?!1:e.status===422}var bn=48,xn=class{#e=N(null);get data(){return m(this.#e)}set data(e){H(this.#e,e,!0)}#t=N(!1);get loading(){return m(this.#t)}set loading(e){H(this.#t,e,!0)}#n=N(null);get error(){return m(this.#n)}set error(e){H(this.#n,e,!0)}#r=N(null);get origin(){return m(this.#r)}set origin(e){H(this.#r,e,!0)}#i=N(null);get source(){return m(this.#i)}set source(e){H(this.#i,e,!0)}#a=N(null);get pins(){return m(this.#a)}set pins(e){H(this.#a,e,!0)}#o=N(!1);get refused(){return m(this.#o)}set refused(e){H(this.#o,e,!0)}#s=N(null);get progress(){return m(this.#s)}set progress(e){H(this.#s,e,!0)}#c=null;#l=null;#u=new Map;#d=!1;adopt(e,t,n=null){this.#c=null,this.#l=null,this.data=e,this.origin=`captured`,this.source=t,this.pins=n,this.loading=!1,this.error=null,this.refused=!1,this.progress=null}clear(){this.#c=null,this.#l=null,this.data=null,this.origin=null,this.source=null,this.pins=null,this.loading=!1,this.error=null,this.refused=!1,this.progress=null}dispose(){this.#d=!0,this.clear(),this.#u.clear()}replay(e,t,n,r,i,a=null){let o=Sn(e,t,n,r);this.#l=a,this.#f(o,n,i=>Ke(e,t,n,r,i),i,r.steered??!0)}anatomy(e,t,n,r){let i=JSON.stringify([`anatomy`,Ze(`lens`),e,t,n.k??null,n.units??null,n.patterns??null,n.steered??!0,n.raw??!1]);this.#l=null,this.#f(i,t,r=>qe(e,t,n,r),r,n.steered??!0)}#f(e,t,n,r,i){this.#c=e;let a=this.#u.get(e);if(a&&a.state!==`failed`){this.#u.delete(e),this.#u.set(e,a),this.#p(e,a);return}let o={state:`loading`,data:null,source:null,pins:null,error:null,refused:!1,progress:{phase:`queued`,completed:0,total:t+1,progress:0,message:`Waiting for the current model task to finish`}};this.#u.set(e,o),this.#p(e,o),n(t=>{let n=Cn(t);n!==null&&(o.progress=n,this.#c===e&&this.#p(e,o))}).then(e=>{let{data:t,source:n,pins:i}=r(e.measurements);o.state=`ready`,o.data=t,o.source=n,o.pins=i??null,o.error=null,o.progress=null}).catch(e=>{o.state=`failed`,o.error=ae(e),o.refused=yn(e,i),o.progress=null}).finally(()=>{this.#m(),this.#c===e&&this.#p(e,o)})}#p(e,t){if(this.#d||this.#c!==e)return;let n=t.state===`ready`?null:this.#l;this.loading=t.state===`loading`,this.data=n?n.data:t.data,this.error=t.error,this.refused=t.state===`failed`&&t.refused,this.origin=t.state===`ready`?`replayed`:n?`captured`:null,this.source=n?n.source:t.source,this.pins=n?n.pins??null:t.pins,this.progress=t.progress}#m(){if(!(this.#u.size<=bn))for(let[e,t]of this.#u){if(this.#u.size<=bn)break;t.state!==`loading`&&e!==this.#c&&this.#u.delete(e)}}};function Sn(e,t,n,r){return JSON.stringify([e,Ze(e),t,n,r.topK??null,r.steered??!0,r.raw??!1,r.layers??null])}function Cn(e){if(e.event!==`progress`||e.data===null||typeof e.data!=`object`)return null;let t=e.data;return t.kind!==`token_readout`||![`queued`,`context`,`readout`,`complete`].includes(String(t.phase))||!Number.isInteger(t.completed)||!Number.isInteger(t.total)||typeof t.progress!=`number`||!Number.isFinite(t.progress)||typeof t.message!=`string`?null:{phase:t.phase,completed:Math.max(0,Number(t.completed)),total:Math.max(0,Number(t.total)),progress:Math.max(0,Math.min(1,t.progress)),message:t.message}}var wn=T({tab:`logits`}),Tn=y(``),En=y(``),Dn=y(`
`),On=y(``),kn=y(``);function An(t,r){F(r,!0);let i=St().mode,a=wt(i),o=Tt(i)>0,s=O(()=>i===`http`||i===`browser`&&ut(`geometry`)?.capabilities.token_readout===!0),u=O(()=>(r.token.topAlts??[]).map((t,n)=>{let i=Math.exp(t.logprob);return{id:t.id,parts:e(t.text),p:i,chosen:r.token.tokenId!=null&&t.id===r.token.tokenId,tip:`rank ${n+1} · id ${t.id} · log p ${t.logprob.toFixed(3)}${n>0?` · ${(t.logprob-(r.token.topAlts?.[0]?.logprob??0)).toFixed(3)} from the top`:``}`}})),d=O(()=>Math.max(1e-9,...m(u).map(e=>e.p))),p=O(()=>m(u).length===1&&m(u)[0].chosen&&m(u)[0].p>=.9995);function _(){o&&(dt.return_top_k??0)===0&&(dt.return_top_k=a)}var v=h(),y=L(v),b=e=>{var t=On();l(t,23,()=>m(u),e=>e.id,(e,t,i)=>{var a=Dn();let o,l;var u=U(a),h=U(u),_=B(h,!0),v=j(h,1,!0);E(u);var y=j(u,2);{let e=O(()=>m(t).p/m(d)),r=O(()=>`p ${le(m(t).p)}`);n(y,{get value(){return m(e)},get label(){return m(r)},width:96})}var b=j(y,2),S=B(b,!0),C=j(b,2),T=e=>{var n=Tn();w(()=>{n.disabled=!r.canBranch||r.busy,A(n,`aria-label`,`Branch with ${m(t).parts.text||`this token`}`)}),x(`click`,n,()=>r.onbranch(m(t).id)),f(e,n)},D=e=>{var t=En();f(e,t)};c(C,e=>{!m(t).chosen&&m(s)?e(T):e(D,-1)}),E(a),w(e=>{o=K(a,1,`alt rise svelte-7fcfui`,null,o,{chosen:m(t).chosen}),l=W(a,``,l,{"--i":m(i)}),A(u,`data-tip`,m(p)?`${m(t).tip} · after the sampler, not a measure of factual accuracy`:m(t).tip),g(_,m(t).parts.lead?`·`:``),g(v,m(t).parts.empty?`∅`:m(t).parts.text),g(S,e)},[()=>le(m(t).p)]),f(e,a)}),E(t),f(e,t)},S=e=>{var t=kn(),n=U(t),r=B(n,!0);E(t),w(()=>{n.disabled=dt.return_top_k>0,g(r,dt.return_top_k>0?`Recorded from the next run`:`Record alternatives`)}),x(`click`,n,_),f(e,t)};c(y,e=>{m(u).length>0?e(b):o&&e(S,1)}),f(t,v),R()}d([`click`]);var jn=y(`
A replay can't reproduce where this reply's steering fired, so these readings are replayed without it.
`),Si=y(``),Ci=y(``),wi=y(` `,1),Ti=y(`
`),Ei=y(`
`),Di=y(`
token
`,1),Oi=y(`
`),ki=y(``);function Ai(t,n){F(n,!0);let i=z(n,`docked`,3,!1),u=z(n,`active`,3,!0),d=z(n,`mobile`,3,!1),h=O(()=>u()&&Ve.room===`workbench`),_=N(null),y=O(()=>n.params);function b(){n.onclose?n.onclose():i()?He():We()}let T=O(()=>m(y)?{turnIdx:m(y).turnIdx,seg:m(y).isThinking?`thinking`:`response`,tokenIdx:m(y).tokenIdx}:null),D=O(()=>m(T)),M=N(`primary`),W=O(()=>Ye.turns.map((e,t)=>t===(m(D)?.turnIdx??-1)&&m(M)===`shadow`&&e.abPair?e.abPair:e)),G=O(()=>Te(m(W))),q=O(()=>m(D)?ve(m(G),m(D)):null),ae=-1,oe;v(()=>{let e=m(q)?.turnIdx??-1,t=n.params;if(e===ae&&t===oe)return;let r=e===ae;ae=e,oe=t;let i=Oe(p(()=>m(M)),{sameTurn:r,stepped:p(()=>vt.stepped)});i!==p(()=>m(M))&&H(M,i,!0)});let se=O(()=>m(q)!=null&&m(q).turnIdx>=0&&m(q).turnIdxm(q)?m(W)[m(q).turnIdx]??null:null),Y=O(()=>m(q)?Ee(m(J),m(q).seg):[]),X=O(()=>m(q)!=null&&m(q).tokenIdx>=0&&m(q).tokenIdxm(q)?`${m(q).turnIdx}:${m(q).seg}:${m(q).tokenIdx}`:`none`),Z=O(()=>m(q)?m(M)===`shadow`?m(J)?.nodeId??null:we(m(q).turnIdx):null),ue=O(()=>kt(m(Z)?ft.nodes.get(m(Z)):null,m(X),m(J)?.appliedSteering)),de=O(()=>m(ue).index),fe=O(()=>m(Z)!=null&&m(de)!=null),Q=O(()=>m(M)===`primary`&&m(Z)!=null&&m(X)?.rawIndex!=null&&!Qe.active),me=N(!1),$=N(``),_e=N(!1),be=N(null),Se=N(null);v(()=>{m(Z),m(X)?.rawIndex,H(be,null),H(me,!1),H($,``)});async function Ce(){if(!m(Q)||!m(X))return;H($,m(X).text,!0),H(me,!0),H(be,null),await ee(),m(Se)?.focus();let e=m($).search(/\S/),t=m($).trimEnd().length;m(Se)?.setSelectionRange(e>=0?e:0,t>0?t:m($).length)}function ke(){(!i()||d())&&b(),lt.view=`map`,he()}async function Ae(e,t){H(be,null),H(_e,!0);try{await e(),ke()}catch(e){H(be,It(e,t),!0)}finally{H(_e,!1)}}async function je(){if(!m(Q)||!m(Z)||m(X)?.rawIndex==null)return;if(m($).length===0){H(be,`Write the text to branch with`),m(Se)?.focus();return}let e=m(Z),t=m(X).rawIndex;if(m($)===m(X).text&&m(X).tokenId!=null){let n=m(X).tokenId;await Ae(()=>tt(e,t,n,!0),`Unable to continue this branch from the selected token.`)}else{let n=m($);await Ae(()=>mt(e,t,n),`Unable to replace this token and start a new branch.`)}}async function Me(e){if(!m(Q)||!m(Z)||m(X)?.rawIndex==null)return;let t=m(Z),n=m(X).rawIndex;await Ae(()=>tt(t,n,e),`Unable to create a branch from this word choice. Try another alternative.`)}let Ne=O(()=>m(Z)?ft.nodes.get(m(Z))??null:null),Pe=O(()=>m(Ne)?.recipe?.sampling??null),Fe=O(()=>m(ue).steering);function Be(e){return e==null||!Number.isFinite(e)?`–`:String(Number(e.toFixed(2)))}let Ue=O(()=>{let e=m(Pe),t=m(Ne)?.recipe;if(!e&&!t)return``;let n=[`temperature ${Be(e?.temperature)}`,`top-p ${Be(e?.top_p)}`,...e?.top_k?[`top-k ${e.top_k}`]:[],`${Be(e?.max_tokens)} tokens`],r=t?.seed??e?.seed;return r!=null&&n.push(`seed ${r}`),e?.presence_penalty&&n.push(`presence ${Be(e.presence_penalty)}`),e?.frequency_penalty&&n.push(`frequency ${Be(e.frequency_penalty)}`),t?.thinking!=null&&n.push(t.thinking?`thinking`:`no thinking`),(t?.probes.length??0)>0&&n.push(`${t.probes.length} probes`),n.join(` · `)});function Ke(e){De(e)}let qe=O(()=>m(q)!=null&&xe(m(G),m(q),-1)!==null),Je=O(()=>m(q)!=null&&xe(m(G),m(q),1)!==null);function Ze(e){m(q)&&Ke(xe(m(G),m(q),e))}function ht(e){m(q)&&Ke(ye(m(G),m(q),e))}function _t(e){m(q)&&De({...m(q),tokenIdx:e===`home`?0:Math.max(0,m(Y).length-1)})}let bt=O(()=>{if(!m(q))return null;let e=m(q).seg===`thinking`?`response`:`thinking`;return m(G).some(t=>t.turnIdx===m(q).turnIdx&&t.seg===e)?e:null});function Ct(){m(q)&&m(bt)&&De({turnIdx:m(q).turnIdx,seg:m(bt),tokenIdx:0})}function wt(e){if(e.defaultPrevented||!m(h)||(d()||i())&&!m(_)?.contains(e.target))return;if(e.key===`Escape`){e.preventDefault(),(!i()||d())&&b();return}let t=e.target;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable||t.closest(`[role="slider"], [role="listbox"]`)))){switch(e.key){case`ArrowLeft`:Ze(-1);break;case`ArrowRight`:Ze(1);break;case`ArrowUp`:ht(-1);break;case`ArrowDown`:ht(1);break;case`Home`:_t(`home`);break;case`End`:_t(`end`);break;default:return}e.preventDefault()}}let Tt=O(()=>e(m(X)?.text??``)),Et=O(()=>m(X)?.logprob==null?null:Math.exp(m(X).logprob)),At=O(()=>{let e=m(X)?.topAlts;if(!e||e.length===0||m(X)?.tokenId==null)return null;let t=e.findIndex(e=>e.id===m(X).tokenId);return t>=0?t+1:null}),Mt=O(()=>{if(!m(q))return[];let e=m(q).tokenIdx,t=Math.max(0,e-12);return m(Y).slice(t,Math.min(m(Y).length,e+7)).map((e,n)=>({text:e.text.replace(/\n/g,`⏎`),i:t+n}))}),Lt=O(()=>m(se)?.abPair!=null),Rt=O(()=>it.info?.jlens_fitted===!0),zt=O(ct),Bt=N(`unknown`);I(()=>{let e=!0;return li(`sae`).then(t=>{e&&H(Bt,t,!0)}),()=>{e=!1}});let Vt=O(()=>ut(`lens`)?.capabilities.token_readout===!0),Ht=O(()=>ut(`sae`)?.capabilities.token_readout===!0),Ut=O(()=>ut(`geometry`)?.capabilities.token_readout===!0),Wt=O(()=>et(dt.return_top_k)),Gt=new xn,Kt=new xn,qt=new xn,Jt=xt(St().instruments).tokenAnatomy,Yt=new xn,Xt=typeof St().instruments.unitLabels==`function`?new ge:null;te(()=>{Gt.dispose(),Kt.dispose(),qt.dispose(),Yt.dispose()});let Zt=N(!0),Qt=N(!0),$t=N(!0),en=O(()=>m(Zt)&&m(Qt)&&m($t)),tn=O(()=>Dt({anatomy:Jt,tokenReadout:m(Vt),rLens:m(Rt),activeLens:gt.sources.some(e=>e.active),replayContext:m(fe)})),nn=O(()=>m(tn).available),rn=O(()=>m(tn).anatomy),an=O(()=>m(nn)||m(Ht)||m(Ut)),on=O(()=>m(an)&&m(fe)&&(m(Fe)!==null||!m(en)));function sn(e){let t=e===`steered`;H(Zt,t||!m(nn),!0),H(Qt,t||!m(Ht),!0),H($t,t||!m(Ut),!0)}let cn=N(null),ln=O(()=>m(cn)!==null&&m(cn)===m(Z));v(()=>{(qt.refused||Yt.refused||Gt.refused||Kt.refused)&&m(Z)&&m(cn)!==m(Z)&&(H(cn,m(Z),!0),sn(`unsteered`))});let un=O(()=>pt.active.some(e=>pt.entries.get(e)?.info.family===`geometry`)),dn=O(()=>Nt(m(X)?.measurements)),fn=O(()=>{let e=m(dn)?.instruments.lens;return!e?.readout||!m(X)?null:{node_id:m(Z)??``,raw_index:m(de)??-1,token_id:m(X).tokenId??-1,token_text:m(X).text,steering:e.binding.steering,aggregate:e.readout.aggregate,layers:e.readout.layers??[]}}),pn=O(()=>m(dn)?.instruments.lens?.readout?.layers!==void 0),mn=O(()=>{let e=m(dn)?.instruments.sae;return!e?.readout||!m(X)?null:{node_id:m(Z)??``,raw_index:m(de)??-1,token_id:m(X).tokenId??-1,token_text:m(X).text,steering:e.binding.steering,layer:e.binding.layer??-1,features:e.readout.features}}),hn=O(()=>{let e=m(dn)?.instruments.geometry;return!e||Object.keys(e.readings??{}).length===0?null:{steering:e.binding?.steering??null,readings:e.readings}}),gn=O(()=>Pt(m(hn)?.readings)),_n=O(()=>jt({anatomy:m(rn),steered:m(Zt),captured:m(dn)?.instruments.lens?.readings,anatomyPins:Yt.pins,lensPins:Gt.pins,saePins:Kt.pins,saeSteered:m(Qt),scores:m(X)?.measurements?.scores??null}));v(()=>{if(!m(h))return;m(X),Qe.active,m(Z);let e=m(hn);!m(Ut)&&!m($t)&&H($t,!0);let t=m(Z),n=m(de),r=m(Ut)&&m(un)&&!!t&&n!=null;if((m($t)||!m(Ut))&&e&&(m(gn)||!r)){qt.adopt(e,null);return}if(qt.clear(),!r||!t||n==null)return;let i=m($t),a=i&&e?{data:e,source:null}:null,o=Ot({steered:i,captured:e,row:Ft(m(X)?.measurements)});qt.replay(`geometry`,t,n,{steered:i,raw:Xe()},o,a)}),v(()=>{if(!m(h))return;m(X),Qe.active,m(Z);let e=m(mn);if(!m(Ht)&&!m(Qt)&&H(Qt,!0),(m(Qt)||!m(Ht))&&e){Kt.adopt(e,m(dn)?.instruments.sae?.binding.source??null,m(dn)?.instruments.sae?.readings??null);return}if(Kt.clear(),!m(Ht)||!m(zt))return;let t=m(Z),n=m(de);if(!t||n==null)return;let r=m(X)?.tokenId??-1,i=m(X)?.text??``,a=Ge.sources.find(e=>e.active)?.source??ut(`sae`)?.source??null;Kt.replay(`sae`,t,n,{topK:m(Wt),steered:m(Qt),raw:Xe()},e=>{let o=e.instruments.sae;if(!o?.readout)throw Error(`No SAE reading came back. Check the active feature source.`);return{data:{node_id:t,raw_index:n,token_id:r,token_text:i,steering:o?.binding.steering??null,layer:o?.binding.layer??-1,features:o.readout.features},source:o?.binding.source??a??null,pins:o.readings??null}})}),v(()=>{if(!m(h)||!Jt)return;m(X),Qe.active;let e=m(Z),t=m(de);!m(rn)||!e||t==null?Yt.clear():Yt.anatomy(e,t,{k:Math.min(256,Math.max(1,m(Wt))),units:8,patterns:4,steered:m(Zt),raw:Xe()},e=>{let t=e.anatomy;if(!t)throw Error(`No anatomy came back for this token. Select it again to retry.`);return{data:t,source:t.binding.sources.R??null,pins:e.instruments.lens?.readings??null}})}),v(()=>{if(!m(h))return;if(m(rn)){Gt.clear();return}m(X),Qe.active,m(Z);let e=m(fn);!m(nn)&&!m(Zt)&&H(Zt,!0);let t=m(Z),n=m(de),r=!Jt&&m(Vt)&&m(Rt)&&!!t&&n!=null;if((m(Zt)||!m(nn))&&e&&(m(pn)||!r)){Gt.adopt(e,m(dn)?.instruments.lens?.binding.sources.R??null,m(dn)?.instruments.lens?.readings??null);return}if(Gt.clear(),!r||!t||n==null)return;let i=m(X)?.tokenId??-1,a=m(X)?.text??``,o=gt.sources.find(e=>e.active&&e.family!==`S`)?.source??null,s=m(Zt)&&e?{data:e,source:m(dn)?.instruments.lens?.binding.sources.R??null,pins:m(dn)?.instruments.lens?.readings??null}:null;Gt.replay(`lens`,t,n,{topK:m(Wt),steered:m(Zt),raw:Xe(),layers:`all`},e=>{let r=e.instruments.lens;if(!r?.readout)throw Error(`No lens reading came back. Check the active lens source.`);return{data:{node_id:t,raw_index:n,token_id:i,token_text:a,steering:r?.binding.steering??null,aggregate:r.readout.aggregate,layers:r.readout.layers??[]},source:r?.binding.sources.R??o??null,pins:r.readings??null}},s)});let yn=O(()=>Yt.data?Yt.data.layers.length-1:Gt.data?pe(Gt.data.layers):null),bn={};function Sn(e,t){return bn[t]=e,{destroy:()=>{bn[t]===e&&delete bn[t]}}}async function Cn(e){wn.tab=e,await ee(),bn[e]?.scrollIntoView({block:`nearest`})}let Tn=null;v(()=>{m(h)&&m(y)&&Tn!==m(y)&&m(X)&&(Tn=m(y),m(y).initialTab&&Cn(m(y).initialTab))}),v(()=>{if(m(h))return Re(`token_inspector`,{schema:Le,read:()=>({values:{cursor:m(q),branch:m(M),tab:wn.tab,apply_recipe:{geometry:m($t),lens:m(Zt),sae:m(Qt)},presentation:i()?`dock`:`drawer`},node_id:m(Z),raw_index:m(X)?.rawIndex??null,shadow_available:m(Lt),replay:{geometry:m(Ut),lens:m(nn),sae:m(Ht)}}),update:async e=>{if(e.move&&(e.cursor||e.branch))throw new ze(`INVALID_INPUT`,`Choose a relative move or an explicit cursor and branch.`);let t=e.cursor??m(q),n=e.branch??(e.cursor&&t?.turnIdx!==m(q)?.turnIdx?`primary`:m(M));if(!t)throw new ze(`NOT_FOUND`,`Select a token before changing the inspector.`);let r=Ye.turns[t.turnIdx];if(n===`shadow`&&!r?.abPair)throw new ze(`NOT_FOUND`,`This turn has no shadow comparison.`);let i=n===`shadow`?r?.abPair:r,a=Ee(i??null,t.seg)[t.tokenIdx];if(!a)throw new ze(`NOT_FOUND`,`The requested token is not present on that branch and segment.`);let o=e.apply_recipe;for(let[e,t]of[[`geometry`,m(Ut)],[`lens`,m(nn)],[`sae`,m(Ht)]]){if(o?.[e]===!1&&(!t||a.rawIndex==null))throw new ze(`UNAVAILABLE`,`Unsteered ${e} inspection requires token replay support and a recorded raw token index.`);if(o?.[e]===!1&&(e===`geometry`&&!m(un)||e===`lens`&&!m(tn).ready||e===`sae`&&!m(zt)))throw new ze(`UNAVAILABLE`,`Prepare the ${e} instrument before requesting an unsteered replay.`)}let s=null;if(e.move&&(e.move===`next`||e.move===`previous`?s=xe(m(G),t,e.move===`next`?1:-1):e.move===`next_turn`||e.move===`previous_turn`?s=ye(m(G),t,e.move===`next_turn`?1:-1):e.move===`segment_start`||e.move===`segment_end`?s={...t,tokenIdx:e.move===`segment_start`?0:m(Y).length-1}:e.move===`anchor`?s=m(T):m(bt)&&(s={...t,seg:m(bt),tokenIdx:0}),!s))throw new ze(`NOT_FOUND`,`There is no token in that direction.`);(e.cursor||s)&&(De(s??{...t}),await ee()),e.branch!==void 0&&H(M,n,!0),o?.geometry!==void 0&&H($t,o.geometry,!0),o?.lens!==void 0&&H(Zt,o.lens,!0),o?.sae!==void 0&&H(Qt,o.sae,!0),await ee(),e.tab!==void 0&&await Cn(e.tab),e.presentation===`hide`&&b()}})});let En=O(()=>rt(`jlens`)),Dn=O(()=>rt(`slens`)),On=O(ot),kn=O(()=>st.find(e=>e.value===m(On))??st[0]);I(()=>{gt.sources.length===0&&$e()});let jn=N(!1),Mn=O(()=>m(X)?.tokenId!=null&&pt.active.some(e=>{let t=pt.entries.get(e)?.info;return t?.family===`lens`&&t.namespace===m(On)&&t.token_id===m(X)?.tokenId}));async function Nn(){let e=m(X)?.tokenId;if(e==null||m(jn))return;H(jn,!0);let t=`${m(On)}/#${e}`;try{await at(t),yt(`Probing ${m(Tt).empty?`∅`:m(Tt).text.trim()||JSON.stringify(m(Tt).text)}`,{kind:`info`})}catch(e){yt(`Couldn't probe ${t}: ${It(e)}`,{kind:`error`})}finally{H(jn,!1)}}function Pn(){let e=m(X)?.tokenId;e!=null&&Ie({id:e,text:m(X)?.text??``},m(On))}var Fn=ki();C(`keydown`,k,wt);let In;var Ln=U(Fn),Rn=e=>{var t=Di(),n=L(t),i=U(n),u=U(i),d=U(u),p=B(d,!0),h=j(d);{let e=O(()=>m(Tt).empty?`∅`:m(Tt).text);r(h,{get text(){return m(e)},numbers:!1,get identity(){return m(ce)}})}E(u);var _=j(u,2),v=U(_);{let e=O(()=>!m(qe));o(v,{icon:`left`,label:`Previous token`,get disabled(){return m(e)},onclick:()=>Ze(-1)})}var y=j(v,2);{let e=O(()=>!m(Je));o(y,{icon:`right`,label:`Next token`,get disabled(){return m(e)},onclick:()=>Ze(1)})}E(_),E(i);var b=j(i,2),T=U(b),D=j(U(T)),k=U(D);{let e=O(()=>String(m(q).tokenIdx+1));r(k,{get text(){return m(e)}})}E(D);var N=j(D);E(T);var F=j(T,2),I=e=>{var t=ui(),n=j(U(t)),i=U(n);{let e=O(()=>le(m(Et)));r(i,{get text(){return m(e)},get identity(){return m(ce)}})}E(n),E(t),w(e=>A(t,`data-tip`,e),[()=>`sampled p · log p ${m(X).logprob?.toFixed(3)} · after the sampler's temperature and top-k/top-p, not the model's own probability`]),f(e,t)};c(F,e=>{m(Et)!==null&&e(I)});var R=j(F,2),ee=e=>{var t=di(),n=j(U(t)),r=B(n,!0);E(t),w(()=>g(r,m(At))),f(e,t)};c(R,e=>{m(At)!==null&&e(ee)});var z=j(R,2),te=e=>{var t=fi(),n=B(t,!0);w(()=>{A(t,`aria-label`,`Show the ${m(bt)}`),g(n,m(q).seg)}),x(`click`,t,Ct),f(e,t)},W=e=>{var t=pi();f(e,t)};c(z,e=>{m(bt)?e(te):m(q).seg===`thinking`&&e(W,1)});var G=j(z,2),ae=e=>{var t=mi();w(()=>A(t,`aria-pressed`,m(M)===`shadow`)),x(`click`,t,()=>H(M,m(M)===`shadow`?`primary`:`shadow`,!0)),f(e,t)};c(G,e=>{m(Lt)&&e(ae)});var oe=j(G,2),se=e=>{var t=hi();f(e,t)};c(oe,e=>{m(de)??e(se)}),E(b);var J=j(b,2),Z=e=>{var t=vi(),n=U(t),r=e=>{var t=gi(),n=B(t,!0);w(()=>g(n,m(Fe))),f(e,t)};c(n,e=>{m(Fe)&&e(r)});var i=j(n),a=e=>{var t=_i();t.textContent=` · `,f(e,t)};c(i,e=>{m(Fe)&&m(Ue)&&e(a)});var o=j(i,1,!0);E(t),w(()=>g(o,m(Ue))),f(e,t)};c(J,e=>{(m(Fe)||m(Ue))&&e(Z)});var ue=j(J,2),pe=e=>{var t=bi();l(t,21,()=>m(Mt),e=>e.i,(e,t)=>{var n=yi(),r=L(n),i=e=>{var t=S();t.nodeValue=` `,f(e,t)},a=O(()=>m(t).i===m(q).tokenIdx&&m(t).text.startsWith(` `));c(r,e=>{m(a)&&e(i)});var o=j(r);let s;var l=B(o,!0);w(e=>{s=K(o,1,`ctok svelte-b6e72b`,null,s,{here:m(t).i===m(q).tokenIdx}),g(l,e)},[()=>m(t).i===m(q).tokenIdx&&m(t).text.startsWith(` `)?m(t).text.slice(1):m(t).text]),x(`click`,o,()=>{m(q)&&De({...m(q),tokenIdx:m(t).i})}),f(e,n)}),E(t),f(e,t)};c(ue,e=>{m(Mt).length>1&&e(pe)}),An(j(ue,2),{get token(){return m(X)},get canBranch(){return m(Q)},get busy(){return m(_e)},onbranch:e=>void Me(e)}),E(n),ie(n,(e,t)=>Sn?.(e,t),()=>`logits`);var he=j(n,2),ge=e=>{var t=xi();f(e,t)},ve=e=>{var t=Si(),n=U(t);{let e=O(()=>m(en)?`steered`:`unsteered`),t=O(()=>[{value:`steered`,label:`Steered`,hint:m(Fe)??void 0},{value:`unsteered`,label:`Unsteered`,hint:`Replayed without the steering`}]);s(n,{label:`Readings`,get value(){return m(e)},onchange:sn,get options(){return m(t)}})}E(t),f(e,t)};c(he,e=>{m(ln)?e(ge):m(on)&&e(ve,1)});var ye=j(he,2),xe=U(ye),we=e=>{vn(e,{get readout(){return Yt},get tokenText(){return m(X).text},get labels(){return Xt}})},Te=e=>{{let t=O(()=>it.info?.model_id??null);Qn(e,{get readout(){return Gt},get tokenText(){return m(X).text},get jlensFitted(){return m(tn).ready},get hasReplayContext(){return m(fe)},get modelId(){return m(t)},get replayAvailable(){return m(nn)}})}};c(xe,e=>{m(rn)?e(we):e(Te,-1)}),E(ye),ie(ye,(e,t)=>Sn?.(e,t),()=>`lens`);var Ee=j(ye,2),Oe=U(Ee);{let e=O(()=>({turnIdx:m(q).turnIdx,tokenIdx:m(q).tokenIdx,isThinking:m(q).seg===`thinking`}));kr(Oe,{get readout(){return qt},get pinned(){return m(_n)},get hasGeometryProbes(){return m(un)},get hasReplayContext(){return m(fe)},get replayAvailable(){return m(Ut)},get returnToToken(){return m(e)}})}E(Ee),ie(Ee,(e,t)=>Sn?.(e,t),()=>`geometry`);var ke=j(Ee,2);si(U(ke),{get readout(){return Kt},get saeLoaded(){return m(zt)},get availability(){return m(Bt)},get hasReplayContext(){return m(fe)},get replayAvailable(){return m(Ht)},get lastLayer(){return m(yn)}}),E(ke),ie(ke,(e,t)=>Sn?.(e,t),()=>`sae`);var Ae=j(ke,2),Ne=U(Ae),Pe=e=>{var t=Ci(),n=j(U(t),2);P(n),V(n,e=>H(Se,e),()=>m(Se));var i=j(n,2),o=U(i);{let e=O(()=>m(_e)?`Starting…`:`Branch`);r(o,{get text(){return m(e)},numbers:!1})}E(i);var s=j(i,2);E(t),w(()=>i.disabled=!m(Q)||m(_e)||m($).length===0),C(`submit`,t,e=>{e.preventDefault(),je()}),x(`keydown`,n,e=>{e.key===`Escape`&&(e.preventDefault(),H(me,!1),H(be,null))}),ne(n,()=>m($),e=>H($,e)),x(`click`,s,()=>{H(me,!1),H(be,null)}),re(3,t,()=>a),f(e,t)},Ie=e=>{var t=Ti(),n=U(t),r=e=>{var t=wi(),n=L(t),r=e=>{{let t=O(()=>[...st]);s(e,{label:`Read this token`,get value(){return m(On)},get options(){return m(t)},onchange:e=>nt.namespace=e})}};c(n,e=>{m(En)&&m(Dn)&&e(r)});var i=j(n,2),a=j(U(i)),o=B(a,!0),l=j(a,1,!0);E(i);var u=j(i,2);w(()=>{i.disabled=m(jn)||m(Mn),A(i,`data-tip`,m(Mn)?`Already a lens probe`:`Read this token at every layer, every token from now on: ${m(kn).hint}`),g(o,m(Tt).lead?`·`:``),g(l,m(Tt).empty?`∅`:m(Tt).text),A(u,`data-tip`,`Add a lens term that pushes this way: ${m(kn).hint}`)}),x(`click`,i,()=>void Nn()),x(`click`,u,Pn),f(e,t)};c(n,e=>{(m(En)||m(Dn))&&m(X).tokenId!=null&&e(r)});var i=j(n,2);E(t),w(()=>{i.disabled=!m(Q)||m(_e),A(i,`data-tip`,m(Q)?`Keep the text up to here and write a new ending; the original stays`:Qe.active?`Finish or stop the generation first`:`This token has no replay boundary`)}),x(`click`,i,()=>void Ce()),f(e,t)};c(Ne,e=>{m(me)?e(Pe):e(Ie,-1)});var Le=j(Ne,2),Re=e=>{var t=Ei(),n=B(t,!0);w(()=>g(n,m(be))),f(e,t)};c(Le,e=>{m(be)&&e(Re)}),E(Ae),w(()=>{A(u,`data-tip`,`id ${m(X).tokenId??`–`}${m(X).rawIndex==null?``:` · position ${m(X).rawIndex}`}`),g(p,m(Tt).lead?`·`:``),g(N,` of ${m(Y).length??``}`)}),f(e,t)},zn=e=>{var t=Oi(),n=B(t,!0);w(()=>g(n,m(y)?`This token is gone; select another`:`Select a token`)),f(e,t)};c(Ln,e=>{m(X)&&m(q)?e(Rn):e(zn,-1)}),E(Fn),V(Fn,e=>H(_,e),()=>m(_)),w(()=>{In=K(Fn,1,`token svelte-b6e72b`,null,In,{mobile:d()}),A(Fn,`data-morph-snapshot`,m(ce))}),f(t,Fn),R()}d([`click`,`keydown`]);export{Ai as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/TranscriptDrawer-clo8fAiu.js b/drowse/web/dist/assets/TranscriptDrawer-CqiDCTaD.js
similarity index 97%
rename from drowse/web/dist/assets/TranscriptDrawer-clo8fAiu.js
rename to drowse/web/dist/assets/TranscriptDrawer-CqiDCTaD.js
index 881f96d2d..f5dd93af0 100644
--- a/drowse/web/dist/assets/TranscriptDrawer-clo8fAiu.js
+++ b/drowse/web/dist/assets/TranscriptDrawer-CqiDCTaD.js
@@ -1 +1 @@
-import{c as e,f as t,p as n}from"./src-D3ehkdzy.js";import{n as r}from"./errors-JtXkE1b1.js";import{A as i,D as a,H as o,I as s,K as c,N as l,Q as u,R as d,U as f,Z as p,_ as m,at as h,bt as g,d as _,dt as v,ft as y,h as b,it as x,lt as S,m as C,mt as w,nt as T,p as E,pt as D,r as O,rt as k,s as ee,st as A,tt as j,u as M,y as N}from"./index-client-B2jUARBN.js";import{Vi as P,ft as te,ut as F}from"./session.svelte-Dafz5mOy.js";import{t as ne}from"./drawers.svelte-BBPH3jMg.js";import"./stores.svelte-BvABcOLl.js";var I=d(``),L=d(``);function R(e,t){w(t,!0);let n=O(t,`group`,15),r=O(t,`disabled`,3,!1),a=v(()=>n()===t.value);function o(){r()||c(a)||(n(t.value),t.onchange?.(t.value))}function u(e){if(r())return;if(e.key===` `||e.key===`Enter`){e.preventDefault(),o();return}let t=e.currentTarget.closest(`[role="radiogroup"]`);if(!t)return;let n=[...t.querySelectorAll(`[role="radio"]`)].filter(e=>!e.disabled),i=n.indexOf(e.currentTarget);if(i<0||n.length===0)return;let a=i,s=getComputedStyle(t).direction===`rtl`;if(e.key===`ArrowDown`||e.key===`ArrowRight`)a=(i+(e.key===`ArrowRight`&&s?-1:1)+n.length)%n.length;else if(e.key===`ArrowUp`||e.key===`ArrowLeft`)a=(i+(e.key===`ArrowLeft`&&s?1:-1)+n.length)%n.length;else if(e.key===`Home`)a=0;else if(e.key===`End`)a=n.length-1;else return;e.preventDefault(),n[a].focus(),n[a].click()}var d=L();E(d,()=>({type:`button`,role:`radio`,class:`sk-radio`,"aria-checked":c(a),"aria-label":t.ariaLabel,tabindex:c(a)&&!r()?0:-1,"data-name":t.name,disabled:r(),"aria-description":t.title,onclick:o,onkeydown:u,[_]:{"is-selected":c(a),"is-disabled":r()}}),void 0,void 0,void 0,`svelte-k8e4dq`);var f=j(d),m=j(f),h=j(m);let y;g(m),g(f);var b=x(f,2),S=e=>{var n=I(),r=k(n,!0);p(()=>l(r,t.label)),s(e,n)};i(b,e=>{t.label&&e(S)}),g(d),p(()=>y=N(h,1,`sk-radio-dot svelte-k8e4dq`,null,y,{"is-visible":c(a)})),s(e,d),D()}var re=d(`
`),ie=d(`
`,1),ae=d(`
`),oe=d(`
`),se=d(`
Guards, kept as notes on the root
`),ce=d(`
`),le=d(`
Place the turns
`),ue=d(`
Transcript
`);function z(o,d){w(d,!0);let _=S(`export`);function E(e){A(_,e,!0)}function O(e){let t=[`export`,`import`],n=t.indexOf(c(_)),r=n;if(e.key===`ArrowRight`)r=(n+1)%t.length;else if(e.key===`ArrowLeft`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),E(t[r]),document.getElementById(`transcript-${t[r]}-tab`)?.focus()}let N=S(``),I=S(``),L=S(null),z=S(!1),B=S(null);async function de(){if(!c(z)){A(z,!0),A(L,null),A(I,``),A(B,null);try{let e=c(N).trim(),t=null;if(e){let n=me(e);if(n.id)t=n.id;else if(n.matches.length===0){A(L,`no node matches prefix "${e}"`);return}else{let e=n.matches.slice(0,6).map(e=>e.slice(0,8)).join(`, `);A(L,`ambiguous: ${n.matches.length} matches (${e}`+(n.matches.length>6?`, …`:``)+`)`);return}}let n=await P.transcriptExport(t);A(I,n.yaml,!0),A(B,n.node_id,!0)}catch(e){A(L,r(e),!0)}finally{A(z,!1)}}}function fe(){if(!c(I))return;let e=new Blob([c(I)],{type:`application/yaml;charset=utf-8`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`drowse-transcript-${c(B)?c(B).slice(0,8):`active`}.yaml`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}let V=S(!1);u(()=>{if(!c(V))return;let e=setTimeout(()=>A(V,!1),1800);return()=>clearTimeout(e)});async function pe(){if(c(I))try{await navigator.clipboard.writeText(c(I)),A(V,!0)}catch{A(L,`Could not copy. Select the YAML above and copy it manually.`)}}function me(e){let t=e.trim();if(!t)return{id:null,matches:[]};if(t===`root`){let e=F.root_id;return e?{id:e,matches:[e]}:{id:null,matches:[]}}let n=[];for(let e of F.nodes.keys()){if(e===t)return{id:e,matches:[e]};e.startsWith(t)&&n.push(e)}return n.length===1?{id:n[0],matches:n}:{id:null,matches:n}}let H=S(``),U=S(`default`),W=S(!1),G=S(null),K=S(!1),q=S(h([])),J=S(null),he=S(null);async function ge(e){let t=e.target.files?.[0];t&&A(H,await t.text(),!0)}async function _e(){if(c(K))return;let e=c(H).trim();if(!e)A(G,`paste a transcript YAML or upload a file`);else{A(K,!0),A(G,null),A(q,[],!0),A(J,null);try{let t=await P.transcriptLoad(e,c(U),c(W));A(q,t.guards,!0),A(J,t.leaf_id,!0),await te()}catch(e){A(G,r(e),!0)}finally{A(K,!1)}}}var Y=ue(),X=j(Y),ve=x(j(X),2);n(ve,{icon:`close`,label:`Close`,get onclick(){return ne}}),g(X);var Z=x(X,2),Q=j(Z),$=x(Q,2);g(Z);var ye=x(Z,2),be=j(ye),xe=e=>{var n=ae(),r=j(n),a=x(j(r),2);C(a),g(r);var o=x(r,2),u=j(o),d=j(u);{let e=v(()=>c(z)?`Preparing…`:`Preview YAML`);t(d,{get text(){return c(e)}})}g(u),g(o);var h=x(o,2),_=e=>{var t=re(),n=k(t,!0);p(()=>l(n,c(L))),s(e,t)};i(h,e=>{c(L)&&e(_)});var S=x(h,2),w=e=>{var n=ie(),r=T(n);y(r);var i=x(r,2),a=j(i),o=j(a),l=j(o);{let e=v(()=>c(V)?`Copied`:`Copy`);t(l,{get text(){return c(e)},numbers:!1})}g(o),g(a);var u=x(a,2);g(i),p(()=>m(r,c(I))),f(`click`,a,pe),f(`click`,u,fe),s(e,n)};i(S,e=>{c(I)&&e(w)}),g(n),p(e=>{b(a,`placeholder`,e),u.disabled=c(z)},[()=>`the active turn, ${F.active_node_id?.slice(0,12)??`none`}`]),M(a,()=>c(N),e=>A(N,e)),f(`click`,u,de),s(e,n)},Se=n=>{var r=le(),o=j(r),u=x(j(o),2);R(u,{value:`default`,label:`On a new path from the root`,get group(){return c(U)},set group(e){A(U,e,!0)}});var d=x(u,2);R(d,{value:`here`,label:`After the active turn`,get group(){return c(U)},set group(e){A(U,e,!0)}}),R(x(d,2),{value:`merge`,label:`After the deepest matching turn`,get group(){return c(U)},set group(e){A(U,e,!0)}}),g(o);var m=x(o,2);e(m,{get checked(){return c(W)},onchange:e=>A(W,e,!0),label:`Require matching reading settings`});var h=x(m,2),_=x(j(h),2);ee(_,e=>A(he,e),()=>c(he)),g(h);var b=x(h,2);y(b);var S=x(b,2),C=j(S),w=j(C);{let e=v(()=>c(K)?`Importing…`:`Import`);t(w,{get text(){return c(e)}})}g(C),g(S);var T=x(S,2),E=e=>{var t=re(),n=k(t,!0);p(()=>l(n,c(G))),s(e,t)};i(T,e=>{c(G)&&e(E)});var D=x(T,2),O=e=>{var t=se(),n=x(j(t),2);a(n,20,()=>c(q),e=>e,(e,t)=>{var n=oe(),r=k(n,!0);p(()=>l(r,t)),s(e,n)}),g(n),g(t),s(e,t)};i(D,e=>{c(q).length>0&&e(O)});var N=x(D,2),P=e=>{var t=ce(),n=k(t);p(e=>l(n,`Imported, ending at ${e??``}`),[()=>c(J).slice(0,12)]),s(e,t)};i(N,e=>{c(J)&&!c(G)&&e(P)}),g(r),p(()=>C.disabled=c(K)),f(`change`,_,ge),M(b,()=>c(H),e=>A(H,e)),f(`click`,C,_e),s(n,r)};i(be,e=>{c(_)===`export`?e(xe):e(Se,-1)}),g(ye),g(Y),p(()=>{b(Q,`aria-selected`,c(_)===`export`),b(Q,`tabindex`,c(_)===`export`?0:-1),b($,`aria-selected`,c(_)===`import`),b($,`tabindex`,c(_)===`import`?0:-1)}),f(`click`,Q,()=>E(`export`)),f(`keydown`,Q,O),f(`click`,$,()=>E(`import`)),f(`keydown`,$,O),s(o,Y),D()}o([`click`,`keydown`,`change`]);export{z as default};
\ No newline at end of file
+import{c as e,f as t,p as n}from"./src-DWTrC_D-.js";import{n as r}from"./errors-D9jT6Fvg.js";import{A as i,D as a,H as o,I as s,K as c,N as l,Q as u,R as d,U as f,Z as p,_ as m,at as h,bt as g,d as _,dt as v,ft as y,h as b,it as x,lt as S,m as C,mt as w,nt as T,p as E,pt as D,r as O,rt as k,s as ee,st as A,tt as j,u as M,y as N}from"./index-client-B2jUARBN.js";import{Vi as P,ft as te,ut as F}from"./session.svelte-DG7XfPv3.js";import{t as ne}from"./drawers.svelte-kEXNcFnO.js";import"./stores.svelte-Cf8e_r1G.js";var I=d(``),L=d(``);function R(e,t){w(t,!0);let n=O(t,`group`,15),r=O(t,`disabled`,3,!1),a=v(()=>n()===t.value);function o(){r()||c(a)||(n(t.value),t.onchange?.(t.value))}function u(e){if(r())return;if(e.key===` `||e.key===`Enter`){e.preventDefault(),o();return}let t=e.currentTarget.closest(`[role="radiogroup"]`);if(!t)return;let n=[...t.querySelectorAll(`[role="radio"]`)].filter(e=>!e.disabled),i=n.indexOf(e.currentTarget);if(i<0||n.length===0)return;let a=i,s=getComputedStyle(t).direction===`rtl`;if(e.key===`ArrowDown`||e.key===`ArrowRight`)a=(i+(e.key===`ArrowRight`&&s?-1:1)+n.length)%n.length;else if(e.key===`ArrowUp`||e.key===`ArrowLeft`)a=(i+(e.key===`ArrowLeft`&&s?1:-1)+n.length)%n.length;else if(e.key===`Home`)a=0;else if(e.key===`End`)a=n.length-1;else return;e.preventDefault(),n[a].focus(),n[a].click()}var d=L();E(d,()=>({type:`button`,role:`radio`,class:`sk-radio`,"aria-checked":c(a),"aria-label":t.ariaLabel,tabindex:c(a)&&!r()?0:-1,"data-name":t.name,disabled:r(),"aria-description":t.title,onclick:o,onkeydown:u,[_]:{"is-selected":c(a),"is-disabled":r()}}),void 0,void 0,void 0,`svelte-k8e4dq`);var f=j(d),m=j(f),h=j(m);let y;g(m),g(f);var b=x(f,2),S=e=>{var n=I(),r=k(n,!0);p(()=>l(r,t.label)),s(e,n)};i(b,e=>{t.label&&e(S)}),g(d),p(()=>y=N(h,1,`sk-radio-dot svelte-k8e4dq`,null,y,{"is-visible":c(a)})),s(e,d),D()}var re=d(`
`),ie=d(`
`,1),ae=d(`
`),oe=d(`
`),se=d(`
Guards, kept as notes on the root
`),ce=d(`
`),le=d(`
Place the turns
`),ue=d(`
Transcript
`);function z(o,d){w(d,!0);let _=S(`export`);function E(e){A(_,e,!0)}function O(e){let t=[`export`,`import`],n=t.indexOf(c(_)),r=n;if(e.key===`ArrowRight`)r=(n+1)%t.length;else if(e.key===`ArrowLeft`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),E(t[r]),document.getElementById(`transcript-${t[r]}-tab`)?.focus()}let N=S(``),I=S(``),L=S(null),z=S(!1),B=S(null);async function de(){if(!c(z)){A(z,!0),A(L,null),A(I,``),A(B,null);try{let e=c(N).trim(),t=null;if(e){let n=me(e);if(n.id)t=n.id;else if(n.matches.length===0){A(L,`no node matches prefix "${e}"`);return}else{let e=n.matches.slice(0,6).map(e=>e.slice(0,8)).join(`, `);A(L,`ambiguous: ${n.matches.length} matches (${e}`+(n.matches.length>6?`, …`:``)+`)`);return}}let n=await P.transcriptExport(t);A(I,n.yaml,!0),A(B,n.node_id,!0)}catch(e){A(L,r(e),!0)}finally{A(z,!1)}}}function fe(){if(!c(I))return;let e=new Blob([c(I)],{type:`application/yaml;charset=utf-8`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`drowse-transcript-${c(B)?c(B).slice(0,8):`active`}.yaml`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)}let V=S(!1);u(()=>{if(!c(V))return;let e=setTimeout(()=>A(V,!1),1800);return()=>clearTimeout(e)});async function pe(){if(c(I))try{await navigator.clipboard.writeText(c(I)),A(V,!0)}catch{A(L,`Could not copy. Select the YAML above and copy it manually.`)}}function me(e){let t=e.trim();if(!t)return{id:null,matches:[]};if(t===`root`){let e=F.root_id;return e?{id:e,matches:[e]}:{id:null,matches:[]}}let n=[];for(let e of F.nodes.keys()){if(e===t)return{id:e,matches:[e]};e.startsWith(t)&&n.push(e)}return n.length===1?{id:n[0],matches:n}:{id:null,matches:n}}let H=S(``),U=S(`default`),W=S(!1),G=S(null),K=S(!1),q=S(h([])),J=S(null),he=S(null);async function ge(e){let t=e.target.files?.[0];t&&A(H,await t.text(),!0)}async function _e(){if(c(K))return;let e=c(H).trim();if(!e)A(G,`paste a transcript YAML or upload a file`);else{A(K,!0),A(G,null),A(q,[],!0),A(J,null);try{let t=await P.transcriptLoad(e,c(U),c(W));A(q,t.guards,!0),A(J,t.leaf_id,!0),await te()}catch(e){A(G,r(e),!0)}finally{A(K,!1)}}}var Y=ue(),X=j(Y),ve=x(j(X),2);n(ve,{icon:`close`,label:`Close`,get onclick(){return ne}}),g(X);var Z=x(X,2),Q=j(Z),$=x(Q,2);g(Z);var ye=x(Z,2),be=j(ye),xe=e=>{var n=ae(),r=j(n),a=x(j(r),2);C(a),g(r);var o=x(r,2),u=j(o),d=j(u);{let e=v(()=>c(z)?`Preparing…`:`Preview YAML`);t(d,{get text(){return c(e)}})}g(u),g(o);var h=x(o,2),_=e=>{var t=re(),n=k(t,!0);p(()=>l(n,c(L))),s(e,t)};i(h,e=>{c(L)&&e(_)});var S=x(h,2),w=e=>{var n=ie(),r=T(n);y(r);var i=x(r,2),a=j(i),o=j(a),l=j(o);{let e=v(()=>c(V)?`Copied`:`Copy`);t(l,{get text(){return c(e)},numbers:!1})}g(o),g(a);var u=x(a,2);g(i),p(()=>m(r,c(I))),f(`click`,a,pe),f(`click`,u,fe),s(e,n)};i(S,e=>{c(I)&&e(w)}),g(n),p(e=>{b(a,`placeholder`,e),u.disabled=c(z)},[()=>`the active turn, ${F.active_node_id?.slice(0,12)??`none`}`]),M(a,()=>c(N),e=>A(N,e)),f(`click`,u,de),s(e,n)},Se=n=>{var r=le(),o=j(r),u=x(j(o),2);R(u,{value:`default`,label:`On a new path from the root`,get group(){return c(U)},set group(e){A(U,e,!0)}});var d=x(u,2);R(d,{value:`here`,label:`After the active turn`,get group(){return c(U)},set group(e){A(U,e,!0)}}),R(x(d,2),{value:`merge`,label:`After the deepest matching turn`,get group(){return c(U)},set group(e){A(U,e,!0)}}),g(o);var m=x(o,2);e(m,{get checked(){return c(W)},onchange:e=>A(W,e,!0),label:`Require matching reading settings`});var h=x(m,2),_=x(j(h),2);ee(_,e=>A(he,e),()=>c(he)),g(h);var b=x(h,2);y(b);var S=x(b,2),C=j(S),w=j(C);{let e=v(()=>c(K)?`Importing…`:`Import`);t(w,{get text(){return c(e)}})}g(C),g(S);var T=x(S,2),E=e=>{var t=re(),n=k(t,!0);p(()=>l(n,c(G))),s(e,t)};i(T,e=>{c(G)&&e(E)});var D=x(T,2),O=e=>{var t=se(),n=x(j(t),2);a(n,20,()=>c(q),e=>e,(e,t)=>{var n=oe(),r=k(n,!0);p(()=>l(r,t)),s(e,n)}),g(n),g(t),s(e,t)};i(D,e=>{c(q).length>0&&e(O)});var N=x(D,2),P=e=>{var t=ce(),n=k(t);p(e=>l(n,`Imported, ending at ${e??``}`),[()=>c(J).slice(0,12)]),s(e,t)};i(N,e=>{c(J)&&!c(G)&&e(P)}),g(r),p(()=>C.disabled=c(K)),f(`change`,_,ge),M(b,()=>c(H),e=>A(H,e)),f(`click`,C,_e),s(n,r)};i(be,e=>{c(_)===`export`?e(xe):e(Se,-1)}),g(ye),g(Y),p(()=>{b(Q,`aria-selected`,c(_)===`export`),b(Q,`tabindex`,c(_)===`export`?0:-1),b($,`aria-selected`,c(_)===`import`),b($,`tabindex`,c(_)===`import`?0:-1)}),f(`click`,Q,()=>E(`export`)),f(`keydown`,Q,O),f(`click`,$,()=>E(`import`)),f(`keydown`,$,O),s(o,Y),D()}o([`click`,`keydown`,`change`]);export{z as default};
\ No newline at end of file
diff --git a/drowse/web/dist/assets/UnavailableRuntimeDrawer-CNQKfAZI.js b/drowse/web/dist/assets/UnavailableRuntimeDrawer-CnUPx2vJ.js
similarity index 77%
rename from drowse/web/dist/assets/UnavailableRuntimeDrawer-CNQKfAZI.js
rename to drowse/web/dist/assets/UnavailableRuntimeDrawer-CnUPx2vJ.js
index 13469b3ac..83d4a3c11 100644
--- a/drowse/web/dist/assets/UnavailableRuntimeDrawer-CNQKfAZI.js
+++ b/drowse/web/dist/assets/UnavailableRuntimeDrawer-CnUPx2vJ.js
@@ -1 +1 @@
-import{p as e}from"./src-D3ehkdzy.js";import"./legacy-BmNk1mfJ.js";import{t}from"./drawers.svelte-BBPH3jMg.js";import{H as n,I as r,R as i,U as a,bt as o,it as s,tt as c}from"./index-client-B2jUARBN.js";import"./stores.svelte-BvABcOLl.js";var l=i(`
Not available here
This runtime does not have this tool.
`);function u(n){var i=l(),u=c(i),d=s(c(u),2);e(d,{icon:`close`,label:`Close`,get onclick(){return t}}),o(u);var f=s(u,2),p=c(f),m=s(c(p),2);o(p),o(f),o(i),a(`click`,m,function(...e){t?.apply(this,e)}),r(n,i)}n([`click`]);export{u as default};
\ No newline at end of file
+import{p as e}from"./src-DWTrC_D-.js";import"./legacy-BmNk1mfJ.js";import{t}from"./drawers.svelte-kEXNcFnO.js";import{H as n,I as r,R as i,U as a,bt as o,it as s,tt as c}from"./index-client-B2jUARBN.js";import"./stores.svelte-Cf8e_r1G.js";var l=i(`