studiograph 1.3.48-next.21 → 1.3.48-next.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/agent/tools/message-tools.js +7 -3
  2. package/dist/agent/tools/message-tools.js.map +1 -1
  3. package/dist/server/routes/messages-api.js +134 -2
  4. package/dist/server/routes/messages-api.js.map +1 -1
  5. package/dist/server/ws-hub.d.ts +23 -4
  6. package/dist/server/ws-hub.js +4 -0
  7. package/dist/server/ws-hub.js.map +1 -1
  8. package/dist/services/message-service.d.ts +40 -5
  9. package/dist/services/message-service.js +154 -6
  10. package/dist/services/message-service.js.map +1 -1
  11. package/dist/web/_app/immutable/assets/2.BT_zrekP.css +1 -0
  12. package/dist/web/_app/immutable/chunks/BA905oIh.js +2 -0
  13. package/dist/web/_app/immutable/chunks/{BGk8kfOE.js → C2yWcTgh.js} +2 -2
  14. package/dist/web/_app/immutable/chunks/{BFNNbCAM.js → C50QlEfb.js} +1 -1
  15. package/dist/web/_app/immutable/chunks/{BIBCr278.js → CBxCHi8W.js} +1 -1
  16. package/dist/web/_app/immutable/chunks/{DY8-EONP.js → CE5FBajK.js} +1 -1
  17. package/dist/web/_app/immutable/chunks/{-jG4Obyh.js → Ceu9tef6.js} +1 -1
  18. package/dist/web/_app/immutable/chunks/{DujahU3W.js → CzvyORji.js} +1 -1
  19. package/dist/web/_app/immutable/chunks/{CDRHrs0g.js → DDbu87xK.js} +1 -1
  20. package/dist/web/_app/immutable/chunks/{CWyU-seV.js → DHouWzJA.js} +1 -1
  21. package/dist/web/_app/immutable/chunks/{CPne482a.js → DKVwX-g0.js} +1 -1
  22. package/dist/web/_app/immutable/chunks/{pBTf4stg.js → DeTlzd-_.js} +1 -1
  23. package/dist/web/_app/immutable/chunks/{BzJTZOK2.js → DgdJAo4A.js} +1 -1
  24. package/dist/web/_app/immutable/chunks/{BEn6N5c2.js → YxOzuzo0.js} +1 -1
  25. package/dist/web/_app/immutable/chunks/{CN5_py1I.js → hKIlbeTO.js} +1 -1
  26. package/dist/web/_app/immutable/chunks/{DKaafS50.js → tlhR7r2b.js} +1 -1
  27. package/dist/web/_app/immutable/entry/{app.ZHiTM8WS.js → app.xtJS_T6-.js} +2 -2
  28. package/dist/web/_app/immutable/entry/start.CplP4Tta.js +1 -0
  29. package/dist/web/_app/immutable/nodes/{0.D92Orz8k.js → 0.CXKwjs4U.js} +2 -2
  30. package/dist/web/_app/immutable/nodes/{1.BMdyglM_.js → 1.DNx5LZv1.js} +1 -1
  31. package/dist/web/_app/immutable/nodes/{10.BilVDHSL.js → 10.12cppxWZ.js} +1 -1
  32. package/dist/web/_app/immutable/nodes/{11.CS9E0Hic.js → 11.uVqRL_He.js} +1 -1
  33. package/dist/web/_app/immutable/nodes/{12.D3BOxYzG.js → 12.Cm9ETZkQ.js} +1 -1
  34. package/dist/web/_app/immutable/nodes/{13.CClMKYtN.js → 13.CmoH0CCC.js} +1 -1
  35. package/dist/web/_app/immutable/nodes/2.BVueWdeX.js +267 -0
  36. package/dist/web/_app/immutable/nodes/{3.C5n5uiWU.js → 3.B7iHCEWu.js} +3 -3
  37. package/dist/web/_app/immutable/nodes/{4.DcGVvgiL.js → 4.B52sGhtq.js} +3 -3
  38. package/dist/web/_app/immutable/nodes/{5.DxIjnFQO.js → 5.CNrv7A5m.js} +1 -1
  39. package/dist/web/_app/immutable/nodes/{6.lkh6kKLj.js → 6.lTIzFo68.js} +1 -1
  40. package/dist/web/_app/immutable/nodes/{7.Bg7SbfhA.js → 7.Ea5Cjcvm.js} +1 -1
  41. package/dist/web/_app/immutable/nodes/{8.DcXWCNBE.js → 8.CVTUi9tC.js} +1 -1
  42. package/dist/web/_app/immutable/nodes/{9.Cefi8Jfm.js → 9.CGLfUHbZ.js} +1 -1
  43. package/dist/web/_app/version.json +1 -1
  44. package/dist/web/index.html +6 -6
  45. package/package.json +1 -1
  46. package/dist/web/_app/immutable/assets/2.DpQWr6q6.css +0 -1
  47. package/dist/web/_app/immutable/chunks/UwYfmrPx.js +0 -2
  48. package/dist/web/_app/immutable/entry/start.C9-FfAVc.js +0 -1
  49. package/dist/web/_app/immutable/nodes/2.C8KKElPL.js +0 -267
@@ -1,4 +1,4 @@
1
- import{l as lt}from"../chunks/BhlvzGQx.js";import"../chunks/DsnmJJEf.js";import{p as Z,u as $,aC as ut,c as I,a3 as T,g as m,r as O,t as j,b as tt,w as Q,s as k,aE as ft,a2 as mt,a4 as ht}from"../chunks/C3uBrOS5.js";import{a as C,s as et,b as M,c as vt}from"../chunks/W25ZVI8L.js";import{b as X,i as F}from"../chunks/D5aIYSkd.js";import{s as Y}from"../chunks/B8ydT5xX.js";import{g as yt}from"../chunks/BEn6N5c2.js";import{n as E}from"../chunks/DUMOo1Pn.js";import{w as pt}from"../chunks/BPCkkwqe.js";const bt=async({params:b})=>{const{repo:o,type:l,id:s}=b,u=await lt(o,l,s);return{repo:o,type:l,id:s,entity:u}},Ot=Object.freeze(Object.defineProperty({__proto__:null,load:bt},Symbol.toStringTag,{value:"Module"}));var gt=M('<div class="loading-indicator svelte-1fltv0h">Loading editor...</div>'),wt=M('<div class="error-indicator svelte-1fltv0h"> </div>'),_t=M('<div><div class="header-mount svelte-1fltv0h"></div> <!> <!> <div></div></div>');function kt(b,o){Z(o,!0);let l,s,u=Q(!0),h=Q(null),y=[],d=[],v=[],g={},x=[],p=null,w=null,_=0;function q(){const e=window.StudioChrome,i=document.querySelector(".sg-chrome-overflow-menu");if(i&&(i.innerHTML=""),e&&(e.clearViewAction(),e.clearSaveHandlers()),w&&(w.el.removeEventListener("click",w.handler,!0),w=null),e){e.unmountHeader();for(const{event:r,fn:c}of v)e.off(r,c)}v=[];for(const r of y)r.remove();y=[];for(const r of d)r.remove();d=[],p&&(p.remove(),p=null);for(const[r,c]of Object.entries(g))c===void 0?document.body.removeAttribute(r):document.body.setAttribute(r,c);g={};for(const r of x)document.body.classList.remove(r);x=[],s&&(s.innerHTML="")}async function B(){const e=++_;k(u,!0),k(h,null),q();try{const i=`${o.appMountPath}/edit/${encodeURIComponent(o.repo)}/${encodeURIComponent(o.entityId)}`,r=await fetch(i);if(!r.ok)throw new Error(`Failed to load editor: ${r.status}`);if(e!==_)return;const c=await r.text(),H=new DOMParser().parseFromString(c,"text/html"),at=H.querySelectorAll('link[rel="stylesheet"]');for(const t of at){if(t.href.includes("chrome.css"))continue;let n=t.getAttribute("href")||"";n&&!n.startsWith("http")&&!n.startsWith("/")&&(n=`${o.appMountPath}/${n}`);const a=document.createElement("link");a.rel="stylesheet",a.href=n,document.head.appendChild(a),y.push(a)}const it=H.querySelectorAll("head style");for(const t of it){const n=document.createElement("style");n.textContent=t.textContent,document.head.appendChild(n),y.push(n)}p=document.createElement("style"),p.textContent=`
1
+ import{l as lt}from"../chunks/BhlvzGQx.js";import"../chunks/DsnmJJEf.js";import{p as Z,u as $,aC as ut,c as I,a3 as T,g as m,r as O,t as j,b as tt,w as Q,s as k,aE as ft,a2 as mt,a4 as ht}from"../chunks/C3uBrOS5.js";import{a as C,s as et,b as M,c as vt}from"../chunks/W25ZVI8L.js";import{b as X,i as F}from"../chunks/D5aIYSkd.js";import{s as Y}from"../chunks/B8ydT5xX.js";import{g as yt}from"../chunks/YxOzuzo0.js";import{n as E}from"../chunks/DUMOo1Pn.js";import{w as pt}from"../chunks/BPCkkwqe.js";const bt=async({params:b})=>{const{repo:o,type:l,id:s}=b,u=await lt(o,l,s);return{repo:o,type:l,id:s,entity:u}},Ot=Object.freeze(Object.defineProperty({__proto__:null,load:bt},Symbol.toStringTag,{value:"Module"}));var gt=M('<div class="loading-indicator svelte-1fltv0h">Loading editor...</div>'),wt=M('<div class="error-indicator svelte-1fltv0h"> </div>'),_t=M('<div><div class="header-mount svelte-1fltv0h"></div> <!> <!> <div></div></div>');function kt(b,o){Z(o,!0);let l,s,u=Q(!0),h=Q(null),y=[],d=[],v=[],g={},x=[],p=null,w=null,_=0;function q(){const e=window.StudioChrome,i=document.querySelector(".sg-chrome-overflow-menu");if(i&&(i.innerHTML=""),e&&(e.clearViewAction(),e.clearSaveHandlers()),w&&(w.el.removeEventListener("click",w.handler,!0),w=null),e){e.unmountHeader();for(const{event:r,fn:c}of v)e.off(r,c)}v=[];for(const r of y)r.remove();y=[];for(const r of d)r.remove();d=[],p&&(p.remove(),p=null);for(const[r,c]of Object.entries(g))c===void 0?document.body.removeAttribute(r):document.body.setAttribute(r,c);g={};for(const r of x)document.body.classList.remove(r);x=[],s&&(s.innerHTML="")}async function B(){const e=++_;k(u,!0),k(h,null),q();try{const i=`${o.appMountPath}/edit/${encodeURIComponent(o.repo)}/${encodeURIComponent(o.entityId)}`,r=await fetch(i);if(!r.ok)throw new Error(`Failed to load editor: ${r.status}`);if(e!==_)return;const c=await r.text(),H=new DOMParser().parseFromString(c,"text/html"),at=H.querySelectorAll('link[rel="stylesheet"]');for(const t of at){if(t.href.includes("chrome.css"))continue;let n=t.getAttribute("href")||"";n&&!n.startsWith("http")&&!n.startsWith("/")&&(n=`${o.appMountPath}/${n}`);const a=document.createElement("link");a.rel="stylesheet",a.href=n,document.head.appendChild(a),y.push(a)}const it=H.querySelectorAll("head style");for(const t of it){const n=document.createElement("style");n.textContent=t.textContent,document.head.appendChild(n),y.push(n)}p=document.createElement("style"),p.textContent=`
2
2
  body.sg-chrome-active { height: auto !important; }
3
3
  body.sg-chrome-active > :not(.sg-chrome-header):not(.sg-chrome-footer) { overflow: visible !important; }
4
4
  `,document.head.appendChild(p);const A=H.body;for(const t of Array.from(A.attributes))t.name.startsWith("data-")&&(g[t.name]=document.body.getAttribute(t.name)??void 0,document.body.setAttribute(t.name,t.value));const st=Array.from(A.classList);for(const t of st)t!=="sg-chrome-active"&&(document.body.classList.contains(t)||(document.body.classList.add(t),x.push(t)));const ct=A.querySelectorAll("script"),K=[],N=[];for(const t of ct){if(t.src){const n=t.getAttribute("src")||"";if(n.includes("chrome.js"))continue;let a=n;a&&!a.startsWith("http")&&!a.startsWith("/")&&(a=`${o.appMountPath}/${a}`),K.push(a)}else t.textContent&&N.push(t.textContent);t.remove()}s.innerHTML=A.innerHTML;const f=window.StudioChrome;if(f){f.updateBreadcrumb(o.repo,o.entityId),f.mountHeader(l);const t=document.body.dataset.sgViewUrl,n=document.body.dataset.sgViewLabel;t?f.setViewAction(t,n):f.clearViewAction();const a=l.querySelector(".sg-chrome-back");if(a){const G=J=>{J.preventDefault(),J.stopPropagation(),yt(`/${o.repo}/${o.entityType}/${o.entityId}`)};a.addEventListener("click",G,!0),w={el:a,handler:G}}}let L=null;f&&(L=f.on,f.on=function(t,n){v.push({event:t,fn:n}),L.call(this,t,n)});const dt=`?_v=${Date.now()}`;for(const t of K){if(e!==_)return;await ot(t+dt)}for(const t of N){if(e!==_)return;const n=document.createElement("script");n.textContent=t,document.body.appendChild(n),d.push(n)}f&&L&&(f.on=L),k(u,!1)}catch(i){if(e!==_)return;k(h,i.message||"Failed to load editor",!0),k(u,!1)}}function ot(e){return new Promise((i,r)=>{const c=document.createElement("script");c.src=e,c.onload=()=>i(),c.onerror=()=>r(new Error(`Failed to load script: ${e}`)),document.body.appendChild(c),d.push(c)})}let P="";$(()=>{const e=`${o.appMountPath}|${o.repo}|${o.entityId}`;P&&P!==e&&s&&B(),P=e}),ut(()=>(B(),q));var S=_t();let V;var W=I(S);X(W,e=>l=e,()=>l);var D=T(W,2);{var nt=e=>{var i=gt();C(e,i)};F(D,e=>{m(u)&&e(nt)})}var U=T(D,2);{var rt=e=>{var i=wt(),r=I(i,!0);O(i),j(()=>et(r,m(h))),C(e,i)};F(U,e=>{m(h)&&e(rt)})}var R=T(U,2);let z;X(R,e=>s=e,()=>s),O(S),j(()=>{V=Y(S,1,"editor-frame svelte-1fltv0h",null,V,{loading:m(u)}),z=Y(R,1,"editor-container svelte-1fltv0h",null,z,{hidden:m(u)||!!m(h)})}),C(b,S),tt()}var Ct=M('<div class="no-editor svelte-1406f3k"> </div>');function jt(b,o){Z(o,!0);const l=ht(()=>pt.getAppForEntityType(o.data.type));$(()=>{E.select(o.data.repo,o.data.type,o.data.id),E.showEntity(),E.hideSidebar=!0}),ft(()=>{E.hideSidebar=!1});var s=vt(),u=mt(s);{var h=d=>{kt(d,{get appMountPath(){return m(l).mountPath},get repo(){return o.data.repo},get entityId(){return o.data.id},get entityType(){return o.data.type}})},y=d=>{var v=Ct(),g=I(v);O(v),j(()=>et(g,`No app editor available for entity type "${o.data.type??""}"`)),C(d,v)};F(u,d=>{m(l)?d(h):d(y,!1)})}C(b,s),tt()}export{jt as component,Ot as universal};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as j,l as K,s as y,d as H,g as e,a as fe,c as D,n as ue,r as w,b as q,m as N,t as $,aC as xe,a3 as k,w as S,a4 as x,a2 as he,aF as _e}from"../chunks/C3uBrOS5.js";import{a as T,s as X,f as J,d as we,g as ie,e as Me,b as E,c as De}from"../chunks/W25ZVI8L.js";import{V as Te}from"../chunks/DKaafS50.js";import{G as ze}from"../chunks/pBTf4stg.js";import{i as Y,b as Ie}from"../chunks/D5aIYSkd.js";import{e as de,i as me,c as Pe}from"../chunks/-jG4Obyh.js";import{a as ge,s as G}from"../chunks/DkoHPElM.js";import{B as ke}from"../chunks/ZD6ARAtb.js";import{i as pe}from"../chunks/C8R1sDpW.js";import{l as F,p as O}from"../chunks/FBn-ES5k.js";import{n as ve}from"../chunks/DUMOo1Pn.js";import{w as U}from"../chunks/BPCkkwqe.js";var Ve=J("<title> </title>"),Ce=J('<svg><!><path d="M7,28a1,1,0,0,1-1-1V5a1,1,0,0,1,1.4819-.8763l20,11a1,1,0,0,1,0,1.7525l-20,11A1.0005,1.0005,0,0,1,7,28ZM8,6.6909V25.3088L24.9248,16Z"></path></svg>');function Re(V,l){const s=F(l,["children","$$slots","$$events","$$legacy"]),z=F(s,["size","title"]);j(l,!1);const g=N(),_=N();let f=O(l,"size",8,16),u=O(l,"title",8,void 0);K(()=>(H(s),H(u())),()=>{y(g,s["aria-label"]||s["aria-labelledby"]||u())}),K(()=>(e(g),H(s)),()=>{y(_,{"aria-hidden":e(g)?void 0:!0,role:e(g)?"img":void 0,focusable:Number(s.tabindex)===0?!0:void 0})}),fe(),pe();var d=Ce();ge(d,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:f(),height:f(),...e(_),...z}));var I=D(d);{var o=p=>{var m=Ve(),P=D(m,!0);w(m),$(()=>X(P,u())),T(p,m)};Y(I,p=>{u()&&p(o)})}ue(),w(d),T(V,d),q()}var Ae=J("<title> </title>"),Le=J('<svg><!><path d="M12,8V24H8V8h4m0-2H8A2,2,0,0,0,6,8V24a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V8a2,2,0,0,0-2-2Z"></path><path d="M24,8V24H20V8h4m0-2H20a2,2,0,0,0-2,2V24a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V8a2,2,0,0,0-2-2Z"></path></svg>');function Be(V,l){const s=F(l,["children","$$slots","$$events","$$legacy"]),z=F(s,["size","title"]);j(l,!1);const g=N(),_=N();let f=O(l,"size",8,16),u=O(l,"title",8,void 0);K(()=>(H(s),H(u())),()=>{y(g,s["aria-label"]||s["aria-labelledby"]||u())}),K(()=>(e(g),H(s)),()=>{y(_,{"aria-hidden":e(g)?void 0:!0,role:e(g)?"img":void 0,focusable:Number(s.tabindex)===0?!0:void 0})}),fe(),pe();var d=Le();ge(d,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:f(),height:f(),...e(_),...z}));var I=D(d);{var o=p=>{var m=Ae(),P=D(m,!0);w(m),$(()=>X(P,u())),T(p,m)};Y(I,p=>{u()&&p(o)})}ue(2),w(d),T(V,d),q()}var Se=E('<div class="density-bar svelte-lzvab"></div>'),$e=E('<span class="date-label svelte-lzvab"> </span>'),He=E('<div class="timeline-tooltip svelte-lzvab"><div class="tooltip-date svelte-lzvab"> </div> <div class="tooltip-count svelte-lzvab"> </div></div>'),Xe=E('<div class="timeline-bar svelte-lzvab"><!> <div class="timeline-track svelte-lzvab"><div class="track-line svelte-lzvab"></div> <div class="density-bars svelte-lzvab"></div> <div class="playhead svelte-lzvab"></div> <div class="date-labels svelte-lzvab"></div> <!></div></div>');function Ee(V,l){j(l,!0);let s=S(null),z=S(0),g=S(!1),_=S(!1),f=S(null),u=null;const d=x(()=>{let t=1/0,a=-1/0;for(const i of l.entities){const n=i.createdAt?new Date(i.createdAt).getTime():0;n>0&&n<t&&(t=n),n>a&&(a=n)}return t===1/0&&(t=Date.now()),a===-1/0&&(a=Date.now()),{min:t,max:a}}),I=x(()=>{let{min:t,max:a}=e(d);return a-t<864e5&&(t-=864e5*15,a+=864e5*15),{min:new Date(t),max:new Date(a)}}),o=x(()=>{const a=e(I).min.getTime(),i=e(I).max.getTime(),n=new Map;for(const r of l.entities){const h=r.createdAt?new Date(r.createdAt).getTime():0;if(h<=0)continue;const c=Math.floor((h-a)/864e5),v=a+c*864e5,M=n.get(v)??[];M.push(r),n.set(v,M)}return{map:n,minTime:a,maxTime:i,dayMs:864e5}}),p=x(()=>{let t=0;for(const a of e(o).map.values())a.length>t&&(t=a.length);return Math.max(1,t)}),m=x(()=>{const{minTime:t,maxTime:a}=e(o),i=a-t,n=[],r=Math.max(4,Math.min(8,Math.floor(e(z)/100))),h=i/r;for(let c=0;c<=r;c++){const v=t+c*h,B=new Date(v).toLocaleDateString("en-US",{month:"short",day:"numeric"});n.push({label:B,x:c/r})}return n}),P=x(()=>{const{minTime:t,maxTime:a}=e(o),i=a-t;if(i<=0)return .5;const n=l.currentDate?l.currentDate.getTime():e(d).max,r=Math.max(e(d).min,Math.min(e(d).max,n));return Math.max(0,Math.min(1,(r-t)/i))});function W(t){if(!e(s))return new Date;const a=e(s).getBoundingClientRect(),i=40,r=a.width-i-12,h=Math.max(0,Math.min(1,(t-a.left-i)/r)),{minTime:c,maxTime:v}=e(o),M=c+h*(v-c);return new Date(Math.max(e(d).min,Math.min(e(d).max,M)))}function Q(t){y(g,!0),A();const a=W(t.clientX);l.onDateChange(a),t.target.setPointerCapture(t.pointerId)}function C(t){if(e(g)&&l.onDateChange(W(t.clientX)),!e(s))return;const a=e(s).getBoundingClientRect(),i=40,r=a.width-i-12,h=(t.clientX-a.left-i)/r;if(h<0||h>1){y(f,null);return}const{minTime:c,dayMs:v,map:M}=e(o),B=c+h*(e(o).maxTime-c),ce=c+Math.floor((B-c)/v)*v,ne=M.get(ce);ne&&ne.length>0?y(f,{date:new Date(ce),count:ne.length,x:t.clientX-a.left},!0):y(f,null)}function b(){y(g,!1)}function re(){y(f,null)}function ee(){e(_)?A():R()}function R(){y(_,!0);const{min:t,max:a}=e(d),n=(a-t)/200;let r=l.currentDate?.getTime()??t;r>=a&&(r=t),u=setInterval(()=>{if(r+=n,r>=a){l.onDateChange(null),A();return}l.onDateChange(new Date(r))},50)}function A(){y(_,!1),u&&(clearInterval(u),u=null)}xe(()=>{if(e(s)){const t=new ResizeObserver(a=>{y(z,a[0]?.contentRect.width??0,!0)});return t.observe(e(s)),()=>t.disconnect()}});var Z=Xe(),se=D(Z);{let t=x(()=>e(_)?"Pause":"Play");ke(se,{variant:"ghost",size:"icon",class:"play-btn",onclick:ee,get title(){return e(t)},children:(a,i)=>{var n=De(),r=he(n);{var h=v=>{Be(v,{size:14})},c=v=>{Re(v,{size:14})};Y(r,v=>{e(_)?v(h):v(c,!1)})}T(a,n)},$$slots:{default:!0}})}var L=k(se,2),te=k(D(L),2);de(te,21,()=>Array.from(e(o).map.entries()),me,(t,a)=>{var i=x(()=>_e(e(a),2));let n=()=>e(i)[0],r=()=>e(i)[1];const h=x(()=>(n()-e(o).minTime)/(e(o).maxTime-e(o).minTime)),c=x(()=>r().length/e(p)),v=x(()=>.05+.95*e(c)*e(c));var M=Se();let B;$(()=>B=G(M,"",B,{left:`${e(h)*100}%`,opacity:e(v)})),T(t,M)}),w(te);var oe=k(te,2);let le;var ae=k(oe,2);de(ae,21,()=>e(m),me,(t,a)=>{var i=$e();let n;var r=D(i,!0);w(i),$(()=>{n=G(i,"",n,{left:`${e(a).x*100}%`}),X(r,e(a).label)}),T(t,i)}),w(ae);var be=k(ae,2);{var ye=t=>{var a=He();let i;var n=D(a),r=D(n,!0);w(n);var h=k(n,2),c=D(h);w(h),w(a),$(v=>{i=G(a,"",i,{left:`${e(f).x??""}px`}),X(r,v),X(c,`${e(f).count??""} ${e(f).count===1?"entry":"entries"}`)},[()=>e(f).date.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]),T(t,a)};Y(be,t=>{e(f)&&!e(g)&&t(ye)})}w(L),w(Z),Ie(Z,t=>y(s,t),()=>e(s)),$(()=>le=G(oe,"",le,{left:`${e(P)*100}%`})),ie("pointerdown",L,Q),ie("pointermove",L,C),ie("pointerup",L,b),Me("pointerleave",L,re),T(V,Z),q()}we(["pointerdown","pointermove","pointerup"]);var We=E("<!> <!> <!>",1);function tt(V,l){j(l,!0),ve.showGraph();let s=S(null);const z=x(()=>{const o=new Map;for(const p of U.repos)for(const m of p.entities)o.set(m.id,m.title);return o}),g=x(()=>{const o=[];for(const p of U.repos)for(const m of p.entities)m.id.toLowerCase().startsWith("readme")||o.push(m);return o}),_=x(()=>{const o=[],p=[],m=new Set,P=new Set,W=e(s)?.getTime()??1/0;for(const C of U.repos)for(const b of C.entities){if(b.id.toLowerCase().startsWith("readme")||m.has(b.id)||(b.createdAt?new Date(b.createdAt).getTime():0)>W)continue;m.add(b.id),o.push({id:b.id,type:b.entityType,repo:C.name});const ee=b.wikilinks??[];for(const R of ee){const A=b.id<R?`${b.id}|${R}`:`${R}|${b.id}`;!P.has(A)&&b.id!==R&&(P.add(A),p.push({source:b.id,target:R}))}}const Q=p.filter(C=>m.has(C.source)&&m.has(C.target));return{nodes:o,edges:Q}});var f=We(),u=he(f);Te(u,{activeView:"graph"});var d=k(u,2);ze(d,{get graphData(){return e(_)},get nameMap(){return e(z)},get filteredIds(){return U.filteredIds},get sidebarHoveredId(){return ve.hoveredEntityId},get highlightedIds(){return Pe.highlightedIds}});var I=k(d,2);Ee(I,{get entities(){return e(g)},get currentDate(){return e(s)},onDateChange:o=>{y(s,o,!0)}}),T(V,f),q()}export{tt as component};
1
+ import"../chunks/DsnmJJEf.js";import{p as j,l as K,s as y,d as H,g as e,a as fe,c as D,n as ue,r as w,b as q,m as N,t as $,aC as xe,a3 as k,w as S,a4 as x,a2 as he,aF as _e}from"../chunks/C3uBrOS5.js";import{a as T,s as X,f as J,d as we,g as ie,e as Me,b as E,c as De}from"../chunks/W25ZVI8L.js";import{V as Te}from"../chunks/tlhR7r2b.js";import{G as ze}from"../chunks/DeTlzd-_.js";import{i as Y,b as Ie}from"../chunks/D5aIYSkd.js";import{e as de,i as me,c as Pe}from"../chunks/Ceu9tef6.js";import{a as ge,s as G}from"../chunks/DkoHPElM.js";import{B as ke}from"../chunks/ZD6ARAtb.js";import{i as pe}from"../chunks/C8R1sDpW.js";import{l as F,p as O}from"../chunks/FBn-ES5k.js";import{n as ve}from"../chunks/DUMOo1Pn.js";import{w as U}from"../chunks/BPCkkwqe.js";var Ve=J("<title> </title>"),Ce=J('<svg><!><path d="M7,28a1,1,0,0,1-1-1V5a1,1,0,0,1,1.4819-.8763l20,11a1,1,0,0,1,0,1.7525l-20,11A1.0005,1.0005,0,0,1,7,28ZM8,6.6909V25.3088L24.9248,16Z"></path></svg>');function Re(V,l){const s=F(l,["children","$$slots","$$events","$$legacy"]),z=F(s,["size","title"]);j(l,!1);const g=N(),_=N();let f=O(l,"size",8,16),u=O(l,"title",8,void 0);K(()=>(H(s),H(u())),()=>{y(g,s["aria-label"]||s["aria-labelledby"]||u())}),K(()=>(e(g),H(s)),()=>{y(_,{"aria-hidden":e(g)?void 0:!0,role:e(g)?"img":void 0,focusable:Number(s.tabindex)===0?!0:void 0})}),fe(),pe();var d=Ce();ge(d,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:f(),height:f(),...e(_),...z}));var I=D(d);{var o=p=>{var m=Ve(),P=D(m,!0);w(m),$(()=>X(P,u())),T(p,m)};Y(I,p=>{u()&&p(o)})}ue(),w(d),T(V,d),q()}var Ae=J("<title> </title>"),Le=J('<svg><!><path d="M12,8V24H8V8h4m0-2H8A2,2,0,0,0,6,8V24a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V8a2,2,0,0,0-2-2Z"></path><path d="M24,8V24H20V8h4m0-2H20a2,2,0,0,0-2,2V24a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V8a2,2,0,0,0-2-2Z"></path></svg>');function Be(V,l){const s=F(l,["children","$$slots","$$events","$$legacy"]),z=F(s,["size","title"]);j(l,!1);const g=N(),_=N();let f=O(l,"size",8,16),u=O(l,"title",8,void 0);K(()=>(H(s),H(u())),()=>{y(g,s["aria-label"]||s["aria-labelledby"]||u())}),K(()=>(e(g),H(s)),()=>{y(_,{"aria-hidden":e(g)?void 0:!0,role:e(g)?"img":void 0,focusable:Number(s.tabindex)===0?!0:void 0})}),fe(),pe();var d=Le();ge(d,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:f(),height:f(),...e(_),...z}));var I=D(d);{var o=p=>{var m=Ae(),P=D(m,!0);w(m),$(()=>X(P,u())),T(p,m)};Y(I,p=>{u()&&p(o)})}ue(2),w(d),T(V,d),q()}var Se=E('<div class="density-bar svelte-lzvab"></div>'),$e=E('<span class="date-label svelte-lzvab"> </span>'),He=E('<div class="timeline-tooltip svelte-lzvab"><div class="tooltip-date svelte-lzvab"> </div> <div class="tooltip-count svelte-lzvab"> </div></div>'),Xe=E('<div class="timeline-bar svelte-lzvab"><!> <div class="timeline-track svelte-lzvab"><div class="track-line svelte-lzvab"></div> <div class="density-bars svelte-lzvab"></div> <div class="playhead svelte-lzvab"></div> <div class="date-labels svelte-lzvab"></div> <!></div></div>');function Ee(V,l){j(l,!0);let s=S(null),z=S(0),g=S(!1),_=S(!1),f=S(null),u=null;const d=x(()=>{let t=1/0,a=-1/0;for(const i of l.entities){const n=i.createdAt?new Date(i.createdAt).getTime():0;n>0&&n<t&&(t=n),n>a&&(a=n)}return t===1/0&&(t=Date.now()),a===-1/0&&(a=Date.now()),{min:t,max:a}}),I=x(()=>{let{min:t,max:a}=e(d);return a-t<864e5&&(t-=864e5*15,a+=864e5*15),{min:new Date(t),max:new Date(a)}}),o=x(()=>{const a=e(I).min.getTime(),i=e(I).max.getTime(),n=new Map;for(const r of l.entities){const h=r.createdAt?new Date(r.createdAt).getTime():0;if(h<=0)continue;const c=Math.floor((h-a)/864e5),v=a+c*864e5,M=n.get(v)??[];M.push(r),n.set(v,M)}return{map:n,minTime:a,maxTime:i,dayMs:864e5}}),p=x(()=>{let t=0;for(const a of e(o).map.values())a.length>t&&(t=a.length);return Math.max(1,t)}),m=x(()=>{const{minTime:t,maxTime:a}=e(o),i=a-t,n=[],r=Math.max(4,Math.min(8,Math.floor(e(z)/100))),h=i/r;for(let c=0;c<=r;c++){const v=t+c*h,B=new Date(v).toLocaleDateString("en-US",{month:"short",day:"numeric"});n.push({label:B,x:c/r})}return n}),P=x(()=>{const{minTime:t,maxTime:a}=e(o),i=a-t;if(i<=0)return .5;const n=l.currentDate?l.currentDate.getTime():e(d).max,r=Math.max(e(d).min,Math.min(e(d).max,n));return Math.max(0,Math.min(1,(r-t)/i))});function W(t){if(!e(s))return new Date;const a=e(s).getBoundingClientRect(),i=40,r=a.width-i-12,h=Math.max(0,Math.min(1,(t-a.left-i)/r)),{minTime:c,maxTime:v}=e(o),M=c+h*(v-c);return new Date(Math.max(e(d).min,Math.min(e(d).max,M)))}function Q(t){y(g,!0),A();const a=W(t.clientX);l.onDateChange(a),t.target.setPointerCapture(t.pointerId)}function C(t){if(e(g)&&l.onDateChange(W(t.clientX)),!e(s))return;const a=e(s).getBoundingClientRect(),i=40,r=a.width-i-12,h=(t.clientX-a.left-i)/r;if(h<0||h>1){y(f,null);return}const{minTime:c,dayMs:v,map:M}=e(o),B=c+h*(e(o).maxTime-c),ce=c+Math.floor((B-c)/v)*v,ne=M.get(ce);ne&&ne.length>0?y(f,{date:new Date(ce),count:ne.length,x:t.clientX-a.left},!0):y(f,null)}function b(){y(g,!1)}function re(){y(f,null)}function ee(){e(_)?A():R()}function R(){y(_,!0);const{min:t,max:a}=e(d),n=(a-t)/200;let r=l.currentDate?.getTime()??t;r>=a&&(r=t),u=setInterval(()=>{if(r+=n,r>=a){l.onDateChange(null),A();return}l.onDateChange(new Date(r))},50)}function A(){y(_,!1),u&&(clearInterval(u),u=null)}xe(()=>{if(e(s)){const t=new ResizeObserver(a=>{y(z,a[0]?.contentRect.width??0,!0)});return t.observe(e(s)),()=>t.disconnect()}});var Z=Xe(),se=D(Z);{let t=x(()=>e(_)?"Pause":"Play");ke(se,{variant:"ghost",size:"icon",class:"play-btn",onclick:ee,get title(){return e(t)},children:(a,i)=>{var n=De(),r=he(n);{var h=v=>{Be(v,{size:14})},c=v=>{Re(v,{size:14})};Y(r,v=>{e(_)?v(h):v(c,!1)})}T(a,n)},$$slots:{default:!0}})}var L=k(se,2),te=k(D(L),2);de(te,21,()=>Array.from(e(o).map.entries()),me,(t,a)=>{var i=x(()=>_e(e(a),2));let n=()=>e(i)[0],r=()=>e(i)[1];const h=x(()=>(n()-e(o).minTime)/(e(o).maxTime-e(o).minTime)),c=x(()=>r().length/e(p)),v=x(()=>.05+.95*e(c)*e(c));var M=Se();let B;$(()=>B=G(M,"",B,{left:`${e(h)*100}%`,opacity:e(v)})),T(t,M)}),w(te);var oe=k(te,2);let le;var ae=k(oe,2);de(ae,21,()=>e(m),me,(t,a)=>{var i=$e();let n;var r=D(i,!0);w(i),$(()=>{n=G(i,"",n,{left:`${e(a).x*100}%`}),X(r,e(a).label)}),T(t,i)}),w(ae);var be=k(ae,2);{var ye=t=>{var a=He();let i;var n=D(a),r=D(n,!0);w(n);var h=k(n,2),c=D(h);w(h),w(a),$(v=>{i=G(a,"",i,{left:`${e(f).x??""}px`}),X(r,v),X(c,`${e(f).count??""} ${e(f).count===1?"entry":"entries"}`)},[()=>e(f).date.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]),T(t,a)};Y(be,t=>{e(f)&&!e(g)&&t(ye)})}w(L),w(Z),Ie(Z,t=>y(s,t),()=>e(s)),$(()=>le=G(oe,"",le,{left:`${e(P)*100}%`})),ie("pointerdown",L,Q),ie("pointermove",L,C),ie("pointerup",L,b),Me("pointerleave",L,re),T(V,Z),q()}we(["pointerdown","pointermove","pointerup"]);var We=E("<!> <!> <!>",1);function tt(V,l){j(l,!0),ve.showGraph();let s=S(null);const z=x(()=>{const o=new Map;for(const p of U.repos)for(const m of p.entities)o.set(m.id,m.title);return o}),g=x(()=>{const o=[];for(const p of U.repos)for(const m of p.entities)m.id.toLowerCase().startsWith("readme")||o.push(m);return o}),_=x(()=>{const o=[],p=[],m=new Set,P=new Set,W=e(s)?.getTime()??1/0;for(const C of U.repos)for(const b of C.entities){if(b.id.toLowerCase().startsWith("readme")||m.has(b.id)||(b.createdAt?new Date(b.createdAt).getTime():0)>W)continue;m.add(b.id),o.push({id:b.id,type:b.entityType,repo:C.name});const ee=b.wikilinks??[];for(const R of ee){const A=b.id<R?`${b.id}|${R}`:`${R}|${b.id}`;!P.has(A)&&b.id!==R&&(P.add(A),p.push({source:b.id,target:R}))}}const Q=p.filter(C=>m.has(C.source)&&m.has(C.target));return{nodes:o,edges:Q}});var f=We(),u=he(f);Te(u,{activeView:"graph"});var d=k(u,2);ze(d,{get graphData(){return e(_)},get nameMap(){return e(z)},get filteredIds(){return U.filteredIds},get sidebarHoveredId(){return ve.hoveredEntityId},get highlightedIds(){return Pe.highlightedIds}});var I=k(d,2);Ee(I,{get entities(){return e(g)},get currentDate(){return e(s)},onDateChange:o=>{y(s,o,!0)}}),T(V,f),q()}export{tt as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as t,u as r,b as e}from"../chunks/C3uBrOS5.js";import{g as p}from"../chunks/BEn6N5c2.js";import{n as a}from"../chunks/DUMOo1Pn.js";function u(s,o){t(o,!0),r(()=>{a.showSettings("profile"),p("/",{replaceState:!0})}),e()}export{u as component};
1
+ import"../chunks/DsnmJJEf.js";import{p as t,u as r,b as e}from"../chunks/C3uBrOS5.js";import{g as p}from"../chunks/YxOzuzo0.js";import{n as a}from"../chunks/DUMOo1Pn.js";function u(s,o){t(o,!0),r(()=>{a.showSettings("profile"),p("/",{replaceState:!0})}),e()}export{u as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as n,u as c,b as i}from"../chunks/C3uBrOS5.js";import{s as m,a as f}from"../chunks/D-HDy5qS.js";import{p as g}from"../chunks/BFNNbCAM.js";import{g as l}from"../chunks/BEn6N5c2.js";import{n as u}from"../chunks/DUMOo1Pn.js";function S($,e){n(e,!0);const t=()=>m(g,"$page",a),[a,s]=f(),r={preferences:"profile",connectors:"integrations",workspace:"workspace",team:"workspace",collections:"workspace"},p={workspace:"organization",team:"team",collections:"collections"};c(()=>{const o=t().params.tab??"";u.showSettings(r[o]??"profile",p[o]),l("/",{replaceState:!0})}),i(),s()}export{S as component};
1
+ import"../chunks/DsnmJJEf.js";import{p as n,u as c,b as i}from"../chunks/C3uBrOS5.js";import{s as m,a as f}from"../chunks/D-HDy5qS.js";import{p as g}from"../chunks/C50QlEfb.js";import{g as l}from"../chunks/YxOzuzo0.js";import{n as u}from"../chunks/DUMOo1Pn.js";function S($,e){n(e,!0);const t=()=>m(g,"$page",a),[a,s]=f(),r={preferences:"profile",connectors:"integrations",workspace:"workspace",team:"workspace",collections:"workspace"},p={workspace:"organization",team:"team",collections:"collections"};c(()=>{const o=t().params.tab??"";u.showSettings(r[o]??"profile",p[o]),l("/",{replaceState:!0})}),i(),s()}export{S as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as g,u as y,a2 as _,b as v,a3 as b,g as e,a4 as t}from"../chunks/C3uBrOS5.js";import{a as T,b as w}from"../chunks/W25ZVI8L.js";import{k as V}from"../chunks/CWyU-seV.js";import{V as $}from"../chunks/DKaafS50.js";import{W as h}from"../chunks/BGk8kfOE.js";import{n as k}from"../chunks/DUMOo1Pn.js";import{f as S}from"../chunks/BFZZEUd5.js";function j({params:o}){return{entityType:o.type}}const N=Object.freeze(Object.defineProperty({__proto__:null,load:j},Symbol.toStringTag,{value:"Module"}));var O=w("<!> <!>",1);function P(o,n){g(n,!0);const r=t(()=>n.data.entityType),a=t(()=>e(r)==="recent");y(()=>{k.showView(-1)});var i=O(),s=_(i);$(s,{activeView:"view"});var p=b(s,2);V(p,()=>e(r),m=>{{let l=t(()=>e(a)?"Recent":S(e(r))),f=t(()=>`type-${e(r)}`),u=t(()=>e(a)?null:e(r)),c=t(()=>e(a)?"created_at":"name"),d=t(()=>!e(a));h(m,{get name(){return e(l)},get storageId(){return e(f)},get lockedType(){return e(u)},get defaultSortKey(){return e(c)},get defaultSortAsc(){return e(d)}})}}),T(o,i),v()}export{P as component,N as universal};
1
+ import"../chunks/DsnmJJEf.js";import{p as g,u as y,a2 as _,b as v,a3 as b,g as e,a4 as t}from"../chunks/C3uBrOS5.js";import{a as T,b as w}from"../chunks/W25ZVI8L.js";import{k as V}from"../chunks/DHouWzJA.js";import{V as $}from"../chunks/tlhR7r2b.js";import{W as h}from"../chunks/C2yWcTgh.js";import{n as k}from"../chunks/DUMOo1Pn.js";import{f as S}from"../chunks/BFZZEUd5.js";function j({params:o}){return{entityType:o.type}}const N=Object.freeze(Object.defineProperty({__proto__:null,load:j},Symbol.toStringTag,{value:"Module"}));var O=w("<!> <!>",1);function P(o,n){g(n,!0);const r=t(()=>n.data.entityType),a=t(()=>e(r)==="recent");y(()=>{k.showView(-1)});var i=O(),s=_(i);$(s,{activeView:"view"});var p=b(s,2);V(p,()=>e(r),m=>{{let l=t(()=>e(a)?"Recent":S(e(r))),f=t(()=>`type-${e(r)}`),u=t(()=>e(a)?null:e(r)),c=t(()=>e(a)?"created_at":"name"),d=t(()=>!e(a));h(m,{get name(){return e(l)},get storageId(){return e(f)},get lockedType(){return e(u)},get defaultSortKey(){return e(c)},get defaultSortAsc(){return e(d)}})}}),T(o,i),v()}export{P as component,N as universal};
@@ -1 +1 @@
1
- {"version":"1776115778471"}
1
+ {"version":"1776138226797"}
@@ -7,10 +7,10 @@
7
7
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
8
8
  <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400;1,500&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet" />
9
9
  <link rel="stylesheet" href="/api/chrome/chrome.css">
10
- <link href="/_app/immutable/entry/start.C9-FfAVc.js" rel="modulepreload">
11
- <link href="/_app/immutable/chunks/BEn6N5c2.js" rel="modulepreload">
10
+ <link href="/_app/immutable/entry/start.CplP4Tta.js" rel="modulepreload">
11
+ <link href="/_app/immutable/chunks/YxOzuzo0.js" rel="modulepreload">
12
12
  <link href="/_app/immutable/chunks/C3uBrOS5.js" rel="modulepreload">
13
- <link href="/_app/immutable/entry/app.ZHiTM8WS.js" rel="modulepreload">
13
+ <link href="/_app/immutable/entry/app.xtJS_T6-.js" rel="modulepreload">
14
14
  <link href="/_app/immutable/chunks/PPVm8Dsz.js" rel="modulepreload">
15
15
  <link href="/_app/immutable/chunks/W25ZVI8L.js" rel="modulepreload">
16
16
  <link href="/_app/immutable/chunks/DsnmJJEf.js" rel="modulepreload">
@@ -24,15 +24,15 @@
24
24
  <div style="display: contents">
25
25
  <script>
26
26
  {
27
- __sveltekit_bigvdp = {
27
+ __sveltekit_7n6zw7 = {
28
28
  base: ""
29
29
  };
30
30
 
31
31
  const element = document.currentScript.parentElement;
32
32
 
33
33
  Promise.all([
34
- import("/_app/immutable/entry/start.C9-FfAVc.js"),
35
- import("/_app/immutable/entry/app.ZHiTM8WS.js")
34
+ import("/_app/immutable/entry/start.CplP4Tta.js"),
35
+ import("/_app/immutable/entry/app.xtJS_T6-.js")
36
36
  ]).then(([kit, app]) => {
37
37
  kit.start(app, element);
38
38
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "studiograph",
3
- "version": "1.3.48-next.21",
3
+ "version": "1.3.48-next.22",
4
4
  "description": "Team-based AI agent platform with Git-backed knowledge graphs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1 +0,0 @@
1
- .resize-handle.svelte-tfh9g9{position:absolute;top:0;bottom:0;width:6px;cursor:col-resize;z-index:10}.resize-handle.right.svelte-tfh9g9{right:-3px}.resize-handle.left.svelte-tfh9g9{left:-3px}.resize-handle.svelte-tfh9g9:hover,.resize-handle.active.svelte-tfh9g9{background:var(--color-accent);opacity:.3}.resize-handle.active.svelte-tfh9g9{opacity:.5}.asset-manager.svelte-3ci416{max-height:calc(70vh - 80px);overflow-y:auto;padding-right:12px}.asset-status.svelte-3ci416{color:var(--color-text-secondary);font-size:13px;text-align:center;padding:32px 0}.asset-error.svelte-3ci416{color:var(--color-text-error, #e05050)}.asset-grid.svelte-3ci416{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.asset-card.svelte-3ci416{position:relative;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;background:var(--color-bg-secondary)}.asset-card.svelte-3ci416:hover .asset-delete:where(.svelte-3ci416){opacity:1}.asset-preview.svelte-3ci416{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-bg-tertiary, var(--color-bg-secondary))}.asset-preview.svelte-3ci416 img:where(.svelte-3ci416){width:100%;height:100%;object-fit:cover}.asset-icon.svelte-3ci416{color:var(--color-text-secondary)}.asset-info.svelte-3ci416{padding:8px 10px;display:flex;flex-direction:column;gap:2px}.asset-filename.svelte-3ci416{font-size:12px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-meta.svelte-3ci416{font-size:11px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-delete.svelte-3ci416{position:absolute;top:6px;right:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:4px;background:#0009;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s}.asset-delete.svelte-3ci416:hover{background:#e05050e6}.sidebar-empty-state.svelte-6dohdz{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:32px 24px;text-align:center}.empty-title.svelte-6dohdz{font-size:14px;font-weight:500;color:var(--color-text-secondary);margin:0 0 6px}.empty-desc.svelte-6dohdz{font-size:13px;color:var(--color-text-tertiary, var(--color-text-secondary));margin:0;line-height:1.4}.sidebar.svelte-6dohdz{position:relative;z-index:2;flex-shrink:0;display:flex;flex-direction:column;overflow:clip;overflow-x:visible;background:var(--color-bg);border-right:1px solid var(--color-border);transition:width .15s ease}.sidebar.collapsed.svelte-6dohdz{overflow:visible}.rail.svelte-6dohdz{display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:4px;height:100%}.rail-spacer.svelte-6dohdz{flex:1}.rail-btn{width:36px!important;height:36px!important;display:flex!important;align-items:center;justify-content:center;border-radius:8px}.rail-btn:hover{background:var(--color-bg-hover)!important}.rail.svelte-6dohdz .workspace-icon:where(.svelte-6dohdz){width:28px;height:28px;font-size:14px}.sidebar-header.svelte-6dohdz{height:var(--row-height);display:flex;align-items:center;gap:11px;padding:0 12px 0 19px;border-bottom:1px solid var(--color-border);flex-shrink:0}.header-actions.svelte-6dohdz{margin-left:auto;display:flex;align-items:center;gap:4px}.header-action-btn{display:flex;align-items:center;justify-content:center;position:relative;width:28px;height:28px;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;background:none;border:none}.header-action-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.header-add-menu{background:var(--color-bg-elevated)!important;border:1px solid var(--color-border-strong)!important;border-radius:8px!important;box-shadow:0 4px 16px #0003!important;padding:4px!important;min-width:var(--menu-min-width);z-index:200!important}.menu-divider.svelte-6dohdz{height:1px;background:var(--color-border);margin:4px 8px}.header-add-item{display:flex!important;align-items:center;gap:8px;min-height:var(--menu-item-height);padding:var(--menu-item-padding)!important;border-radius:var(--menu-item-radius)!important;font-size:var(--menu-font-size);color:var(--color-text-secondary);cursor:pointer}.header-add-item:hover,.header-add-item[data-highlighted]{background:var(--color-bg-hover)!important;color:var(--color-text-primary)}.notif-dropdown{width:320px!important;max-height:400px;background:var(--color-bg)!important;border:1px solid var(--color-border)!important;border-radius:8px!important;box-shadow:0 4px 16px #0000001f!important;display:flex;flex-direction:column;overflow:hidden;padding:0!important;z-index:200!important}.notif-dropdown .notif-header{display:flex;align-items:baseline;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-border);flex-shrink:0}.notif-dropdown .notif-title{font-size:var(--menu-font-size);font-weight:400;color:var(--color-text-primary)}.notif-dropdown .notif-mark-all{background:none;border:none;color:var(--color-accent);font-size:12px;cursor:pointer;padding:0}.notif-dropdown .notif-mark-all:hover{text-decoration:underline}.notif-dropdown .notif-list{overflow-y:auto;flex:1}.notif-dropdown .notif-empty{padding:24px 12px;text-align:center;font-size:var(--menu-font-size);color:var(--color-text-tertiary)}.notif-item{display:flex!important;flex-direction:row!important;align-items:flex-start;position:relative;padding:12px 16px 12px 32px!important;border:none;background:none;text-align:left;width:100%;cursor:pointer;border-radius:0!important}.notif-item+.notif-item{border-top:1px solid var(--color-border)}.notif-item:hover,.notif-item[data-highlighted]{background:var(--color-bg-hover)!important}.notif-dot{position:absolute;left:12px;top:17px;width:6px;height:6px;border-radius:3px;background:var(--color-accent)}.notif-item-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.notif-item-line{display:flex;align-items:baseline;gap:4px;font-size:var(--menu-font-size);line-height:16px}.notif-item-who{font-weight:600;color:var(--color-text-primary);white-space:nowrap}.notif-item-time{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap;margin-left:auto}.notif-item-preview{font-size:12px;line-height:16px;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-mention{color:var(--color-accent)}.notif-badge.svelte-6dohdz{position:absolute;top:2px;right:2px;min-width:14px;height:14px;border-radius:7px;background:var(--color-accent);color:#fff;font-size:9px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.sidebar-header.svelte-6dohdz .home-btn:where(.svelte-6dohdz){display:inline-flex;align-items:center;gap:11px;min-width:0}.workspace-icon.svelte-6dohdz{width:22px;height:22px;border-radius:50%;background:var(--color-accent, #e05050);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;flex-shrink:0}.workspace-name.svelte-6dohdz{flex:1;font-size:14px;font-weight:600;color:var(--color-text-primary)}.sidebar-scroll.svelte-6dohdz{flex:1;overflow-y:auto;min-height:0}.repo-row{display:flex;align-items:baseline;height:var(--row-height);line-height:var(--row-height);width:100%;padding:0 12px 0 22px;border:none;background:transparent;font-family:inherit;text-align:left;border-radius:0;gap:0;justify-content:flex-start}.repo-row:hover,.repo-row.focused{background:var(--color-bg-hover)}.tree-row{position:relative;display:flex;align-items:baseline;height:var(--row-height);line-height:var(--row-height);padding-right:40px;color:var(--color-text-secondary);font-size:14px;border:none;background:transparent;font-family:inherit;text-align:left;width:100%;border-radius:0;gap:0;justify-content:flex-start}.tree-row:hover,.tree-row.focused{background:var(--color-bg-hover)}.tree-row.selected{background:var(--color-bg-selected);color:var(--color-text-primary);font-weight:600}.row-chevron.svelte-6dohdz{display:inline-flex;align-items:center;justify-content:center;align-self:center;width:16px;height:16px;flex-shrink:0;margin-right:14px;color:var(--color-text-secondary);transition:transform .15s}.row-chevron.open.svelte-6dohdz{transform:rotate(90deg)}.row-label.svelte-6dohdz{flex:1;overflow:hidden;white-space:nowrap;mask-image:linear-gradient(to right,black calc(100% - 16px),transparent 100%);-webkit-mask-image:linear-gradient(to right,black calc(100% - 16px),transparent 100%)}.type-header-row{color:var(--color-text-secondary)}.type-header-row.type-active{color:var(--color-text-primary);font-weight:600}.type-header-row .row-label.svelte-6dohdz{flex:none;mask-image:none;-webkit-mask-image:none}.entity-type-dot.svelte-6dohdz{width:6px;height:6px;border-radius:3px;flex-shrink:0;margin-right:2px}.new-entity-row{color:var(--color-text-tertiary);align-items:center}.new-entity-row:hover{color:var(--color-text-secondary)}.entity-row-wrapper.svelte-6dohdz{position:relative;display:flex;align-items:center}.entity-row-wrapper.svelte-6dohdz .tree-row{flex:1;min-width:0}.entity-row-wrapper.svelte-6dohdz .entity-actions-btn{display:none;width:28px;height:28px;position:absolute;right:12px;flex-shrink:0;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);border-radius:4px;align-items:center;justify-content:center}.entity-row-wrapper.svelte-6dohdz .entity-actions-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.entity-row-wrapper.svelte-6dohdz:hover .tree-row,.entity-row-wrapper.svelte-6dohdz:has(.entity-actions-btn.menu-open) .tree-row{background:var(--color-bg-hover)}.entity-row-wrapper.svelte-6dohdz:hover .entity-actions-btn,.entity-row-wrapper.svelte-6dohdz .entity-actions-btn.menu-open{display:inline-flex}.entity-type-dot.svelte-6dohdz{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-right:19px;align-self:center}.presence-avatar.svelte-6dohdz{width:18px;height:18px;border-radius:50%;font-size:10px;font-weight:600;color:#fff;background:var(--color-accent);display:flex;align-items:center;justify-content:center;margin-left:-3px;border:none;box-sizing:border-box;flex-shrink:0;align-self:center}.presence-avatar.svelte-6dohdz:nth-child(1){z-index:3}.presence-avatar.svelte-6dohdz:nth-child(2){z-index:2}.presence-avatar.svelte-6dohdz:nth-child(3){z-index:1}.unread-dot.svelte-6dohdz{width:6px;height:6px;border-radius:50%;background:var(--color-accent);display:block}.repo-row .repo-rename-input{flex:1;min-width:0;height:100%;padding:0 6px;margin:0;border:1px solid var(--color-accent, #e05050);border-radius:3px;font-size:14px;font-weight:600}.repo-row-wrapper.svelte-6dohdz{position:relative;display:flex;align-items:center}.import-description.svelte-6dohdz{font-size:14px;color:var(--color-text-secondary);margin:0 0 16px}.import-modal-body.svelte-6dohdz{padding:0}.import-skipped.svelte-6dohdz{font-size:var(--font-xs);color:var(--color-text-secondary);margin:0 0 8px}.import-file-list.svelte-6dohdz{display:flex;flex-direction:column;max-height:240px;overflow-y:auto}.import-file-row.svelte-6dohdz{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--color-border)}.import-file-icon.svelte-6dohdz{flex-shrink:0;color:var(--color-text-tertiary)}.import-file-info.svelte-6dohdz{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.import-file-name.svelte-6dohdz{font-size:14px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-file-size.svelte-6dohdz{font-size:12px;color:var(--color-text-tertiary)}.import-file-remove.svelte-6dohdz{flex-shrink:0;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.import-file-remove.svelte-6dohdz:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.import-drop-zone.svelte-6dohdz{border:1px solid var(--color-border, #333);border-radius:8px;padding:40px 16px;text-align:center;color:var(--color-text-tertiary);font-size:14px;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:background .15s}.import-drop-zone-active.svelte-6dohdz{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 6%,transparent);color:var(--color-accent)}.import-drop-zone-compact.svelte-6dohdz{min-height:0;padding:14px 16px;border-top:none}.import-hint.svelte-6dohdz{font-size:13px;color:var(--color-text-tertiary);margin:0}.file-picker-link.svelte-6dohdz{background:none;border:none;color:var(--color-accent, #e05050);cursor:pointer;text-decoration:underline;font-size:15px;padding:0}.file-picker-link-sm.svelte-6dohdz{font-size:13px}.repo-row-wrapper.svelte-6dohdz .repo-row{flex:1;min-width:0}.repo-row-wrapper.svelte-6dohdz .repo-actions-btn{display:none;width:28px;height:28px;position:absolute;right:12px;flex-shrink:0;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-secondary);border-radius:4px;align-items:center;justify-content:center}.repo-row-wrapper.svelte-6dohdz .repo-actions-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.repo-actions-menu{min-width:var(--menu-min-width);padding:4px!important;border-radius:8px!important;background:var(--color-bg-elevated)!important;border:1px solid var(--color-border-strong)!important;box-shadow:0 4px 16px #0003!important;z-index:1000}.repo-menu-item{display:flex!important;align-items:center;gap:8px;min-height:var(--menu-item-height);padding:var(--menu-item-padding)!important;border-radius:var(--menu-item-radius)!important;cursor:pointer;font-size:var(--menu-font-size);color:var(--color-text-secondary)}.repo-menu-item:hover,.repo-menu-item[data-highlighted]{background:var(--color-bg-hover)!important;color:var(--color-text-primary)}.repo-menu-item-danger{color:var(--color-error, #e55)}.share-loading.svelte-6dohdz,.share-empty.svelte-6dohdz{font-size:13px;color:var(--color-text-secondary);margin:8px 0}.share-user-list.svelte-6dohdz{display:flex;flex-direction:column;gap:2px}.share-user-row.svelte-6dohdz{all:unset;display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px}.share-user-row.svelte-6dohdz:hover{background:var(--color-bg-hover)}.share-user-name.svelte-6dohdz{color:var(--color-text-primary)}.share-user-email.svelte-6dohdz{color:var(--color-text-tertiary);font-size:12px;margin-left:auto}.new-collection-btn,.new-collection-btn .row-chevron.svelte-6dohdz{color:var(--color-text-tertiary)}.new-collection-btn:hover{color:var(--color-text-secondary)}@keyframes svelte-6dohdz-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.sidebar-footer.svelte-6dohdz{display:flex;align-items:center;height:var(--row-height);padding:0 12px 0 27px;border-top:1px solid var(--color-border);flex-shrink:0;gap:8px;margin-top:auto}.user-name.svelte-6dohdz{flex:1;font-size:14px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer.svelte-6dohdz .footer-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:var(--color-text-secondary);cursor:pointer;background:none;border:none;flex-shrink:0}.sidebar-footer.svelte-6dohdz .footer-icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.transfer-header-col.svelte-6dohdz{display:flex;flex-direction:column;gap:4px}.transfer-list.svelte-6dohdz{display:flex;flex-direction:column;gap:2px}.transfer-list-item.svelte-6dohdz{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border-radius:6px;color:var(--color-text);font-size:13px;cursor:pointer}.transfer-list-item.svelte-6dohdz:hover{background:var(--color-bg-hover)}.entity-floating-tooltip.svelte-6dohdz{position:fixed;z-index:1000;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-radius:6px;background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:0 4px 16px #0000004d;pointer-events:none;min-width:120px;max-width:260px}.entity-floating-tooltip.fading.svelte-6dohdz{opacity:0;transition:opacity .12s ease-out}.entity-tooltip-title.svelte-6dohdz{font-size:13px;font-weight:600;color:var(--color-text-primary)}.entity-tooltip-meta.svelte-6dohdz{font-size:13px;color:var(--color-text-tertiary)}.section-add-btn{display:flex!important;align-items:center;justify-content:center;width:24px!important;height:24px!important;border:none!important;background:none!important;color:var(--color-text-secondary);cursor:pointer;border-radius:4px;padding:0!important}.section-add-btn:hover{background:var(--color-bg-hover)!important;color:var(--color-text-primary)}.view-icon-dot.svelte-6dohdz{position:relative;background:none!important;overflow:visible}.view-icon-dot.svelte-6dohdz svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:14px;height:14px;color:inherit}.no-transition.svelte-6dohdz .tree-row{transition:none!important}.home-row.svelte-6dohdz{height:var(--row-height)}.section-row-wrapper.svelte-6dohdz{height:var(--row-height);border-top:1px solid var(--color-border)}.section-row-wrapper.svelte-6dohdz .repo-actions-btn{display:inline-flex}.section-name.svelte-6dohdz{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);flex:1;text-align:left}.section-row-wrapper.svelte-6dohdz:hover .repo-row{background:var(--color-bg-hover)}.new-entry-form.svelte-6dohdz{display:flex;flex-direction:column;gap:16px}.new-entry-field.svelte-6dohdz{display:flex;flex-direction:column;gap:6px}.new-entry-label.svelte-6dohdz{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.new-entry-input.svelte-6dohdz{padding:8px 12px;font-family:inherit;font-size:14px;color:var(--color-text-primary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;outline:none}.new-entry-input.svelte-6dohdz:focus{border-color:var(--color-accent)}.new-entry-input.svelte-6dohdz::placeholder{color:var(--color-text-tertiary)}.type-dot-item.svelte-6dohdz{display:flex;align-items:center;gap:8px}.type-dot-color.svelte-6dohdz{width:6px;height:6px;border-radius:50%;flex-shrink:0}.app-footer.svelte-1jf7fcf{height:var(--row-height, 44px);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 18px;background:var(--color-bg);border-top:1px solid var(--color-border);font-size:12px;z-index:50}.footer-left.svelte-1jf7fcf{display:flex;align-items:center;gap:0}.theme-toggle.svelte-1jf7fcf{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:4px;transition:color .15s,border-color .15s}.theme-toggle.svelte-1jf7fcf:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.footer-stat.svelte-1jf7fcf{color:var(--color-text-tertiary);font-size:12px;margin-left:10px}.footer-sep.svelte-1jf7fcf{color:var(--color-text-tertiary);opacity:.5;font-size:12px;margin:0 6px}.footer-link.svelte-1jf7fcf{font-size:12px;color:var(--color-text-tertiary);text-decoration:none}.footer-link.svelte-1jf7fcf:hover{color:var(--color-text-secondary)}.footer-right.svelte-1jf7fcf{display:flex;align-items:center;gap:8px}.collaborator.svelte-1jf7fcf{display:inline-flex;align-items:center;gap:4px}.collaborator-avatar.svelte-1jf7fcf{width:18px;height:18px;border-radius:50%;background:var(--color-accent);color:var(--color-accent-text, #fff);font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center}.collaborator-name.svelte-1jf7fcf{font-size:12px;color:var(--color-text-tertiary)}.footer-center.svelte-1jf7fcf{display:flex;align-items:center;gap:2px}.fmt-btn.svelte-1jf7fcf{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:4px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background .1s,color .1s}.fmt-btn.svelte-1jf7fcf:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.fmt-sep.svelte-1jf7fcf{width:1px;height:14px;background:var(--color-border);margin:0 3px}.chat-panel.svelte-1xwj6s7{position:relative;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg);border-left:1px solid var(--color-border)}.chat-panel.svelte-1xwj6s7 .chat-tab-content{flex:1;min-height:0;display:flex;flex-direction:column}.chat-header.svelte-1xwj6s7{height:var(--row-height);display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 16px;border-bottom:1px solid var(--color-border);position:relative;flex-shrink:0;gap:8px}.chat-panel.svelte-1xwj6s7 .chat-tabs-list{display:flex;align-items:stretch;height:100%;background:transparent;padding:0;border-radius:0;gap:4px}.chat-panel.svelte-1xwj6s7 .chat-tab{position:relative;display:inline-flex;align-items:center;gap:6px;padding:0 4px;height:100%;font-size:13px;font-weight:500;color:var(--color-text-tertiary);background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer;transition:color .15s ease}.chat-panel.svelte-1xwj6s7 .chat-tab:hover{color:var(--color-text-secondary)}.chat-panel.svelte-1xwj6s7 .chat-tab[data-state=active]{color:var(--color-text-primary);background:transparent;box-shadow:none}.chat-panel.svelte-1xwj6s7 .chat-tab[data-state=active]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--color-accent, var(--color-text-primary))}.chat-tab-unread-dot.svelte-1xwj6s7{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-accent, #3b82f6)}.chat-tab-placeholder.svelte-1xwj6s7{flex:1;display:flex;align-items:center;justify-content:center;padding:0 16px;color:var(--color-text-tertiary);font-size:14px}.chat-header-right.svelte-1xwj6s7{display:flex;align-items:center;gap:2px;margin-left:auto}.chat-messages.svelte-1xwj6s7{flex:1;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;gap:16px}.empty-state.svelte-1xwj6s7{flex:1;display:flex;align-items:center;justify-content:center;padding:0 16px;color:var(--color-text-tertiary);font-size:14px}.seed-prompts.svelte-1xwj6s7{display:flex;flex-direction:column;gap:8px;width:100%}.seed-prompts.svelte-1xwj6s7 .seed-prompt{font-size:14px;line-height:20px;padding:9px 13px;min-height:var(--row-height);height:auto;width:100%;border-radius:8px;color:var(--color-text-secondary);background:var(--color-bg-secondary, rgba(128, 128, 128, .06));text-align:left;white-space:normal;justify-content:flex-start}.seed-prompts.svelte-1xwj6s7 .seed-prompt:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.follow-up-prompts.svelte-1xwj6s7{display:flex;flex-direction:column;gap:8px;padding:0 16px;width:100%}.follow-up-prompts.svelte-1xwj6s7 .seed-prompt{font-size:14px;line-height:20px;padding:9px 13px;min-height:var(--row-height);height:auto;border-radius:8px;color:var(--color-text-secondary);background:var(--color-bg-secondary, rgba(128, 128, 128, .06));text-align:left;white-space:normal;justify-content:flex-start}.follow-up-prompts.svelte-1xwj6s7 .seed-prompt:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.message-group.svelte-1xwj6s7{display:flex;flex-direction:column;gap:16px;padding:0 16px}.user-bubble.svelte-1xwj6s7{background:var(--color-bg-surface);border-radius:8px;padding:12px 14px;font-size:14px;line-height:22px;color:var(--color-text-primary)}.agent-content.svelte-1xwj6s7{display:flex;flex-direction:column;gap:14px;position:relative}.msg-actions.svelte-1xwj6s7{display:flex;gap:2px;align-self:flex-start}.copy-btn.svelte-1xwj6s7{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:4px;border-radius:4px;align-self:flex-start}.copy-btn.svelte-1xwj6s7:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.tool-calls.svelte-1xwj6s7{display:flex;flex-direction:column;gap:4px}.tool-call.svelte-1xwj6s7{font-family:var(--font-mono);font-size:12px;color:var(--color-accent)}.agent-text.svelte-1xwj6s7{font-size:14px;line-height:22px;color:var(--color-text-primary)}.prose.svelte-1xwj6s7 h1{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:24px 0 12px}.prose.svelte-1xwj6s7 h2{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:22px 0 10px}.prose.svelte-1xwj6s7 h3{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:20px 0 8px}.prose.svelte-1xwj6s7 p{margin:0 0 14px}.prose.svelte-1xwj6s7 p:last-child{margin-bottom:0}.prose.svelte-1xwj6s7 strong{font-weight:600}.prose.svelte-1xwj6s7 ul,.prose.svelte-1xwj6s7 ol{padding-left:20px;margin:0 0 14px;color:var(--color-text-primary)}.prose.svelte-1xwj6s7 li ul,.prose.svelte-1xwj6s7 li ol{margin:4px 0 0}.prose.svelte-1xwj6s7 ul{list-style-type:disc}.prose.svelte-1xwj6s7 ol{list-style-type:decimal}.prose.svelte-1xwj6s7 li{margin-bottom:6px}.prose.svelte-1xwj6s7 table{width:100%;border-collapse:collapse;font-size:13px;margin:16px 0}.prose.svelte-1xwj6s7 th,.prose.svelte-1xwj6s7 td{border:1px solid var(--color-border);padding:4px 8px;text-align:left;vertical-align:top}.prose.svelte-1xwj6s7 th{font-weight:600}.prose.svelte-1xwj6s7 pre{background:var(--color-bg-surface);border-radius:6px;padding:10px 12px;overflow-x:auto;margin:16px 0;font-family:var(--font-mono);font-size:13px;line-height:18px}.prose.svelte-1xwj6s7 code{font-family:var(--font-mono);font-size:13px;background:var(--color-bg-surface);padding:1px 4px;border-radius:3px}.prose.svelte-1xwj6s7 pre code{background:none;padding:0}.prose.svelte-1xwj6s7 a{color:var(--color-link);text-decoration:none}.prose.svelte-1xwj6s7 a:hover{text-decoration:underline}.prose.svelte-1xwj6s7 blockquote{border-left:3px solid var(--color-accent);padding-left:12px;margin:16px 0;color:var(--color-text-secondary)}.prose.svelte-1xwj6s7 hr{border:none;border-top:1px solid var(--color-border);margin:24px 0}.streaming-dot.svelte-1xwj6s7{display:inline-block;width:8px;height:8px;background:var(--color-accent);border-radius:4px;animation:svelte-1xwj6s7-pulse 1s ease-in-out infinite}@keyframes svelte-1xwj6s7-pulse{0%,to{opacity:.3}50%{opacity:1}}.context-chip.svelte-1xwj6s7{font-size:12px;color:var(--color-text-tertiary);padding:0 2px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll-to-bottom-wrapper.svelte-1xwj6s7{display:flex;justify-content:center;position:relative;height:0;z-index:100}.scroll-to-bottom.svelte-1xwj6s7{position:absolute;bottom:8px;width:28px;height:28px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #00000026}.scroll-to-bottom.svelte-1xwj6s7:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.chat-input-area.svelte-1xwj6s7{padding:12px 16px 16px;position:relative}.text-input.svelte-1xwj6s7{display:flex;align-items:flex-end;min-height:var(--row-height);max-height:140px;padding:0 0 0 13px;background:transparent;border:1px solid var(--color-border);border-radius:8px;transition:border-color .15s}.text-input.svelte-1xwj6s7:focus-within{border-color:var(--color-accent)}.send-btn{color:var(--color-text-tertiary);margin:7px;flex-shrink:0;pointer-events:none}.send-btn.send-active,.stop-btn{pointer-events:auto;color:#fff;background:var(--color-accent);border-radius:6px}.input-field.svelte-1xwj6s7{flex:1;background:transparent;border:none;outline:none;font-family:inherit;font-size:14px;line-height:20px;color:var(--color-text-primary);resize:none;overflow-y:auto;padding:7px 0 11px;max-height:120px;min-height:20px;white-space:pre-wrap;word-wrap:break-word;field-sizing:content}.input-field[data-placeholder].svelte-1xwj6s7:empty:before{content:attr(data-placeholder);color:var(--color-text-tertiary);pointer-events:none}.input-field.svelte-1xwj6s7::placeholder{color:var(--color-text-tertiary)}.input-field.svelte-1xwj6s7:disabled{opacity:.5}.input-field.svelte-1xwj6s7 .cm-mention-input{color:var(--color-accent)}.cm-loading-more.svelte-1xwj6s7{text-align:center;padding:8px 16px;font-size:12px;color:var(--color-text-tertiary)}.cm-message.svelte-1xwj6s7{display:flex;flex-direction:column;gap:2px;padding:8px 16px;background:transparent;transition:background 1.5s ease-out}.cm-highlight{background:var(--color-bg-hover)!important}.cm-meta.svelte-1xwj6s7{display:flex;align-items:center;gap:6px}.cm-meta.svelte-1xwj6s7 .cm-name:where(.svelte-1xwj6s7){align-self:baseline}.cm-avatar.svelte-1xwj6s7{width:18px;height:18px;border-radius:9px;background:var(--color-accent);color:#fff;font-size:9px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cm-body.svelte-1xwj6s7{display:flex;flex-direction:column;gap:2px;min-width:0;padding-left:24px}.cm-name.svelte-1xwj6s7{font-size:14px;font-weight:600;color:var(--color-text-primary)}.cm-time.svelte-1xwj6s7{font-size:12px;color:var(--color-text-tertiary)}.cm-content.svelte-1xwj6s7{font-size:14px;line-height:22px;color:var(--color-text-primary)}.cm-truncated.svelte-1xwj6s7{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cm-reply-label.svelte-1xwj6s7{font-size:12px;color:var(--color-text-tertiary)}.cm-agent-actions.svelte-1xwj6s7{display:flex;gap:12px;align-items:center}.cm-expand.svelte-1xwj6s7{background:none;border:none;color:var(--color-accent);font-size:12px;cursor:pointer;padding:2px 0}.cm-expand.svelte-1xwj6s7:hover{text-decoration:underline}.cm-reply-btn.svelte-1xwj6s7{background:none;border:none;color:var(--color-text-tertiary);font-size:12px;cursor:pointer;padding:2px 0}.cm-reply-btn.svelte-1xwj6s7:hover{color:var(--color-accent)}.cm-suggestion-prompts.svelte-1xwj6s7{display:flex;flex-direction:column;gap:8px;width:100%}.cm-suggestion-prompts.svelte-1xwj6s7 .seed-prompt{font-size:14px;line-height:20px;padding:9px 13px;min-height:var(--row-height);height:auto;border-radius:8px;color:var(--color-text-secondary);background:var(--color-bg-secondary, rgba(128, 128, 128, .06));text-align:left;white-space:normal;justify-content:flex-start}.cm-suggestion-prompts.svelte-1xwj6s7 .seed-prompt:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.cm-suggestion-busy.svelte-1xwj6s7,.cm-suggestion-done.svelte-1xwj6s7{font-size:14px;line-height:20px;padding:9px 13px;min-height:var(--row-height);height:auto;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-tertiary);text-align:left;white-space:normal}.cm-suggestion-done.svelte-1xwj6s7 a:where(.svelte-1xwj6s7){color:var(--color-link);text-decoration:none}.cm-suggestion-done.svelte-1xwj6s7 a:where(.svelte-1xwj6s7):hover{text-decoration:underline}.cm-ellipsis.svelte-1xwj6s7:after{content:"";animation:svelte-1xwj6s7-ellipsis 1.5s steps(4,end) infinite}@keyframes svelte-1xwj6s7-ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.cm-content.svelte-1xwj6s7 .cm-mention{color:var(--color-accent);font-weight:400}.reply-chip.svelte-1xwj6s7{display:flex;align-items:center;gap:6px;padding:4px 8px;margin-bottom:6px;background:var(--color-bg-surface);border-radius:6px;font-size:12px;color:var(--color-accent);font-weight:500}.reply-chip-close.svelte-1xwj6s7{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:0;border-radius:3px}.reply-chip-close.svelte-1xwj6s7:hover{color:var(--color-text-primary)}.at-popup.svelte-1xwj6s7{position:absolute;bottom:100%;left:16px;margin-bottom:4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 2px 8px #0000001f;padding:4px;z-index:10}.at-popup-item.svelte-1xwj6s7{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--color-text-primary)}.at-popup-item.svelte-1xwj6s7:hover,.at-popup-selected.svelte-1xwj6s7{background:var(--color-bg-hover)}.at-popup-avatar.svelte-1xwj6s7{width:18px;height:18px;font-size:9px}.at-popup-hint.svelte-1xwj6s7{margin-left:auto;font-size:11px;color:var(--color-text-tertiary);background:var(--color-bg-surface);padding:1px 5px;border-radius:3px}.modal-body.svelte-1vpgrso{padding:8px 32px 28px;overflow-y:auto;max-height:calc(85vh - 40px);display:flex;flex-direction:column;gap:24px}.modal-title.svelte-1vpgrso{font-size:20px;font-weight:400;color:var(--color-text-primary);margin:0 0 24px;letter-spacing:-.01em;line-height:1.2}.section.svelte-1vpgrso{display:flex;flex-direction:column;gap:12px}.section-label.svelte-1vpgrso{font-size:14px;font-weight:500;color:var(--color-text-primary);margin:0}.color-grid.svelte-1vpgrso{display:flex;gap:6px;flex-wrap:wrap}.color-grid.saving.svelte-1vpgrso{opacity:.5;pointer-events:none}.color-swatch.svelte-1vpgrso{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.color-swatch.svelte-1vpgrso:hover{transform:scale(1.15)}.color-swatch.active.svelte-1vpgrso{border-color:var(--color-text-primary)}.fields.svelte-1vpgrso{display:flex;flex-direction:column;gap:16px}.field.svelte-1vpgrso{display:flex;flex-direction:column;gap:8px}.password-wrapper.svelte-1vpgrso{position:relative}.pw-toggle.svelte-1vpgrso{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);padding:4px;display:flex}.pw-toggle.svelte-1vpgrso:hover{color:var(--color-text-secondary)}.save-row.svelte-1vpgrso{display:flex;justify-content:flex-end;padding-top:8px}.error-msg.svelte-1vpgrso{font-size:14px;color:var(--color-error, #e55)}.meeting-settings.svelte-67gzoi{padding:24px 32px}.panel-title.svelte-67gzoi{font-size:18px;font-weight:600;margin-bottom:8px}.panel-description.svelte-67gzoi{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px;line-height:1.5}.setting-group.svelte-67gzoi{margin-bottom:20px}.setting-help.svelte-67gzoi{font-size:13px;color:var(--color-text-tertiary);margin-top:4px}.setting-help.svelte-67gzoi a:where(.svelte-67gzoi){color:var(--color-accent)}.select-input.svelte-67gzoi{width:100%;padding:8px 12px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);font-size:14px;font-family:inherit;outline:none;margin-top:4px}.select-input.svelte-67gzoi:focus{border-color:var(--color-border-strong)}.error-text.svelte-67gzoi{color:#ef4444;font-size:13px;margin-bottom:12px}.loading-text.svelte-67gzoi{color:var(--color-text-tertiary);font-size:14px}.save-row.svelte-67gzoi{margin-top:24px}.split-layout.svelte-1pdwh4i{display:flex;height:520px;max-height:calc(100vh - 160px)}.settings-sidebar.svelte-1pdwh4i{width:210px;flex-shrink:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:20px 0}.sidebar-header.svelte-1pdwh4i{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);padding:0 20px 12px}.sidebar-nav.svelte-1pdwh4i{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar-nav.svelte-1pdwh4i .nav-item{display:flex;align-items:center;gap:10px;padding:0 12px;height:var(--row-height, 44px);border-radius:8px;font-size:14px;color:var(--color-text-secondary);text-align:left;width:100%;justify-content:flex-start}.sidebar-nav.svelte-1pdwh4i .nav-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.sidebar-nav.svelte-1pdwh4i .nav-item.active{background:var(--color-bg-selected);color:var(--color-text-primary);font-weight:600}.settings-main.svelte-1pdwh4i{flex:1;min-width:0;display:flex;flex-direction:column}.panel-title.svelte-1pdwh4i{font-size:20px;font-weight:400;color:var(--color-text-primary);margin:0 0 24px;letter-spacing:-.01em;line-height:1.2}.mcp-layout.svelte-1pdwh4i .panel-title:where(.svelte-1pdwh4i){margin-bottom:0}.hint.svelte-1pdwh4i{font-size:14px;color:var(--color-text-tertiary);margin:0}.error-msg.svelte-1pdwh4i{font-size:14px;color:var(--color-error, #e55)}.card.svelte-1pdwh4i{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:14px 16px;transition:border-color .15s}.card-row.svelte-1pdwh4i{display:flex;align-items:center;gap:14px}.card-title.svelte-1pdwh4i{font-size:14px;font-weight:600;color:var(--color-text-primary)}.confirm-hint.svelte-1pdwh4i{font-size:13px;color:var(--color-text-tertiary);flex:1}.mcp-layout.svelte-1pdwh4i{display:flex;flex-direction:column;gap:24px}.credential-field.svelte-1pdwh4i{display:flex;flex-direction:column;gap:8px}.credential-label.svelte-1pdwh4i{font-size:14px;font-weight:500;color:var(--color-text-primary)}.credential-header.svelte-1pdwh4i{display:flex;align-items:center;gap:8px}.input-with-copy.svelte-1pdwh4i{position:relative}.copy-overlay.svelte-1pdwh4i{position:absolute;right:1px;top:1px;bottom:1px;background:linear-gradient(to right,transparent,var(--color-bg) 40%);border:none;cursor:pointer;padding:0 10px 0 24px;color:var(--color-text-tertiary);display:flex;align-items:center;transition:color .15s;border-radius:0 6px 6px 0}.copy-overlay.svelte-1pdwh4i:hover{color:var(--color-text-primary)}.mono-input{font-family:var(--font-mono, monospace)!important;font-size:13px!important}.raw-config.svelte-1pdwh4i{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.textarea-with-copy.svelte-1pdwh4i{position:relative;align-self:stretch}.copy-overlay-top.svelte-1pdwh4i{position:absolute;right:1px;top:1px;background:linear-gradient(to right,transparent,var(--color-bg) 40%);border:none;cursor:pointer;padding:8px 10px 8px 24px;color:var(--color-text-tertiary);display:flex;align-items:center;transition:color .15s;border-radius:0 6px 0 0}.copy-overlay-top.svelte-1pdwh4i:hover{color:var(--color-text-primary)}.mcp-config-textarea{font-family:var(--font-mono, ui-monospace, monospace)!important;font-size:13px!important}.connector-list.svelte-1pdwh4i{display:flex;flex-direction:column;gap:8px}.card-actions.svelte-1pdwh4i{display:flex;align-items:center;gap:4px}.connected-label.svelte-1pdwh4i{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--color-success, #4ade80);background:none;border:none;font-family:inherit;cursor:default;padding:0}button.connected-label.svelte-1pdwh4i{cursor:pointer}button.connected-label.svelte-1pdwh4i:hover{opacity:.7}.confirm-row.svelte-1pdwh4i{display:flex;align-items:center;gap:8px;background:#e5555514}.confirm-text.svelte-1pdwh4i{font-size:14px;color:var(--color-text-primary);flex:1}.edit-form.svelte-1pdwh4i{display:flex;flex-direction:column;gap:8px;padding:12px 0}.add-form.svelte-1pdwh4i{display:flex;flex-direction:column;gap:20px;padding:20px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:10px;margin-top:12px}.field.svelte-1pdwh4i{display:flex;flex-direction:column;gap:8px}.add-form.svelte-1pdwh4i label{font-size:14px}.form-actions.svelte-1pdwh4i{display:flex;justify-content:flex-end;gap:8px}.add-server-btn.svelte-1pdwh4i{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;margin-top:8px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-secondary);font-size:13px;font-weight:550;font-family:inherit;cursor:pointer;transition:all .15s}.add-server-btn.svelte-1pdwh4i:hover{background:var(--color-bg-hover)}.split-layout.svelte-1hdlfew{display:flex;height:560px;max-height:calc(100vh - 160px)}.settings-sidebar.svelte-1hdlfew{width:210px;flex-shrink:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:20px 0}.sidebar-header.svelte-1hdlfew{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);padding:0 20px 12px}.sidebar-nav.svelte-1hdlfew{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar-nav.svelte-1hdlfew .nav-item{display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:8px;font-size:14px;color:var(--color-text-secondary);text-align:left;width:100%;justify-content:flex-start;height:var(--row-height, 44px)}.sidebar-nav.svelte-1hdlfew .nav-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.sidebar-nav.svelte-1hdlfew .nav-item.active{background:var(--color-bg-selected);color:var(--color-text-primary);font-weight:600}.settings-main.svelte-1hdlfew{flex:1;min-width:0;display:flex;flex-direction:column}.panel-title.svelte-1hdlfew{font-size:20px;font-weight:400;color:var(--color-text-primary);margin:0 0 24px;letter-spacing:-.01em;line-height:1.2}.hint.svelte-1hdlfew{font-size:14px;color:var(--color-text-tertiary);margin:0}.error-msg.svelte-1hdlfew{font-size:14px;color:var(--color-error, #e55)}.fields.svelte-1hdlfew{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.field.svelte-1hdlfew{display:flex;flex-direction:column;gap:6px}.form-actions.svelte-1hdlfew{display:flex;justify-content:flex-end;gap:8px}.save-row.svelte-1hdlfew{display:flex;justify-content:flex-end;gap:8px;padding-top:8px}.search-wrapper.svelte-1hdlfew{position:relative;margin-bottom:8px;color:var(--color-text-tertiary)}.search-wrapper.svelte-1hdlfew svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none}.search-input.svelte-1hdlfew{width:100%;padding:10px 13px 10px 36px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:9px;font-size:14px;color:var(--color-text-primary);font-family:inherit;outline:none;transition:border-color .15s}.search-input.svelte-1hdlfew::placeholder{color:var(--color-text-tertiary)}.search-input.svelte-1hdlfew:focus{border-color:var(--color-accent)}.card.svelte-1hdlfew{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:14px;transition:border-color .15s}.card-row.svelte-1hdlfew{display:flex;align-items:center;gap:14px}.card-text.svelte-1hdlfew{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.card-title.svelte-1hdlfew{font-size:14px;font-weight:600;color:var(--color-text-primary);line-height:1.2}.card-desc.svelte-1hdlfew{font-size:12px;color:var(--color-text-tertiary);line-height:1.2}.member-list.svelte-1hdlfew,.collection-list.svelte-1hdlfew{display:flex;flex-direction:column;gap:8px}.member-card.svelte-1hdlfew{cursor:default}.role-label.svelte-1hdlfew{font-size:12px;font-weight:400;color:var(--color-accent);margin-left:8px}.card-actions.svelte-1hdlfew{display:flex;align-items:center;gap:4px}.user-avatar.svelte-1hdlfew{width:18px;height:18px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon-danger:hover{color:var(--color-error, #e55)!important}.collection-group.svelte-1hdlfew{display:flex;flex-direction:column}.collection-group.expanded.svelte-1hdlfew .collection-card:where(.svelte-1hdlfew){border-radius:8px 8px 0 0;border-bottom-color:transparent}.collection-card.svelte-1hdlfew{cursor:pointer;width:100%;text-align:left;font-family:inherit}.collection-card.svelte-1hdlfew:hover{border-color:var(--color-text-tertiary)}.collection-card.selected.svelte-1hdlfew{border-color:var(--color-border)}.collection-chevron.svelte-1hdlfew{color:var(--color-text-tertiary);transition:transform .15s;display:flex;align-items:center;justify-content:center;width:28px;flex-shrink:0}.collection-chevron.rotated.svelte-1hdlfew{transform:rotate(90deg)}.collection-detail.svelte-1hdlfew{padding:16px 14px 16px 44px;border:1px solid var(--color-border);border-top:none;border-radius:0 0 8px 8px;background:var(--color-bg);display:flex;flex-direction:column;gap:24px}.detail-section.svelte-1hdlfew{display:flex;flex-direction:column;gap:8px}.detail-header.svelte-1hdlfew{display:flex;align-items:center;justify-content:space-between;min-height:24px}.section-label-small.svelte-1hdlfew{font-size:14px;font-weight:400;color:var(--color-text-primary)}.detail-member.svelte-1hdlfew{display:flex;align-items:center;gap:10px;height:36px;font-size:14px}.member-name.svelte-1hdlfew{font-size:14px;font-weight:500;color:var(--color-text-primary)}.rename-row.svelte-1hdlfew{position:relative}.rename-save.svelte-1hdlfew{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-tertiary);display:flex;align-items:center;transition:color .15s;border-radius:4px}.rename-save.svelte-1hdlfew:hover{color:var(--color-text-primary)}.delete-col-btn,.done-btn{align-self:flex-end;margin-top:8px}.confirm-row.svelte-1hdlfew{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;background:#e5555514;border-color:#e5555526}.confirm-row.svelte-1hdlfew button:not([class*=destructive]):hover{background:transparent!important;color:var(--color-text-primary)!important;border-color:var(--color-border-strong)!important}.confirm-text.svelte-1hdlfew{font-size:14px;color:var(--color-text-primary);flex:1}.reset-form-card.svelte-1hdlfew{padding:14px 16px}.reset-form.svelte-1hdlfew{display:flex;flex-direction:column;gap:8px}.reset-label.svelte-1hdlfew{font-size:13px;color:var(--color-text-secondary);font-weight:500}.add-btn.svelte-1hdlfew{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;margin-top:8px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-secondary);font-size:13px;font-weight:550;font-family:inherit;cursor:pointer;transition:all .15s}.add-btn.svelte-1hdlfew:hover{background:var(--color-bg-hover)}.add-form.svelte-1hdlfew label{font-size:14px}.add-form.svelte-1hdlfew{display:flex;flex-direction:column;gap:20px;padding:20px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:10px;margin-top:8px}.modal-body.svelte-7xzjv8{padding:8px 32px 28px}.close-only-header{justify-content:flex-end;min-height:0;padding:12px 16px 0}.modal-title.svelte-7xzjv8{font-size:20px;font-weight:400;color:var(--color-text-primary);margin:0 0 24px;letter-spacing:-.01em;line-height:1.2}.form.svelte-7xzjv8{display:flex;flex-direction:column;gap:16px}.field.svelte-7xzjv8{display:flex;flex-direction:column;gap:8px}.error-msg.svelte-7xzjv8{font-size:14px;color:var(--color-error, #e55)}.form-footer.svelte-7xzjv8{display:flex;justify-content:flex-end;gap:8px;padding-top:8px}.app-frame.svelte-vr1z90{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.app-body.svelte-vr1z90{flex:1;display:flex;min-height:0;overflow:hidden}.main-content.svelte-vr1z90{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CtYLtD7K.js","./C3uBrOS5.js","./BhlvzGQx.js","./DFYOFE3o.js"])))=>i.map(i=>d[i]);
2
- import{_ as L}from"./PPVm8Dsz.js";import{g as S,s as a,w as T}from"./C3uBrOS5.js";import{i as V}from"./BEn6N5c2.js";import{w as l}from"./BPCkkwqe.js";import{b as G}from"./DkoHPElM.js";import{n as h}from"./DUMOo1Pn.js";import{u as O}from"./BhlvzGQx.js";import{t as s}from"./BlMknQeF.js";const Y=800;function q(){let t=T(!1),n=T(null),e=T(null),r=null,i=null,m=!1;function W(u,p,d,c){r&&r.repo===u&&r.type===p&&r.id===d?(c.data!==void 0&&(r.payload.data=c.data),c.content!==void 0&&(r.payload.content=c.content)):r={repo:u,type:p,id:d,payload:{...c}},x()}function x(){i&&clearTimeout(i),i=setTimeout(b,Y)}async function b(){if(i=null,!m&&r){const{repo:u,type:p,id:d,payload:c}=r;r=null,m=!0,a(t,!0),a(e,null);try{if(await O(u,p,d,c),a(n,new Date,!0),c.data?.name){const g=l.repos.find(H=>H.name===u)?.entities.find(H=>H.id===d);g&&(g.title=c.data.name)}}catch(f){a(e,f.message??"Save failed",!0);const g=f.status??f.statusCode;(!g||g>=500)&&(r={repo:u,type:p,id:d,payload:c})}finally{a(t,!1),m=!1,r&&b()}}}function J(){i&&(clearTimeout(i),i=null),r&&b()}async function j(u,p,d,c){a(t,!0),a(e,null);try{const f=await O(u,p,d,c);return a(n,new Date,!0),f}catch(f){return a(e,f.message??"Save failed",!0),null}finally{a(t,!1)}}function F(){a(e,null),a(n,null),r=null,i&&(clearTimeout(i),i=null)}return{get saving(){return S(t)},get lastSaved(){return S(n)},get error(){return S(e)},get hasPending(){return!!(r||m)},scheduleAutoSave:W,flush:J,saveEntity:j,reset:F}}const z=q();let o=null,I=null,N=null,U=null,D=null,P=null,M=null,C=[],w=null,$=1e3,E=T(!1),B=T(null);const y=new Map,_={},A={};function k(t,n){y.delete(t);const e=n.entities.length,r=e===1?`${t} updated ${n.entities[0]}`:`${t} updated ${e} entities`;s(r)}function K(t){for(const[n,e]of y)e.repo===t&&(clearTimeout(e.timer),y.delete(n))}function Q(t){const n=G.user?.displayName;if(t.type==="sync_progress"){const e=_[t.repo];if(e){const r=t.message.trim(),i=r.match(/^Syncing from source:\s*(.+)$/i);i&&(A[t.repo]=`Syncing ${i[1].trim()}…`);const m=A[t.repo]??`Syncing ${t.repo}…`;s.loading(m,{id:e,description:r,duration:36e5})}return}if(t.type==="entity_change"){if(n&&t.actor===n&&t.source==="api"){l.refreshEntities(t.repo);return}if(l.refreshEntities(t.repo),h.selectedRepo===t.repo&&h.selectedType===t.entityType&&h.selectedId===t.entityId){z.hasPending?s(`${t.actor} also saved changes to this entity`):V();return}const r=y.get(t.actor);if(r)clearTimeout(r.timer),r.entities.includes(t.entityId)||r.entities.push(t.entityId),r.timer=setTimeout(()=>k(t.actor,r),1e4);else{const i={entities:[t.entityId],repo:t.repo,timer:setTimeout(()=>k(t.actor,i),1e4)};y.set(t.actor,i)}return}if(t.type==="session_commit"){if(n&&t.actor===n){a(B,t.timestamp,!0);return}const e=t.entities.length,r=e===1?`${t.actor} saved changes to ${t.entities[0]}`:`${t.actor} saved ${e} changes in ${t.repo}`;s(r),l.refreshEntities(t.repo);return}if(t.type==="sync_complete"){if(K(t.repo),!_[t.repo]){const e=t.created+t.updated+t.deleted,r=e===0?`Sync complete · no changes in ${t.repo}`:`Sync complete · ${e} ${e===1?"entity":"entities"} from ${t.source}`;s.success(r)}l.refreshEntities(t.repo);return}if(t.type==="collection_created"){s(`${t.actor} created collection ${t.repo}`),l.refreshEntities(t.repo);return}if(t.type==="collection_deleted"){s(`${t.actor} deleted collection ${t.repo}`);return}if(t.type==="repo_sync"){s(`${t.actor} pushed to ${t.repo}`),l.refreshEntities(t.repo);return}if(t.type==="collection_message"){U?.(t);return}if(t.type==="message_update"){D?.(t);return}if(t.type==="collection_agent_thinking"){P?.(t);return}if(t.type==="user_mention"){M?.(t);return}if(t.type==="presence"){I?.(t);return}if(t.type==="online"){N?.(t);return}if(t.type==="insights_updated"||t.type==="briefing_updated"){L(()=>import("./CtYLtD7K.js"),__vite__mapDeps([0,1,2,3]),import.meta.url).then(e=>e.insightsStore.load());return}if(t.type==="access_granted"||t.type==="access_revoked"){t.type==="access_revoked"&&h.selectedRepo===t.repo&&h.deselect(),l.load();return}}function R(){if(typeof window>"u"||o&&(o.readyState===WebSocket.OPEN||o.readyState===WebSocket.CONNECTING))return;const n=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;o=new WebSocket(n),o.binaryType="arraybuffer",o.onopen=()=>{a(E,!0),$=1e3,l.refreshAll();for(const e of C)e()},o.onmessage=e=>{if(!(e.data instanceof ArrayBuffer))try{const r=JSON.parse(e.data);if(r?.type==="ping"){o?.send(JSON.stringify({type:"pong"}));return}const i=r;i.type&&i.type!=="toast"&&Q(i)}catch{}},o.onclose=()=>{a(E,!1),o=null,w=setTimeout(()=>{$=Math.min($*2,1e4),R()},$)},o.onerror=()=>{}}function X(){w&&(clearTimeout(w),w=null),o&&(o.close(),o=null),a(E,!1);for(const[,t]of y)clearTimeout(t.timer);y.clear()}function Z(t,n=4e3){s(t,{duration:n})}function v(t,n){const e=crypto.randomUUID();return n?.loading?s.loading(t,{id:e,duration:36e5}):s(t,{id:e}),e}function tt(t,n,e){if(e?.loading){s.loading(n,{id:t});return}/failed|error/i.test(n)?s.error(n,{id:t,duration:e?.duration??6e3}):s.success(n,{id:t,duration:e?.duration??4e3})}function et(t){const n=crypto.randomUUID();_[t]=n,s.loading(`Syncing ${t}…`,{id:n,duration:36e5})}function rt(t,n,e){const r=_[t];r&&(delete _[t],delete A[t],e?s.error(n,{id:r,duration:6e3}):s.success(n,{id:r,duration:4e3}))}function nt(t){I=t}function it(t){N=t}function ot(t){U=t}function st(t){D=t}function at(t){P=t}function ct(t){M=t}function lt(t){C.push(t)}function ut(t){o?.readyState===WebSocket.OPEN&&o.send(JSON.stringify(t))}const Tt={get connected(){return S(E)},get lastAutoSaved(){return S(B)},get ws(){return o},connect:R,disconnect:X,showToast:Z,showPersistentToast:v,updateToast:tt,startSyncToast:et,finishSyncToast:rt,send:ut,setPresenceHandler:nt,setOnlineHandler:it,setMessagesHandler:ot,setMessageUpdateHandler:st,setAgentThinkingHandler:at,setUserMentionHandler:ct,addConnectHandler:lt};export{z as e,Tt as r};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/BEn6N5c2.js";export{o as load_css,r as start};